Public Member Functions | Protected Member Functions | Protected Attributes
fcl::SplineMotion Class Reference

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

Inheritance diagram for fcl::SplineMotion:
[legend]
Collaboration diagram for fcl::SplineMotion:
[legend]

List of all members.

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.
 SplineMotion (const Matrix3f &, const Vec3f &, const Matrix3f &, const Vec3f &)
 SplineMotion (const Transform3f &, const Transform3f &)
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.
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.
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.
void getCurrentTransform (Transform3f &tf_) const
 Get the rotation and translation in current step.
void getTaylorModel (TMatrix3 &tm, TVector3 &tv) const
FCL_REAL computeTBound (const Vec3f &n) const
FCL_REAL computeDWMax () const
FCL_REAL getCurrentTime () 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.

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 ,
const Vec3f ,
const Matrix3f ,
const Vec3f  
) [inline]
fcl::SplineMotion::SplineMotion ( const Transform3f ,
const Transform3f  
) [inline]

Member Function Documentation

FCL_REAL fcl::SplineMotion::computeDWMax ( ) const
FCL_REAL fcl::SplineMotion::computeMotionBound ( const BVMotionBoundVisitor mb_visitor) const [inline, virtual]

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 [inline, virtual]

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 ( ) [inline, protected]
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 [inline, virtual]

Get the rotation and translation in current step.

Implements fcl::MotionBase.

References tf.

void fcl::SplineMotion::getTaylorModel ( TMatrix3 tm,
TVector3 tv 
) const [inline, virtual]

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::TMatrix3::setTimeInterval(), fcl::TVector3::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::Rd[4] [protected]

Referenced by getTaylorModel().

Vec3f fcl::SplineMotion::Td[4] [protected]

Referenced by getTaylorModel().

Transform3f fcl::SplineMotion::tf [mutable, protected]

Referenced by getCurrentTransform().

FCL_REAL fcl::SplineMotion::tf_t [mutable, protected]

The time related with tf.

Referenced by getCurrentTime().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines