# opentl::core::cvdata::Pose Class Reference

Abstract class for storing object related value data. More...

Inherits opentl::core::cvdata::CvData.

Inherited by opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

List of all members.

## Public Types
## Public Member Functions
virtual Pose * | clone () const =0
virtual void | computePoseIncrement (Pose &refPose, math::Vector &increment, bool bModifyCurrentPose=true)
| Compute the difference (incremental Pose vector) between a reference pose and this one.
void | createWorldData (int dimP, int dof, int nLinks=1)
| Allocate the world-related quantities (at construction time) NOTE 1: here we suppose to have already the information about all degrees of freedom, and internal poses (articulated models) Therefore, this function should be called right at the end of the constructor (or copy constructor) NOTE 2: the camera-related matrices cannot be allocated here, but only by the Warp class (we do not know how many cameras)!
void | deleteWorldData ()
| This is called by the destructor.
int | dimension () const
| Return the number of finite pose parameters.
int | dof () const
| Return the number of incremental parameters (= actual degrees of freedom).
virtual bool | forcePoseLimits ()
| Check the current pose against the limits, and force the overflowing parameters to the bounds.
virtual double | getAngleX ()
virtual double | getAngleY ()
virtual double | getAngleZ ()
std::vector< double > & | getCamK (std::size_t cameraIdx=0)
| Copy camera K matrix.
std::vector< double > & | getCamT (std::size_t cameraIdx=0, std::size_t linkIdx=0) const
| Copy camera-related T matrix.
double | getCamTDepth (std::size_t cameraIdx=0, std::size_t linkIdx=0) const
double | getData (std::size_t index)
void | getData (math::Vector &vec)
| Function to get the stored value information.
void | getIncData (math::Vector &vec)
| Function to copy the stored incremental pose information.
virtual void | getIncT (opentl::math::Transform &T, int linkId=0)
| Function to get the stored value information.
std::vector< std::vector < double > > & | getJacScreen (std::size_t cameraIdx=0, std::size_t linkIdx=0)
| Return camera T Jacobians (one matrix for each dof, stored as a vector of double).
bool | getJacScreenRefreshFlag (std::size_t cameraIdx=0)
| Return refresh flag for given camera Jacobians.
void | getJacT (opentl::math::Transform &jacT, std::size_t dof, int linkId=0)
| Function to get the stored value information.
bool | getJacTRefreshFlag () const
| Set the dirty flag for world T Jacobians.
std::vector< std::vector < opentl::math::Transform > > * | getJacTVector ()
| Get vector of world-T matrices.
void | getLieGen (std::size_t iD, opentl::math::Transform &G)
| Function to get the i-th Lie generator.
virtual void | getLocalT (opentl::math::Transform &T, int linkId=0)
| Function to get the finite T matrix.
std::vector < opentl::math::Vector2 > * | getPoseLimitsVector ()
| Get the pose limits.
virtual void | getRefT (opentl::math::Transform &refT, int linkId=0) const
| Return the reference T matrix.
bool | getRefTSetFlag () const
| Get the flag, indicating whether the reference T matrix is set (different from I) or not.
virtual double | getScaleX ()
virtual double | getScaleY ()
virtual double | getScaleZ ()
T_UPDATEFLAG | getUpdateFlag () const
| Return the update flag for finite parameters.
T_UPDATEFLAG | getUpdateIncFlag () const
| Return the update flag for finite parameters.
T_UPDATEMODE | getUpdateMode () const
| Return Update mode of this Pose (additive/compositional).
void | getWorldT (opentl::math::Transform &T, int linkId=0)
| Function to get the stored value information.
std::vector < opentl::math::Transform > * | getWorldTVector ()
| Get vector of world-T matrices.
virtual double | getX ()
virtual double | getY ()
virtual double | getZ ()
virtual int | initFromPoints (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdx=NULL)=0
| Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem").
virtual int | initFromPointsAndLines (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::Matrix &bodyLines, const math::Matrix &screenLines, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdxForPoint=NULL, const math::Vector *linkIdxForLine=NULL)=0
| Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.
int | links () const
| Return link count. (= 1 for non-articulated objects).
virtual Pose & | operator= (const Pose &value)
| Assignment operator.
| Pose (opentl::core::cvdata::CvData::DataReprType posetype, T_UPDATEMODE updateMode)
| Constructor.
virtual void | poseUpdate ()
| Do a pose update with the incremental parameters.
virtual void | resetData ()
| Reset to 0 all parameters, and the update flag as well.
virtual void | resetIncData ()
| Reset to 0 only the incremental parameters, and the update flag as well.
virtual void | resetRefT (int linkId=-1)
| Reset the reference T matrix (to identity).
virtual void | setAngleX (double)
virtual void | setAngleY (double)
virtual void | setAngleZ (double)
void | setCamK (std::vector< double > &camK, std::size_t cameraIdx=0)
| Set camera K matrix.
void | setCamT (std::vector< double > &camT, std::size_t cameraIdx=0, std::size_t linkIdx=0)
| Set camera-related T matrix.
virtual void | setDataFromVec (const math::Vector &value)
| Function to set the value of this pose.
virtual void | setIncDataFromVec (const math::Vector &value)
| Function to set the infinitesimal pose from the matrix.
void | setJacScreenRefreshFlag (bool val, std::size_t cameraIdx=0)
| Set refresh flag for given camera Jacobians.
void | setJacTRefreshFlag (bool flag)
| Set the dirty flag for world T Jacobians.
virtual void | setLocalIncT (const std::vector< opentl::math::Transform > &matT)
| Set pose parameters by homog. transformation matrix data.
virtual void | setLocalT (const std::vector< opentl::math::Transform > &matT)
| Set pose parameters by homog. transformation matrix data.
virtual void | setPoseLimits (std::vector< opentl::math::Vector2 > &poseLimits)
| Set the pose limits.
virtual void | setRefT (const opentl::math::Transform &refT, int linkId=0)
| Set the reference T matrix.
void | setRefTSetFlag (bool flag)
| Set the flag, indicating whether the reference T matrix is set (different from I) or not.
virtual void | setScaleX (double)
virtual void | setScaleY (double)
virtual void | setScaleZ (double)
void | setUpdateFlag (T_UPDATEFLAG flag)
| Set the update flag for finite parameters.
void | setUpdateIncFlag (T_UPDATEFLAG flag)
| Set the update flag for finite parameters.
virtual void | setX (double)
virtual void | setY (double)
virtual void | setZ (double)
virtual void | updateJacT ()
| Function to update the pose derivatives of homog. transformation matrix T.
virtual | ~Pose ()
| Destructor.
## Protected Member Functions
virtual void | additiveUpdate ()
| Add finite and incremental pose parameters for all links, store the result in mValue, and set mIncValue to 0.
virtual void | compositionalUpdate ()
| Multiply worldT and incT for all links, store the result in worldT, and reset incT.
virtual void | copyPoseData (const Pose &pvalue)
| Internal function for the operator =.
virtual void | initLieAlgGen ()=0
| Function to generate Lie Algebra Generator matrices, required for calculation of Jacobians, based on a specific pose representation type.
virtual void | updateAdditiveJacT ()
| Jacobian of T matrix, for the additive case: J = dT/dp.
virtual void | updateCompositionalJacT ()
| Jacobian of T matrix, for the compositional case (using Lie algebras): J(i) = T*G{i} with G(i) the Lie generator for the i-th degree of freedom dp(i).
virtual void | updateDataFromLocalT ()=0
| Compute pose parameters from homog. transformation matrix data.
virtual void | updateIncDataFromT ()
| Function to set the infinitesimal pose, as the logarithm of small homog. transformation matrix T.
virtual void | updateIncTFromData ()
| Function to get the incremental homog. transformation matrix T.
virtual void | updateWorldTFromData ()=0
| Function to get the pose as homog. transformation matrix T.
## Protected Attributes
int | mDim
| Overall number of finite pose parameters (mValue) NOTE: for articulated poses, this is the sum of dimensions for all internal poses.
unsigned int | mIncDim
| Overall number of Lie generators (= actual degrees of freedom) NOTE: for articulated poses, this is the sum of degrees of freedom for all internal poses.
std::vector < opentl::math::Transform > * | mLieGen
| Lie generator matrices NOTE: for articulated poses, this is just a collection of all Lie generators of internal poses!
## Friends
class | modelprojection::Warp

