17#ifndef TF2__LINEARMATH__QUATERNION_HPP_
18#define TF2__LINEARMATH__QUATERNION_HPP_
213 tf2Scalar(std::numeric_limits<tf2Scalar>::quiet_NaN()),
214 tf2Scalar(std::numeric_limits<tf2Scalar>::quiet_NaN()),
215 tf2Scalar(std::numeric_limits<tf2Scalar>::quiet_NaN()));
440 q.w() * w.
y() +
q.z() * w.
x() -
q.x() * w.
z(),
441 q.w() * w.
z() +
q.x() * w.
y() -
q.y() * w.
x(),
442 -
q.x() * w.
x() -
q.y() * w.
y() -
q.z() * w.
z());
449 w.
y() *
q.w() + w.
z() *
q.x() - w.
x() *
q.z(),
450 w.
z() *
q.w() + w.
x() *
q.y() - w.
y() *
q.x(),
451 -w.
x() *
q.x() - w.
y() *
q.y() - w.
z() *
q.z());
480 return q1.angleShortestPath(
q2);
tf2Scalar tf2Sqrt(tf2Scalar x)
Definition Scalar.hpp:177
#define TF2SIMD_EPSILON
Definition Scalar.hpp:202
tf2Scalar tf2Pow(tf2Scalar x, tf2Scalar y)
Definition Scalar.hpp:188
tf2Scalar tf2Cos(tf2Scalar x)
Definition Scalar.hpp:179
#define TF2SIMD_FORCE_INLINE
Definition Scalar.hpp:129
#define tf2Assert(x)
Definition Scalar.hpp:144
tf2Scalar tf2Acos(tf2Scalar x)
Definition Scalar.hpp:182
tf2Scalar tf2Sin(tf2Scalar x)
Definition Scalar.hpp:180
double tf2Scalar
The tf2Scalar type abstracts floating point numbers, to easily switch between double and single float...
Definition Scalar.hpp:159
The QuadWord class is base class for Vector3 and Quaternion. Some issues under PS3 Linux with IBM 2....
Definition QuadWord.hpp:38
void setValue(const tf2Scalar &x, const tf2Scalar &y, const tf2Scalar &z)
Set x,y,z and zero w.
Definition QuadWord.hpp:104
const tf2Scalar & y() const
Return the y value.
Definition QuadWord.hpp:77
const tf2Scalar & x() const
Return the x value.
Definition QuadWord.hpp:75
const tf2Scalar & w() const
Return the w value.
Definition QuadWord.hpp:81
const tf2Scalar & z() const
Return the z value.
Definition QuadWord.hpp:79
tf2Scalar m_floats[4]
Definition QuadWord.hpp:54
The Quaternion implements quaternion to perform linear algebra rotations in combination with Matrix3x...
Definition Quaternion.hpp:30
Quaternion farthest(const Quaternion &qd) const
Definition Quaternion.hpp:313
Quaternion slerp(const Quaternion &q, const tf2Scalar &t) const
Return the quaternion which is the result of Spherical Linear Interpolation between this and the othe...
Definition Quaternion.hpp:340
bool isnan() const
Definition Quaternion.hpp:174
Quaternion operator-(const Quaternion &q2) const
Return the difference between this quaternion and the other.
Definition Quaternion.hpp:299
Quaternion nearest(const Quaternion &qd) const
Definition Quaternion.hpp:324
Quaternion operator*(const tf2Scalar &s) const
Return a scaled version of this quaternion.
Definition Quaternion.hpp:189
Quaternion operator-() const
Return the negative of this quaternion This simply negates each element.
Definition Quaternion.hpp:307
Quaternion()
No initialization constructor.
Definition Quaternion.hpp:34
void setRPY(const tf2Scalar &roll, const tf2Scalar &pitch, const tf2Scalar &yaw)
Set the quaternion using fixed axis RPY.
Definition Quaternion.hpp:98
Quaternion & operator+=(const Quaternion &q)
Add two quaternions.
Definition Quaternion.hpp:116
Quaternion & normalize()
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1.
Definition Quaternion.hpp:181
Quaternion(const tf2Scalar &x, const tf2Scalar &y, const tf2Scalar &z, const tf2Scalar &w)
Constructor from scalars.
Definition Quaternion.hpp:40
tf2Scalar angle(const Quaternion &q) const
Return the half angle between this quaternion and the other.
Definition Quaternion.hpp:230
static Quaternion createFromEuler(const tf2Scalar &roll, const tf2Scalar &pitch, const tf2Scalar &yaw)
Creates a quaternion using Euler angles.
Definition Quaternion.hpp:392
static Quaternion createFromRotation(const Vector3 &axis, const tf2Scalar &angle)
Creates a quaternion using axis angle notation.
Definition Quaternion.hpp:404
void setEuler(const tf2Scalar &yaw, const tf2Scalar &pitch, const tf2Scalar &roll)
Set the quaternion using Euler angles.
Definition Quaternion.hpp:77
Quaternion(const tf2Scalar &roll, const tf2Scalar &pitch, const tf2Scalar &yaw)
Constructor from fixed axis RPY.
Definition Quaternion.hpp:56
Quaternion normalized() const
Return a normalized version of this quaternion.
Definition Quaternion.hpp:223
tf2Scalar length2() const
Return the length squared of the quaternion.
Definition Quaternion.hpp:162
tf2Scalar getAngleShortestPath() const
Return the angle [0, Pi] of rotation represented by this quaternion along the shortest path.
Definition Quaternion.hpp:258
Quaternion operator/(const tf2Scalar &s) const
Return an inversely scaled versionof this quaternion.
Definition Quaternion.hpp:198
Quaternion & operator*=(const tf2Scalar &s)
Scale this quaternion.
Definition Quaternion.hpp:134
tf2Scalar dot(const Quaternion &q) const
Return the dot product between this quaternion and another.
Definition Quaternion.hpp:155
Quaternion & operator-=(const Quaternion &q)
Sutf2ract out a quaternion.
Definition Quaternion.hpp:125
Quaternion operator+(const Quaternion &q2) const
Return the sum of this quaternion and the other.
Definition Quaternion.hpp:290
Vector3 getAxis() const
Return the axis of the rotation represented by this quaternion.
Definition Quaternion.hpp:271
const tf2Scalar & getW() const
Definition Quaternion.hpp:412
tf2Scalar angleShortestPath(const Quaternion &q) const
Return the angle between this quaternion and the other along the shortest path.
Definition Quaternion.hpp:239
Quaternion inverse() const
Return the inverse of this quaternion.
Definition Quaternion.hpp:282
tf2Scalar getAngle() const
Return the angle [0, 2Pi] of rotation represented by this quaternion.
Definition Quaternion.hpp:250
Quaternion & operator*=(const Quaternion &q)
Multiply this quaternion by q on the right.
Definition Quaternion.hpp:144
Quaternion(const Vector3 &axis, const tf2Scalar &angle)
Axis angle Constructor.
Definition Quaternion.hpp:47
tf2Scalar length() const
Return the length of the quaternion.
Definition Quaternion.hpp:169
static const Quaternion & getIdentity()
Definition Quaternion.hpp:367
void setRotation(const Vector3 &axis, const tf2Scalar &angle)
Set the rotation using axis angle notation.
Definition Quaternion.hpp:64
Quaternion & operator/=(const tf2Scalar &s)
Inversely scale this quaternion.
Definition Quaternion.hpp:207
static Quaternion createFromRPY(const tf2Scalar &roll, const tf2Scalar &pitch, const tf2Scalar &yaw)
Creates a quaternion using fixed axis RPY.
Definition Quaternion.hpp:379
tf2::Vector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16...
Definition Vector3.hpp:40
tf2Scalar dot(const Vector3 &v) const
Return the dot product.
Definition Vector3.hpp:125
const tf2Scalar & z() const
Return the z value.
Definition Vector3.hpp:269
const tf2Scalar & x() const
Return the x value.
Definition Vector3.hpp:265
Vector3 cross(const Vector3 &v) const
Return the cross product between this and another vector.
Definition Vector3.hpp:183
const tf2Scalar & y() const
Return the y value.
Definition Vector3.hpp:267
Definition buffer_core.hpp:58
Vector3 operator*(const Matrix3x3 &m, const Vector3 &v)
Definition Matrix3x3.hpp:612
void tf2PlaneSpace1(const Vector3 &n, Vector3 &p, Vector3 &q)
Definition Vector3.hpp:649
Quaternion shortestArcQuatNormalize2(Vector3 &v0, Vector3 &v1)
Definition Quaternion.hpp:529
tf2Scalar length(const Quaternion &q)
Return the length of a quaternion.
Definition Quaternion.hpp:464
tf2Scalar angle(const Quaternion &q1, const Quaternion &q2)
Return the half angle between two quaternions.
Definition Quaternion.hpp:471
B toMsg(const A &a)
Function that converts from one type to a ROS message type. It has to be implemented by each data typ...
Quaternion shortestArcQuat(const Vector3 &v0, const Vector3 &v1)
Definition Quaternion.hpp:510
tf2Scalar dot(const Quaternion &q1, const Quaternion &q2)
Calculate the dot product between two quaternions.
Definition Quaternion.hpp:456
Vector3 quatRotate(const Quaternion &rotation, const Vector3 &v)
Definition Quaternion.hpp:502
tf2Scalar angleShortestPath(const Quaternion &q1, const Quaternion &q2)
Return the shortest angle between two quaternions.
Definition Quaternion.hpp:478
Quaternion inverse(const Quaternion &q)
Return the inverse of a quaternion.
Definition Quaternion.hpp:485
Quaternion operator-(const Quaternion &q)
Return the negative of a quaternion.
Definition Quaternion.hpp:420
Quaternion slerp(const Quaternion &q1, const Quaternion &q2, const tf2Scalar &t)
Return the result of spherical linear interpolation betwen two quaternions.
Definition Quaternion.hpp:496
#define TF2_PUBLIC
Definition visibility_control.h:57