Ravelin
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
POSE3 Class Reference

A rigid body pose. More...

#include <Pose3.h>

Inheritance diagram for POSE3:

Public Member Functions

 POSE3 ()
 Default constructor. More...
 
 POSE3 (const POSE3 &source)
 
 POSE3 (const AANGLE &a, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose from a axis-angle representation (for rotation) and zero translation.
 
 POSE3 (const MATRIX3 &m, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose from a rotation matrix and zero translation.
 
 POSE3 (const QUAT &q, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose from a unit quaternion (for rotation) and zero translation.
 
 POSE3 (const AANGLE &a, const ORIGIN3 &v, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose from a axis-angle representation and a translation vector.
 
 POSE3 (const MATRIX3 &m, const ORIGIN3 &v, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose from a rotation matrix and translation vector.
 
 POSE3 (const QUAT &q, const ORIGIN3 &v, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose from a unit quaternion and translation vector.
 
 POSE3 (const ORIGIN3 &v, boost::shared_ptr< const POSE3 > relative_pose=boost::shared_ptr< const POSE3 >())
 Constructs a pose using identity orientation and a translation vector.
 
VECTOR3 transform_point (const VECTOR3 &p) const
 
VECTOR3 transform_vector (const VECTOR3 &p) const
 
VECTOR3 inverse_transform_point (const VECTOR3 &p) const
 Transforms a point from one pose to another.
 
VECTOR3 inverse_transform_vector (const VECTOR3 &v) const
 Transforms a vector from one pose to another.
 
SFORCE transform (const SFORCE &w) const
 
SFORCE inverse_transform (const SFORCE &w) const
 Transforms a point from one pose to another.
 
SMOMENTUM transform (const SMOMENTUM &t) const
 
SMOMENTUM inverse_transform (const SMOMENTUM &t) const
 Transforms a momentum from one pose to another.
 
SVELOCITY transform (const SVELOCITY &t) const
 
SVELOCITY inverse_transform (const SVELOCITY &t) const
 Transforms a velocity from one pose to another.
 
SACCEL transform (const SACCEL &t) const
 
SACCEL inverse_transform (const SACCEL &t) const
 Transforms an acceleration from one pose to another.
 
SPATIAL_RB_INERTIA transform (const SPATIAL_RB_INERTIA &j) const
 
SPATIAL_RB_INERTIA inverse_transform (const SPATIAL_RB_INERTIA &j) const
 Transforms a rigid body inertia from one pose to another.
 
SPATIAL_AB_INERTIA transform (const SPATIAL_AB_INERTIA &j) const
 
SPATIAL_AB_INERTIA inverse_transform (const SPATIAL_AB_INERTIA &j) const
 Transforms an articulated body inertia from one pose to another.
 
VECTOR3 qG_mult (REAL qdw, REAL qdx, REAL qdy, REAL qdz) const
 Multiplies the quaternion derivative.
 
QUAT qG_transpose_mult (const VECTOR3 &omega) const
 Multiplies the quaternion derivative.
 
POSE3set_identity ()
 Sets this matrix to identity. More...
 
POSE3invert ()
 method for inverting a pose in place
 
POSE3 inverse () const
 
POSE3set (const AANGLE &a)
 Sets this pose from a axis-angle object only (translation will be zero'd) More...
 
POSE3set (const MATRIX3 &m)
 Sets this pose from a 3x3 rotation matrix only (translation will be zero'd) More...
 
POSE3set (const QUAT &q)
 Sets this pose from a unit quaternion only (translation will be zero'd) More...
 
POSE3set (const AANGLE &a, const ORIGIN3 &v)
 
POSE3set (const MATRIX3 &m, const ORIGIN3 &v)
 Sets the pose from a rotation matrix and translation vector. More...
 
POSE3set (const QUAT &q, const ORIGIN3 &v)
 Sets the pose from a unit quaternion and translation vector. More...
 
POSE3 operator+ (const SVELOCITY &v) const
 Adds a velocity to a pose to yield a new pose.
 
POSE3operator= (const POSE3 &source)
 
POSE3 operator* (const POSE3 &m) const
 Multiplies this pose by another.
 
POSE3update_relative_pose (boost::shared_ptr< const POSE3 > pose)
 Updates the relative pose for this pose while retaining the same absolute pose.
 

Static Public Member Functions

static POSE3 identity ()
 
static VECTOR3 interpolate_vector (const POSE3 &m1, const POSE3 &m2, REAL t, const ORIGIN3 &o)
 
static VECTOR3 interpolate_point (const POSE3 &m1, const POSE3 &m2, REAL t, const ORIGIN3 &o)
 
static bool rel_equal (const POSE3 &p1, const POSE3 &p2, REAL tol=EPS)
 Determines whether two poses in 3D are relatively equivalent.
 
static VECTOR3 transform_point (boost::shared_ptr< const POSE3 > target, const VECTOR3 &v)
 Transforms a point from one pose to another.
 
static VECTOR3 transform_vector (boost::shared_ptr< const POSE3 > target, const VECTOR3 &v)
 Applies this pose to a vector.
 
static SFORCE transform (boost::shared_ptr< const POSE3 > target, const SFORCE &w)
 Transforms the force.
 
static std::vector< SFORCE > & transform (boost::shared_ptr< const POSE3 > target, const std::vector< SFORCE > &w, std::vector< SFORCE > &result)
 Transforms a vector of forcees.
 
static SMOMENTUM transform (boost::shared_ptr< const POSE3 > target, const SMOMENTUM &t)
 Transforms the momentum.
 
static SVELOCITY transform (boost::shared_ptr< const POSE3 > target, const SVELOCITY &t)
 Transforms the velocity.
 
static std::vector< SVELOCITY > & transform (boost::shared_ptr< const POSE3 > target, const std::vector< SVELOCITY > &t, std::vector< SVELOCITY > &result)
 Transforms a vector of velocities.
 
static std::vector< SMOMENTUM > & transform (boost::shared_ptr< const POSE3 > target, const std::vector< SMOMENTUM > &t, std::vector< SMOMENTUM > &result)
 Transforms a vector of momenta.
 
static SACCEL transform (boost::shared_ptr< const POSE3 > target, const SACCEL &t)
 Transforms the acceleration.
 
static std::vector< SACCEL > & transform (boost::shared_ptr< const POSE3 > target, const std::vector< SACCEL > &t, std::vector< SACCEL > &result)
 Transforms a vector of accelerations.
 
static SPATIAL_RB_INERTIA transform (boost::shared_ptr< const POSE3 > target, const SPATIAL_RB_INERTIA &j)
 Transforms a spatial RB inertia to the given pose.
 
static SPATIAL_AB_INERTIA transform (boost::shared_ptr< const POSE3 > target, const SPATIAL_AB_INERTIA &j)
 Transforms a spatial articulated body inertia.
 
static TRANSFORM3 calc_relative_pose (boost::shared_ptr< const POSE3 > source, boost::shared_ptr< const POSE3 > target)
 
static POSE3 invert (const POSE3 &m)
 Special method for inverting a pose.
 
static VECTOR3 interpolate_transform_vector (const POSE3 &P1, const POSE3 &P2, REAL t, const ORIGIN3 &o)
 Tranforms a vector with an interpolated pose (between poses P1 and P2) More...
 
static VECTOR3 interpolate_transform_point (const POSE3 &P1, const POSE3 &P2, REAL t, const ORIGIN3 &o)
 Tranforms a point with an interpolated pose (between poses P1 and P2) More...
 
static SVELOCITY diff (const POSE3 &P1, const POSE3 &P2)
 Computes the spatial velocity that gets from one pose (P1) to another (P2)
 
template<class M >
static M & spatial_transform_to_matrix (boost::shared_ptr< const POSE3 > source, boost::shared_ptr< const POSE3 > target, M &m)
 Computes a 6x6 matrix that transforms velocity vectors in [w; v] format or force vectors in [f; tau] format.
 
template<class M >
static M & spatial_transform_to_matrix2 (boost::shared_ptr< const POSE3 > source, boost::shared_ptr< const POSE3 > target, M &m)
 Computes a 6x6 matrix that transforms velocity vectors in [v w] format.
 
template<class M >
static M & dot_spatial_transform_to_matrix2 (boost::shared_ptr< const POSE3 > source, boost::shared_ptr< const POSE3 > target, M &m)
 Computes the time derivative of a 6x6 matrix that transforms velocity vectors in [v w] format.
 

Public Attributes

QUAT q
 the orientation of the pose frame
 
ORIGIN3 x
 the origin of the pose frame
 
boost::shared_ptr< const POSE3rpose
 the pose that this pose is relative to (if any)
 

Friends

class MOVINGTRANSFORM3
 

Detailed Description

A rigid body pose.

Constructor & Destructor Documentation

POSE3::POSE3 ( )

Default constructor.

Sets matrix to the identity matrix

References set_identity().

Referenced by invert(), and operator*().

Member Function Documentation

VECTOR3 POSE3::interpolate_transform_point ( const POSE3 P1,
const POSE3 P2,
REAL  t,
const ORIGIN3 o 
)
static

Tranforms a point with an interpolated pose (between poses P1 and P2)

Parameters
P1the pose to use when t=0
P2the pose to use when t=1
tinterpolation value
othe point to transform
Returns
the transformed point

References q, rpose, QUAT::slerp(), and x.

VECTOR3 POSE3::interpolate_transform_vector ( const POSE3 P1,
const POSE3 P2,
REAL  t,
const ORIGIN3 o 
)
static

Tranforms a vector with an interpolated pose (between poses P1 and P2)

Parameters
P1the pose to use when t=0
P2the pose to use when t=1
tinterpolation value
othe vector to transform
Returns
the transformed vector

References q, rpose, and QUAT::slerp().

POSE3 & POSE3::set ( const AANGLE a)

Sets this pose from a axis-angle object only (translation will be zero'd)

Note
relative pose will be unaltered

References q, and x.

Referenced by POSE3().

POSE3 & POSE3::set ( const MATRIX3 m)

Sets this pose from a 3x3 rotation matrix only (translation will be zero'd)

Note
relative pose will be unaltered

References q, and x.

POSE3 & POSE3::set ( const QUAT q)

Sets this pose from a unit quaternion only (translation will be zero'd)

Note
relative pose will be unaltered

References q, and x.

POSE3 & POSE3::set ( const AANGLE a,
const ORIGIN3 v 
)
Note
relative pose will be unaltered

References q, and x.

POSE3 & POSE3::set ( const MATRIX3 m,
const ORIGIN3 v 
)

Sets the pose from a rotation matrix and translation vector.

Note
relative pose will be unaltered

References q, and x.

POSE3 & POSE3::set ( const QUAT q,
const ORIGIN3 v 
)

Sets the pose from a unit quaternion and translation vector.

Note
relative pose will be unaltered

References q, and x.

POSE3 & POSE3::set_identity ( )

Sets this matrix to identity.

Note
relative pose will be unaltered

References q, and x.

Referenced by POSE3().


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