## Detailed Description

Abstract class for storing object related value data.

Author:
  Erwin Roth <eroth@weihenstephan.org>

The meaning of the value within the Pose class is defined in the derived classes.

IMPORTANT: The Pose class shall store the actual degrees of freedom (DOFs) of the object to be tracked ONLY. Otherwise it will lead to problems when using optimization algorithms.

## Member Enumeration Documentation

enum opentl::core::cvdata::Pose::T_UPDATEFLAG

Possible update status for the pose data (finite and incremental) Semantics:.

- 1 flag for the finite data (mUpdateFlag) T_UPTODATE = World Ts have been updated more recently than P P_UPTODATE = P has been updated more recently than World Ts BOTH_UPTODATE = P and World Ts are currently synchronized RESET = P and World Ts have been reset to the default values (here is the same as BOTH_UPTODATE)

- 1 flag for the incremental data (mUpdateIncFlag) T_UPTODATE = Local, incremental Ts have been updated more recently than P P_UPTODATE = P has been updated more recently than incremental Ts BOTH_UPTODATE = P and incremental Ts are currently synchronized RESET = P=0; incremental Ts = Identity (here is used in order to avoid compositional update)

NOTE: for 1-link poses, world and local T are the same. But not for multi-link poses!

Enumerator:

  T_UPTODATE |
  P_UPTODATE |
  BOTH_UPTODATE |
  RESET |

