Inherits opentl::core::cvdata::Pose.
Public Member Functions | |
virtual Pose2dDeformableMesh * | clone () 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 Pose & | operator= (const Pose &value) |
Assignment operator. | |
virtual Pose2dDeformableMesh & | operator= (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::Vector * | mBaseVertices |
Base 2D mesh vertices (= zero pose), stacked as (x1,y1,x2,y2,...). | |
math::Matrix * | mDeformationModes |
Contour deformation modes (linear): V = V0 + M*p where V0 is the mBaseVertices list, M the deformation modes, and p the pose parameters. | |
math::Matrix * | mTriangleIndices |
Triangular indices in the base vertices list NOTE: They must be multiplied by 2, in order to access the right coordinates in mBaseVertices! |
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.
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.
virtual void opentl::core::cvdata::Pose2dDeformableMesh::additiveUpdate | ( | ) | [protected, virtual] |
virtual Pose2dDeformableMesh* opentl::core::cvdata::Pose2dDeformableMesh::clone | ( | ) | const [virtual] |
Implements opentl::core::cvdata::Pose.
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.
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] |
virtual void opentl::core::cvdata::Pose2dDeformableMesh::getRefT | ( | math::Transform & | refT, | |
int | linkId = 0 | |||
) | [inline, virtual] |
Return the reference T matrix.
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").
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) |
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.
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) |
Implements opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::Pose2dDeformableMesh::initLieAlgGen | ( | ) | [inline, protected, virtual] |
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).
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.
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.
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.
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] |
virtual void opentl::core::cvdata::Pose2dDeformableMesh::updateCompositionalJacT | ( | ) | [inline, virtual] |
virtual void opentl::core::cvdata::Pose2dDeformableMesh::updateDataFromLocalT | ( | ) | [protected, virtual] |
Set a single INTER-LINK transform, by the T matrix.
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.
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.
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.
linkId | link we refer to. |
Implements opentl::core::cvdata::Pose.
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!