|
FORCEINLINE | TQuat () |
|
FORCEINLINE | TQuat (EForceInit) |
|
FORCEINLINE | TQuat (T InX, T InY, T InZ, T InW) |
|
template<TEMPLATE_REQUIRES(std::is_arithmetic< T >::value) > |
FORCEINLINE | TQuat (T V) |
|
| TQuat (const TRotator< T > &R) |
|
| TQuat (const TMatrix< T > &M) |
|
| TQuat (TVector< T > Axis, T AngleRad) |
|
FORCEINLINE TQuat< T > | operator+ (const TQuat< T > &Q) const |
|
FORCEINLINE TQuat< T > | operator+= (const TQuat< T > &Q) |
|
FORCEINLINE TQuat< T > | operator- (const TQuat< T > &Q) const |
|
FORCEINLINE TQuat< T > | operator- () const |
|
FORCEINLINE bool | Equals (const TQuat< T > &Q, T Tolerance=UE_KINDA_SMALL_NUMBER) const |
|
FORCEINLINE bool | IsIdentity (T Tolerance=UE_SMALL_NUMBER) const |
|
FORCEINLINE TQuat< T > | operator-= (const TQuat< T > &Q) |
|
FORCEINLINE TQuat< T > | operator* (const TQuat< T > &Q) const |
|
FORCEINLINE TQuat< T > | operator*= (const TQuat< T > &Q) |
|
TVector< T > | operator* (const TVector< T > &V) const |
|
TMatrix< T > | operator* (const TMatrix< T > &M) const |
|
template<typename FArg , TEMPLATE_REQUIRES(std::is_arithmetic< FArg >::value) > |
FORCEINLINE TQuat< T > | operator*= (const FArg Scale) |
|
template<typename FArg , TEMPLATE_REQUIRES(std::is_arithmetic< FArg >::value) > |
FORCEINLINE TQuat< T > | operator* (const FArg Scale) const |
|
template<typename FArg , TEMPLATE_REQUIRES(std::is_arithmetic< FArg >::value) > |
FORCEINLINE TQuat< T > | operator/= (const FArg Scale) |
|
template<typename FArg , TEMPLATE_REQUIRES(std::is_arithmetic< FArg >::value) > |
FORCEINLINE TQuat< T > | operator/ (const FArg Scale) const |
|
bool | Identical (const TQuat *Q, const uint32 PortFlags) const |
|
bool | operator== (const TQuat< T > &Q) const |
|
bool | operator!= (const TQuat< T > &Q) const |
|
T | operator| (const TQuat< T > &Q) const |
|
TVector< T > | Euler () const |
|
FORCEINLINE void | Normalize (T Tolerance=UE_SMALL_NUMBER) |
|
FORCEINLINE TQuat< T > | GetNormalized (T Tolerance=UE_SMALL_NUMBER) const |
|
bool | IsNormalized () const |
|
FORCEINLINE T | Size () const |
|
FORCEINLINE T | SizeSquared () const |
|
FORCEINLINE T | GetAngle () const |
|
void | ToAxisAndAngle (TVector< T > &Axis, float &Angle) const |
|
void | ToAxisAndAngle (TVector< T > &Axis, double &Angle) const |
|
TVector< T > | ToRotationVector () const |
|
void | ToSwingTwist (const TVector< T > &InTwistAxis, TQuat< T > &OutSwing, TQuat< T > &OutTwist) const |
|
T | GetTwistAngle (const TVector< T > &TwistAxis) const |
|
TVector< T > | RotateVector (TVector< T > V) const |
|
TVector< T > | UnrotateVector (TVector< T > V) const |
|
TQuat< T > | Log () const |
|
TQuat< T > | Exp () const |
|
FORCEINLINE TQuat< T > | Inverse () const |
|
void | EnforceShortestArcWith (const TQuat< T > &OtherQuat) |
|
FORCEINLINE TVector< T > | GetAxisX () const |
|
FORCEINLINE TVector< T > | GetAxisY () const |
|
FORCEINLINE TVector< T > | GetAxisZ () const |
|
FORCEINLINE TVector< T > | GetForwardVector () const |
|
FORCEINLINE TVector< T > | GetRightVector () const |
|
FORCEINLINE TVector< T > | GetUpVector () const |
|
FORCEINLINE TVector< T > | Vector () const |
|
TRotator< T > | Rotator () const |
|
FORCEINLINE TMatrix< T > | ToMatrix () const |
|
void | ToMatrix (TMatrix< T > &Mat) const |
|
FORCEINLINE TVector< T > | GetRotationAxis () const |
|
FORCEINLINE T | AngularDistance (const TQuat< T > &Q) const |
|
bool | NetSerialize (FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess) |
|
bool | ContainsNaN () const |
|
FString | ToString () const |
|
bool | InitFromString (const FString &InSourceString) |
|
FORCEINLINE void | DiagnosticCheckNaN () const |
|
FORCEINLINE void | DiagnosticCheckNaN (const TCHAR *Message) const |
|
bool | Serialize (FArchive &Ar) |
|
bool | SerializeFromMismatchedTag (FName StructTag, FArchive &Ar) |
|
template<typename FArg , TEMPLATE_REQUIRES(!std::is_same_v< T, FArg >) > |
| TQuat (const TQuat< FArg > &From) |
|
|
static FORCEINLINE TQuat< T > | MakeFromVectorRegister (const QuatVectorRegister &V) |
|
static FORCEINLINE TQuat< T > | MakeFromRotator (const TRotator< T > &R) |
|
static TQuat< T > | MakeFromEuler (const TVector< T > &Euler) |
|
static TQuat< T > | MakeFromRotationVector (const TVector< T > &RotationVector) |
|
static FORCEINLINE TQuat< T > | FindBetween (const TVector< T > &Vector1, const TVector< T > &Vector2) |
|
static TQuat< T > | FindBetweenNormals (const TVector< T > &Normal1, const TVector< T > &Normal2) |
|
static TQuat< T > | FindBetweenVectors (const TVector< T > &Vector1, const TVector< T > &Vector2) |
|
static FORCEINLINE T | Error (const TQuat< T > &Q1, const TQuat< T > &Q2) |
|
static FORCEINLINE T | ErrorAutoNormalize (const TQuat< T > &A, const TQuat< T > &B) |
|
static FORCEINLINE TQuat< T > | FastLerp (const TQuat< T > &A, const TQuat< T > &B, const T Alpha) |
|
static FORCEINLINE TQuat< T > | FastBilerp (const TQuat< T > &P00, const TQuat< T > &P10, const TQuat< T > &P01, const TQuat< T > &P11, T FracX, T FracY) |
|
static TQuat< T > | Slerp_NotNormalized (const TQuat< T > &Quat1, const TQuat< T > &Quat2, T Slerp) |
|
static FORCEINLINE TQuat< T > | Slerp (const TQuat< T > &Quat1, const TQuat< T > &Quat2, T Slerp) |
|
static TQuat< T > | SlerpFullPath_NotNormalized (const TQuat< T > &quat1, const TQuat< T > &quat2, T Alpha) |
|
static FORCEINLINE TQuat< T > | SlerpFullPath (const TQuat< T > &quat1, const TQuat< T > &quat2, T Alpha) |
|
static TQuat< T > | Squad (const TQuat< T > &quat1, const TQuat< T > &tang1, const TQuat< T > &quat2, const TQuat< T > &tang2, T Alpha) |
|
static TQuat< T > | SquadFullPath (const TQuat< T > &quat1, const TQuat< T > &tang1, const TQuat< T > &quat2, const TQuat< T > &tang2, T Alpha) |
|
static void | CalcTangents (const TQuat< T > &PrevP, const TQuat< T > &P, const TQuat< T > &NextP, T Tension, TQuat< T > &OutTan) |
|
template<
typename T>
struct UE::Math::TQuat< T >
Floating point quaternion that can represent a rotation about an axis in 3-D space. The X, Y, Z, W components also double as the Axis/Angle format.
Order matters when composing quaternions: C = A * B will yield a quaternion C that logically first applies B then A to any subsequent transformation (right first, then left). Note that this is the opposite order of FTransform multiplication.
Example: LocalToWorld = (LocalToWorld * DeltaRotation) will change rotation in local space by DeltaRotation. Example: LocalToWorld = (DeltaRotation * LocalToWorld) will change rotation in world space by DeltaRotation.
Definition at line 37 of file Quat.h.