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

Method IsPointOnView

Source/Engine/Level/Actors/Camera.cpp:185–202  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185bool Camera::IsPointOnView(const Vector3& worldSpaceLocation) const
186{
187 Vector3 cameraUp = GetTransform().GetUp();
188 Vector3 cameraForward = GetTransform().GetForward();
189 Vector3 directionToPosition = (worldSpaceLocation - GetPosition()).GetNormalized();
190 if (Vector3::Dot(cameraForward, directionToPosition) < 0)
191 return false;
192
193 Quaternion lookAt = Quaternion::LookRotation(directionToPosition, cameraUp);
194 Vector3 lookAtDirection = lookAt * Vector3::Forward;
195 Vector3 newWorldLocation = GetPosition() + lookAtDirection;
196
197 Float2 windowSpace;
198 const Viewport viewport = GetViewport();
199 ProjectPoint(newWorldLocation, windowSpace, viewport);
200
201 return windowSpace.X >= 0 && windowSpace.X <= viewport.Size.X && windowSpace.Y >= 0 && windowSpace.Y <= viewport.Size.Y;
202}
203
204Ray Camera::ConvertMouseToRay(const Float2& mousePosition) const
205{

Callers

nothing calls this directly

Calls 8

DotFunction · 0.85
LookRotationFunction · 0.85
GetViewportFunction · 0.85
GetUpMethod · 0.80
GetForwardMethod · 0.80
GetPositionFunction · 0.50
ProjectPointFunction · 0.50
GetNormalizedMethod · 0.45

Tested by

no test coverage detected