All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends

fcl::InterpMotion< BV > Class Template 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 <motion.h>

Inheritance diagram for fcl::InterpMotion< BV >:

[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)
 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 BV &bv, const Vec3f &n) const
 Compute the motion bound for a bounding volume along a given direction n For general BV, not implemented so return trivial 0.
FCL_REAL computeMotionBound (const Vec3f &a, const Vec3f &b, const Vec3f &c, const Vec3f &n) const
 Compute the motion bound for a triangle along a given direction n according to mu < |v * n| + ||w x n||(max||ci*||) where ||ci*|| = ||R0(ci) x w|| / \|w\|. w is the angular velocity and ci are the triangle vertex coordinates. Notice that the triangle is in the local frame of the object, but n should be in the global frame (the reason is that the motion (t1, t2 and t) is in global frame).
void getCurrentTransform (Matrix3f &R, Vec3f &T) const
 Get the rotation and translation in current step.
void getCurrentRotation (Matrix3f &R) const
void getCurrentTranslation (Vec3f &T) const
void getCurrentTransform (Transform3f &tf_) const
template<>
FCL_REAL computeMotionBound (const RSS &bv, const Vec3f &n) const
template<>
FCL_REAL computeMotionBound (const RSS &bv, const Vec3f &n) 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

template<typename BV>
class fcl::InterpMotion< BV >

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.

Definition at line 489 of file motion.h.


Constructor & Destructor Documentation

template<typename BV>
fcl::InterpMotion< BV >::InterpMotion (  )  [inline]

Default transformations are all identities.

Default angular velocity is zero

Default reference point is local zero point

Default linear velocity is zero

Definition at line 493 of file motion.h.

template<typename BV>
fcl::InterpMotion< BV >::InterpMotion ( const Matrix3f R1,
const Vec3f T1,
const Matrix3f R2,
const Vec3f T2 
) [inline]

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

Compute the velocities for the motion

Definition at line 505 of file motion.h.

template<typename BV>
fcl::InterpMotion< BV >::InterpMotion ( const Transform3f tf1_,
const Transform3f tf2_ 
) [inline]

Definition at line 515 of file motion.h.

template<typename BV>
fcl::InterpMotion< BV >::InterpMotion ( const Matrix3f R1,
const Vec3f T1,
const Matrix3f R2,
const Vec3f T2,
const Vec3f O 
) [inline]

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

Compute the velocities for the motion

Definition at line 525 of file motion.h.


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