$search

collision_checking::InterpMotion Class Reference

Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity. More...

#include <conservative_advancement.h>

List of all members.

Classes

struct  SimpleQuaternion
 Quaternion used locally by InterpMotion. More...
struct  SimpleTransform
 Simple transform class used locally by InterpMotion. More...

Public Member Functions

SimpleQuaternion absoluteRotation (BVH_REAL t) const
BVH_REAL computeMotionBound (const Vec3f &a, const Vec3f &b, const Vec3f &c, const Vec3f &n) const
 Compute the motion bound for a triangle, given the closest direction n between two query objects according to mu < |v * | + ||w x n||(max||ci*||) where ||ci*|| = ||ci x w||. w is the angular axis (normalized) 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).
BVH_REAL computeMotionBound (const RSS &bv, const Vec3f &n) const
 Compute the motion bound for a bounding volume, given the closest direction n between two query objects according to mu < |v * n| + ||w x n||(r + max(||ci*||)) where ||ci*|| = ||ci x w||. w is the angular axis (normalized) and ci are the endpoints of the generator primitives of RSS. Notice that all bv parameters are 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 computeVelocity ()
SimpleQuaternion deltaRotation (BVH_REAL t) const
void getCurrentTransformation (Vec3f R[3], Vec3f &T) const
 Get the rotation and translation in current step.
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 (const Vec3f R1[3], const Vec3f &T1, const Vec3f R2[3], const Vec3f &T2, const Vec3f &O)
 Construct motion from the initial rotation/translation and goal rotation/translation related to some rotation center.
 InterpMotion (const Vec3f R1[3], const Vec3f &T1, const Vec3f R2[3], const Vec3f &T2)
 Construct motion from the initial rotation/translation and goal rotation/translation.
 InterpMotion ()

Public Attributes

Vec3f angular_axis
 Angular velocity axis.
BVH_REAL angular_vel
 Angular speed.
Vec3f linear_vel
 Linear velocity.
SimpleTransform t
 The transformation at current time t.
SimpleTransform t1
 The transformation at time 0.
SimpleTransform t2
 The transformation at time 1.

Detailed Description

Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity.

Definition at line 53 of file conservative_advancement.h.


Constructor & Destructor Documentation

collision_checking::InterpMotion::InterpMotion (  )  [inline]

Default transformations are all identities

Default angular velocity is zero

Default linear velocity is zero

Definition at line 145 of file conservative_advancement.h.

collision_checking::InterpMotion::InterpMotion ( const Vec3f  R1[3],
const Vec3f T1,
const Vec3f  R2[3],
const Vec3f T2 
) [inline]

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

Current time is zero, so the transformation is t1

Compute the velocities for the motion

Definition at line 155 of file conservative_advancement.h.

collision_checking::InterpMotion::InterpMotion ( const Vec3f  R1[3],
const Vec3f T1,
const Vec3f  R2[3],
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 170 of file conservative_advancement.h.


Member Function Documentation

SimpleQuaternion collision_checking::InterpMotion::absoluteRotation ( BVH_REAL  t  )  const [inline]

Definition at line 237 of file conservative_advancement.h.

BVH_REAL collision_checking::InterpMotion::computeMotionBound ( const Vec3f a,
const Vec3f b,
const Vec3f c,
const Vec3f n 
) const

Compute the motion bound for a triangle, given the closest direction n between two query objects according to mu < |v * | + ||w x n||(max||ci*||) where ||ci*|| = ||ci x w||. w is the angular axis (normalized) 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).

Definition at line 217 of file conservative_advancement.cpp.

BVH_REAL collision_checking::InterpMotion::computeMotionBound ( const RSS bv,
const Vec3f n 
) const

Compute the motion bound for a bounding volume, given the closest direction n between two query objects according to mu < |v * n| + ||w x n||(r + max(||ci*||)) where ||ci*|| = ||ci x w||. w is the angular axis (normalized) and ci are the endpoints of the generator primitives of RSS. Notice that all bv parameters are 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).

Definition at line 197 of file conservative_advancement.cpp.

void collision_checking::InterpMotion::computeVelocity (  )  [inline]

Definition at line 223 of file conservative_advancement.h.

SimpleQuaternion collision_checking::InterpMotion::deltaRotation ( BVH_REAL  t  )  const [inline]

Definition at line 230 of file conservative_advancement.h.

void collision_checking::InterpMotion::getCurrentTransformation ( Vec3f  R[3],
Vec3f T 
) const [inline]

Get the rotation and translation in current step.

Definition at line 213 of file conservative_advancement.h.

bool collision_checking::InterpMotion::integrate ( double  dt  )  [inline]

Integrate the motion from 0 to dt We compute the current transformation from zero point instead of from last integrate time, for precision.

Definition at line 186 of file conservative_advancement.h.


Member Data Documentation

Angular velocity axis.

Definition at line 259 of file conservative_advancement.h.

Angular speed.

Definition at line 256 of file conservative_advancement.h.

Linear velocity.

Definition at line 253 of file conservative_advancement.h.

The transformation at current time t.

Definition at line 250 of file conservative_advancement.h.

The transformation at time 0.

Definition at line 244 of file conservative_advancement.h.

The transformation at time 1.

Definition at line 247 of file conservative_advancement.h.


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


collision_checking
Author(s): Jia Pan, Dinesh Manocha (UNC, Chapel Hill)
autogenerated on Fri Mar 1 14:57:00 2013