Merge branch 'master' into blender2.8
authorCampbell Barton <ideasman42@gmail.com>
Thu, 20 Sep 2018 02:06:53 +0000 (12:06 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 20 Sep 2018 02:06:53 +0000 (12:06 +1000)
1  2 
source/blender/editors/curve/editcurve_paint.c
source/blender/editors/include/ED_view3d.h
source/blender/editors/space_view3d/view3d_project.c

index bb272873aec59878bd91adf5ab7c9ce998882903,0f8cd7260fd9feb4778d2b388f2fb4e4dfeeb873..8e9c1736122062eb27bc62c9ca5e6b8e35993051
@@@ -257,9 -225,11 +257,12 @@@ bool ED_view3d_win_to_ray_clipped
          const struct ARegion *ar, const struct View3D *v3d, const float mval[2],
          float ray_start[3], float ray_normal[3], const bool do_clip);
  bool ED_view3d_win_to_ray_clipped_ex(
 +        struct Depsgraph *depsgraph,
          const struct ARegion *ar, const struct View3D *v3d, const float mval[2],
          float r_ray_co[3], float r_ray_normal[3], float r_ray_start[3], bool do_clip);
+ void ED_view3d_win_to_ray(
+         const struct ARegion *ar, const float mval[2],
+         float r_ray_start[3], float r_ray_normal[3]);
  void ED_view3d_global_to_vector(const struct RegionView3D *rv3d, const float coord[3], float vec[3]);
  void ED_view3d_win_to_3d(
          const struct View3D *v3d, const struct ARegion *ar,
index 719530c7293c555cd124d8c869e4011c3dcd13df,fa166cbaaab100c7b14d9414a839b172124af1d5..6e8b7c281cec1d762ac645267969adf6d1149cd6
@@@ -405,9 -403,27 +405,27 @@@ bool ED_view3d_win_to_ray_clipped
          const ARegion *ar, const View3D *v3d, const float mval[2],
          float r_ray_start[3], float r_ray_normal[3], const bool do_clip_planes)
  {
 -      return ED_view3d_win_to_ray_clipped_ex(ar, v3d, mval, NULL, r_ray_normal, r_ray_start, do_clip_planes);
 +      return ED_view3d_win_to_ray_clipped_ex(depsgraph, ar, v3d, mval, NULL, r_ray_normal, r_ray_start, do_clip_planes);
  }
  
+ /**
+  * Calculate a 3d viewpoint and direction vector from 2d window coordinates.
+  * This ray_start is located at the viewpoint, ray_normal is the direction towards mval.
+  * \param ar The region (used for the window width and height).
+  * \param mval The area relative 2d location (such as event->mval, converted into float[2]).
+  * \param r_ray_start The world-space point where the ray intersects the window plane.
+  * \param r_ray_normal The normalized world-space direction of towards mval.
+  *
+  * \note Ignores view near/far clipping, to take this into account use #ED_view3d_win_to_ray_clipped.
+  */
+ void ED_view3d_win_to_ray(
+         const ARegion *ar, const float mval[2],
+         float r_ray_start[3], float r_ray_normal[3])
+ {
+       ED_view3d_win_to_origin(ar, mval, r_ray_start);
+       ED_view3d_win_to_vector(ar, mval, r_ray_normal);
+ }
  /**
   * Calculate a normalized 3d direction vector from the viewpoint towards a global location.
   * In orthographic view the resulting vector will match the view vector.