FQuat
struct FQuat
Floating point quaternion that can represent a rotation about an axis in 3D 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.
Quaternion. The full C++ class is located here: Engine\Source\Runtime\Core\Public\Math\Quat.h
Name  Description  

float 
W 
The quaternion's Wcomponent. 

float 
X 
The quaternion's Xcomponent. 

float 
Y 
The quaternion's Ycomponent. 

float 
Z 
The quaternion's Zcomponent. 
Name  Description  

FQuat() 
Default constructor (no initialization). 

FQuat ( 
Creates and initializes a new quaternion, with the W component either 0 or 1. 

FQuat ( 
Copy constructor. 

FQuat ( 
Creates and initializes a new quaternion from the given matrix. 

FQuat ( 
Creates and initializes a new quaternion from the given rotator. 

FQuat ( 
Creates and initializes a new quaternion from the a rotation around the given axis. 

FQuat ( 
Constructor. 
Name  Description  

float 
AngularDistance ( 
Find the angular distance between two rotation quaternions (in radians) 


[CORE_API](API\Runtime\Core\Misc\CORE_API_1) voi... 
CalcTangents 
Calculate tangents between given points 
bool 
ContainsNaN() 
Utility to check if there are any nonfinite values (NaN or Inf) in this Quat. 

void 
DiagnosticCheckNaN ( 

void 
DiagnosticCheckNaN() 

void 
EnforceShortestArcWith ( 
Enforce that the delta between this Quaternion and another one represents the shortest possible rotation angle 

bool 
Equals ( 
Checks whether another Quaternion is equal to this, within specified tolerance. 


float 
Error 
Error measure (angle) between two quaternions, ranged [0..1]. 

float 
ErrorAutoNormalize 
FQuat::Error with autonormalization. 
[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FVec ... 
Euler() 
Convert a Quaternion into floatingpoint Euler angles (in degrees). 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
Exp() 
Exp should really only be used after Log. 


FastBilerp 
BiLinear Quaternion interpolation. Result is NOT normalized. 


FastLerp 
Fast Linear Quaternion Interpolation. Result is NOT normalized. 


FindBetween 
Generates the 'smallest' (geodesic) rotation between two vectors of arbitrary length. 


[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
FindBetweenNormals 
Generates the 'smallest' (geodesic) rotation between two normals (assumed to be unit length). 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
FindBetweenVectors 
Generates the 'smallest' (geodesic) rotation between two vectors of arbitrary length. 
GetAxisX() 
Get the forward direction (X axis) after it has been rotated by this Quaternion. 

GetAxisY() 
Get the right direction (Y axis) after it has been rotated by this Quaternion. 

GetAxisZ() 
Get the up direction (Z axis) after it has been rotated by this Quaternion. 

GetForwardVector() 
Get the forward direction (X axis) after it has been rotated by this Quaternion. 

GetNormalized ( 
Get a normalized copy of this quaternion. If it is too small, returns an identity quaternion. 

GetRightVector() 
Get the right direction (Y axis) after it has been rotated by this Quaternion. 

GetRotationAxis() 
Get the axis of rotation of the Quaternion. 

GetUpVector() 
Get the up direction (Z axis) after it has been rotated by this Quaternion. 

Inverse() 
Inverse of this quaternion 

bool 
IsIdentity ( 
Checks whether this Quaternion is an Identity Quaternion. 

bool 
IsNormalized() 
Return true if this quaternion is normalized. 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
Log() 
Quaternion with W=0 and V=theta*v. 


[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
MakeFromEuler ( 
Convert a vector of floatingpoint Euler angles (in degrees) into a Quaternion. 
[CORE_API](API\Runtime\Core\Misc\CORE_API_1) boo... 
NetSerialize ( 
Serializes the vector compressed for e.g. network transmission. 

void 
Normalize ( 
Normalize this quaternion if it is large enough. 

RotateVector ( 
Rotate a vector by this quaternion. vector after rotation 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FRot ... 
Rotator() 
FQuat . 

bool 
Serialize ( 

float 
Size() 
Get the length of this quaternion. The length of this quaternion. 

float 
SizeSquared() 
Get the length squared of this quaternion. The length of this quaternion. 


Slerp 
Spherical interpolation. Will correct alignment. Result is normalized. 


[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
Slerp_NotNormalized 
Spherical interpolation. Will correct alignment. Result is NOT normalized. 

SlerpFullPath 
Simpler Slerp that doesn't do any checks for 'shortest distance' etc. 


[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
SlerpFullPath_NotNormalized 
Simpler Slerp that doesn't do any checks for 'shortest distance' etc. 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
Squad 
Given start and end quaternions of quat1 and quat2, and tangents at those points tang1 and tang2, calculate the point at Alpha (between 0 and 1) between them. 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1)FQua ... 
SquadFullPath 
Simpler Squad that doesn't do any checks for 'shortest distance' etc. 
void 
ToAxisAndAngle ( 
Get the axis and angle of rotation of this quaternion : assumes normalized quaternions. 

ToString() 
Get a textual representation of the vector. Text describing the vector. 

[CORE_API](API\Runtime\Core\Misc\CORE_API_1) voi... 
ToSwingTwist 
Get the swing and twist decomposition for a specified axis 

UnrotateVector ( 
Rotate a vector by the inverse of this quaternion. 

Vector() 
Convert a rotation into a unit vector facing in its direction. 
Name  Description  

operator ( 
Gets the result of subtracting a Quaternion to this. 

bool 
operator!= ( 
Checks whether two quaternions are not identical. 

operator* ( 
Get the result of scaling this quaternion. The result of scaling. 

operator* ( 
Multiply this by a matrix. 

operator* ( 
Rotate a vector by this quaternion. vector after rotation 

operator* ( 
Gets the result of multiplying this by another quaternion (this * Q). 

operator*= ( 
Multiply this quaternion by a scaling factor. a reference to this after scaling. 

operator*= ( 
Multiply this by a quaternion (this = this * Q). 

operator/ ( 
Divide this quaternion by scale. new Quaternion of this after division by scale. 

operator/= ( 
Divide this quaternion by scale. a reference to this after scaling. 

float 
operator ( 
Calculates dot product of two quaternions. The dot product. 

operator+ ( 
Gets the result of adding a Quaternion to this. 

operator+= ( 
Adds to this quaternion. 

operator= ( 
Subtracts another quaternion from this. 

bool 
operator== ( 
Checks whether two quaternions are identical. 
Name 
Description 

Identity 
Identity quaternion. 
Module 

Header 
Runtime/Core/Public/Math/Quat.h 