All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::InterpMotion Class Reference

Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity The motion is R(t)(p - p_ref) + p_ref + T(t) Therefore, R(0) = R0, R(1) = R1 T(0) = T0 + R0 p_ref - p_ref T(1) = T1 + R1 p_ref - p_ref. More...

#include <hpp/fcl/ccd/motion.h>

Inheritance diagram for fcl::InterpMotion:
Collaboration diagram for fcl::InterpMotion:

Public Member Functions

 InterpMotion ()
 Default transformations are all identities. More...
 
 InterpMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2)
 Construct motion from the initial rotation/translation and goal rotation/translation. More...
 
 InterpMotion (const Transform3f &tf1_, const Transform3f &tf2_)
 
 InterpMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2, const Vec3f &O)
 Construct motion from the initial rotation/translation and goal rotation/translation related to some rotation center. More...
 
 InterpMotion (const Transform3f &tf1_, const Transform3f &tf2_, const Vec3f &O)
 
bool integrate (double dt) const
 Integrate the motion from 0 to dt We compute the current transformation from zero point instead of from last integrate time, for precision. More...
 
FCL_REAL computeMotionBound (const BVMotionBoundVisitor &mb_visitor) const
 Compute the motion bound for a bounding volume along a given direction n, which is defined in the visitor. More...
 
FCL_REAL computeMotionBound (const TriangleMotionBoundVisitor &mb_visitor) const
 Compute the motion bound for a triangle along a given direction n, which is defined in the visitor. More...
 
void getCurrentTransform (Transform3f &tf_) const
 Get the rotation and translation in current step. More...
 
void getTaylorModel (TMatrix3 &tm, TVector3 &tv) const
 
const Vec3fgetReferencePoint () const
 
const Vec3fgetAngularAxis () const
 
FCL_REAL getAngularVelocity () const
 
const Vec3fgetLinearVelocity () const
 
- Public Member Functions inherited from fcl::MotionBase
 MotionBase ()
 
virtual ~MotionBase ()
 
void getCurrentTransform (Matrix3f &R, Vec3f &T) const
 Get the rotation and translation in current step. More...
 
void getCurrentTransform (Quaternion3f &Q, Vec3f &T) const
 
void getCurrentRotation (Matrix3f &R) const
 
void getCurrentRotation (Quaternion3f &Q) const
 
void getCurrentTranslation (Vec3f &T) const
 
const boost::shared_ptr
< TimeInterval > & 
getTimeInterval () const
 

Protected Member Functions

void computeVelocity ()
 
Quaternion3f deltaRotation (FCL_REAL dt) const
 
Quaternion3f absoluteRotation (FCL_REAL dt) const
 

Protected Attributes

Transform3f tf1
 The transformation at time 0. More...
 
Transform3f tf2
 The transformation at time 1. More...
 
Transform3f tf
 The transformation at current time t. More...
 
Vec3f linear_vel
 Linear velocity. More...
 
FCL_REAL angular_vel
 Angular speed. More...
 
Vec3f angular_axis
 Angular velocity axis. More...
 
Vec3f reference_p
 Reference point for the motion (in the object's local frame) More...
 
- Protected Attributes inherited from fcl::MotionBase
boost::shared_ptr< TimeIntervaltime_interval_
 

Detailed Description

Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity The motion is R(t)(p - p_ref) + p_ref + T(t) Therefore, R(0) = R0, R(1) = R1 T(0) = T0 + R0 p_ref - p_ref T(1) = T1 + R1 p_ref - p_ref.

Constructor & Destructor Documentation

fcl::InterpMotion::InterpMotion ( )

Default transformations are all identities.

fcl::InterpMotion::InterpMotion ( const Matrix3f R1,
const Vec3f T1,
const Matrix3f R2,
const Vec3f T2 
)

Construct motion from the initial rotation/translation and goal rotation/translation.

fcl::InterpMotion::InterpMotion ( const Transform3f tf1_,
const Transform3f tf2_ 
)
fcl::InterpMotion::InterpMotion ( const Matrix3f R1,
const Vec3f T1,
const Matrix3f R2,
const Vec3f T2,
const Vec3f O 
)

Construct motion from the initial rotation/translation and goal rotation/translation related to some rotation center.

fcl::InterpMotion::InterpMotion ( const Transform3f tf1_,
const Transform3f tf2_,
const Vec3f O 
)

Member Function Documentation

Quaternion3f fcl::InterpMotion::absoluteRotation ( FCL_REAL  dt) const
protected
FCL_REAL fcl::InterpMotion::computeMotionBound ( const BVMotionBoundVisitor mb_visitor) const
inlinevirtual

Compute the motion bound for a bounding volume along a given direction n, which is defined in the visitor.

Implements fcl::MotionBase.

References fcl::BVMotionBoundVisitor::visit().

FCL_REAL fcl::InterpMotion::computeMotionBound ( const TriangleMotionBoundVisitor mb_visitor) const
inlinevirtual

Compute the motion bound for a triangle along a given direction n, which is defined in the visitor.

Implements fcl::MotionBase.

References fcl::TriangleMotionBoundVisitor::visit().

void fcl::InterpMotion::computeVelocity ( )
protected
Quaternion3f fcl::InterpMotion::deltaRotation ( FCL_REAL  dt) const
protected
const Vec3f& fcl::InterpMotion::getAngularAxis ( ) const
inline

References angular_axis.

FCL_REAL fcl::InterpMotion::getAngularVelocity ( ) const
inline

References angular_vel.

void fcl::InterpMotion::getCurrentTransform ( Transform3f tf_) const
inlinevirtual

Get the rotation and translation in current step.

Implements fcl::MotionBase.

References tf.

const Vec3f& fcl::InterpMotion::getLinearVelocity ( ) const
inline

References linear_vel.

const Vec3f& fcl::InterpMotion::getReferencePoint ( ) const
inline

References reference_p.

bool fcl::InterpMotion::integrate ( double  dt) const
virtual

Integrate the motion from 0 to dt We compute the current transformation from zero point instead of from last integrate time, for precision.

Implements fcl::MotionBase.

Member Data Documentation

Vec3f fcl::InterpMotion::angular_axis
protected

Angular velocity axis.

Referenced by getAngularAxis(), and getTaylorModel().

FCL_REAL fcl::InterpMotion::angular_vel
protected

Angular speed.

Referenced by getAngularVelocity(), and getTaylorModel().

Vec3f fcl::InterpMotion::linear_vel
protected

Linear velocity.

Referenced by getLinearVelocity(), and getTaylorModel().

Vec3f fcl::InterpMotion::reference_p
protected

Reference point for the motion (in the object's local frame)

Referenced by getReferencePoint(), and getTaylorModel().

Transform3f fcl::InterpMotion::tf
mutableprotected

The transformation at current time t.

Referenced by getCurrentTransform().

Transform3f fcl::InterpMotion::tf1
protected

The transformation at time 0.

Referenced by getTaylorModel().

Transform3f fcl::InterpMotion::tf2
protected

The transformation at time 1.