Support Forum G3D Web Page |
Arbitrary quaternion (not necessarily unit). More...
Public Member Functions | |
Quat () | |
Initializes to a zero degree rotation, (0,0,0,1) More... | |
Quat (const class Any &a) | |
Expects "Quat(x,y,z,w)" or a Matrix3 constructor. More... | |
Quat (const Matrix3 &rot) | |
Quat (float _x, float _y, float _z, float _w) | |
Quat (const Vector3 &v, float _w=0) | |
Defaults to a pure vector quaternion. More... | |
float | angleBetween (const Quat &other) const |
Returns the angle in radians between this and other, assuming both are unit quaternions. More... | |
float | average () const |
Quat | conj () const |
Negates the imaginary part. More... | |
void | deserialize (class BinaryInput &b) |
float | dot (const Quat &other) const |
Quat | exp () const |
exp q = [sin(A) * v, cos(A)] where q = [Av, 0]. More... | |
bool | fuzzyEq (const Quat &q) |
Note: two quats can represent the Quat::sameRotation and not be equal. More... | |
const Vector3 & | imag () const |
Returns the imaginary part (x, y, z) More... | |
Vector3 & | imag () |
Quat | inverse () const |
Note that q-1 = q.conj() for a unit quaternion. More... | |
bool | isNaN () const |
True if any element is NaN. More... | |
bool | isUnit (float tolerance=1e-5) const |
Is the magnitude nearly 1.0? More... | |
Quat | log () const |
float | magnitude () const |
Quat | movedTowards (const Quat &other, float maxAngle) const |
Rotates towards other by at most maxAngle. More... | |
void | moveTowards (const Quat &other, float maxAngle) |
Rotates towards other by at most maxAngle. More... | |
Quat | nlerp (const Quat &other, float alpha) const |
Normalized linear interpolation of quaternion components. More... | |
float | norm () const |
The linear algebra 2-norm, sqrt(q dot q). More... | |
Quat | operator* (float s) const |
Quat | operator* (const Quat &other) const |
Quaternion multiplication (composition of rotations). More... | |
Quat & | operator*= (float s) |
Quat | operator+ (const Quat &q) const |
Quat & | operator+= (const Quat &q) |
Quat | operator- () const |
Quat | operator- (const Quat &other) const |
Quat & | operator-= (const Quat &q) |
Quat | operator/ (float s) const |
Quat | operator/ (const Quat &other) const |
Quat & | operator/= (float s) |
bool | operator== (const Quat &q) const |
True if the components are exactly equal. More... | |
const float & | operator[] (int i) const |
float & | operator[] (int i) |
Quat | pow (float x) const |
Raise this quaternion to a power. More... | |
const float & | real () const |
The real part of the quaternion. More... | |
float & | real () |
bool | sameRotation (const Quat &q) |
True if these quaternions represent the same rotation (note that every rotation is represented by two values; q and -q). More... | |
void | serialize (class BinaryOutput &b) const |
Quat | slerp (const Quat &other, float alpha, float threshold=0.05f) const |
Spherical linear interpolation: linear interpolation along the shortest (3D) great-circle route between two quaternions. More... | |
float | sum () const |
Any | toAny () const |
void | toAxisAngleRotation (Vector3 &axis, double &angle) const |
Returns the axis and angle of rotation represented by this quaternion (i.e. More... | |
void | toAxisAngleRotation (Vector3 &axis, float &angle) const |
Matrix3 | toRotationMatrix () const |
void | toRotationMatrix (Matrix3 &rot) const |
Quat | toUnit () const |
Returns a unit quaterion obtained by dividing through by the magnitude. More... | |
void | unitize () |
Make unit length in place. More... | |
Vector2 | ww () const |
Vector3 | www () const |
Vector4 | wwww () const |
Vector4 | wwwx () const |
Vector4 | wwwy () const |
Vector4 | wwwz () const |
Vector3 | wwx () const |
Vector4 | wwxw () const |
Vector4 | wwxx () const |
Vector4 | wwxy () const |
Vector4 | wwxz () const |
Vector3 | wwy () const |
Vector4 | wwyw () const |
Vector4 | wwyx () const |
Vector4 | wwyy () const |
Vector4 | wwyz () const |
Vector3 | wwz () const |
Vector4 | wwzw () const |
Vector4 | wwzx () const |
Vector4 | wwzy () const |
Vector4 | wwzz () const |
Vector2 | wx () const |
Vector3 | wxw () const |
Vector4 | wxww () const |
Vector4 | wxwx () const |
Vector4 | wxwy () const |
Vector4 | wxwz () const |
Vector3 | wxx () const |
Vector4 | wxxw () const |
Vector4 | wxxx () const |
Vector4 | wxxy () const |
Vector4 | wxxz () const |
Vector3 | wxy () const |
Vector4 | wxyw () const |
Vector4 | wxyx () const |
Vector4 | wxyy () const |
Vector4 | wxyz () const |
Vector3 | wxz () const |
Vector4 | wxzw () const |
Vector4 | wxzx () const |
Vector4 | wxzy () const |
Vector4 | wxzz () const |
Vector2 | wy () const |
Vector3 | wyw () const |
Vector4 | wyww () const |
Vector4 | wywx () const |
Vector4 | wywy () const |
Vector4 | wywz () const |
Vector3 | wyx () const |
Vector4 | wyxw () const |
Vector4 | wyxx () const |
Vector4 | wyxy () const |
Vector4 | wyxz () const |
Vector3 | wyy () const |
Vector4 | wyyw () const |
Vector4 | wyyx () const |
Vector4 | wyyy () const |
Vector4 | wyyz () const |
Vector3 | wyz () const |
Vector4 | wyzw () const |
Vector4 | wyzx () const |
Vector4 | wyzy () const |
Vector4 | wyzz () const |
Vector2 | wz () const |
Vector3 | wzw () const |
Vector4 | wzww () const |
Vector4 | wzwx () const |
Vector4 | wzwy () const |
Vector4 | wzwz () const |
Vector3 | wzx () const |
Vector4 | wzxw () const |
Vector4 | wzxx () const |
Vector4 | wzxy () const |
Vector4 | wzxz () const |
Vector3 | wzy () const |
Vector4 | wzyw () const |
Vector4 | wzyx () const |
Vector4 | wzyy () const |
Vector4 | wzyz () const |
Vector3 | wzz () const |
Vector4 | wzzw () const |
Vector4 | wzzx () const |
Vector4 | wzzy () const |
Vector4 | wzzz () const |
Vector2 | xw () const |
Vector3 | xww () const |
Vector4 | xwww () const |
Vector4 | xwwx () const |
Vector4 | xwwy () const |
Vector4 | xwwz () const |
Vector3 | xwx () const |
Vector4 | xwxw () const |
Vector4 | xwxx () const |
Vector4 | xwxy () const |
Vector4 | xwxz () const |
Vector3 | xwy () const |
Vector4 | xwyw () const |
Vector4 | xwyx () const |
Vector4 | xwyy () const |
Vector4 | xwyz () const |
Vector3 | xwz () const |
Vector4 | xwzw () const |
Vector4 | xwzx () const |
Vector4 | xwzy () const |
Vector4 | xwzz () const |
Vector2 | xx () const |
Vector3 | xxw () const |
Vector4 | xxww () const |
Vector4 | xxwx () const |
Vector4 | xxwy () const |
Vector4 | xxwz () const |
Vector3 | xxx () const |
Vector4 | xxxw () const |
Vector4 | xxxx () const |
Vector4 | xxxy () const |
Vector4 | xxxz () const |
Vector3 | xxy () const |
Vector4 | xxyw () const |
Vector4 | xxyx () const |
Vector4 | xxyy () const |
Vector4 | xxyz () const |
Vector3 | xxz () const |
Vector4 | xxzw () const |
Vector4 | xxzx () const |
Vector4 | xxzy () const |
Vector4 | xxzz () const |
Vector2 | xy () const |
Vector3 | xyw () const |
Vector4 | xyww () const |
Vector4 | xywx () const |
Vector4 | xywy () const |
Vector4 | xywz () const |
Vector3 | xyx () const |
Vector4 | xyxw () const |
Vector4 | xyxx () const |
Vector4 | xyxy () const |
Vector4 | xyxz () const |
Vector3 | xyy () const |
Vector4 | xyyw () const |
Vector4 | xyyx () const |
Vector4 | xyyy () const |
Vector4 | xyyz () const |
Vector3 | xyz () const |
Vector4 | xyzw () const |
Vector4 | xyzx () const |
Vector4 | xyzy () const |
Vector4 | xyzz () const |
Vector2 | xz () const |
Vector3 | xzw () const |
Vector4 | xzww () const |
Vector4 | xzwx () const |
Vector4 | xzwy () const |
Vector4 | xzwz () const |
Vector3 | xzx () const |
Vector4 | xzxw () const |
Vector4 | xzxx () const |
Vector4 | xzxy () const |
Vector4 | xzxz () const |
Vector3 | xzy () const |
Vector4 | xzyw () const |
Vector4 | xzyx () const |
Vector4 | xzyy () const |
Vector4 | xzyz () const |
Vector3 | xzz () const |
Vector4 | xzzw () const |
Vector4 | xzzx () const |
Vector4 | xzzy () const |
Vector4 | xzzz () const |
Vector2 | yw () const |
Vector3 | yww () const |
Vector4 | ywww () const |
Vector4 | ywwx () const |
Vector4 | ywwy () const |
Vector4 | ywwz () const |
Vector3 | ywx () const |
Vector4 | ywxw () const |
Vector4 | ywxx () const |
Vector4 | ywxy () const |
Vector4 | ywxz () const |
Vector3 | ywy () const |
Vector4 | ywyw () const |
Vector4 | ywyx () const |
Vector4 | ywyy () const |
Vector4 | ywyz () const |
Vector3 | ywz () const |
Vector4 | ywzw () const |
Vector4 | ywzx () const |
Vector4 | ywzy () const |
Vector4 | ywzz () const |
Vector2 | yx () const |
Vector3 | yxw () const |
Vector4 | yxww () const |
Vector4 | yxwx () const |
Vector4 | yxwy () const |
Vector4 | yxwz () const |
Vector3 | yxx () const |
Vector4 | yxxw () const |
Vector4 | yxxx () const |
Vector4 | yxxy () const |
Vector4 | yxxz () const |
Vector3 | yxy () const |
Vector4 | yxyw () const |
Vector4 | yxyx () const |
Vector4 | yxyy () const |
Vector4 | yxyz () const |
Vector3 | yxz () const |
Vector4 | yxzw () const |
Vector4 | yxzx () const |
Vector4 | yxzy () const |
Vector4 | yxzz () const |
Vector2 | yy () const |
Vector3 | yyw () const |
Vector4 | yyww () const |
Vector4 | yywx () const |
Vector4 | yywy () const |
Vector4 | yywz () const |
Vector3 | yyx () const |
Vector4 | yyxw () const |
Vector4 | yyxx () const |
Vector4 | yyxy () const |
Vector4 | yyxz () const |
Vector3 | yyy () const |
Vector4 | yyyw () const |
Vector4 | yyyx () const |
Vector4 | yyyy () const |
Vector4 | yyyz () const |
Vector3 | yyz () const |
Vector4 | yyzw () const |
Vector4 | yyzx () const |
Vector4 | yyzy () const |
Vector4 | yyzz () const |
Vector2 | yz () const |
Vector3 | yzw () const |
Vector4 | yzww () const |
Vector4 | yzwx () const |
Vector4 | yzwy () const |
Vector4 | yzwz () const |
Vector3 | yzx () const |
Vector4 | yzxw () const |
Vector4 | yzxx () const |
Vector4 | yzxy () const |
Vector4 | yzxz () const |
Vector3 | yzy () const |
Vector4 | yzyw () const |
Vector4 | yzyx () const |
Vector4 | yzyy () const |
Vector4 | yzyz () const |
Vector3 | yzz () const |
Vector4 | yzzw () const |
Vector4 | yzzx () const |
Vector4 | yzzy () const |
Vector4 | yzzz () const |
Vector2 | zw () const |
Vector3 | zww () const |
Vector4 | zwww () const |
Vector4 | zwwx () const |
Vector4 | zwwy () const |
Vector4 | zwwz () const |
Vector3 | zwx () const |
Vector4 | zwxw () const |
Vector4 | zwxx () const |
Vector4 | zwxy () const |
Vector4 | zwxz () const |
Vector3 | zwy () const |
Vector4 | zwyw () const |
Vector4 | zwyx () const |
Vector4 | zwyy () const |
Vector4 | zwyz () const |
Vector3 | zwz () const |
Vector4 | zwzw () const |
Vector4 | zwzx () const |
Vector4 | zwzy () const |
Vector4 | zwzz () const |
Vector2 | zx () const |
Vector3 | zxw () const |
Vector4 | zxww () const |
Vector4 | zxwx () const |
Vector4 | zxwy () const |
Vector4 | zxwz () const |
Vector3 | zxx () const |
Vector4 | zxxw () const |
Vector4 | zxxx () const |
Vector4 | zxxy () const |
Vector4 | zxxz () const |
Vector3 | zxy () const |
Vector4 | zxyw () const |
Vector4 | zxyx () const |
Vector4 | zxyy () const |
Vector4 | zxyz () const |
Vector3 | zxz () const |
Vector4 | zxzw () const |
Vector4 | zxzx () const |
Vector4 | zxzy () const |
Vector4 | zxzz () const |
Vector2 | zy () const |
Vector3 | zyw () const |
Vector4 | zyww () const |
Vector4 | zywx () const |
Vector4 | zywy () const |
Vector4 | zywz () const |
Vector3 | zyx () const |
Vector4 | zyxw () const |
Vector4 | zyxx () const |
Vector4 | zyxy () const |
Vector4 | zyxz () const |
Vector3 | zyy () const |
Vector4 | zyyw () const |
Vector4 | zyyx () const |
Vector4 | zyyy () const |
Vector4 | zyyz () const |
Vector3 | zyz () const |
Vector4 | zyzw () const |
Vector4 | zyzx () const |
Vector4 | zyzy () const |
Vector4 | zyzz () const |
Vector2 | zz () const |
Vector3 | zzw () const |
Vector4 | zzww () const |
Vector4 | zzwx () const |
Vector4 | zzwy () const |
Vector4 | zzwz () const |
Vector3 | zzx () const |
Vector4 | zzxw () const |
Vector4 | zzxx () const |
Vector4 | zzxy () const |
Vector4 | zzxz () const |
Vector3 | zzy () const |
Vector4 | zzyw () const |
Vector4 | zzyx () const |
Vector4 | zzyy () const |
Vector4 | zzyz () const |
Vector3 | zzz () const |
Vector4 | zzzw () const |
Vector4 | zzzx () const |
Vector4 | zzzy () const |
Vector4 | zzzz () const |
Static Public Member Functions | |
static Quat | fromAxisAngleRotation (const Vector3 &axis, float angle) |
q = [sin(angle/2)*axis, cos(angle/2)] More... | |
static Quat | unitRandom () |
Generate uniform random unit quaternion (i.e. More... | |
Public Attributes | |
float | w |
float | x |
q = [sin(angle / 2) * axis, cos(angle / 2)] More... | |
float | y |
float | z |
Friends | |
Quat | operator* (float s, const Quat &q) |
Arbitrary quaternion (not necessarily unit).
Unit quaternions (aka versors) are used in computer graphics to represent rotation about an axis. Any 3x3 rotation matrix can be stored as a quaternion.
A quaternion represents the sum of a real scalar and an imaginary vector: ix + jy + kz + w. A unit quaternion representing a rotation by A about axis v has the form [sin(A/2)*v, cos(A/2)]. For a unit quaternion, q.conj() == q.inverse() is a rotation by -A about v. -q is the same rotation as q (negate both the axis and angle).
A non-unit quaterion q represents the same rotation as q.unitize() (Dam98 pg 28).
Although quaternion-vector operations (eg. Quat + Vector3) are well defined, they are not supported by this class because they typically are bugs when they appear in code.
Do not subclass.
BETA API – subject to change
|
inline |
Initializes to a zero degree rotation, (0,0,0,1)
Referenced by conj(), exp(), log(), operator*(), operator+(), operator-(), and operator/().
G3D::Quat::Quat | ( | const Matrix3 & | rot | ) |
|
inline |
|
inline |
Defaults to a pure vector quaternion.
float G3D::Quat::angleBetween | ( | const Quat & | other | ) | const |
Returns the angle in radians between this and other, assuming both are unit quaternions.
|
inline |
void G3D::Quat::deserialize | ( | class BinaryInput & | b | ) |
|
inline |
Referenced by inverse(), isUnit(), magnitude(), and unitize().
|
inline |
exp q = [sin(A) * v, cos(A)] where q = [Av, 0].
Only defined for pure-vector quaternions
Referenced by G3D::exp(), and pow().
q = [sin(angle/2)*axis, cos(angle/2)]
|
inline |
Note: two quats can represent the Quat::sameRotation and not be equal.
Referenced by sameRotation().
|
inline |
Returns the imaginary part (x, y, z)
|
inline |
|
inline |
Note that q-1 = q.conj() for a unit quaternion.
Referenced by operator/().
|
inline |
True if any element is NaN.
|
inline |
Is the magnitude nearly 1.0?
|
inline |
Referenced by G3D::log(), and pow().
|
inline |
Referenced by norm().
Rotates towards other by at most maxAngle.
Referenced by moveTowards().
|
inline |
Rotates towards other by at most maxAngle.
Normalized linear interpolation of quaternion components.
|
inline |
The linear algebra 2-norm, sqrt(q dot q).
This matches the value used in Dam's 1998 tech report but differs from the n(q) value used in Eberly's 1999 paper, which is the square of the norm.
|
inline |
Quaternion multiplication (composition of rotations).
Note that this does not commute.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
True if the components are exactly equal.
Note that two quaternations may be unequal but map to the same rotation.
|
inline |
|
inline |
|
inline |
Raise this quaternion to a power.
For a rotation, this is the effect of rotating x times as much as the original quaterion.
Note that q.pow(a).pow(b) == q.pow(a + b)
Referenced by pow().
|
inline |
The real part of the quaternion.
|
inline |
|
inline |
True if these quaternions represent the same rotation (note that every rotation is represented by two values; q and -q).
void G3D::Quat::serialize | ( | class BinaryOutput & | b | ) | const |
Spherical linear interpolation: linear interpolation along the shortest (3D) great-circle route between two quaternions.
Assumes that both arguments are unit quaternions.
Note: Correct rotations are expected between 0 and PI in the right order.
threshold | Critical angle between between rotations (in radians) at which the algorithm switches to normalized lerp, which is more numerically stable in those situations. 0.0 will always slerp. |
|
inline |
Referenced by average().
Any G3D::Quat::toAny | ( | ) | const |
void G3D::Quat::toAxisAngleRotation | ( | Vector3 & | axis, |
double & | angle | ||
) | const |
Returns the axis and angle of rotation represented by this quaternion (i.e.
q = [sin(angle/2)*axis, cos(angle/2)])
Referenced by toAxisAngleRotation().
|
inline |
Matrix3 G3D::Quat::toRotationMatrix | ( | ) | const |
void G3D::Quat::toRotationMatrix | ( | Matrix3 & | rot | ) | const |
|
inline |
Returns a unit quaterion obtained by dividing through by the magnitude.
|
inline |
Make unit length in place.
|
static |
Generate uniform random unit quaternion (i.e.
random "direction")
Vector2 G3D::Quat::ww | ( | ) | const |
Vector3 G3D::Quat::www | ( | ) | const |
Vector4 G3D::Quat::wwww | ( | ) | const |
Vector4 G3D::Quat::wwwx | ( | ) | const |
Vector4 G3D::Quat::wwwy | ( | ) | const |
Vector4 G3D::Quat::wwwz | ( | ) | const |
Vector3 G3D::Quat::wwx | ( | ) | const |
Vector4 G3D::Quat::wwxw | ( | ) | const |
Vector4 G3D::Quat::wwxx | ( | ) | const |
Vector4 G3D::Quat::wwxy | ( | ) | const |
Vector4 G3D::Quat::wwxz | ( | ) | const |
Vector3 G3D::Quat::wwy | ( | ) | const |
Vector4 G3D::Quat::wwyw | ( | ) | const |
Vector4 G3D::Quat::wwyx | ( | ) | const |
Vector4 G3D::Quat::wwyy | ( | ) | const |
Vector4 G3D::Quat::wwyz | ( | ) | const |
Vector3 G3D::Quat::wwz | ( | ) | const |
Vector4 G3D::Quat::wwzw | ( | ) | const |
Vector4 G3D::Quat::wwzx | ( | ) | const |
Vector4 G3D::Quat::wwzy | ( | ) | const |
Vector4 G3D::Quat::wwzz | ( | ) | const |
Vector2 G3D::Quat::wx | ( | ) | const |
Vector3 G3D::Quat::wxw | ( | ) | const |
Vector4 G3D::Quat::wxww | ( | ) | const |
Vector4 G3D::Quat::wxwx | ( | ) | const |
Vector4 G3D::Quat::wxwy | ( | ) | const |
Vector4 G3D::Quat::wxwz | ( | ) | const |
Vector3 G3D::Quat::wxx | ( | ) | const |
Vector4 G3D::Quat::wxxw | ( | ) | const |
Vector4 G3D::Quat::wxxx | ( | ) | const |
Vector4 G3D::Quat::wxxy | ( | ) | const |
Vector4 G3D::Quat::wxxz | ( | ) | const |
Vector3 G3D::Quat::wxy | ( | ) | const |
Vector4 G3D::Quat::wxyw | ( | ) | const |
Vector4 G3D::Quat::wxyx | ( | ) | const |
Vector4 G3D::Quat::wxyy | ( | ) | const |
Vector4 G3D::Quat::wxyz | ( | ) | const |
Vector3 G3D::Quat::wxz | ( | ) | const |
Vector4 G3D::Quat::wxzw | ( | ) | const |
Vector4 G3D::Quat::wxzx | ( | ) | const |
Vector4 G3D::Quat::wxzy | ( | ) | const |
Vector4 G3D::Quat::wxzz | ( | ) | const |
Vector2 G3D::Quat::wy | ( | ) | const |
Vector3 G3D::Quat::wyw | ( | ) | const |
Vector4 G3D::Quat::wyww | ( | ) | const |
Vector4 G3D::Quat::wywx | ( | ) | const |
Vector4 G3D::Quat::wywy | ( | ) | const |
Vector4 G3D::Quat::wywz | ( | ) | const |
Vector3 G3D::Quat::wyx | ( | ) | const |
Vector4 G3D::Quat::wyxw | ( | ) | const |
Vector4 G3D::Quat::wyxx | ( | ) | const |
Vector4 G3D::Quat::wyxy | ( | ) | const |
Vector4 G3D::Quat::wyxz | ( | ) | const |
Vector3 G3D::Quat::wyy | ( | ) | const |
Vector4 G3D::Quat::wyyw | ( | ) | const |
Vector4 G3D::Quat::wyyx | ( | ) | const |
Vector4 G3D::Quat::wyyy | ( | ) | const |
Vector4 G3D::Quat::wyyz | ( | ) | const |
Vector3 G3D::Quat::wyz | ( | ) | const |
Vector4 G3D::Quat::wyzw | ( | ) | const |
Vector4 G3D::Quat::wyzx | ( | ) | const |
Vector4 G3D::Quat::wyzy | ( | ) | const |
Vector4 G3D::Quat::wyzz | ( | ) | const |
Vector2 G3D::Quat::wz | ( | ) | const |
Vector3 G3D::Quat::wzw | ( | ) | const |
Vector4 G3D::Quat::wzww | ( | ) | const |
Vector4 G3D::Quat::wzwx | ( | ) | const |
Vector4 G3D::Quat::wzwy | ( | ) | const |
Vector4 G3D::Quat::wzwz | ( | ) | const |
Vector3 G3D::Quat::wzx | ( | ) | const |
Vector4 G3D::Quat::wzxw | ( | ) | const |
Vector4 G3D::Quat::wzxx | ( | ) | const |
Vector4 G3D::Quat::wzxy | ( | ) | const |
Vector4 G3D::Quat::wzxz | ( | ) | const |
Vector3 G3D::Quat::wzy | ( | ) | const |
Vector4 G3D::Quat::wzyw | ( | ) | const |
Vector4 G3D::Quat::wzyx | ( | ) | const |
Vector4 G3D::Quat::wzyy | ( | ) | const |
Vector4 G3D::Quat::wzyz | ( | ) | const |
Vector3 G3D::Quat::wzz | ( | ) | const |
Vector4 G3D::Quat::wzzw | ( | ) | const |
Vector4 G3D::Quat::wzzx | ( | ) | const |
Vector4 G3D::Quat::wzzy | ( | ) | const |
Vector4 G3D::Quat::wzzz | ( | ) | const |
Vector2 G3D::Quat::xw | ( | ) | const |
Vector3 G3D::Quat::xww | ( | ) | const |
Vector4 G3D::Quat::xwww | ( | ) | const |
Vector4 G3D::Quat::xwwx | ( | ) | const |
Vector4 G3D::Quat::xwwy | ( | ) | const |
Vector4 G3D::Quat::xwwz | ( | ) | const |
Vector3 G3D::Quat::xwx | ( | ) | const |
Vector4 G3D::Quat::xwxw | ( | ) | const |
Vector4 G3D::Quat::xwxx | ( | ) | const |
Vector4 G3D::Quat::xwxy | ( | ) | const |
Vector4 G3D::Quat::xwxz | ( | ) | const |
Vector3 G3D::Quat::xwy | ( | ) | const |
Vector4 G3D::Quat::xwyw | ( | ) | const |
Vector4 G3D::Quat::xwyx | ( | ) | const |
Vector4 G3D::Quat::xwyy | ( | ) | const |
Vector4 G3D::Quat::xwyz | ( | ) | const |
Vector3 G3D::Quat::xwz | ( | ) | const |
Vector4 G3D::Quat::xwzw | ( | ) | const |
Vector4 G3D::Quat::xwzx | ( | ) | const |
Vector4 G3D::Quat::xwzy | ( | ) | const |
Vector4 G3D::Quat::xwzz | ( | ) | const |
Vector2 G3D::Quat::xx | ( | ) | const |
Vector3 G3D::Quat::xxw | ( | ) | const |
Vector4 G3D::Quat::xxww | ( | ) | const |
Vector4 G3D::Quat::xxwx | ( | ) | const |
Vector4 G3D::Quat::xxwy | ( | ) | const |
Vector4 G3D::Quat::xxwz | ( | ) | const |
Vector3 G3D::Quat::xxx | ( | ) | const |
Vector4 G3D::Quat::xxxw | ( | ) | const |
Vector4 G3D::Quat::xxxx | ( | ) | const |
Vector4 G3D::Quat::xxxy | ( | ) | const |
Vector4 G3D::Quat::xxxz | ( | ) | const |
Vector3 G3D::Quat::xxy | ( | ) | const |
Vector4 G3D::Quat::xxyw | ( | ) | const |
Vector4 G3D::Quat::xxyx | ( | ) | const |
Vector4 G3D::Quat::xxyy | ( | ) | const |
Vector4 G3D::Quat::xxyz | ( | ) | const |
Vector3 G3D::Quat::xxz | ( | ) | const |
Vector4 G3D::Quat::xxzw | ( | ) | const |
Vector4 G3D::Quat::xxzx | ( | ) | const |
Vector4 G3D::Quat::xxzy | ( | ) | const |
Vector4 G3D::Quat::xxzz | ( | ) | const |
Vector2 G3D::Quat::xy | ( | ) | const |
Vector3 G3D::Quat::xyw | ( | ) | const |
Vector4 G3D::Quat::xyww | ( | ) | const |
Vector4 G3D::Quat::xywx | ( | ) | const |
Vector4 G3D::Quat::xywy | ( | ) | const |
Vector4 G3D::Quat::xywz | ( | ) | const |
Vector3 G3D::Quat::xyx | ( | ) | const |
Vector4 G3D::Quat::xyxw | ( | ) | const |
Vector4 G3D::Quat::xyxx | ( | ) | const |
Vector4 G3D::Quat::xyxy | ( | ) | const |
Vector4 G3D::Quat::xyxz | ( | ) | const |
Vector3 G3D::Quat::xyy | ( | ) | const |
Vector4 G3D::Quat::xyyw | ( | ) | const |
Vector4 G3D::Quat::xyyx | ( | ) | const |
Vector4 G3D::Quat::xyyy | ( | ) | const |
Vector4 G3D::Quat::xyyz | ( | ) | const |
Vector3 G3D::Quat::xyz | ( | ) | const |
Vector4 G3D::Quat::xyzw | ( | ) | const |
Vector4 G3D::Quat::xyzx | ( | ) | const |
Vector4 G3D::Quat::xyzy | ( | ) | const |
Vector4 G3D::Quat::xyzz | ( | ) | const |
Vector2 G3D::Quat::xz | ( | ) | const |
Vector3 G3D::Quat::xzw | ( | ) | const |
Vector4 G3D::Quat::xzww | ( | ) | const |
Vector4 G3D::Quat::xzwx | ( | ) | const |
Vector4 G3D::Quat::xzwy | ( | ) | const |
Vector4 G3D::Quat::xzwz | ( | ) | const |
Vector3 G3D::Quat::xzx | ( | ) | const |
Vector4 G3D::Quat::xzxw | ( | ) | const |
Vector4 G3D::Quat::xzxx | ( | ) | const |
Vector4 G3D::Quat::xzxy | ( | ) | const |
Vector4 G3D::Quat::xzxz | ( | ) | const |
Vector3 G3D::Quat::xzy | ( | ) | const |
Vector4 G3D::Quat::xzyw | ( | ) | const |
Vector4 G3D::Quat::xzyx | ( | ) | const |
Vector4 G3D::Quat::xzyy | ( | ) | const |
Vector4 G3D::Quat::xzyz | ( | ) | const |
Vector3 G3D::Quat::xzz | ( | ) | const |
Vector4 G3D::Quat::xzzw | ( | ) | const |
Vector4 G3D::Quat::xzzx | ( | ) | const |
Vector4 G3D::Quat::xzzy | ( | ) | const |
Vector4 G3D::Quat::xzzz | ( | ) | const |
Vector2 G3D::Quat::yw | ( | ) | const |
Vector3 G3D::Quat::yww | ( | ) | const |
Vector4 G3D::Quat::ywww | ( | ) | const |
Vector4 G3D::Quat::ywwx | ( | ) | const |
Vector4 G3D::Quat::ywwy | ( | ) | const |
Vector4 G3D::Quat::ywwz | ( | ) | const |
Vector3 G3D::Quat::ywx | ( | ) | const |
Vector4 G3D::Quat::ywxw | ( | ) | const |
Vector4 G3D::Quat::ywxx | ( | ) | const |
Vector4 G3D::Quat::ywxy | ( | ) | const |
Vector4 G3D::Quat::ywxz | ( | ) | const |
Vector3 G3D::Quat::ywy | ( | ) | const |
Vector4 G3D::Quat::ywyw | ( | ) | const |
Vector4 G3D::Quat::ywyx | ( | ) | const |
Vector4 G3D::Quat::ywyy | ( | ) | const |
Vector4 G3D::Quat::ywyz | ( | ) | const |
Vector3 G3D::Quat::ywz | ( | ) | const |
Vector4 G3D::Quat::ywzw | ( | ) | const |
Vector4 G3D::Quat::ywzx | ( | ) | const |
Vector4 G3D::Quat::ywzy | ( | ) | const |
Vector4 G3D::Quat::ywzz | ( | ) | const |
Vector2 G3D::Quat::yx | ( | ) | const |
Vector3 G3D::Quat::yxw | ( | ) | const |
Vector4 G3D::Quat::yxww | ( | ) | const |
Vector4 G3D::Quat::yxwx | ( | ) | const |
Vector4 G3D::Quat::yxwy | ( | ) | const |
Vector4 G3D::Quat::yxwz | ( | ) | const |
Vector3 G3D::Quat::yxx | ( | ) | const |
Vector4 G3D::Quat::yxxw | ( | ) | const |
Vector4 G3D::Quat::yxxx | ( | ) | const |
Vector4 G3D::Quat::yxxy | ( | ) | const |
Vector4 G3D::Quat::yxxz | ( | ) | const |
Vector3 G3D::Quat::yxy | ( | ) | const |
Vector4 G3D::Quat::yxyw | ( | ) | const |
Vector4 G3D::Quat::yxyx | ( | ) | const |
Vector4 G3D::Quat::yxyy | ( | ) | const |
Vector4 G3D::Quat::yxyz | ( | ) | const |
Vector3 G3D::Quat::yxz | ( | ) | const |
Vector4 G3D::Quat::yxzw | ( | ) | const |
Vector4 G3D::Quat::yxzx | ( | ) | const |
Vector4 G3D::Quat::yxzy | ( | ) | const |
Vector4 G3D::Quat::yxzz | ( | ) | const |
Vector2 G3D::Quat::yy | ( | ) | const |
Vector3 G3D::Quat::yyw | ( | ) | const |
Vector4 G3D::Quat::yyww | ( | ) | const |
Vector4 G3D::Quat::yywx | ( | ) | const |
Vector4 G3D::Quat::yywy | ( | ) | const |
Vector4 G3D::Quat::yywz | ( | ) | const |
Vector3 G3D::Quat::yyx | ( | ) | const |
Vector4 G3D::Quat::yyxw | ( | ) | const |
Vector4 G3D::Quat::yyxx | ( | ) | const |
Vector4 G3D::Quat::yyxy | ( | ) | const |
Vector4 G3D::Quat::yyxz | ( | ) | const |
Vector3 G3D::Quat::yyy | ( | ) | const |
Vector4 G3D::Quat::yyyw | ( | ) | const |
Vector4 G3D::Quat::yyyx | ( | ) | const |
Vector4 G3D::Quat::yyyy | ( | ) | const |
Vector4 G3D::Quat::yyyz | ( | ) | const |
Vector3 G3D::Quat::yyz | ( | ) | const |
Vector4 G3D::Quat::yyzw | ( | ) | const |
Vector4 G3D::Quat::yyzx | ( | ) | const |
Vector4 G3D::Quat::yyzy | ( | ) | const |
Vector4 G3D::Quat::yyzz | ( | ) | const |
Vector2 G3D::Quat::yz | ( | ) | const |
Vector3 G3D::Quat::yzw | ( | ) | const |
Vector4 G3D::Quat::yzww | ( | ) | const |
Vector4 G3D::Quat::yzwx | ( | ) | const |
Vector4 G3D::Quat::yzwy | ( | ) | const |
Vector4 G3D::Quat::yzwz | ( | ) | const |
Vector3 G3D::Quat::yzx | ( | ) | const |
Vector4 G3D::Quat::yzxw | ( | ) | const |
Vector4 G3D::Quat::yzxx | ( | ) | const |
Vector4 G3D::Quat::yzxy | ( | ) | const |
Vector4 G3D::Quat::yzxz | ( | ) | const |
Vector3 G3D::Quat::yzy | ( | ) | const |
Vector4 G3D::Quat::yzyw | ( | ) | const |
Vector4 G3D::Quat::yzyx | ( | ) | const |
Vector4 G3D::Quat::yzyy | ( | ) | const |
Vector4 G3D::Quat::yzyz | ( | ) | const |
Vector3 G3D::Quat::yzz | ( | ) | const |
Vector4 G3D::Quat::yzzw | ( | ) | const |
Vector4 G3D::Quat::yzzx | ( | ) | const |
Vector4 G3D::Quat::yzzy | ( | ) | const |
Vector4 G3D::Quat::yzzz | ( | ) | const |
Vector2 G3D::Quat::zw | ( | ) | const |
Vector3 G3D::Quat::zww | ( | ) | const |
Vector4 G3D::Quat::zwww | ( | ) | const |
Vector4 G3D::Quat::zwwx | ( | ) | const |
Vector4 G3D::Quat::zwwy | ( | ) | const |
Vector4 G3D::Quat::zwwz | ( | ) | const |
Vector3 G3D::Quat::zwx | ( | ) | const |
Vector4 G3D::Quat::zwxw | ( | ) | const |
Vector4 G3D::Quat::zwxx | ( | ) | const |
Vector4 G3D::Quat::zwxy | ( | ) | const |
Vector4 G3D::Quat::zwxz | ( | ) | const |
Vector3 G3D::Quat::zwy | ( | ) | const |
Vector4 G3D::Quat::zwyw | ( | ) | const |
Vector4 G3D::Quat::zwyx | ( | ) | const |
Vector4 G3D::Quat::zwyy | ( | ) | const |
Vector4 G3D::Quat::zwyz | ( | ) | const |
Vector3 G3D::Quat::zwz | ( | ) | const |
Vector4 G3D::Quat::zwzw | ( | ) | const |
Vector4 G3D::Quat::zwzx | ( | ) | const |
Vector4 G3D::Quat::zwzy | ( | ) | const |
Vector4 G3D::Quat::zwzz | ( | ) | const |
Vector2 G3D::Quat::zx | ( | ) | const |
Vector3 G3D::Quat::zxw | ( | ) | const |
Vector4 G3D::Quat::zxww | ( | ) | const |
Vector4 G3D::Quat::zxwx | ( | ) | const |
Vector4 G3D::Quat::zxwy | ( | ) | const |
Vector4 G3D::Quat::zxwz | ( | ) | const |
Vector3 G3D::Quat::zxx | ( | ) | const |
Vector4 G3D::Quat::zxxw | ( | ) | const |
Vector4 G3D::Quat::zxxx | ( | ) | const |
Vector4 G3D::Quat::zxxy | ( | ) | const |
Vector4 G3D::Quat::zxxz | ( | ) | const |
Vector3 G3D::Quat::zxy | ( | ) | const |
Vector4 G3D::Quat::zxyw | ( | ) | const |
Vector4 G3D::Quat::zxyx | ( | ) | const |
Vector4 G3D::Quat::zxyy | ( | ) | const |
Vector4 G3D::Quat::zxyz | ( | ) | const |
Vector3 G3D::Quat::zxz | ( | ) | const |
Vector4 G3D::Quat::zxzw | ( | ) | const |
Vector4 G3D::Quat::zxzx | ( | ) | const |
Vector4 G3D::Quat::zxzy | ( | ) | const |
Vector4 G3D::Quat::zxzz | ( | ) | const |
Vector2 G3D::Quat::zy | ( | ) | const |
Vector3 G3D::Quat::zyw | ( | ) | const |
Vector4 G3D::Quat::zyww | ( | ) | const |
Vector4 G3D::Quat::zywx | ( | ) | const |
Vector4 G3D::Quat::zywy | ( | ) | const |
Vector4 G3D::Quat::zywz | ( | ) | const |
Vector3 G3D::Quat::zyx | ( | ) | const |
Vector4 G3D::Quat::zyxw | ( | ) | const |
Vector4 G3D::Quat::zyxx | ( | ) | const |
Vector4 G3D::Quat::zyxy | ( | ) | const |
Vector4 G3D::Quat::zyxz | ( | ) | const |
Vector3 G3D::Quat::zyy | ( | ) | const |
Vector4 G3D::Quat::zyyw | ( | ) | const |
Vector4 G3D::Quat::zyyx | ( | ) | const |
Vector4 G3D::Quat::zyyy | ( | ) | const |
Vector4 G3D::Quat::zyyz | ( | ) | const |
Vector3 G3D::Quat::zyz | ( | ) | const |
Vector4 G3D::Quat::zyzw | ( | ) | const |
Vector4 G3D::Quat::zyzx | ( | ) | const |
Vector4 G3D::Quat::zyzy | ( | ) | const |
Vector4 G3D::Quat::zyzz | ( | ) | const |
Vector2 G3D::Quat::zz | ( | ) | const |
Vector3 G3D::Quat::zzw | ( | ) | const |
Vector4 G3D::Quat::zzww | ( | ) | const |
Vector4 G3D::Quat::zzwx | ( | ) | const |
Vector4 G3D::Quat::zzwy | ( | ) | const |
Vector4 G3D::Quat::zzwz | ( | ) | const |
Vector3 G3D::Quat::zzx | ( | ) | const |
Vector4 G3D::Quat::zzxw | ( | ) | const |
Vector4 G3D::Quat::zzxx | ( | ) | const |
Vector4 G3D::Quat::zzxy | ( | ) | const |
Vector4 G3D::Quat::zzxz | ( | ) | const |
Vector3 G3D::Quat::zzy | ( | ) | const |
Vector4 G3D::Quat::zzyw | ( | ) | const |
Vector4 G3D::Quat::zzyx | ( | ) | const |
Vector4 G3D::Quat::zzyy | ( | ) | const |
Vector4 G3D::Quat::zzyz | ( | ) | const |
Vector3 G3D::Quat::zzz | ( | ) | const |
Vector4 G3D::Quat::zzzw | ( | ) | const |
Vector4 G3D::Quat::zzzx | ( | ) | const |
Vector4 G3D::Quat::zzzy | ( | ) | const |
Vector4 G3D::Quat::zzzz | ( | ) | const |
float G3D::Quat::w |
Referenced by conj(), dot(), exp(), fuzzyEq(), isNaN(), log(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator==(), real(), and sum().
float G3D::Quat::x |
q = [sin(angle / 2) * axis, cos(angle / 2)]
In Watt & Watt's notation, s = w, v = (x, y, z) In the Real-Time Rendering notation, u = (x, y, z), w = w
Referenced by conj(), dot(), exp(), fuzzyEq(), isNaN(), log(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator==(), pow(), sum(), and toUnit().
float G3D::Quat::y |
Referenced by conj(), dot(), exp(), fuzzyEq(), isNaN(), log(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator==(), and sum().
float G3D::Quat::z |
Referenced by conj(), dot(), exp(), fuzzyEq(), isNaN(), log(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator==(), and sum().