Simbody  3.7
SimTK::InverseTransform_< P > Class Template Reference

Transform from frame B to frame F, but with the internal representation inverted. More...

Public Member Functions

 InverseTransform_ ()
 Default constructor produces an identity transform. More...
 
 operator Transform_< P > () const
 Implicit conversion from InverseTransform_ to Transform_. More...
 
InverseTransform_operator= (const Transform_< P > &X)
 
const Transform_< P > & invert () const
 
Transform_< P > & updInvert ()
 
const Transform_< P > & operator~ () const
 
Transform_< P > & operator~ ()
 
Transform_< P > compose (const Transform_< P > &X_FY) const
 
Transform_< P > compose (const InverseTransform_< P > &X_FY) const
 
Vec< 3, P > xformFrameVecToBase (const Vec< 3, P > &vF) const
 
Vec< 3, P > xformBaseVecToFrame (const Vec< 3, P > &vB) const
 
Vec< 3, P > shiftFrameStationToBase (const Vec< 3, P > &sF) const
 
Vec< 3, P > shiftBaseStationToFrame (const Vec< 3, P > &sB) const
 
const InverseRotation_< P > & R () const
 
InverseRotation_< P > & updR ()
 
const InverseRotation_< P >::ColType & x () const
 
const InverseRotation_< P >::ColType & y () const
 
const InverseRotation_< P >::ColType & z () const
 
const Rotation_< P > & RInv () const
 
Rotation_< P > & updRInv ()
 
Vec< 3, P > p () const
 Calculate the actual translation vector at a cost of 18 flops. More...
 
void setP (const Vec< 3, P > &p_BF)
 
const Vec< 3, P > & pInv () const
 
void setPInv (const Vec< 3, P > &p)
 
Mat< 3, 4, P > toMat34 () const
 For compatibility with Transform_. More...
 
Mat< 4, 4, P > toMat44 () const
 Return the equivalent 4x4 transformation matrix. More...
 
Vec< 3, P > T () const
 

Related Functions

(Note that these are not member functions.)

template<class P >
std::ostream & operator<< (std::ostream &, const InverseTransform_< P > &)
 Generate formatted output of an InverseTransform to an output stream. More...
 

Detailed Description

template<class P>
class SimTK::InverseTransform_< P >

Transform from frame B to frame F, but with the internal representation inverted.

That is, we store R*,p* here but the transform this represents is

        B F    [       |   ]
 X_BF =  X   = [   R   | p ]   where R=~(R*), p = - ~(R*)(p*).
               [.......|...]
               [ 0 0 0   1 ] 

Constructor & Destructor Documentation

◆ InverseTransform_()

template<class P>
SimTK::InverseTransform_< P >::InverseTransform_ ( )
inline

Default constructor produces an identity transform.

Member Function Documentation

◆ operator Transform_< P >()

template<class P>
SimTK::InverseTransform_< P >::operator Transform_< P > ( ) const
inline

Implicit conversion from InverseTransform_ to Transform_.

◆ operator=()

template<class P>
InverseTransform_& SimTK::InverseTransform_< P >::operator= ( const Transform_< P > &  X)
inline

◆ invert()

template<class P>
const Transform_<P>& SimTK::InverseTransform_< P >::invert ( ) const
inline

◆ updInvert()

template<class P>
Transform_<P>& SimTK::InverseTransform_< P >::updInvert ( )
inline

◆ operator~() [1/2]

template<class P>
const Transform_<P>& SimTK::InverseTransform_< P >::operator~ ( ) const
inline

◆ operator~() [2/2]

template<class P>
Transform_<P>& SimTK::InverseTransform_< P >::operator~ ( )
inline

◆ compose() [1/2]

template<class P>
Transform_<P> SimTK::InverseTransform_< P >::compose ( const Transform_< P > &  X_FY) const
inline

◆ compose() [2/2]

template<class P>
Transform_<P> SimTK::InverseTransform_< P >::compose ( const InverseTransform_< P > &  X_FY) const
inline

◆ xformFrameVecToBase()

template<class P>
Vec<3,P> SimTK::InverseTransform_< P >::xformFrameVecToBase ( const Vec< 3, P > &  vF) const
inline

◆ xformBaseVecToFrame()

template<class P>
Vec<3,P> SimTK::InverseTransform_< P >::xformBaseVecToFrame ( const Vec< 3, P > &  vB) const
inline

◆ shiftFrameStationToBase()

template<class P>
Vec<3,P> SimTK::InverseTransform_< P >::shiftFrameStationToBase ( const Vec< 3, P > &  sF) const
inline

◆ shiftBaseStationToFrame()

template<class P>
Vec<3,P> SimTK::InverseTransform_< P >::shiftBaseStationToFrame ( const Vec< 3, P > &  sB) const
inline

◆ R()

template<class P>
const InverseRotation_<P>& SimTK::InverseTransform_< P >::R ( ) const
inline

◆ updR()

template<class P>
InverseRotation_<P>& SimTK::InverseTransform_< P >::updR ( )
inline

◆ x()

template<class P>
const InverseRotation_<P>::ColType& SimTK::InverseTransform_< P >::x ( ) const
inline

◆ y()

template<class P>
const InverseRotation_<P>::ColType& SimTK::InverseTransform_< P >::y ( ) const
inline

◆ z()

template<class P>
const InverseRotation_<P>::ColType& SimTK::InverseTransform_< P >::z ( ) const
inline

◆ RInv()

template<class P>
const Rotation_<P>& SimTK::InverseTransform_< P >::RInv ( ) const
inline

◆ updRInv()

template<class P>
Rotation_<P>& SimTK::InverseTransform_< P >::updRInv ( )
inline

◆ p()

template<class P>
Vec<3,P> SimTK::InverseTransform_< P >::p ( ) const
inline

Calculate the actual translation vector at a cost of 18 flops.

It is better if you can just work with the InverseTransform directly since then you'll never have to pay this cost.

◆ setP()

template<class P>
void SimTK::InverseTransform_< P >::setP ( const Vec< 3, P > &  p_BF)
inline

◆ pInv()

template<class P>
const Vec<3,P>& SimTK::InverseTransform_< P >::pInv ( ) const
inline

◆ setPInv()

template<class P>
void SimTK::InverseTransform_< P >::setPInv ( const Vec< 3, P > &  p)
inline

◆ toMat34()

template<class P>
Mat<3,4,P> SimTK::InverseTransform_< P >::toMat34 ( ) const
inline

For compatibility with Transform_.

, but we don't provide an "as" method here since the internal storage layout is somewhat odd.

◆ toMat44()

template<class P>
Mat<4,4,P> SimTK::InverseTransform_< P >::toMat44 ( ) const
inline

Return the equivalent 4x4 transformation matrix.

◆ T()

template<class P>
Vec<3,P> SimTK::InverseTransform_< P >::T ( ) const
inline

Friends And Related Function Documentation

◆ operator<<()

template<class P >
std::ostream & operator<< ( std::ostream &  ,
const InverseTransform_< P > &   
)
related

Generate formatted output of an InverseTransform to an output stream.


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