sva::PTransform< T > Class Template Reference

#include <SpaceVecAlg/fwd.h>

Public Member Functions

 PTransform ()
 Default constructor. Rotation and translation are uninitialized. More...
 
template<typename T2 >
 PTransform (const PTransform< T2 > &pt)
 Copy constructor. More...
 
 PTransform (const matrix3_t &rot, const vector3_t &trans)
 
 PTransform (const quaternion_t &rot, const vector3_t &trans)
 
 PTransform (const quaternion_t &rot)
 
 PTransform (const matrix3_t &rot)
 
 PTransform (const vector3_t &trans)
 
const matrix3_t & rotation () const
 
matrix3_t & rotation ()
 
const vector3_t & translation () const
 
vector3_t & translation ()
 
matrix6_t matrix () const
 
matrix6_t dualMatrix () const
 
template<typename T2 >
PTransform< T2 > cast () const
 
PTransform< T > operator* (const PTransform< T > &pt) const
 
MotionVec< T > operator* (const MotionVec< T > &mv) const
 
Eigen::Vector3< T > angularMul (const MotionVec< T > &mv) const
 
Eigen::Vector3< T > linearMul (const MotionVec< T > &mv) const
 
template<typename Derived >
void mul (const Eigen::MatrixBase< Derived > &mv, Eigen::MatrixBase< Derived > &result) const
 
MotionVec< T > invMul (const MotionVec< T > &mv) const
 
Eigen::Vector3< T > angularInvMul (const MotionVec< T > &mv) const
 
Eigen::Vector3< T > linearInvMul (const MotionVec< T > &mv) const
 
template<typename Derived >
void invMul (const Eigen::MatrixBase< Derived > &mv, Eigen::MatrixBase< Derived > &result) const
 
ForceVec< T > dualMul (const ForceVec< T > &fv) const
 
Eigen::Vector3< T > coupleDualMul (const ForceVec< T > &fv) const
 
Eigen::Vector3< T > forceDualMul (const ForceVec< T > &fv) const
 
template<typename Derived >
void dualMul (const Eigen::MatrixBase< Derived > &fv, Eigen::MatrixBase< Derived > &result) const
 
ForceVec< T > transMul (const ForceVec< T > &fv) const
 
Eigen::Vector3< T > coupleTransMul (const ForceVec< T > &fv) const
 
Eigen::Vector3< T > forceTransMul (const ForceVec< T > &fv) const
 
template<typename Derived >
void transMul (const Eigen::MatrixBase< Derived > &fv, Eigen::MatrixBase< Derived > &result) const
 
RBInertia< T > dualMul (const RBInertia< T > &rbI) const
 
RBInertia< T > transMul (const RBInertia< T > &rbI) const
 
ABInertia< T > dualMul (const ABInertia< T > &rbI) const
 
ABInertia< T > transMul (const ABInertia< T > &rbI) const
 
PTransform< T > inv () const
 
bool operator== (const PTransform< T > &pt) const
 
bool operator!= (const PTransform< T > &pt) const
 

Static Public Member Functions

static PTransform< T > Identity ()
 Identity transformation. More...
 

Detailed Description

template<typename T>
class sva::PTransform< T >

Plücker transform compact representation. Use 3D matrix as rotation internal representation. Quaternion are inversed as they must be expressed in successor frame. See Roy Featherstone «Rigid Body Dynamics Algorithms» page 247.

Constructor & Destructor Documentation

◆ PTransform() [1/7]

template<typename T >
sva::PTransform< T >::PTransform ( )
inline

Default constructor. Rotation and translation are uninitialized.

◆ PTransform() [2/7]

template<typename T >
template<typename T2 >
sva::PTransform< T >::PTransform ( const PTransform< T2 > &  pt)
inline

Copy constructor.

◆ PTransform() [3/7]

template<typename T >
sva::PTransform< T >::PTransform ( const matrix3_t &  rot,
const vector3_t &  trans 
)
inline
Parameters
rotRotation matrix.
transTranslation vector.

◆ PTransform() [4/7]

template<typename T >
sva::PTransform< T >::PTransform ( const quaternion_t &  rot,
const vector3_t &  trans 
)
inline
Parameters
rotRotation quaternion.
transTranslation vector.

◆ PTransform() [5/7]

template<typename T >
sva::PTransform< T >::PTransform ( const quaternion_t &  rot)
inline

Rotation only transform.

Parameters
rotRotation quaternion.

◆ PTransform() [6/7]

template<typename T >
sva::PTransform< T >::PTransform ( const matrix3_t &  rot)
inline

Rotation only transform.

Parameters
rotRotation matrix.

◆ PTransform() [7/7]

template<typename T >
sva::PTransform< T >::PTransform ( const vector3_t &  trans)
inline

Translation only transform.

Parameters
transTranslation vector.

Member Function Documentation

◆ angularInvMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::angularInvMul ( const MotionVec< T > &  mv) const
inline
Returns
compute angular part of
See also
invMul

◆ angularMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::angularMul ( const MotionVec< T > &  mv) const
inline
Returns
compute angular part of
See also
operator*(const MotionVec<T>& mv) const

◆ cast()

