$search
Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity. More...
#include <conservative_advancement.h>
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. |
Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular velocity.
Definition at line 53 of file conservative_advancement.h.
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.
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.
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.