19 inline Quaternion(
float fX = 0.0,
float fY = 0.0,
float fZ = 0.0,
float fW = 1.0)
29 this->FromRotationMatrix(rot);
34 this->FromRotationMatrix(rot);
45 this->FromAngleAxis(rfAngle, rkAxis);
51 this->FromAngleAxis(
Radian(fAngle), rkAxis);
58 this->FromAxes(xaxis, yaxis, zaxis);
63 this->FromAxes(akAxis);
68 memcpy(&x, valptr,
sizeof(
float)*4);
94 inline const float*
ptr()
const 99 void FromRotationMatrix (
const Matrix3& kRot);
100 void FromRotationMatrix(
const Matrix4& kRot);
102 void ToRotationMatrix (
Matrix3& kRot)
const;
103 void ToRotationMatrix(
Matrix4& kRot,
const Vector3& Origin)
const;
104 void FromAngleAxis (
const Radian& rfAngle,
const Vector3& rkAxis);
106 inline void ToAngleAxis (
Degree& dAngle,
Vector3& rkAxis)
const {
108 ToAngleAxis ( rAngle, rkAxis );
111 void FromAxes (
const Vector3* akAxis);
113 void ToAxes (
Vector3* akAxis)
const;
137 inline bool operator== (
const Quaternion& rhs)
const 139 return (rhs.x == x) && (rhs.y == y) && (rhs.z == z) && (rhs.w == w);
141 inline bool operator!= (
const Quaternion& rhs)
const 143 return !operator==(rhs);
156 x = -x; y = -y; z = -z;
191 void ToRadians(
float *outX,
float *outY,
float *outZ)
const;
212 static const float ms_fEpsilon;
217 inline friend std::ostream&
operator <<
220 o <<
"Quaternion(" << q.x <<
", " << q.y <<
", " << q.z <<
", " << q.w <<
")";
Wrapper class which indicates a given angle value is in Radians.
Definition: ParaAngle.h:10
Quaternion(const Radian &rfAngle, const Vector3 &rkAxis)
Construct a quaternion from an angle/axis.
Definition: ParaQuaternion.h:43
Radian getPitch(bool reprojectAxis=true) const
Calculate the local pitch element of this quaternion.
Definition: ParaQuaternion.cpp:593
bool equals(const Quaternion &rhs, const Radian &tolerance) const
Equality with tolerance (tolerance is max angle difference)
Definition: ParaQuaternion.cpp:471
float * ptr()
Pointer accessor for direct copying.
Definition: ParaQuaternion.h:88
different physics engine has different winding order.
Definition: EventBinding.h:32
Vector3 xAxis(void) const
Get the local x-axis.
Definition: ParaQuaternion.cpp:263
Implementation of a Quaternion, i.e.
Definition: ParaQuaternion.h:10
A 3x3 matrix which can represent rotations around axes.
Definition: ParaMatrix3.h:63
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
Quaternion(float *valptr)
Construct a quaternion from 4 manual w/x/y/z values.
Definition: ParaQuaternion.h:66
Wrapper class which indicates a given angle value is in Degrees.
Definition: ParaAngle.h:56
float normalise(void)
Normalizes this quaternion, and returns the previous length.
Definition: ParaQuaternion.cpp:560
Radian getRoll(bool reprojectAxis=true) const
Calculate the local roll element of this quaternion.
Definition: ParaQuaternion.cpp:568
float operator[](const size_t i) const
Array accessor operator.
Definition: ParaQuaternion.h:72
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: ParaMatrix4.h:23
Quaternion(const Vector3 &xaxis, const Vector3 &yaxis, const Vector3 &zaxis)
Construct a quaternion from 3 orthonormal local axes.
Definition: ParaQuaternion.h:56
Vector3 yAxis(void) const
Get the local y-axis.
Definition: ParaQuaternion.cpp:278
Radian getYaw(bool reprojectAxis=true) const
Calculate the local yaw element of this quaternion.
Definition: ParaQuaternion.cpp:617
Quaternion(const Vector3 *akAxis)
Construct a quaternion from 3 orthonormal local axes.
Definition: ParaQuaternion.h:61
const float * ptr() const
Pointer accessor for direct copying.
Definition: ParaQuaternion.h:94
Quaternion(const Vector3 &rkAxis, float fAngle)
Construct a quaternion from an angle/axis.
Definition: ParaQuaternion.h:49
Quaternion(const Matrix3 &rot)
Construct a quaternion from a rotation matrix.
Definition: ParaQuaternion.h:27
Vector3 zAxis(void) const
Get the local z-axis.
Definition: ParaQuaternion.cpp:293