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

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

Inheritance diagram for fcl::SplineMotion:
Collaboration diagram for fcl::SplineMotion:

Public Member Functions

 SplineMotion (const Vec3f &Td0, const Vec3f &Td1, const Vec3f &Td2, const Vec3f &Td3, const Vec3f &Rd0, const Vec3f &Rd1, const Vec3f &Rd2, const Vec3f &Rd3)
 Construct motion from 4 deBoor points. More...
 
 SplineMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2)
 
 SplineMotion (const Transform3f &tf1, const Transform3f &tf2)
 
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
 
FCL_REAL computeTBound (const Vec3f &n) const
 
FCL_REAL computeDWMax () const
 
FCL_REAL getCurrentTime () 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 computeSplineParameter ()
 
FCL_REAL getWeight0 (FCL_REAL t) const
 
FCL_REAL getWeight1 (FCL_REAL t) const
 
FCL_REAL getWeight2 (FCL_REAL t) const
 
FCL_REAL getWeight3 (FCL_REAL t) const
 

Protected Attributes

Vec3f Td [4]
 
Vec3f Rd [4]
 
Vec3f TA
 
Vec3f TB
 
Vec3f TC
 
Vec3f RA
 
Vec3f RB
 
Vec3f RC
 
FCL_REAL Rd0Rd0
 
FCL_REAL Rd0Rd1
 
FCL_REAL Rd0Rd2
 
FCL_REAL Rd0Rd3
 
FCL_REAL Rd1Rd1
 
FCL_REAL Rd1Rd2
 
FCL_REAL Rd1Rd3
 
FCL_REAL Rd2Rd2
 
FCL_REAL Rd2Rd3
 
FCL_REAL Rd3Rd3
 
Transform3f tf
 
FCL_REAL tf_t
 The time related with tf. More...
 
- Protected Attributes inherited from fcl::MotionBase
boost::shared_ptr< TimeIntervaltime_interval_
 

Constructor & Destructor Documentation

fcl::SplineMotion::SplineMotion ( const Vec3f Td0,
const Vec3f Td1,
const Vec3f Td2,
const Vec3f Td3,
const Vec3f Rd0,
const Vec3f Rd1,
const Vec3f Rd2,
const Vec3f Rd3 
)

Construct motion from 4 deBoor points.

fcl::SplineMotion::SplineMotion ( const Matrix3f R1,
const Vec3f T1,
const Matrix3f R2,
const Vec3f T2 
)
inline
fcl::SplineMotion::SplineMotion ( const Transform3f tf1,
const Transform3f tf2 
)
inline

Member Function Documentation

FCL_REAL fcl::SplineMotion::computeDWMax ( ) const
FCL_REAL fcl::SplineMotion::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::SplineMotion::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::SplineMotion::computeSplineParameter ( )
inlineprotected
FCL_REAL fcl::SplineMotion::computeTBound ( const Vec3f n) const
FCL_REAL fcl::SplineMotion::getCurrentTime ( ) const
inline

References tf_t.

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

Get the rotation and translation in current step.

Implements fcl::MotionBase.

References tf.

void fcl::SplineMotion::getTaylorModel ( TMatrix3 tm,
TVector3 tv 
) const
inlinevirtual
  1. compute M(1/2)
  2. compute M'(1/2)

3.1. compute M''(1/2)

not correct, should fix

Implements fcl::MotionBase.

References fcl::Vec3fX< T >::dot(), fcl::MotionBase::getTimeInterval(), fcl::hat(), fcl::Vec3fX< T >::length(), Rd, fcl::TVector3::setTimeInterval(), fcl::TMatrix3::setTimeInterval(), and Td.

FCL_REAL fcl::SplineMotion::getWeight0 ( FCL_REAL  t) const
protected
FCL_REAL fcl::SplineMotion::getWeight1 ( FCL_REAL  t) const
protected
FCL_REAL fcl::SplineMotion::getWeight2 ( FCL_REAL  t) const
protected
FCL_REAL fcl::SplineMotion::getWeight3 ( FCL_REAL  t) const
protected
bool fcl::SplineMotion::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::SplineMotion::RA
protected
Vec3f fcl::SplineMotion::RB
protected
Vec3f fcl::SplineMotion::RC
protected
Vec3f fcl::SplineMotion::Rd[4]
protected

Referenced by getTaylorModel().

FCL_REAL fcl::SplineMotion::Rd0Rd0
protected
FCL_REAL fcl::SplineMotion::Rd0Rd1
protected
FCL_REAL fcl::SplineMotion::Rd0Rd2
protected
FCL_REAL fcl::SplineMotion::Rd0Rd3
protected
FCL_REAL fcl::SplineMotion::Rd1Rd1
protected
FCL_REAL fcl::SplineMotion::Rd1Rd2
protected
FCL_REAL fcl::SplineMotion::Rd1Rd3
protected
FCL_REAL fcl::SplineMotion::Rd2Rd2
protected
FCL_REAL fcl::SplineMotion::Rd2Rd3
protected
FCL_REAL fcl::SplineMotion::Rd3Rd3
protected
Vec3f fcl::SplineMotion::TA
protected
Vec3f fcl::SplineMotion::TB
protected
Vec3f fcl::SplineMotion::TC
protected
Vec3f fcl::SplineMotion::Td[4]
protected

Referenced by getTaylorModel().

Transform3f fcl::SplineMotion::tf
mutableprotected

Referenced by getCurrentTransform().

FCL_REAL fcl::SplineMotion::tf_t
mutableprotected

The time related with tf.

Referenced by getCurrentTime().