Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-09-20 05:00:02 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-09-20 05:00:02 +0300
commitc9df0ea1474781e97f9e5fdaa84c6643f14cd889 (patch)
tree75f3e3b9b6bb375989097f3b5f09abfee487c7d6 /source/blender/editors/space_view3d/view3d_project.c
parentde32dc6b275f253348d316077ab8c5f86a85908a (diff)
3D View: add a simple un-clipped win_to_ray
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_project.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_project.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_project.c b/source/blender/editors/space_view3d/view3d_project.c
index 63057e01f20..fa166cbaaab 100644
--- a/source/blender/editors/space_view3d/view3d_project.c
+++ b/source/blender/editors/space_view3d/view3d_project.c
@@ -407,6 +407,24 @@ bool ED_view3d_win_to_ray_clipped(
}
/**
+ * 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.
* \param rv3d The region (used for the window width and height).