$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.