Public Member Functions | Protected Member Functions | Protected Attributes
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:
[legend]
Collaboration diagram for fcl::InterpMotion:
[legend]

List of all members.

Public Member Functions

 InterpMotion ()
 Default transformations are all identities.
 InterpMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2)
 Construct motion from the initial rotation/translation and goal rotation/translation.
 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.
 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.
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
const Vec3fgetReferencePoint () const
const Vec3fgetAngularAxis () const
FCL_REAL getAngularVelocity () const
const Vec3fgetLinearVelocity () 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.
Transform3f tf2
 The transformation at time 1.
Transform3f tf
 The transformation at current time t.
Vec3f linear_vel
 Linear velocity.
FCL_REAL angular_vel
 Angular speed.
Vec3f angular_axis
 Angular velocity axis.
Vec3f reference_p
 Reference point for the motion (in the object's local frame)

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

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.

void fcl::InterpMotion::getTaylorModel ( TMatrix3 tm,
TVector3 tv 
) const [inline, virtual]
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

Angular velocity axis.

Referenced by getAngularAxis(), and getTaylorModel().

Angular speed.

Referenced by getAngularVelocity(), and getTaylorModel().

Linear velocity.

Referenced by getLinearVelocity(), and getTaylorModel().

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

Referenced by getReferencePoint(), and getTaylorModel().

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

The transformation at current time t.

Referenced by getCurrentTransform().

The transformation at time 0.

Referenced by getTaylorModel().

The transformation at time 1.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines