opentl::core::cvdata::Pose2dDeformableMesh Class Reference

Implemented class for storing 2D/3D multi-part object with synchronized motion. More...

Inherits opentl::core::cvdata::Pose.

List of all members.

Public Member Functions

virtual Pose2dDeformableMeshclone () const
virtual void getIncT (math::Transform &incT, int linkId=0)
 Function to get the stored value information.
virtual void getLocalT (math::Transform &T, int linkId=0)
 Function to get the local, finite T matrix.
virtual void getRefT (math::Transform &refT, int linkId=0)
 Return the reference T matrix.
virtual int initFromPoints (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdx=NULL)
 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)
 Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.
virtual Poseoperator= (const Pose &value)
 Assignment operator.
virtual Pose2dDeformableMeshoperator= (const Pose2dDeformableMesh &value)
 Pose2dDeformableMesh (const Pose2dDeformableMesh &value)
 Constructor. Initialize object with existing value object.
 Pose2dDeformableMesh (std::vector< math::Vector2 > *verticesList, std::vector< std::vector< std::size_t > > *trianglesList, math::Matrix *deformationModes, opentl::core::cvdata::Pose::T_UPDATEMODE updateMode, std::vector< math::Vector2 > *poseLimits=NULL)
 Default constructor.
virtual void resetData ()
 Reset to 0 the incremental pose parameters, and the update flag as well.
virtual void resetIncData ()
 Reset to 0 the incremental pose parameters, and the update flag as well.
virtual void resetRefT (int linkId=-1)
 Reset the reference T matrices (to identity).
virtual void setLocalIncT (const std::vector< math::Transform > &matT)
 Set pose parameters by homog. transformation matrix data.
virtual void setLocalT (const std::vector< math::Transform > &matT)
 Set pose parameters by homog. transformation matrix data.
virtual void setRefT (const math::Transform &refT, int linkId=0)
 Set the reference T matrix.
virtual void updateAdditiveJacT ()
 Jacobians of T matrix, in the additive case.
virtual void updateCompositionalJacT ()
 Jacobians of T matrix, in the compositional case.
virtual ~Pose2dDeformableMesh ()
 Destructor.

Protected Member Functions

virtual void additiveUpdate ()
 Add P and incP for all links.
virtual void compositionalUpdate ()
 Multiply worldT and expT for all links, store the result in worldT and reset expT.
virtual void initLieAlgGen ()
 Initialize Lie algebra generators for all INTER-LINK poses.
virtual void updateDataFromLocalT ()
 Set a single INTER-LINK transform, by the T matrix.
void updateIncDataFromT ()
 Set a single INTER-LINK incremental transform, by the T matrix.
void updateIncTFromData ()
 Function to get the incremental homog. transformation matrix T of link ID.
virtual void updateWorldTFromData ()
 Function to get the WORLD homog. transformation matrix T of link ID.

Protected Attributes

math::VectormBaseVertices
 Base 2D mesh vertices (= zero pose), stacked as (x1,y1,x2,y2,...).
math::MatrixmDeformationModes
 Contour deformation modes (linear): V = V0 + M*p where V0 is the mBaseVertices list, M the deformation modes, and p the pose parameters.
math::MatrixmTriangleIndices
 Triangular indices in the base vertices list NOTE: They must be multiplied by 2, in order to access the right coordinates in mBaseVertices!


Detailed Description

Implemented class for storing 2D/3D multi-part object with synchronized motion.

Author:
G. Panin <panin@in.tum.de>

Constructor & Destructor Documentation

opentl::core::cvdata::Pose2dDeformableMesh::Pose2dDeformableMesh ( std::vector< math::Vector2 > *  verticesList,
std::vector< std::vector< std::size_t > > *  trianglesList,
math::Matrix deformationModes,
opentl::core::cvdata::Pose::T_UPDATEMODE  updateMode,
std::vector< math::Vector2 > *  poseLimits = NULL 
)

Default constructor.

Parameters:
baseVertices List of 2D vertices (base shape)
trianglesList List of triangular faces (each one is triplet of vertex indices)
deformationModes Matrix containing the deformation modes (columns)
poseLimits Pose limits

opentl::core::cvdata::Pose2dDeformableMesh::Pose2dDeformableMesh ( const Pose2dDeformableMesh value  ) 

