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::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::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.

List of all members.

Public Types


Public Member Functions

virtual Poseclone () 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.
virtual 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)!
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 Poseoperator= (const Pose &value)
 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.
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

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 

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::PoseArticulated.

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

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::PoseArticulated.

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

void opentl::core::cvdata::Pose::copyPoseData ( const Pose pvalue  )  [inline, protected]

Internal function for the operator =.

virtual void opentl::core::cvdata::Pose::createWorldData ( int  dimP,
int  dof,
int  nLinks = 1 
) [virtual]

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

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.

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

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

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

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::PoseArticulated.

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::PoseArticulated.

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]

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

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

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]

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

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

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]

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::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::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.

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

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]

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::PoseArticulated.

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::PoseArticulated.

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::PoseArticulated.

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

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

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

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.

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.

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::PoseArticulated.

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::PoseArticulated.

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

Set the pose limits.

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

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::PoseArticulated.

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]

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

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

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]

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

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

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::PoseArticulated.

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::PoseArticulated.

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

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::PoseArticulated.

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::PoseArticulated.

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]


Friends And Related Function Documentation

friend class modelprojection::Warp [friend]


Member Data Documentation

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.

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


Generated on Fri Jul 31 17:38:38 2009 for OpenTL by  doxygen 1.5.8