Public Member Functions | Protected Member Functions | Private Member Functions
SSVTreeCollider Class Reference

collision detector based on SSV(Sphere Swept Volume) More...

#include <SSVTreeCollider.h>

Inheritance diagram for SSVTreeCollider:
Inheritance graph
[legend]

List of all members.

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 &center0)
 compute distance between PSS(Point Swept Sphere) and LSS(Line Swept Sphere)
float PssLssDist (float r0, const Point &center0, 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 &center0, float r1, const Point &center1)
 compute distance between PSS(Point Swept Sphere)

Detailed Description

collision detector based on SSV(Sphere Swept Volume)

Definition at line 12 of file SSVTreeCollider.h.


Constructor & Destructor Documentation

constructor

Definition at line 7 of file SSVTreeCollider.cpp.

destructor

Definition at line 22 of file SSVTreeCollider.h.


Member Function Documentation

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.

Parameters:
cache
toleranceIf distance between links is smaller than this value, it is regarded as collision
world0transformation of the first link
world1transformation of the second link
Returns:
true if collision is detected, false otherwise

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

Parameters:
cache
minDthe minimum distance
point0the closest point on the first link
point1the closest point on the second link
world0transformation of the first link
world1transformation of the second link
Returns:
true if computed successfully, false otherwise

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

Parameters:
r0radius of the first LSS
point0one of end points of the first line segment
point1the other end points of the first line segment
r1radius of the second LSS
point2one of end points of the second line segment
point3the other end points of the second line segment
Returns:
distance

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)

Parameters:
r0radius of the PSS
point0one of end points of the line segment
point1the other end points of the line segment
r1radius of the LSS
center0center of the PSS
Returns:
distance

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)

Parameters:
id0index of the first primitive
id1index of the second primitive
point0the closest point on the first primitive
point1the closest point on the second primitive
Returns:
the minimum distance

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)

Parameters:
r0radius of the PSS
center0center of the PSS
r1radius of the LSS
point0one of end points of the line segment
point1the other end points of the line segment
Returns:
distance

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)

Parameters:
r0radius of the first sphere
center0center of the first sphere
r1radius of the first sphere
center1center of the first sphere
Returns:
distance

Definition at line 133 of file SSVTreeCollider.cpp.

compute distance between SSV(Swept Sphere Volume)s

Parameters:
b0collision node from the left tree
b1collision node from the right tree
returndistance

Definition at line 110 of file SSVTreeCollider.cpp.


The documentation for this class was generated from the following files:


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Thu Apr 11 2019 03:30:21