enum opentl::core::cvdata::Pose::T_UPDATEMODE

Possible update modalities: ADDITIVE: finite and incremental pose values are added together (which makes T dirty and P up-to-date) COMPOSITIONAL (default): finite and incremental T matrices are multiplied together (which makes P dirty and T up-to-date) NOTE: after any kind of update, both incremental parameters are reset (dP=0, dT=I).

Enumerator:

  ADDITIVE |
  COMPOSITIONAL |

## Constructor & Destructor Documentation

opentl::core::cvdata::Pose::Pose | ( | opentl::core::cvdata::CvData::DataReprType | posetype,
|  | T_UPDATEMODE | updateMode |
| ) |  |  |

Constructor.

Parameters:

  | posetype | Input pose representation type (see the CvData types)
  | updateMode | Input update modality (default: compositional update)

virtual opentl::core::cvdata::Pose::~Pose | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

virtual void opentl::core::cvdata::Pose::additiveUpdate | ( |  | ) | `[protected, virtual]`

Add finite and incremental pose parameters for all links, store the result in mValue, and set mIncValue to 0.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual Pose* opentl::core::cvdata::Pose::clone | ( |  | ) | const`[pure virtual]`

Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::compositionalUpdate | ( |  | ) | `[protected, virtual]`

Multiply worldT and incT for all links, store the result in worldT, and reset incT.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::computePoseIncrement | ( | Pose & | refPose,
|  | math::Vector & | increment,
|  | bool | bModifyCurrentPose = `true` |
| ) |  |  | `[virtual]`

Compute the difference (incremental Pose vector) between a reference pose and this one.

Parameters:

  | refPose | Reference Pose vector (T0)
  | increment | Output incremental pose vector between reference and current Pose (dp)
  | bModifyCurrentPose | Whether to modify the current Pose or the reference one, for doing the computation NOTE: The modified Pose will need a warpUpdate afterwards (since the incremental data are non-zero anymore)! This is performed differently, according to the update rule: If the update is additive, the increment is simply the difference between the two mValues If the update is compositional, the increment is computed in three steps: For each link, do 1. getWorldT() of the reference pose -> T0 2. getWorldT() of this pose -> T 3. Take dT = inv(T0)*T, and setIncT() of this pose 4. getIncValue() of this pose -> dp

virtual void opentl::core::cvdata::Pose::copyPoseData | ( | const Pose & | pvalue | ) | `[protected, virtual]`

Internal function for the operator =.

