collision detector based on SSV(Sphere Swept Volume) More...
#include <SSVTreeCollider.h>

Public Member Functions | |
| bool | Collide (BVTCache &cache, double tolerance, const Matrix4x4 *world0=null, const Matrix4x4 *world1=null) |
| detect collision between links. | |
| bool | Distance (BVTCache &cache, float &minD, Point &point0, Point &point1, const Matrix4x4 *world0=null, const Matrix4x4 *world1=null) |
| compute the minimum distance and the closest points | |
| SSVTreeCollider () | |
| constructor | |
| ~SSVTreeCollider () | |
| destructor | |
Protected Member Functions | |
| float | PrimDist (udword id0, udword id1, Point &point0, Point &point1) |
| compute distance between primitives(triangles) | |
| float | SsvSsvDist (const AABBCollisionNode *b0, const AABBCollisionNode *b1) |
| compute distance between SSV(Swept Sphere Volume)s | |
Private Member Functions | |
| bool | _Collide (const AABBCollisionNode *b0, const AABBCollisionNode *b1, double tolerance) |
| void | _Distance (const AABBCollisionNode *b0, const AABBCollisionNode *b1, float &minD, Point &point0, Point &point1) |
| bool | Collide (const AABBCollisionTree *tree0, const AABBCollisionTree *tree1, const Matrix4x4 *world0, const Matrix4x4 *world1, Pair *cache, double tolerance) |
| void | Distance (const AABBCollisionTree *tree0, const AABBCollisionTree *tree1, const Matrix4x4 *world0, const Matrix4x4 *world1, Pair *cache, float &minD, Point &point0, Point &point1) |
| float | LssLssDist (float r0, const Point &point0, const Point &point1, float r1, const Point &point2, const Point &point3) |
| compute distance between LSS(Line Swept Sphere)s | |
| float | LssPssDist (float r0, const Point &point0, const Point &point1, float r1, const Point ¢er0) |
| compute distance between PSS(Point Swept Sphere) and LSS(Line Swept Sphere) | |
| float | PssLssDist (float r0, const Point ¢er0, float r1, const Point &point0, const Point &point1) |
| compute distance between PSS(Point Swept Sphere) and LSS(Line Swept Sphere) | |
| float | PssPssDist (float r0, const Point ¢er0, float r1, const Point ¢er1) |
| compute distance between PSS(Point Swept Sphere) | |
collision detector based on SSV(Sphere Swept Volume)
Definition at line 12 of file SSVTreeCollider.h.
constructor
Definition at line 7 of file SSVTreeCollider.cpp.
| SSVTreeCollider::~SSVTreeCollider | ( | ) | [inline] |
destructor
Definition at line 22 of file SSVTreeCollider.h.
| bool SSVTreeCollider::_Collide | ( | const AABBCollisionNode * | b0, |
| const AABBCollisionNode * | b1, | ||
| double | tolerance | ||
| ) | [private] |
Definition at line 205 of file SSVTreeCollider.cpp.
| void SSVTreeCollider::_Distance | ( | const AABBCollisionNode * | b0, |
| const AABBCollisionNode * | b1, | ||
| float & | minD, | ||
| Point & | point0, | ||
| Point & | point1 | ||
| ) | [private] |
Definition at line 166 of file SSVTreeCollider.cpp.
| bool SSVTreeCollider::Collide | ( | BVTCache & | cache, |
| double | tolerance, | ||
| const Matrix4x4 * | world0 = null, |
||
| const Matrix4x4 * | world1 = null |
||
| ) |
detect collision between links.
| cache | |
| tolerance | If distance between links is smaller than this value, it is regarded as collision |
| world0 | transformation of the first link |
| world1 | transformation of the second link |
Definition at line 72 of file SSVTreeCollider.cpp.
| bool SSVTreeCollider::Collide | ( | const AABBCollisionTree * | tree0, |
| const AABBCollisionTree * | tree1, | ||
| const Matrix4x4 * | world0, | ||
| const Matrix4x4 * | world1, | ||
| Pair * | cache, | ||
| double | tolerance | ||
| ) | [private] |
Definition at line 89 of file SSVTreeCollider.cpp.
| bool SSVTreeCollider::Distance | ( | BVTCache & | cache, |
| float & | minD, | ||
| Point & | point0, | ||
| Point & | point1, | ||
| const Matrix4x4 * | world0 = null, |
||
| const Matrix4x4 * | world1 = null |
||
| ) |
compute the minimum distance and the closest points
| cache | |
| minD | the minimum distance |
| point0 | the closest point on the first link |
| point1 | the closest point on the second link |
| world0 | transformation of the first link |
| world1 | transformation of the second link |
Definition at line 11 of file SSVTreeCollider.cpp.
| void SSVTreeCollider::Distance | ( | const AABBCollisionTree * | tree0, |
| const AABBCollisionTree * | tree1, | ||
| const Matrix4x4 * | world0, | ||
| const Matrix4x4 * | world1, | ||
| Pair * | cache, | ||
| float & | minD, | ||
| Point & | point0, | ||
| Point & | point1 | ||
| ) | [private] |
Definition at line 30 of file SSVTreeCollider.cpp.
| float SSVTreeCollider::LssLssDist | ( | float | r0, |
| const Point & | point0, | ||
| const Point & | point1, | ||
| float | r1, | ||
| const Point & | point2, | ||
| const Point & | point3 | ||
| ) | [private] |
compute distance between LSS(Line Swept Sphere)s
| r0 | radius of the first LSS |
| point0 | one of end points of the first line segment |
| point1 | the other end points of the first line segment |
| r1 | radius of the second LSS |
| point2 | one of end points of the second line segment |
| point3 | the other end points of the second line segment |
Definition at line 157 of file SSVTreeCollider.cpp.
| float SSVTreeCollider::LssPssDist | ( | float | r0, |
| const Point & | point0, | ||
| const Point & | point1, | ||
| float | r1, | ||
| const Point & | center0 | ||
| ) | [private] |
compute distance between PSS(Point Swept Sphere) and LSS(Line Swept Sphere)
| r0 | radius of the PSS |
| point0 | one of end points of the line segment |
| point1 | the other end points of the line segment |
| r1 | radius of the LSS |
| center0 | center of the PSS |
Definition at line 148 of file SSVTreeCollider.cpp.
| float SSVTreeCollider::PrimDist | ( | udword | id0, |
| udword | id1, | ||
| Point & | point0, | ||
| Point & | point1 | ||
| ) | [protected] |
compute distance between primitives(triangles)
| id0 | index of the first primitive |
| id1 | index of the second primitive |
| point0 | the closest point on the first primitive |
| point1 | the closest point on the second primitive |
Definition at line 242 of file SSVTreeCollider.cpp.
| float SSVTreeCollider::PssLssDist | ( | float | r0, |
| const Point & | center0, | ||
| float | r1, | ||
| const Point & | point0, | ||
| const Point & | point1 | ||
| ) | [private] |
compute distance between PSS(Point Swept Sphere) and LSS(Line Swept Sphere)
| r0 | radius of the PSS |
| center0 | center of the PSS |
| r1 | radius of the LSS |
| point0 | one of end points of the line segment |
| point1 | the other end points of the line segment |
Definition at line 140 of file SSVTreeCollider.cpp.
| float SSVTreeCollider::PssPssDist | ( | float | r0, |
| const Point & | center0, | ||
| float | r1, | ||
| const Point & | center1 | ||
| ) | [private] |
compute distance between PSS(Point Swept Sphere)
| r0 | radius of the first sphere |
| center0 | center of the first sphere |
| r1 | radius of the first sphere |
| center1 | center of the first sphere |
Definition at line 133 of file SSVTreeCollider.cpp.
| float SSVTreeCollider::SsvSsvDist | ( | const AABBCollisionNode * | b0, |
| const AABBCollisionNode * | b1 | ||
| ) | [protected] |
compute distance between SSV(Swept Sphere Volume)s
| b0 | collision node from the left tree |
| b1 | collision node from the right tree |
| return | distance |
Definition at line 110 of file SSVTreeCollider.cpp.