Quaternion.hh
Go to the documentation of this file.
#define IGN_PI
Define IGN_PI, IGN_PI_2, and IGN_PI_4. This was put here for Windows support.
Definition: Helpers.hh:184
The Angle class is used to simplify and clarify the use of radians and degrees measurements....
Definition: Angle.hh:62
friend std::istream & operator>>(std::istream &_in, Quaternion< T > &_q)
Stream extraction operator.
Definition: Quaternion.hh:1065
Quaternion< T > operator*(const Quaternion< T > &_q) const
Multiplication operator.
Definition: Quaternion.hh:650
void Axis(T _ax, T _ay, T _az, T _aa)
Set the quaternion from an axis and angle.
Definition: Quaternion.hh:261
Quaternion(const Quaternion< T > &_qt)
Copy constructor.
Definition: Quaternion.hh:97
void Euler(const Vector3< T > &_vec)
Set the quaternion from Euler angles. The order of operations is roll, pitch, yaw around a fixed body...
Definition: Quaternion.hh:313
void Scale(T _scale)
Scale a Quaternion<T>ion.
Definition: Quaternion.hh:595
Quaternion(const T &_w, const T &_x, const T &_y, const T &_z)
Constructor.
Definition: Quaternion.hh:59
T Dot(const Quaternion< T > &_q) const
Dot product.
Definition: Quaternion.hh:850
bool IsFinite() const
See if a quaternion is finite (e.g., not nan)
Definition: Quaternion.hh:753
Quaternion< T > operator*=(const Quaternion< T > &_qt)
Multiplication operator.
Definition: Quaternion.hh:671
Quaternion< T > Exp() const
Return the exponent.
Definition: Quaternion.hh:193
Quaternion(const T &_roll, const T &_pitch, const T &_yaw)
Constructor from Euler angles in radians.
Definition: Quaternion.hh:67
Quaternion(const Vector3< T > &_axis, const T &_angle)
Constructor from axis angle.
Definition: Quaternion.hh:75
bool operator==(const Quaternion< T > &_qt) const
Equal to operator.
Definition: Quaternion.hh:708
Quaternion< T > operator-=(const Quaternion< T > &_qt)
Subtraction operator.
Definition: Quaternion.hh:641
static const Quaternion Identity
math::Quaternion(1, 0, 0, 0)
Definition: Quaternion.hh:41
Quaternion(const Vector3< T > &_rpy)
Constructor.
Definition: Quaternion.hh:82
friend std::ostream & operator<<(std::ostream &_out, const Quaternion< T > &_q)
Stream insertion operator.
Definition: Quaternion.hh:1052
static Quaternion< T > Slerp(T _fT, const Quaternion< T > &_rkP, const Quaternion< T > &_rkQ, bool _shortestPath=false)
Spherical linear interpolation between 2 quaternions, given the ends and an interpolation parameter b...
Definition: Quaternion.hh:885
Quaternion< T > operator-() const
Unary minus operator.
Definition: Quaternion.hh:723
Quaternion< T > Inverse() const
Get the inverse of this quaternion.
Definition: Quaternion.hh:132
T Yaw() const
Get the Euler yaw angle in radians.
Definition: Quaternion.hh:446
Vector3< T > RotateVectorReverse(const Vector3< T > &_vec) const
Do the reverse rotation of a vector by this quaternion.
Definition: Quaternion.hh:742
static const Quaternion Zero
math::Quaternion(0, 0, 0, 0)
Definition: Quaternion.hh:44
Quaternion< T > Normalized() const
Gets a normalized version of this quaternion.
Definition: Quaternion.hh:249
Vector3< T > XAxis() const
Return the X axis.
Definition: Quaternion.hh:788
Vector3< T > RotateVector(const Vector3< T > &_vec) const
Rotate a vector using the quaternion.
Definition: Quaternion.hh:731
Vector3< T > ZAxis() const
Return the Z axis.
Definition: Quaternion.hh:822
Quaternion< T > Log() const
Return the logarithm.
Definition: Quaternion.hh:161
T Roll() const
Get the Euler roll angle in radians.
Definition: Quaternion.hh:432
void Matrix(const Matrix3< T > &_mat)
Set from a rotation matrix.
Definition: Quaternion.hh:477
static Quaternion< T > EulerToQuaternion(const Vector3< T > &_vec)
Convert euler angles to quatern.
Definition: Quaternion.hh:413
Vector3< T > YAxis() const
Return the Y axis.
Definition: Quaternion.hh:805
Vector3< T > Euler() const
Return the rotation in Euler angles.
Definition: Quaternion.hh:344
void From2Axes(const Vector3< T > &_v1, const Vector3< T > &_v2)
Set this quaternion to represent rotation from vector _v1 to vector _v2, so that _v2....
Definition: Quaternion.hh:523
Quaternion< T > operator-(const Quaternion< T > &_qt) const
Subtraction operator.
Definition: Quaternion.hh:631
Quaternion(const Matrix3< T > &_mat)
Construct from rotation matrix.
Definition: Quaternion.hh:90
Quaternion< T > operator+(const Quaternion< T > &_qt) const
Addition operator.
Definition: Quaternion.hh:611
bool operator!=(const Quaternion< T > &_qt) const
Not equal to operator.
Definition: Quaternion.hh:716
void Correct()
Correct any nan values in this quaternion.
Definition: Quaternion.hh:764
Quaternion< T > & operator=(const Quaternion< T > &_qt)
Assignment operator.
Definition: Quaternion.hh:110
T Pitch() const
Get the Euler pitch angle in radians.
Definition: Quaternion.hh:439
Quaternion< T > Integrate(const Vector3< T > &_angularVelocity, const T _deltaT) const
Integrate quaternion for constant angular velocity vector along specified interval _deltaT....
Definition: Quaternion.hh:939
void Axis(const Vector3< T > &_axis, T _a)
Set the quaternion from an axis and angle.
Definition: Quaternion.hh:290
Quaternion< T > operator*(const T &_f) const
Multiplication operator by a scalar.
Definition: Quaternion.hh:662
void ToAxis(Vector3< T > &_axis, T &_angle) const
Return rotation as axis and angle.
Definition: Quaternion.hh:454
static Quaternion< T > Squad(T _fT, const Quaternion< T > &_rkP, const Quaternion< T > &_rkA, const Quaternion< T > &_rkB, const Quaternion< T > &_rkQ, bool _shortestPath=false)
Spherical quadratic interpolation given the ends and an interpolation parameter between 0 and 1.
Definition: Quaternion.hh:866
void Round(int _precision)
Round all values to _precision decimal places.
Definition: Quaternion.hh:839
bool Equal(const Quaternion< T > &_qt, const T &_tol) const
Equality test with tolerance.
Definition: Quaternion.hh:697
void Normalize()
Normalize the quaternion.
Definition: Quaternion.hh:224
Vector3< T > operator*(const Vector3< T > &_v) const
Vector3 multiplication operator.
Definition: Quaternion.hh:680
Quaternion< T > operator+=(const Quaternion< T > &_qt)
Addition operator.
Definition: Quaternion.hh:621
void Set(T _w, T _x, T _y, T _z)
Set this quaternion from 4 floating numbers.
Definition: Quaternion.hh:300
static Quaternion< T > EulerToQuaternion(T _x, T _y, T _z)
Convert euler angles to quatern.
Definition: Quaternion.hh:425
void Euler(T _roll, T _pitch, T _yaw)
Set the quaternion from Euler angles.
Definition: Quaternion.hh:322
The Vector3 class represents the generic vector containing 3 elements. Since it's commonly used to ke...
Definition: Vector3.hh:42
Vector3 Normalize()
Normalize the vector length.
Definition: Vector3.hh:139
Vector3 Cross(const Vector3< T > &_v) const
Return the cross product of this vector with another vector.
Definition: Vector3.hh:195
T Dot(const Vector3< T > &_v) const
Return the dot product of this vector and another vector.
Definition: Vector3.hh:205
void Set(T _x=0, T _y=0, T _z=0)
Set the contents of the vector.
Definition: Vector3.hh:185
T SquaredLength() const
Return the square of the length (magnitude) of the vector.
Definition: Vector3.hh:129
Vector3 Abs() const
Get the absolute value of the vector.
Definition: Vector3.hh:229
T fail(T... args)
T isfinite(T... args)
bool equal(const T &_a, const T &_b, const T &_epsilon=T(1e-6))
check if two values are equal, within a tolerance
Definition: Helpers.hh:556
static const double MIN_D
Double min value. This value will be similar to 2.22507e-308.
Definition: Helpers.hh:260
T precision(const T &_a, const unsigned int &_precision)
get value at a specified precision
Definition: Helpers.hh:590
Definition: Angle.hh:43
T setf(T... args)