Reimplemented in opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

void opentl::core::cvdata::Pose::createWorldData | ( | int | dimP,
|  | int | dof,
|  | int | nLinks = `1` |
| ) |  |  |

Allocate the world-related quantities (at construction time) NOTE 1: here we suppose to have already the information about all degrees of freedom, and internal poses (articulated models) Therefore, this function should be called right at the end of the constructor (or copy constructor) NOTE 2: the camera-related matrices cannot be allocated here, but only by the Warp class (we do not know how many cameras)!

Parameters:

  | dimP |
  | dof |

void opentl::core::cvdata::Pose::deleteWorldData | ( |  | ) |

This is called by the destructor.

int opentl::core::cvdata::Pose::dimension | ( |  | ) | const`[inline]`

Return the number of finite pose parameters.

int opentl::core::cvdata::Pose::dof | ( |  | ) | const`[inline]`

Return the number of incremental parameters (= actual degrees of freedom).

virtual bool opentl::core::cvdata::Pose::forcePoseLimits | ( |  | ) | `[virtual]`

Check the current pose against the limits, and force the overflowing parameters to the bounds.

Returns:
  true if the pose has been changed (i.e. it was beyond the limits)

Reimplemented in opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual double opentl::core::cvdata::Pose::getAngleX | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, and opentl::core::cvdata::PoseArticulated.

virtual double opentl::core::cvdata::Pose::getAngleY | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, and opentl::core::cvdata::PoseArticulated.

virtual double opentl::core::cvdata::Pose::getAngleZ | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, and opentl::core::cvdata::PoseArticulated.

std::vector<double>& opentl::core::cvdata::Pose::getCamK | ( | std::size_t | cameraIdx = `0` | ) | `[inline]`

Copy camera K matrix.

Parameters:

  | camK | Camera K (stored as a vector of double)
  | cameraIdx | Camera index

std::vector<double>& opentl::core::cvdata::Pose::getCamT | ( | std::size_t | cameraIdx = `0`,
|  | std::size_t | linkIdx = `0` |
| ) |  |  | const`[inline]`

Copy camera-related T matrix.

Parameters:

  | camT | Camera-to-object T (stored as a vector of double)
  | cameraIdx | Camera index
  | linkIdx | Link index

double opentl::core::cvdata::Pose::getCamTDepth | ( | std::size_t | cameraIdx = `0`,
|  | std::size_t | linkIdx = `0` |
| ) |  |  | const`[inline]`

double opentl::core::cvdata::Pose::getData | ( | std::size_t | index | ) | `[inline]`

void opentl::core::cvdata::Pose::getData | ( | math::Vector & | vec | ) | `[inline]`

Function to get the stored value information.

Parameters:

  | vec | Input and output vector with pose data

void opentl::core::cvdata::Pose::getIncData | ( | math::Vector & | vec | ) | `[inline]`

Function to copy the stored incremental pose information.

Parameters:

  | vec | Input and output vector with pose data

virtual void opentl::core::cvdata::Pose::getIncT | ( | opentl::math::Transform & | T,
|  | int | linkId = `0` |
| ) |  |  | `[inline, virtual]`

Function to get the stored value information.

Parameters:

  | T | Input and output incremental world T matrix
  | linkId | Input which link we refer to.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

std::vector<std::vector<double> >& opentl::core::cvdata::Pose::getJacScreen | ( | std::size_t | cameraIdx = `0`,
|  | std::size_t | linkIdx = `0` |
| ) |  |  | `[inline]`

Return camera T Jacobians (one matrix for each dof, stored as a vector of double).

Parameters:

  | cameraIdx | Camera index
  | linkIdx | Link index

bool opentl::core::cvdata::Pose::getJacScreenRefreshFlag | ( | std::size_t | cameraIdx = `0` | ) | `[inline]`

Return refresh flag for given camera Jacobians.

Parameters:

  | cameraIdx | Camera index

void opentl::core::cvdata::Pose::getJacT | ( | opentl::math::Transform & | jacT,
|  | std::size_t | dof,
|  | int | linkId = `0` |
| ) |  |  | `[inline]`