template<typename T >
template<typename T2 >
PTransform<T2> sva::PTransform< T >::cast ( ) const
inline

◆ coupleDualMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::coupleDualMul ( const ForceVec< T > &  fv) const
inline
Returns
compute couple part of
See also
dualMul

◆ coupleTransMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::coupleTransMul ( const ForceVec< T > &  fv) const
inline
Returns
compute couple part of
See also
transMul

◆ dualMatrix()

template<typename T >
matrix6_t sva::PTransform< T >::dualMatrix ( ) const
inline
Returns
Non compact dual Plücker transformation matrix.

◆ dualMul() [1/4]

template<typename T >
ABInertia< T > sva::PTransform< T >::dualMul ( const ABInertia< T > &  rbI) const
inline
Returns
X*IX^-1

◆ dualMul() [2/4]

template<typename T >
template<typename Derived >
void sva::PTransform< T >::dualMul ( const Eigen::MatrixBase< Derived > &  fv,
Eigen::MatrixBase< Derived > &  result 
) const
inline
See also
dualMul

◆ dualMul() [3/4]

template<typename T >
ForceVec< T > sva::PTransform< T >::dualMul ( const ForceVec< T > &  fv) const
inline
Returns
X*v

◆ dualMul() [4/4]

template<typename T >
RBInertia< T > sva::PTransform< T >::dualMul ( const RBInertia< T > &  rbI) const
inline
Returns
X*IX^-1

◆ forceDualMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::forceDualMul ( const ForceVec< T > &  fv) const
inline
Returns
compute force part of
See also
dualMul

◆ forceTransMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::forceTransMul ( const ForceVec< T > &  fv) const
inline
Returns
compute force part of
See also
transMul

◆ Identity()

template<typename T >
static PTransform<T> sva::PTransform< T >::Identity ( )
inlinestatic

Identity transformation.

◆ inv()

template<typename T >
PTransform<T> sva::PTransform< T >::inv ( ) const
inline
Returns
Inverse Plücker transformation.

◆ invMul() [1/2]

template<typename T >
template<typename Derived >
void sva::PTransform< T >::invMul ( const Eigen::MatrixBase< Derived > &  mv,
Eigen::MatrixBase< Derived > &  result 
) const
inline
See also
invMul

◆ invMul() [2/2]

template<typename T >
MotionVec< T > sva::PTransform< T >::invMul ( const MotionVec< T > &  mv) const
inline
Returns
X^-1 v

◆ linearInvMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::linearInvMul ( const MotionVec< T > &  mv) const
inline
Returns
compute linear part of
See also
invMul

◆ linearMul()

template<typename T >
Eigen::Vector3< T > sva::PTransform< T >::linearMul ( const MotionVec< T > &  mv) const
inline
Returns
compute linear part of
See also
operator*(const MotionVec<T>& mv) const

◆ matrix()

template<typename T >
matrix6_t sva::PTransform< T >::matrix ( ) const
inline
Returns
Non compact Plücker transformation matrix.

◆ mul()

template<typename T >
template<typename Derived >
void sva::PTransform< T >::mul ( const Eigen::MatrixBase< Derived > &  mv,
Eigen::MatrixBase< Derived > &  result 
) const
inline

◆ operator!=()

template<typename T >
bool sva::PTransform< T >::operator!= ( const PTransform< T > &  pt) const
inline

◆ operator*() [1/2]

template<typename T >
MotionVec< T > sva::PTransform< T >::operator* ( const MotionVec< T > &  mv) const
inline
Returns
Xv

◆ operator*() [2/2]

template<typename T >
PTransform<T> sva::PTransform< T >::operator* ( const PTransform< T > &  pt) const
inline
Returns
X*X

◆ operator==()

template<typename T >
bool sva::PTransform< T >::operator== ( const PTransform< T > &  pt) const
inline

◆ rotation() [1/2]

template<typename T >
matrix3_t& sva::PTransform< T >::rotation ( )
inline
Returns
Rotation matrix.

◆ rotation() [2/2]

template<typename T >
const matrix3_t& sva::PTransform< T >::rotation ( ) const
inline
Returns
Rotation matrix.

◆ translation() [1/2]

template<typename T >
vector3_t& sva::PTransform< T >::translation ( )
inline
Returns
Translation vector.

◆ translation() [2/2]

template<typename T >
const vector3_t& sva::PTransform< T >::translation ( ) const
inline
Returns
Translation vector.

◆ transMul() [1/4]

template<typename T >
ABInertia< T > sva::PTransform< T >::transMul ( const ABInertia< T > &  rbI) const
inline
Returns
XtIX

◆ transMul() [2/4]

template<typename T >
template<typename Derived >
void sva::PTransform< T >::transMul ( const Eigen::MatrixBase< Derived > &  fv,
Eigen::MatrixBase< Derived > &  result 
) const
inline
See also
transMul

◆ transMul() [3/4]

template<typename T >
ForceVec< T > sva::PTransform< T >::transMul ( const ForceVec< T > &  fv) const
inline
Returns
Xtv

◆ transMul() [4/4]

template<typename T >
RBInertia< T > sva::PTransform< T >::transMul ( const RBInertia< T > &  rbI) const
inline
Returns
XtIX

The documentation for this class was generated from the following files: