MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / ProjectPoint

Method ProjectPoint

Source/Editor/Viewport/EditorViewport.cs:1514–1527  ·  view source on GitHub ↗

Projects the point from 3D world-space to viewport coordinates. The input world-space location (XYZ in world). The output viewport window coordinates (XY in screen pixels).

(Vector3 worldSpaceLocation, out Float2 viewportSpaceLocation)

Source from the content-addressed store, hash-verified

1512 /// <param name="worldSpaceLocation">The input world-space location (XYZ in world).</param>
1513 /// <param name="viewportSpaceLocation">The output viewport window coordinates (XY in screen pixels).</param>
1514 public void ProjectPoint(Vector3 worldSpaceLocation, out Float2 viewportSpaceLocation)
1515 {
1516 viewportSpaceLocation = Float2.Minimum;
1517 var viewport = new FlaxEngine.Viewport(0, 0, Width, Height);
1518 if (viewport.Width < Mathf.Epsilon || viewport.Height < Mathf.Epsilon)
1519 return;
1520 Vector3 viewOrigin = Task.View.Origin;
1521 Float3 position = ViewPosition - viewOrigin;
1522 CreateProjectionMatrix(out var p);
1523 CreateViewMatrix(position, out var v);
1524 Matrix.Multiply(ref v, ref p, out var vp);
1525 viewport.Project(ref worldSpaceLocation, ref vp, out var projected);
1526 viewportSpaceLocation = new Float2((float)projected.X, (float)projected.Y);
1527 }
1528
1529 /// <summary>
1530 /// Called when mouse control begins.

Callers

nothing calls this directly

Calls 2

MultiplyMethod · 0.45
ProjectMethod · 0.45

Tested by

no test coverage detected