Function to get the stored value information.

Parameters:

  | T | output world T matrix
  | linkId | Input which link we refer to.

bool opentl::core::cvdata::Pose::getJacTRefreshFlag | ( |  | ) | const`[inline]`

Set the dirty flag for world T Jacobians.

std::vector<std::vector<opentl::math::Transform> >* opentl::core::cvdata::Pose::getJacTVector | ( |  | ) | `[inline]`

Get vector of world-T matrices.

void opentl::core::cvdata::Pose::getLieGen | ( | std::size_t | iD,
|  | opentl::math::Transform & | G |
| ) |  |  | `[inline]`

Function to get the i-th Lie generator.

virtual void opentl::core::cvdata::Pose::getLocalT | ( | opentl::math::Transform & | T,
|  | int | linkId = `0` |
| ) |  |  | `[inline, virtual]`

Function to get the finite T matrix.

Parameters:

  | T | output inter-link T matrix
  | linkId | Input which link we refer to.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

std::vector<opentl::math::Vector2>* opentl::core::cvdata::Pose::getPoseLimitsVector | ( |  | ) | `[inline]`

Get the pose limits.

virtual void opentl::core::cvdata::Pose::getRefT | ( | opentl::math::Transform & | refT,
|  | int | linkId = `0` |
| ) |  |  | const`[inline, virtual]`

Return the reference T matrix.

Parameters:

  | refT | input T matrix: this is pre-multiplied by the local T, to obtain the world T
  | linkId | Input which link we refer to.

bool opentl::core::cvdata::Pose::getRefTSetFlag | ( |  | ) | const`[inline]`

Get the flag, indicating whether the reference T matrix is set (different from I) or not.

virtual double opentl::core::cvdata::Pose::getScaleX | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, and opentl::core::cvdata::PoseArticulated.

virtual double opentl::core::cvdata::Pose::getScaleY | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, and opentl::core::cvdata::PoseArticulated.

virtual double opentl::core::cvdata::Pose::getScaleZ | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::PoseArticulated.

T_UPDATEFLAG opentl::core::cvdata::Pose::getUpdateFlag | ( |  | ) | const`[inline]`

Return the update flag for finite parameters.

T_UPDATEFLAG opentl::core::cvdata::Pose::getUpdateIncFlag | ( |  | ) | const`[inline]`

Return the update flag for finite parameters.

T_UPDATEMODE opentl::core::cvdata::Pose::getUpdateMode | ( |  | ) | const`[inline]`

Return Update mode of this Pose (additive/compositional).

void opentl::core::cvdata::Pose::getWorldT | ( | opentl::math::Transform & | T,
|  | int | linkId = `0` |
| ) |  |  | `[inline]`

Function to get the stored value information.

Parameters:

  | T | output world T matrix
  | linkId | Input which link we refer to.

std::vector<opentl::math::Transform>* opentl::core::cvdata::Pose::getWorldTVector | ( |  | ) | `[inline]`

Get vector of world-T matrices.

virtual double opentl::core::cvdata::Pose::getX | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.

virtual double opentl::core::cvdata::Pose::getY | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.

