- Aldebaran documentation |
- C++ Libraries |
- index

libalmath 2.8.7.4

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
AL::Math::Transform Struct Reference
Types

A homogenous transformation matrix. More...

`#include <altransform.h>`

## Public Member Functions
| Transform ()
| Create a Transform initialized to identity. More...
| Transform (const std::vector< float > &pFloats)
| Create a Transform with an std::vector. More...
| 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. More...
Transform & | operator*= (const Transform &pT2)
| Overloading of operator *= for Transform. More...
Transform | operator* (const Transform &pT2) const
| Overloading of operator * for Transform. More...
bool | operator== (const Transform &pT2) const
| Overloading of operator == for Transform. More...
bool | operator!= (const Transform &pT2) const
| Overloading of operator != for Transform. More...
bool | isNear (const Transform &pT2, const float &pEpsilon=0.0001f) const
| Check if the actual Transform is near the one given in argument. More...
bool | isTransform (const float &pEpsilon=0.0001f) const
| Check if the rotation part is correct. The condition checks are: and determinant(R) = 1.0 More...
void | normalizeTransform (void)
| Normalize data, if needed, to have transform properties. More...
float | norm () const
| Compute the norm translation part of the actual Transform: More...
float | determinant () const
| Compute the determinant of rotation part of the actual Transform: More...
Transform | inverse () const
| Compute the transform inverse of the actual Transform: More...
Transform | diff (const Transform &pT2) const
| Compute the Transform between the actual Transform and the one given in argument: More...
float | distanceSquared (const Transform &pT2) const
| Compute the squared distance between the actual Transform and the one given in argument (translation part): More...
float | distance (const Transform &pT2) const
| Compute the distance between the actual Transform and the one given in argument: More...
void | toVector (std::vector< float > &pReturnVector) const
| Return the Transform as a vector of float: More...
std::vector< float > | toVector (void) const
void | writeToVector (std::vector< float >::iterator &pIt) const
| Write the Transform in the vector and update the iterator: More...

## Static Public Member Functions
static Transform | fromRotX (const float pRotX)
| Create a Transform initialized with explicit rotation around x axis. More...
static Transform | fromRotY (const float pRotY)
| Create a Transform initialized with explicit rotation around y axis. More...
static Transform | fromRotZ (const float pRotZ)
| Create a Transform initialized with explicit rotation around z axis. More...
static Transform | from3DRotation (const float &pWX, const float &pWY, const float &pWZ)
| Create a Transform initialize with euler angle. More...
static Transform | fromPosition (const float pX, const float pY, const float pZ)
| Create a Transform initialize with explicit value for translation part. More...
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. More...

## Detailed Description

A homogenous transformation matrix.

more information

Definition at line 23 of file altransform.h.

## Constructor & Destructor Documentation

AL::Math::Transform::Transform | ( |  | ) |

Create a Transform initialized to identity.

AL::Math::Transform::Transform | ( | const std::vector< float > & | pFloats | ) |
| explicit

Create a Transform with an std::vector.

Parameters

  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
| ) |  |

Create a Transform initialized with explicit value for translation part. Rotation part is set to identity.

Parameters

  pPosX | the float value for translation x
  pPosY | the float value for translation y
  pPosZ | the float value for translation z

## Member Function Documentation

float AL::Math::Transform::determinant | ( |  | ) | const

Compute the determinant of rotation part of the actual Transform:

Returns
  the float determinant of rotation Transform part

Transform AL::Math::Transform::diff | ( | const Transform & | pT2 | ) | const

Compute the Transform between the actual Transform and the one given in argument:

result: inverse(pT1)*pT2

Parameters

  pT2 | the second transform

float AL::Math::Transform::distance | ( | const Transform & | pT2 | ) | const

Compute the distance between the actual Transform and the one given in argument:

Parameters

  pT2 | the second Transform

Returns
  the float distance between the two Transform

float AL::Math::Transform::distanceSquared | ( | const Transform & | pT2 | ) | const

Compute the squared distance between the actual Transform and the one given in argument (translation part):

Parameters

  pT2 | the second Transform

Returns
  the float squared distance between the two Transform: translation part

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)

Parameters

  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.

Parameters

  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

Parameters

  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.

Parameters

  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.

Parameters

  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.

Parameters

  pRotZ | the float value for angle rotation in radian around z axis

Transform AL::Math::Transform::inverse | ( |  | ) | const

Compute the transform inverse of the actual Transform:

Returns
  the Transform inverse

bool AL::Math::Transform::isNear | ( | const Transform & | pT2,
|  | const float & | pEpsilon = `0.0001f`
| ) |  | const

Check if the actual Transform is near the one given in argument.

Parameters

  pT2 | the second Transform
  pEpsilon | an optionnal epsilon distance: Default: 0.0001

Returns
  true if the distance between the two Transform is less than pEpsilon

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

Parameters

  pEpsilon | an optionnal epsilon distance. Default: 0.0001

Returns
  true if the Transform is correct

float AL::Math::Transform::norm | ( |  | ) | const

Compute the norm translation part of the actual Transform:

Returns
  the float norm of the Transform

void AL::Math::Transform::normalizeTransform | ( | void |  | ) |

Normalize data, if needed, to have transform properties.

bool AL::Math::Transform::operator!= | ( | const Transform & | pT2 | ) | const

Overloading of operator != for Transform.

Parameters

  pT2 | the second Transform

Transform AL::Math::Transform::operator* | ( | const Transform & | pT2 | ) | const

Overloading of operator * for Transform.

Parameters

  pT2 | the second Transform

Transform& AL::Math::Transform::operator*= | ( | const Transform & | pT2 | ) |

Overloading of operator *= for Transform.

Parameters

  pT2 | the second Transform

bool AL::Math::Transform::operator== | ( | const Transform & | pT2 | ) | const

Overloading of operator == for Transform.

Parameters

  pT2 | the second Transform

void AL::Math::Transform::toVector | ( | std::vector< float > & | pReturnVector | ) | const

Return the Transform as a vector of float:

std::vector<float> AL::Math::Transform::toVector | ( | void |  | ) | const

void AL::Math::Transform::writeToVector | ( | std::vector< float >::iterator & | pIt | ) | const

Write the Transform in the vector and update the iterator:

is assumed the vector has enough space.

The documentation for this struct was generated from the following file:

- /home/opennao/work/release-2.8/lib/libalmath/almath/types/altransform.h