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

Method FromDirection

Source/Engine/Core/Math/Quaternion.cpp:315–335  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

313}
314
315Quaternion Quaternion::FromDirection(const Float3& direction)
316{
317 CHECK_RETURN_DEBUG(direction.IsNormalized(), Quaternion::Identity);
318 Quaternion orientation;
319 if (Float3::Dot(direction, Float3::Up) >= 0.999f)
320 {
321 RotationAxis(Float3::Left, PI_OVER_2, orientation);
322 }
323 else if (Float3::Dot(direction, Float3::Down) >= 0.999f)
324 {
325 RotationAxis(Float3::Right, PI_OVER_2, orientation);
326 }
327 else
328 {
329 Float3 right, up;
330 Float3::Cross(direction, Float3::Up, right);
331 Float3::Cross(right, direction, up);
332 LookRotation(direction, up, orientation);
333 }
334 return orientation;
335}
336
337void Quaternion::LookRotation(const Float3& forward, const Float3& up, Quaternion& result)
338{

Callers 2

GetWorldMatrixMethod · 0.45
BuildRagdollMethod · 0.45

Calls 4

DotFunction · 0.85
RotationAxisFunction · 0.85
LookRotationFunction · 0.85
IsNormalizedMethod · 0.45

Tested by

no test coverage detected