virtual double opentl::core::cvdata::Pose::getZ | ( |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.

virtual int opentl::core::cvdata::Pose::initFromPoints | ( | const math::Matrix & | bodyPoints,
|  | const math::Matrix & | screenPoints,
|  | const math::SquareMatrix & | intrinsicMat,
|  | const math::Vector * | linkIdx = `NULL` |
| ) |  |  | `[pure virtual]`

Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem").

Parameters:

  | bodyPoints | Input points in object space (3xN) or (2xN)
  | screenPoints | Input corresponding points in image space (2xN)
  | intrinsicMat | Input camera calibration matrix (3x3)
  | linkIdx | Input Link ID of each point (for articulated Poses only)

Returns:
  Error condition (0 = OK)

Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual int opentl::core::cvdata::Pose::initFromPointsAndLines | ( | const math::Matrix & | bodyPoints,
|  | const math::Matrix & | screenPoints,
|  | const math::Matrix & | bodyLines,
|  | const math::Matrix & | screenLines,
|  | const math::SquareMatrix & | intrinsicMat,
|  | const math::Vector * | linkIdxForPoint = `NULL`,
|  | const math::Vector * | linkIdxForLine = `NULL` |
| ) |  |  | `[pure virtual]`

Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.

Parameters:

  | bodyPoints | Input points in object space (3xN1) or (2xN1)
  | screenPoints | Input corresponding points in image space (2xN1)
  | bodyLines | Input line segments in object space (3x2*N2)
  | screenLines | Input corresponding lines in image space (3xN2 for 2D represantation)
  | intrinsicMat | Input camera calibration matrix (3x3)
  | linkIdxForPoint | Input Link ID of each point (for articulated Poses only)
  | linkIdxForLine | Input Link ID of each line (for articulated Poses only)
  | preProcessLines | for articulated poses, if the screenlines are already precossed before

Returns:
  Error condition (0 = OK)

Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::initLieAlgGen | ( |  | ) | `[protected, pure virtual]`

Function to generate Lie Algebra Generator matrices, required for calculation of Jacobians, based on a specific pose representation type.

Parameters:

  | mLieGen | STL vector to store matrices.

Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

int opentl::core::cvdata::Pose::links | ( |  | ) | const`[inline]`

Return link count. (= 1 for non-articulated objects).

virtual Pose& opentl::core::cvdata::Pose::operator= | ( | const Pose & | value | ) | `[virtual]`

Assignment operator.

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::poseUpdate | ( |  | ) | `[virtual]`

Do a pose update with the incremental parameters.

virtual void opentl::core::cvdata::Pose::resetData | ( |  | ) | `[virtual]`

Reset to 0 all parameters, and the update flag as well.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::resetIncData | ( |  | ) | `[virtual]`

Reset to 0 only the incremental parameters, and the update flag as well.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::resetRefT | ( | int | linkId = `-1` | ) | `[virtual]`

Reset the reference T matrix (to identity).

Parameters:

  | linkId | Input which link we refer to (-1 = reset all links) NOTE: This also resets the internal flag (to speed-up computations, we do not multiply by I!)

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::setAngleX | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::setAngleY | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::setAngleZ | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, and opentl::core::cvdata::PoseArticulated.

void opentl::core::cvdata::Pose::setCamK | ( | std::vector< double > & | camK,
|  | std::size_t | cameraIdx = `0` |
| ) |  |  | `[inline]`

Set camera K matrix.

Parameters:

  | camK | Camera K (stored as a vector of double)
  | cameraIdx | Camera index

void opentl::core::cvdata::Pose::setCamT | ( | std::vector< double > & | camT,
|  | std::size_t | cameraIdx = `0`,
|  | std::size_t | linkIdx = `0` |
| ) |  |  | `[inline]`

Set camera-related T matrix.

Parameters:

  | camT | Camera-to-object T (stored as a vector of double)
  | cameraIdx | Camera index
  | linkIdx | Link index

virtual void opentl::core::cvdata::Pose::setDataFromVec | ( | const math::Vector & | value | ) | `[virtual]`

Function to set the value of this pose.

Parameters:

  | value | Set data by vector.

Reimplemented in opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::setIncDataFromVec | ( | const math::Vector & | value | ) | `[virtual]`

Function to set the infinitesimal pose from the matrix.

Parameters:

  | value | Input inf. pose vector.

Reimplemented in opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

void opentl::core::cvdata::Pose::setJacScreenRefreshFlag | ( | bool | val,
|  | std::size_t | cameraIdx = `0` |
| ) |  |  | `[inline]`

Set refresh flag for given camera Jacobians.

Parameters:

  | cameraIdx | Camera index

void opentl::core::cvdata::Pose::setJacTRefreshFlag | ( | bool | flag | ) | `[inline]`

Set the dirty flag for world T Jacobians.

virtual void opentl::core::cvdata::Pose::setLocalIncT | ( | const std::vector< opentl::math::Transform > & | matT | ) | `[virtual]`

Set pose parameters by homog. transformation matrix data.

Parameters:

  | matT | Homog. transformation matrix.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::setLocalT | ( | const std::vector< opentl::math::Transform > & | matT | ) | `[virtual]`

Set pose parameters by homog. transformation matrix data.

Parameters:

  | matT | Homog. transformation matrix.
  | linkId | Update only one link (by default, link 0).

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::setPoseLimits | ( | std::vector< opentl::math::Vector2 > & | poseLimits | ) | `[virtual]`

Set the pose limits.

Reimplemented in opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::setRefT | ( | const opentl::math::Transform & | refT,
|  | int | linkId = `0` |
| ) |  |  | `[virtual]`

Set the reference T matrix.

Parameters:

  | refT | input T matrix: this is pre-multiplied by the local T, to obtain the world T
  | linkId | Input which link we refer to.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

void opentl::core::cvdata::Pose::setRefTSetFlag | ( | bool | flag | ) | `[inline]`

Set the flag, indicating whether the reference T matrix is set (different from I) or not.

virtual void opentl::core::cvdata::Pose::setScaleX | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::setScaleY | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::setScaleZ | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::PoseArticulated.

void opentl::core::cvdata::Pose::setUpdateFlag | ( | T_UPDATEFLAG | flag | ) | `[inline]`

Set the update flag for finite parameters.

void opentl::core::cvdata::Pose::setUpdateIncFlag | ( | T_UPDATEFLAG | flag | ) | `[inline]`

Set the update flag for finite parameters.

virtual void opentl::core::cvdata::Pose::setX | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::setY | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::setZ | ( | double |  | ) | `[inline, virtual]`

Reimplemented in opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.

virtual void opentl::core::cvdata::Pose::updateAdditiveJacT | ( |  | ) | `[inline, protected, virtual]`

Jacobian of T matrix, for the additive case: J = dT/dp.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::updateCompositionalJacT | ( |  | ) | `[protected, virtual]`

Jacobian of T matrix, for the compositional case (using Lie algebras): J(i) = T*G{i} with G(i) the Lie generator for the i-th degree of freedom dp(i).

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::updateDataFromLocalT | ( |  | ) | `[protected, pure virtual]`

Compute pose parameters from homog. transformation matrix data.

Parameters:

  | linkId | Update only one link (by default, link 0).

Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::updateIncDataFromT | ( |  | ) | `[protected, virtual]`

Function to set the infinitesimal pose, as the logarithm of small homog. transformation matrix T.

Parameters:

  | linkId | Input which link we refer to.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::updateIncTFromData | ( |  | ) | `[protected, virtual]`

Function to get the incremental homog. transformation matrix T.

Parameters:

  | matT | Return incremental matrix T.
  | linkId | Input which link we refer to.

Reimplemented in opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

virtual void opentl::core::cvdata::Pose::updateJacT | ( |  | ) | `[virtual]`

Function to update the pose derivatives of homog. transformation matrix T.

virtual void opentl::core::cvdata::Pose::updateWorldTFromData | ( |  | ) | `[protected, pure virtual]`

Function to get the pose as homog. transformation matrix T.

Parameters:

  | linkId | If (-1) compute all link matrices

Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dDeformableMesh, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dRotoXYTranslation, opentl::core::cvdata::Pose3dRotoXZTranslation, opentl::core::cvdata::Pose3dRotoYZTranslation, opentl::core::cvdata::Pose3dRotoZTranslation, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::PoseArticulated, and opentl::core::cvdata::PoseMultiPartSynchronous.

## Friends And Related Function Documentation

friend class modelprojection::Warp`[friend]`

## Member Data Documentation

int opentl::core::cvdata::Pose::mDim`[protected]`

Overall number of finite pose parameters (mValue) NOTE: for articulated poses, this is the sum of dimensions for all internal poses.

unsigned int opentl::core::cvdata::Pose::mIncDim`[protected]`

Overall number of Lie generators (= actual degrees of freedom) NOTE: for articulated poses, this is the sum of degrees of freedom for all internal poses.

std::vector<opentl::math::Transform>* opentl::core::cvdata::Pose::mLieGen`[protected]`

Lie generator matrices NOTE: for articulated poses, this is just a collection of all Lie generators of internal poses!