# 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: