|
| Quaternion ()=default |
| Default constructor, components are uninitialized.
|
|
| Quaternion (const Quaternion &q) |
| Copy constructor, clones the provided quaternion.
|
|
| Quaternion (float x) |
| Constructs quaternion with all components set to the same specified value.
|
|
| Quaternion (float x, float y, float z, float w) |
| Constructs quaternion with all components set to the provided values.
|
|
| Quaternion (const Vector3 &v, float w) |
| Constructs quaternion from a vector3 and scalar w value.
|
|
| Quaternion (Simd::Vec4::FloatArgType value) |
|
void | StoreToFloat4 (float *values) const |
| Stores the vector to an array of 4 floats. The floats need only be 4 byte aligned, 16 byte alignment is not required.
|
|
float | GetElement (int index) const |
| We recommend using GetX,Y,Z,W. GetElement can be slower.
|
|
void | SetElement (int index, float v) |
| We recommend using SetX,Y,Z,W. SetElement can be slower.
|
|
float | operator() (int index) const |
|
void | Set (float x) |
|
void | Set (float x, float y, float z, float w) |
|
void | Set (const Vector3 &v, float w) |
|
void | Set (const float values[]) |
|
Quaternion | GetConjugate () const |
| The conjugate of a quaternion is (-x, -y, -z, w).
|
|
float | Dot (const Quaternion &q) const |
| Dot product.
|
|
float | GetLengthSq () const |
|
float | GetLength () const |
| Returns length of the quaternion, full accuracy.
|
|
float | GetLengthEstimate () const |
| Returns length of the quaternion, fast but low accuracy, uses raw estimate instructions.
|
|
float | GetLengthReciprocal () const |
| Returns 1/length, full accuracy.
|
|
float | GetLengthReciprocalEstimate () const |
| Returns 1/length of the quaternion, fast but low accuracy, uses raw estimate instructions.
|
|
Quaternion | GetNormalized () const |
| Returns normalized quaternion, full accuracy.
|
|
Quaternion | GetNormalizedEstimate () const |
| Returns normalized quaternion, fast but low accuracy, uses raw estimate instructions.
|
|
void | Normalize () |
| Normalizes the quaternion in-place, full accuracy.
|
|
void | NormalizeEstimate () |
| Normalizes the quaternion in-place, fast but low accuracy, uses raw estimate instructions.
|
|
Quaternion | Lerp (const Quaternion &dest, float t) const |
|
Quaternion | NLerp (const Quaternion &dest, float t) const |
|
Quaternion | Slerp (const Quaternion &dest, float t) const |
| Spherical linear interpolation. Result is not normalized.
|
|
Quaternion | Squad (const Quaternion &dest, const Quaternion &in, const Quaternion &out, float t) const |
|
bool | IsClose (const Quaternion &q, float tolerance=Constants::Tolerance) const |
| Checks if the quaternion is close to another quaternion with a given floating point tolerance.
|
|
bool | IsIdentity (float tolerance=Constants::Tolerance) const |
|
bool | IsZero (float tolerance=Constants::FloatEpsilon) const |
|
Quaternion & | operator= (const Quaternion &rhs) |
|
Quaternion | operator- () const |
|
Quaternion | operator+ (const Quaternion &q) const |
|
Quaternion | operator- (const Quaternion &q) const |
|
Quaternion | operator* (const Quaternion &q) const |
|
Quaternion | operator* (float multiplier) const |
|
Quaternion | operator/ (float divisor) const |
|
Quaternion & | operator+= (const Quaternion &q) |
|
Quaternion & | operator-= (const Quaternion &q) |
|
Quaternion & | operator*= (const Quaternion &q) |
|
Quaternion & | operator*= (float multiplier) |
|
Quaternion & | operator/= (float divisor) |
|
bool | operator== (const Quaternion &rhs) const |
|
bool | operator!= (const Quaternion &rhs) const |
|
Vector3 | TransformVector (const Vector3 &v) const |
| Transforms a vector using the rotation described by this quaternion.
|
|
Vector3 | GetEulerDegrees () const |
|
Vector3 | GetEulerRadians () const |
|
void | SetFromEulerRadians (const Vector3 &eulerRadians) |
|
void | SetFromEulerDegrees (const Vector3 &eulerDegrees) |
|
void | ConvertToAxisAngle (Vector3 &outAxis, float &outAngle) const |
|
Vector3 | ConvertToScaledAxisAngle () const |
| Convert the quaternion into scaled axis-angle representation.
|
|
Vector3 | GetImaginary () const |
| Returns the imaginary (X/Y/Z) portion of the quaternion.
|
|
float | GetAngle () const |
| Return angle in radians.
|
|
bool | IsFinite () const |
|
Simd::Vec4::FloatType | GetSimdValue () const |
|
|
float | GetX () const |
|
float | GetY () const |
|
float | GetZ () const |
|
float | GetW () const |
|
void | SetX (float x) |
|
void | SetY (float y) |
|
void | SetZ (float z) |
|
void | SetW (float w) |
|
|
Quaternion | GetInverseFast () const |
|
void | InvertFast () |
|
|
Quaternion | GetInverseFull () const |
|
void | InvertFull () |
|
|
float | NormalizeWithLength () |
|
float | NormalizeWithLengthEstimate () |
|
|
Quaternion | GetShortestEquivalent () const |
|
void | ShortestEquivalent () |
|
|
static void | Reflect (ReflectContext *context) |
|
static Quaternion | CreateIdentity () |
|
static Quaternion | CreateZero () |
|
static Quaternion | CreateFromFloat4 (const float *values) |
| Sets components from an array of 4 floats, stored in xyzw order.
|
|
static Quaternion | CreateFromVector3 (const Vector3 &v) |
| Sets components using a Vector3 for the imaginary part and setting the real part to zero.
|
|
static Quaternion | CreateFromVector3AndValue (const Vector3 &v, float w) |
| Sets components using a Vector3 for the imaginary part and a float for the real part.
|
|
static Quaternion | CreateFromEulerRadiansXYZ (const Vector3 &eulerRadians) |
|
static Quaternion | CreateFromEulerRadiansYXZ (const Vector3 &eulerRadians) |
|
static Quaternion | CreateFromEulerRadiansZYX (const Vector3 &eulerRadians) |
|
static Quaternion | CreateFromEulerDegreesXYZ (const Vector3 &eulerDegrees) |
|
static Quaternion | CreateFromEulerDegreesYXZ (const Vector3 &eulerDegrees) |
|
static Quaternion | CreateFromEulerDegreesZYX (const Vector3 &eulerDegrees) |
|
static Quaternion | CreateFromMatrix3x3 (const class Matrix3x3 &m) |
| Creates a quaternion from a Matrix3x3.
|
|
static Quaternion | CreateFromMatrix3x4 (const class Matrix3x4 &m) |
|
static Quaternion | CreateFromMatrix4x4 (const class Matrix4x4 &m) |
| Creates a quaternion using the rotation part of a Matrix4x4.
|
|
static Quaternion | CreateFromBasis (const Vector3 &basisX, const Vector3 &basisY, const Vector3 &basisZ) |
| Creates a quaternion from a set of basis vectors.
|
|
static Quaternion | CreateFromAxisAngle (const Vector3 &axis, float angle) |
|
static Quaternion | CreateFromScaledAxisAngle (const Vector3 &scaledAxisAngle) |
| Create a quaternion from a scaled axis-angle representation.
|
|
static Quaternion | CreateShortestArc (const Vector3 &v1, const Vector3 &v2) |
|
static const Quaternion | CreateFromEulerAnglesDegrees (const Vector3 &anglesInDegrees) |
| Creates a quaternion using rotation in degrees about the axes. First rotated about the X axis, followed by the Y axis, then the Z axis.
|
|
static const Quaternion | CreateFromEulerAnglesRadians (const Vector3 &anglesInRadians) |
| Creates a quaternion using rotation in radians about the axes. First rotated about the X axis, followed by the Y axis, then the Z axis.
|
|
|
static Quaternion | CreateRotationX (float angleInRadians) |
|
static Quaternion | CreateRotationY (float angleInRadians) |
|
static Quaternion | CreateRotationZ (float angleInRadians) |
|