A homogenous transformation matrix. More...
#include <altransform.h>
Public Member Functions | |
Transform () | |
Create a Transform initialized to identity. | |
Transform (const std::vector< float > &pFloats) | |
Create a Transform with an std::vector. | |
Transform (const float &pPosX, const float &pPosY, const float &pPosZ) | |
Create a Transform initialized with explicit value for translation part. Rotation part is set to identity. | |
Transform & | operator*= (const Transform &pT2) |
Overloading of operator *= for Transform. | |
Transform | operator* (const Transform &pT2) const |
Overloading of operator * for Transform. | |
bool | operator== (const Transform &pT2) const |
Overloading of operator == for Transform. | |
bool | operator!= (const Transform &pT2) const |
Overloading of operator != for Transform. | |
bool | isNear (const Transform &pT2, const float &pEpsilon=0.0001f) const |
Check if the actual Transform is near the one given in argument. | |
bool | isTransform (const float &pEpsilon=0.0001f) const |
Check if the rotation part is correct. The condition checks are: and determinant(R) = 1.0. | |
float | norm () const |
Compute the norm translation part of the actual Transform: | |
float | determinant () const |
Compute the determinant of rotation part of the actual Transform: | |
Transform | inverse () const |
Compute the transform inverse of the actual Transform: | |
Transform | diff (const Transform &pT2) const |
Compute the Transform between the actual Transform and the one given in argument: | |
float | distanceSquared (const Transform &pT2) const |
Compute the squared distance between the actual Transform and the one given in argument (translation part): | |
float | distance (const Transform &pT2) const |
Compute the distance between the actual Transform and the one given in argument: | |
std::vector< float > | toVector () const |
Return the Transform as a vector of float: | |
Static Public Member Functions | |
static Transform | fromRotX (const float pRotX) |
Create a Transform initialized with explicit rotation around x axis. | |
static Transform | fromRotY (const float pRotY) |
Create a Transform initialized with explicit rotation around y axis. | |
static Transform | fromRotZ (const float pRotZ) |
Create a Transform initialized with explicit rotation around z axis. | |
static Transform | from3DRotation (const float &pWX, const float &pWY, const float &pWZ) |
Create a Transform initialize with euler angle. | |
static Transform | fromPosition (const float pX, const float pY, const float pZ) |
Create a Transform initialize with explicit value for translation part. | |
static Transform | fromPosition (const float &pX, const float &pY, const float &pZ, const float &pWX, const float &pWY, const float &pWZ) |
Create a Transform initialize with explicit value for translation part and euler angle. |
Create a Transform initialized to identity.
AL::Math::Transform::Transform | ( | const std::vector< float > & | pFloats | ) | [explicit] |
Create a Transform with an std::vector.
pFloats | An std::vector<float> of size 12 or 16 for respectively: |
AL::Math::Transform::Transform | ( | const float & | pPosX, |
const float & | pPosY, | ||
const float & | pPosZ | ||
) |
float AL::Math::Transform::determinant | ( | ) | const |
Transform AL::Math::Transform::diff | ( | const Transform & | pT2 | ) | const |
float AL::Math::Transform::distance | ( | const Transform & | pT2 | ) | const |
float AL::Math::Transform::distanceSquared | ( | const Transform & | pT2 | ) | const |
static Transform AL::Math::Transform::from3DRotation | ( | const float & | pWX, |
const float & | pWY, | ||
const float & | pWZ | ||
) | [static] |
Create a Transform initialize with euler angle.
H = fromRotZ(pWZ)*fromRotY(pWY)*fromRotX(pWX)
pWX | the float value for euler angle x in radian |
pWY | the float value for euler angle y in radian |
pWZ | the float value for euler angle z in radian |
static Transform AL::Math::Transform::fromPosition | ( | const float | pX, |
const float | pY, | ||
const float | pZ | ||
) | [static] |
Create a Transform initialize with explicit value for translation part.
pX | the float value for translation axis x in meter (r1_c4) |
pY | the float value for translation axis y in meter (r2_c4) |
pZ | the float value for translation axis z in meter (r3_c4) |
static Transform AL::Math::Transform::fromPosition | ( | const float & | pX, |
const float & | pY, | ||
const float & | pZ, | ||
const float & | pWX, | ||
const float & | pWY, | ||
const float & | pWZ | ||
) | [static] |
Create a Transform initialize with explicit value for translation part and euler angle.
H = fromRotZ(pWZ)*fromRotY(pWY)*fromRotX(pWX)
then
H.r1_c4 = pX
H.r2_c4 = pY
H.r3_c4 = pZ
pX | the float value for translation axis x in meter (r1_c4) |
pY | the float value for translation axis y in meter (r2_c4) |
pZ | the float value for translation axis z in meter (r3_c4) |
pWX | the float value for euler angle x in radian |
pWY | the float value for euler angle y in radian |
pWZ | the float value for euler angle z in radian |
static Transform AL::Math::Transform::fromRotX | ( | const float | pRotX | ) | [static] |
Create a Transform initialized with explicit rotation around x axis.
pRotX | the float value for angle rotation in radian around x axis |
static Transform AL::Math::Transform::fromRotY | ( | const float | pRotY | ) | [static] |
Create a Transform initialized with explicit rotation around y axis.
pRotY | the float value for angle rotation in radian around y axis |
static Transform AL::Math::Transform::fromRotZ | ( | const float | pRotZ | ) | [static] |
Create a Transform initialized with explicit rotation around z axis.
pRotZ | the float value for angle rotation in radian around z axis |
Transform AL::Math::Transform::inverse | ( | ) | const |
bool AL::Math::Transform::isNear | ( | const Transform & | pT2, |
const float & | pEpsilon = 0.0001f |
||
) | const |
bool AL::Math::Transform::isTransform | ( | const float & | pEpsilon = 0.0001f | ) | const |
Check if the rotation part is correct. The condition checks are: and determinant(R) = 1.0.
pEpsilon | an optionnal epsilon distance. Default: 0.0001 |
float AL::Math::Transform::norm | ( | ) | const |
bool AL::Math::Transform::operator!= | ( | const Transform & | pT2 | ) | const |
bool AL::Math::Transform::operator== | ( | const Transform & | pT2 | ) | const |
std::vector<float> AL::Math::Transform::toVector | ( | ) | const |
Return the Transform as a vector of float: