File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -324,3 +324,16 @@ Vector3 Renderer::Unproject(const Vector3& screenPoint) const
324
324
unprojection.Invert ();
325
325
return Vector3::TransformWithPerspDiv (deviceCoord, unprojection);
326
326
}
327
+
328
+ void Renderer::GetScreenDirection (Vector3& outStart, Vector3& outDir) const
329
+ {
330
+ // Get start point (in center of screen on near plane)
331
+ Vector3 screenPoint (0 .0f , 0 .0f , 0 .0f );
332
+ outStart = Unproject (screenPoint);
333
+ // Get end point (in center of screen, between near and far)
334
+ screenPoint.z = 0 .9f ;
335
+ Vector3 end = Unproject (screenPoint);
336
+ // Get direction vector
337
+ outDir = end - outStart;
338
+ outDir.Normalize ();
339
+ }
Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ class Renderer
56
56
// y = [-screenHeight/2, +screenHeight/2]
57
57
// z = [0, 1) -- 0 is closer to camera, 1 is further
58
58
Vector3 Unproject (const Vector3& screenPoint) const ;
59
+ void GetScreenDirection (Vector3& outStart, Vector3& outDir) const ;
59
60
float GetScreenWidth () const { return mScreenWidth ; }
60
61
float GetScreenHeight () const { return mScreenHeight ; }
61
62
private:
You can’t perform that action at this time.
0 commit comments