Constructor. Initialize object with existing value object.

virtual opentl::core::cvdata::Pose2dDeformableMesh::~Pose2dDeformableMesh (  )  [virtual]

Destructor.


Member Function Documentation

virtual void opentl::core::cvdata::Pose2dDeformableMesh::additiveUpdate (  )  [protected, virtual]

Add P and incP for all links.

Reimplemented from opentl::core::cvdata::Pose.

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

virtual void opentl::core::cvdata::Pose2dDeformableMesh::compositionalUpdate (  )  [inline, protected, virtual]

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

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::getIncT ( math::Transform incT,
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 from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::getLocalT ( math::Transform T,
int  linkId = 0 
) [virtual]

Function to get the local, finite T matrix.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::getRefT ( math::Transform refT,
int  linkId = 0 
) [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.

virtual int opentl::core::cvdata::Pose2dDeformableMesh::initFromPoints ( const math::Matrix bodyPoints,
const math::Matrix screenPoints,
const math::SquareMatrix intrinsicMat,
const math::Vector linkIdx = NULL 
) [inline, 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)

Implements opentl::core::cvdata::Pose.

virtual int opentl::core::cvdata::Pose2dDeformableMesh::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 
) [inline, 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)
Returns:
Error condition (0 = OK)

Implements opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::initLieAlgGen (  )  [inline, protected, virtual]

Initialize Lie algebra generators for all INTER-LINK poses.

Implements opentl::core::cvdata::Pose.

virtual Pose& opentl::core::cvdata::Pose2dDeformableMesh::operator= ( const Pose value  )  [inline, virtual]

Assignment operator.

Reimplemented from opentl::core::cvdata::Pose.

virtual Pose2dDeformableMesh& opentl::core::cvdata::Pose2dDeformableMesh::operator= ( const Pose2dDeformableMesh value  )  [inline, virtual]

virtual void opentl::core::cvdata::Pose2dDeformableMesh::resetData (  )  [virtual]

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

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::resetIncData (  )  [virtual]

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

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::resetRefT ( int  linkId = -1  )  [inline, virtual]

Reset the reference T matrices (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 from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::setLocalIncT ( const std::vector< math::Transform > &  matT  )  [inline, virtual]

Set pose parameters by homog. transformation matrix data.

Parameters:
matT Homog. transformation matrix.
linkId Link ID.

Reimplemented from opentl::core::cvdata::Pose.

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

Set pose parameters by homog. transformation matrix data.

Parameters:
matT Homog. transformation matrix.
linkId Link ID is NOT USED: all links are updated with the same T matrix.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::setRefT ( const math::Transform refT,
int  linkId = 0 
) [inline, 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 from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::updateAdditiveJacT (  )  [virtual]

Jacobians of T matrix, in the additive case.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::updateCompositionalJacT (  )  [inline, virtual]

Jacobians of T matrix, in the compositional case.

Reimplemented from opentl::core::cvdata::Pose.

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

Set a single INTER-LINK transform, by the T matrix.

Parameters:
linkId link we refer to.

Implements opentl::core::cvdata::Pose.

void opentl::core::cvdata::Pose2dDeformableMesh::updateIncDataFromT (  )  [inline, protected, virtual]

Set a single INTER-LINK incremental transform, by the T matrix.

Parameters:
linkId link we refer to.

Reimplemented from opentl::core::cvdata::Pose.

void opentl::core::cvdata::Pose2dDeformableMesh::updateIncTFromData (  )  [inline, protected, virtual]

Function to get the incremental homog. transformation matrix T of link ID.

Parameters:
linkId link we refer to.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose2dDeformableMesh::updateWorldTFromData (  )  [protected, virtual]

Function to get the WORLD homog. transformation matrix T of link ID.

Parameters:
linkId link we refer to.

Implements opentl::core::cvdata::Pose.


Member Data Documentation

Base 2D mesh vertices (= zero pose), stacked as (x1,y1,x2,y2,...).

Contour deformation modes (linear): V = V0 + M*p where V0 is the mBaseVertices list, M the deformation modes, and p the pose parameters.

Triangular indices in the base vertices list NOTE: They must be multiplied by 2, in order to access the right coordinates in mBaseVertices!


Generated on Thu Jun 10 21:08:09 2010 for OpenTL by  doxygen 1.5.8