All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Protected Attributes
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 >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

template<>
FCL_REAL computeMotionBound (const RSS &bv, const Vec3f &n) const
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)
template<>
FCL_REAL computeMotionBound (const RSS &bv, const Vec3f &n) const
void getCurrentRotation (Matrix3f &R) const
void getCurrentTransform (Matrix3f &R, Vec3f &T) const
 Get the rotation and translation in current step.
void getCurrentTransform (Transform3f &tf_) const
void getCurrentTranslation (Vec3f &T) const
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.
 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)

Protected Member Functions

Quaternion3f absoluteRotation (FCL_REAL dt) const
void computeVelocity ()
Quaternion3f deltaRotation (FCL_REAL dt) const

Protected Attributes

Vec3f angular_axis
 Angular velocity axis.
FCL_REAL angular_vel
 Angular speed.
Vec3f linear_vel
 Linear velocity.
Vec3f reference_p
 Reference point for the motion (in the object's local frame)
Transform3f tf
 The transformation at current time t.
Transform3f tf1
 The transformation at time 0.
Transform3f tf2
 The transformation at time 1.

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]

Compute the velocities for the motion

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.

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

Definition at line 536 of file motion.h.


Member Function Documentation

template<typename BV >
Quaternion3f fcl::InterpMotion< BV >::absoluteRotation ( FCL_REAL  dt) const [inline, protected]

Definition at line 629 of file motion.h.

template<>
FCL_REAL fcl::InterpMotion< RSS >::computeMotionBound ( const RSS bv,
const Vec3f n 
) const

Definition at line 44 of file motion.cpp.

template<typename BV >
FCL_REAL fcl::InterpMotion< BV >::computeMotionBound ( const BV &  bv,
const Vec3f n 
) const [inline, virtual]

Compute the motion bound for a bounding volume along a given direction n For general BV, not implemented so return trivial 0.

Implements fcl::MotionBase< BV >.

Definition at line 560 of file motion.h.

template<typename BV >
FCL_REAL fcl::InterpMotion< BV >::computeMotionBound ( const Vec3f a,
const Vec3f b,
const Vec3f c,
const Vec3f n 
) const [inline, virtual]

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)

Implements fcl::MotionBase< BV >.

Definition at line 567 of file motion.h.

template<>
FCL_REAL fcl::InterpMotion< RSS >::computeMotionBound ( const RSS bv,
const Vec3f n 
) const
template<typename BV >
void fcl::InterpMotion< BV >::computeVelocity ( ) [inline, protected]

Definition at line 609 of file motion.h.

template<typename BV >
Quaternion3f fcl::InterpMotion< BV >::deltaRotation ( FCL_REAL  dt) const [inline, protected]

Definition at line 622 of file motion.h.

template<typename BV >
void fcl::InterpMotion< BV >::getCurrentRotation ( Matrix3f R) const [inline, virtual]

Implements fcl::MotionBase< BV >.

Definition at line 592 of file motion.h.

template<typename BV >
void fcl::InterpMotion< BV >::getCurrentTransform ( Matrix3f R,
Vec3f T 
) const [inline, virtual]

Get the rotation and translation in current step.

Implements fcl::MotionBase< BV >.

Definition at line 586 of file motion.h.

template<typename BV >
void fcl::InterpMotion< BV >::getCurrentTransform ( Transform3f tf_) const [inline, virtual]

Implements fcl::MotionBase< BV >.

Definition at line 602 of file motion.h.

template<typename BV >
void fcl::InterpMotion< BV >::getCurrentTranslation ( Vec3f T) const [inline, virtual]

Implements fcl::MotionBase< BV >.

Definition at line 597 of file motion.h.

template<typename BV >
bool fcl::InterpMotion< BV >::integrate ( double  dt) [inline, 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< BV >.

Definition at line 547 of file motion.h.


Member Data Documentation

template<typename BV >
Vec3f fcl::InterpMotion< BV >::angular_axis [protected]

Angular velocity axis.

Definition at line 651 of file motion.h.

template<typename BV >
FCL_REAL fcl::InterpMotion< BV >::angular_vel [protected]

Angular speed.

Definition at line 648 of file motion.h.

template<typename BV >
Vec3f fcl::InterpMotion< BV >::linear_vel [protected]

Linear velocity.

Definition at line 645 of file motion.h.

template<typename BV >
Vec3f fcl::InterpMotion< BV >::reference_p [protected]

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

Definition at line 654 of file motion.h.

template<typename BV >
Transform3f fcl::InterpMotion< BV >::tf [protected]

The transformation at current time t.

Definition at line 642 of file motion.h.

template<typename BV >
Transform3f fcl::InterpMotion< BV >::tf1 [protected]

The transformation at time 0.

Definition at line 636 of file motion.h.

template<typename BV >
Transform3f fcl::InterpMotion< BV >::tf2 [protected]

The transformation at time 1.

Definition at line 639 of file motion.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


fcl
Author(s): Jia Pan
autogenerated on Tue Jan 15 2013 16:05:31