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>
Public Member Functions | |
InterpMotion () | |
Default transformations are all identities. More... | |
InterpMotion (const Matrix3f &R1, const Vec3f &T1, const Matrix3f &R2, const Vec3f &T2) | |
Construct motion from the initial rotation/translation and goal rotation/translation. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | getCurrentTransform (Transform3f &tf_) const |
Get the rotation and translation in current step. More... | |
void | getTaylorModel (TMatrix3 &tm, TVector3 &tv) const |
const Vec3f & | getReferencePoint () const |
const Vec3f & | getAngularAxis () const |
FCL_REAL | getAngularVelocity () const |
const Vec3f & | getLinearVelocity () const |
![]() | |
MotionBase () | |
virtual | ~MotionBase () |
void | getCurrentTransform (Matrix3f &R, Vec3f &T) const |
Get the rotation and translation in current step. More... | |
void | getCurrentTransform (Quaternion3f &Q, Vec3f &T) const |
void | getCurrentRotation (Matrix3f &R) const |
void | getCurrentRotation (Quaternion3f &Q) const |
void | getCurrentTranslation (Vec3f &T) const |
const boost::shared_ptr < TimeInterval > & | getTimeInterval () 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. More... | |
Transform3f | tf2 |
The transformation at time 1. More... | |
Transform3f | tf |
The transformation at current time t. More... | |
Vec3f | linear_vel |
Linear velocity. More... | |
FCL_REAL | angular_vel |
Angular speed. More... | |
Vec3f | angular_axis |
Angular velocity axis. More... | |
Vec3f | reference_p |
Reference point for the motion (in the object's local frame) More... | |
![]() | |
boost::shared_ptr< TimeInterval > | time_interval_ |
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.
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 | ||
) |
|
protected |
|
inlinevirtual |
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().
|
inlinevirtual |
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().
|
protected |
|
protected |
|
inline |
References angular_axis.
|
inline |
References angular_vel.
|
inlinevirtual |
|
inline |
References linear_vel.
|
inline |
References reference_p.
Implements fcl::MotionBase.
References angular_axis, angular_vel, fcl::generateTaylorModelForCosFunc(), fcl::generateTaylorModelForLinearFunc(), fcl::generateTaylorModelForSinFunc(), fcl::Transform3f::getQuatRotation(), fcl::Transform3f::getRotation(), fcl::MotionBase::getTimeInterval(), fcl::hat(), linear_vel, reference_p, tf1, fcl::Quaternion3f::transform(), and fcl::Transform3f::transform().
|
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.
|
protected |
Angular velocity axis.
Referenced by getAngularAxis(), and getTaylorModel().
|
protected |
Angular speed.
Referenced by getAngularVelocity(), and getTaylorModel().
|
protected |
Linear velocity.
Referenced by getLinearVelocity(), and getTaylorModel().
|
protected |
Reference point for the motion (in the object's local frame)
Referenced by getReferencePoint(), and getTaylorModel().
|
mutableprotected |
The transformation at current time t.
Referenced by getCurrentTransform().
|
protected |
The transformation at time 0.
Referenced by getTaylorModel().
|
protected |
The transformation at time 1.