17#ifndef TF2__LINEARMATH__TRANSFORM_HPP
18#define TF2__LINEARMATH__TRANSFORM_HPP
28#define TransformData TransformDoubleData
64 : m_basis(
other.m_basis),
65 m_origin(
other.m_origin)
71 m_basis =
other.m_basis;
72 m_origin =
other.m_origin;
81 m_basis =
t1.m_basis *
t2.m_basis;
82 m_origin =
t1(
t2.m_origin);
96 m_basis[1].dot(x) + m_origin.
y(),
97 m_basis[2].dot(x) + m_origin.
z());
146 m[12] = m_origin.
x();
147 m[13] = m_origin.
y();
148 m[14] = m_origin.
z();
188 m_origin += m_basis *
t.m_origin;
189 m_basis *=
t.m_basis;
256 (*
this)(
t.m_origin));
262 return (
t1.getBasis() ==
t2.getBasis() &&
263 t1.getOrigin() ==
t2.getOrigin() );
#define TF2SIMD_FORCE_INLINE
Definition Scalar.hpp:129
double tf2Scalar
The tf2Scalar type abstracts floating point numbers, to easily switch between double and single float...
Definition Scalar.hpp:159
The Matrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with Q...
Definition Matrix3x3.hpp:33
void serialize(struct Matrix3x3Data &dataOut) const
Definition Matrix3x3.hpp:672
void deSerializeFloat(const struct Matrix3x3FloatData &dataIn)
Definition Matrix3x3.hpp:691
void setRotation(const Quaternion &q)
Set the matrix from a quaternion.
Definition Matrix3x3.hpp:155
static const Matrix3x3 & getIdentity()
Definition Matrix3x3.hpp:217
void getOpenGLSubMatrix(tf2Scalar *m) const
Fill the values of the matrix into a 9 element array.
Definition Matrix3x3.hpp:228
void deSerializeDouble(const struct Matrix3x3DoubleData &dataIn)
Definition Matrix3x3.hpp:697
void setIdentity()
Set the matrix to the identity.
Definition Matrix3x3.hpp:209
void getRotation(Quaternion &q) const
Get the matrix represented as a quaternion.
Definition Matrix3x3.hpp:247
void serializeFloat(struct Matrix3x3FloatData &dataOut) const
Definition Matrix3x3.hpp:678
void deSerialize(const struct Matrix3x3Data &dataIn)
Definition Matrix3x3.hpp:685
Matrix3x3 transposeTimes(const Matrix3x3 &m) const
Definition Matrix3x3.hpp:587
void setFromOpenGLSubMatrix(const tf2Scalar *m)
Set from a carray of tf2Scalars.
Definition Matrix3x3.hpp:125
Matrix3x3 transpose() const
Return the transpose of the matrix.
Definition Matrix3x3.hpp:559
The Quaternion implements quaternion to perform linear algebra rotations in combination with Matrix3x...
Definition Quaternion.hpp:30
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
const tf2Scalar & z() const
Return the z value.
Definition Vector3.hpp:269
const tf2Scalar & x() const
Return the x value.
Definition Vector3.hpp:265
void deSerialize(const struct Vector3Data &dataIn)
Definition Vector3.hpp:716
void serialize(struct Vector3Data &dataOut) const
Definition Vector3.hpp:709
void setValue(const tf2Scalar &x, const tf2Scalar &y, const tf2Scalar &z)
Definition Vector3.hpp:310
void deSerializeDouble(const struct Vector3DoubleData &dataIn)
Definition Vector3.hpp:702
void deSerializeFloat(const struct Vector3FloatData &dataIn)
Definition Vector3.hpp:688
const tf2Scalar & y() const
Return the y value.
Definition Vector3.hpp:267
void serializeFloat(struct Vector3FloatData &dataOut) const
Definition Vector3.hpp:681
Definition buffer_core.hpp:58
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...
tf2Scalar dot(const Quaternion &q1, const Quaternion &q2)
Calculate the dot product between two quaternions.
Definition Quaternion.hpp:456
bool operator==(const Matrix3x3 &m1, const Matrix3x3 &m2)
Equality operator between two matrices It will test all elements are equal.
Definition Matrix3x3.hpp:650
for serialization
Definition Matrix3x3.hpp:665
for serialization
Definition Matrix3x3.hpp:659
Definition Vector3.hpp:676
Definition Vector3.hpp:671
#define TF2_PUBLIC
Definition visibility_control.h:57