Inherits opentl::core::cvdata::Pose.
Public Member Functions | |
virtual PoseArticulated * | clone () const |
virtual double | getAngleX () |
virtual double | getAngleY () |
virtual double | getAngleZ () |
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 (= inter-link). | |
virtual void | getRefT (math::Transform &refT, int linkId=0) |
Return the reference T matrix. | |
virtual double | getScaleX () |
virtual double | getScaleY () |
virtual double | getScaleZ () |
cvdata::Pose * | getSinglePose (int linkId) const |
Return the single INTER-LINK Pose class, for a given link. | |
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) |
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 PoseArticulated & | operator= (const PoseArticulated &value) |
PoseArticulated (const PoseArticulated &value) | |
Constructor. Initialize object with existing value object. | |
PoseArticulated (opentl::core::cvdata::Skeleton *skel, opentl::core::cvdata::CvData::DataReprClass poseClass, 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 | setAngleX (double sX) |
virtual void | setAngleY (double sY) |
virtual void | setAngleZ (double sZ) |
virtual void | setDataFromVec (const math::Vector &value) |
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)! | |
virtual void | setIncDataFromVec (const math::Vector &value) |
Set INTER-LINK incremental T matrices, by using a global vector. | |
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 | setScaleX (double sX) |
virtual void | setScaleY (double sY) |
virtual void | setScaleZ (double sZ) |
virtual void | setX (double X) |
virtual void | setY (double Y) |
virtual void | setZ (double Z) |
virtual void | updateAdditiveJacT () |
Jacobians of T matrix, in the additive case. | |
virtual void | updateCompositionalJacT () |
Function to get the pose derivatives as homog. transformation matrices, mJacT. | |
void | updateFromRootPose () |
virtual | ~PoseArticulated () |
Destructor. | |
Protected Member Functions | |
virtual void | additiveUpdate () |
Perform additive updates for all links. | |
virtual void | compositionalUpdate () |
Perform compositional updates for all links. | |
virtual bool | forcePoseLimits () |
Check the current pose against the limits, and force the overflowing parameters to the bounds. | |
virtual void | initLieAlgGen () |
Initialize Lie algebra generators for all INTER-LINK poses. | |
virtual void | setPoseLimits (std::vector< math::Vector2 > &poseLimits) |
Set the pose limits. | |
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 | |
std::vector< cvdata::Pose * > | mPoses |
List of poses (=skeleton nodes). | |
opentl::core::cvdata::Skeleton * | mSkel |
Pointer to the ShapeAppearance skeleton. |
opentl::core::cvdata::PoseArticulated::PoseArticulated | ( | opentl::core::cvdata::Skeleton * | skel, | |
opentl::core::cvdata::CvData::DataReprClass | poseClass, | |||
opentl::core::cvdata::Pose::T_UPDATEMODE | updateMode, | |||
std::vector< math::Vector2 > * | poseLimits = NULL | |||
) |
Default constructor.
skel | Skeleton model (required) | |
poseClass | It can be POSE_2D or POSE_3D. Reason: the skeleton can contain EITHER 2D OR 3D poses, but not both types! | |
poseLimits | (optional) Upper and lower bounds for internal pose parameters (finite P values) |
opentl::core::cvdata::PoseArticulated::PoseArticulated | ( | const PoseArticulated & | value | ) |
Constructor. Initialize object with existing value object.
virtual opentl::core::cvdata::PoseArticulated::~PoseArticulated | ( | ) | [virtual] |
Destructor.
virtual void opentl::core::cvdata::PoseArticulated::additiveUpdate | ( | ) | [protected, virtual] |
virtual PoseArticulated* opentl::core::cvdata::PoseArticulated::clone | ( | ) | const [virtual] |
Implements opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::compositionalUpdate | ( | ) | [protected, virtual] |
virtual bool opentl::core::cvdata::PoseArticulated::forcePoseLimits | ( | ) | [protected, virtual] |
Check the current pose against the limits, and force the overflowing parameters to the bounds.
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getAngleX | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getAngleY | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getAngleZ | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::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::PoseArticulated::getLocalT | ( | math::Transform & | T, | |
int | linkId = 0 | |||
) | [inline, virtual] |
Function to get the local, finite T matrix (= inter-link).
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::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 double opentl::core::cvdata::PoseArticulated::getScaleX | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getScaleY | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getScaleZ | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
cvdata::Pose* opentl::core::cvdata::PoseArticulated::getSinglePose | ( | int | linkId | ) | const [inline] |
Return the single INTER-LINK Pose class, for a given link.
virtual double opentl::core::cvdata::PoseArticulated::getX | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getY | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual double opentl::core::cvdata::PoseArticulated::getZ | ( | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual int opentl::core::cvdata::PoseArticulated::initFromPoints | ( | const math::Matrix & | bodyPoints, | |
const math::Matrix & | screenPoints, | |||
const math::SquareMatrix & | intrinsicMat, | |||
const math::Vector * | linkIdx = NULL | |||
) | [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::PoseArticulated::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 | |||
) | [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::PoseArticulated::initLieAlgGen | ( | ) | [protected, virtual] |
virtual PoseArticulated& opentl::core::cvdata::PoseArticulated::operator= | ( | const PoseArticulated & | value | ) | [virtual] |
virtual void opentl::core::cvdata::PoseArticulated::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::PoseArticulated::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::PoseArticulated::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::PoseArticulated::setAngleX | ( | double | sX | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setAngleY | ( | double | sY | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setAngleZ | ( | double | sZ | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setDataFromVec | ( | const math::Vector & | value | ) | [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)!
Set INTER-LINK T matrices, by using a global vector.
value | Global or single-link pose vector (inc. representation) | |
linkId | Update a single link, or all the body (-1) |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setIncDataFromVec | ( | const math::Vector & | value | ) | [virtual] |
Set INTER-LINK incremental T matrices, by using a global vector.
value | Global or single-link pose vector (inc. representation) | |
linkId | Update a single link, or all the body (-1) |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setLocalIncT | ( | const std::vector< math::Transform > & | matT | ) | [inline, virtual] |
Set pose parameters by homog. transformation matrix data.
matT | Homog. transformation matrix. | |
linkId | Update only one link (by default, link 0). |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setLocalT | ( | const std::vector< math::Transform > & | matT | ) | [inline, virtual] |
Set pose parameters by homog. transformation matrix data.
matT | Homog. transformation matrix. | |
linkId | Update only one link (by default, link 0). |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setPoseLimits | ( | std::vector< math::Vector2 > & | poseLimits | ) | [protected, virtual] |
virtual void opentl::core::cvdata::PoseArticulated::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::PoseArticulated::setScaleX | ( | double | sX | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setScaleY | ( | double | sY | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setScaleZ | ( | double | sZ | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setX | ( | double | X | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setY | ( | double | Y | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::setZ | ( | double | Z | ) | [inline, virtual] |
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::updateAdditiveJacT | ( | ) | [inline, virtual] |
virtual void opentl::core::cvdata::PoseArticulated::updateCompositionalJacT | ( | ) | [virtual] |
Function to get the pose derivatives as homog. transformation matrices, mJacT.
Reimplemented from opentl::core::cvdata::Pose.
virtual void opentl::core::cvdata::PoseArticulated::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::PoseArticulated::updateFromRootPose | ( | ) | [inline] |
void opentl::core::cvdata::PoseArticulated::updateIncDataFromT | ( | ) | [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::PoseArticulated::updateIncTFromData | ( | ) | [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::PoseArticulated::updateWorldTFromData | ( | ) | [protected, virtual] |
Function to get the WORLD homog. transformation matrix T of link ID.
linkId | link we refer to. NOTE: In this function implementation, the global data vector is not used. But the name must stay the same of the abstract class! |
Implements opentl::core::cvdata::Pose.
std::vector<cvdata::Pose *> opentl::core::cvdata::PoseArticulated::mPoses [protected] |
List of poses (=skeleton nodes).
Pointer to the ShapeAppearance skeleton.