#include <OPC_TreeCollider.h>
Protected Attributes | |
hrp::CollisionPairInserterBase * | collisionPairInserter |
Matrix3x3 | mAR |
Absolute rotation matrix. More... | |
Point | mCenterCoeff0 |
Point | mCenterCoeff1 |
Point | mExtentsCoeff0 |
Point | mExtentsCoeff1 |
bool | mFullBoxBoxTest |
Perform full BV-BV tests (true) or SAT-lite tests (false) More... | |
bool | mFullPrimBoxTest |
Perform full Primitive-BV tests (true) or SAT-lite tests (false) More... | |
udword | mId0 |
udword | mId1 |
const MeshInterface * | mIMesh0 |
User-defined mesh interface for object0. More... | |
const MeshInterface * | mIMesh1 |
User-defined mesh interface for object1. More... | |
udword | mLeafIndex |
Triangle index. More... | |
Point | mLeafVerts [3] |
Triangle vertices. More... | |
udword | mNbBVBVTests |
Number of BV-BV tests. More... | |
udword | mNbBVPrimTests |
Number of BV-Primitive tests. More... | |
udword | mNbPrimPrimTests |
Number of Primitive-Primitive tests. More... | |
const AABBCollisionNode * | mNowNode0 |
const AABBCollisionNode * | mNowNode1 |
Container | mPairs |
Pairs of colliding primitives. More... | |
Matrix3x3 | mR0to1 |
Rotation from object0 to object1. More... | |
Matrix3x3 | mR1to0 |
Rotation from object1 to object0. More... | |
Point | mT0to1 |
Translation from object0 to object1. More... | |
Point | mT1to0 |
Translation from object1 to object0. More... | |
Protected Attributes inherited from Collider | |
const BaseModel * | mCurrentModel |
Current model for collision query (owner of touched faces) More... | |
udword | mFlags |
Bit flags. More... | |
const MeshInterface * | mIMesh |
User-defined mesh interface. More... | |
Contains an AABB tree collider. This class performs a collision test between two AABB trees.
Definition at line 70 of file OPC_TreeCollider.h.
AABBTreeCollider::AABBTreeCollider | ( | ) |
|
virtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
OBB-OBB overlap test using the separating axis theorem.
ea | [in] extents from box A |
ca | [in] center from box A |
eb | [in] extents from box B |
cb | [in] center from box B |
Definition at line 19 of file OPC_BoxBoxOverlap.h.
|
protected |
bool AABBTreeCollider::Collide | ( | BVTCache & | cache, |
const Matrix4x4 * | world0 = null , |
||
const Matrix4x4 * | world1 = null |
||
) |
Generic collision query for generic OPCODE models. After the call, access the results with:
cache | [in] collision cache for model pointers and a colliding pair of primitives |
world0 | [in] world matrix for first object, or null |
world1 | [in] world matrix for second object, or null |
bool AABBTreeCollider::Collide | ( | const AABBCollisionTree * | tree0, |
const AABBCollisionTree * | tree1, | ||
const Matrix4x4 * | world0 = null , |
||
const Matrix4x4 * | world1 = null , |
||
Pair * | cache = null |
||
) |
bool AABBTreeCollider::Collide | ( | const AABBNoLeafTree * | tree0, |
const AABBNoLeafTree * | tree1, | ||
const Matrix4x4 * | world0 = null , |
||
const Matrix4x4 * | world1 = null , |
||
Pair * | cache = null |
||
) |
bool AABBTreeCollider::Collide | ( | const AABBQuantizedTree * | tree0, |
const AABBQuantizedTree * | tree1, | ||
const Matrix4x4 * | world0 = null , |
||
const Matrix4x4 * | world1 = null , |
||
Pair * | cache = null |
||
) |
bool AABBTreeCollider::Collide | ( | const AABBQuantizedNoLeafTree * | tree0, |
const AABBQuantizedNoLeafTree * | tree1, | ||
const Matrix4x4 * | world0 = null , |
||
const Matrix4x4 * | world1 = null , |
||
Pair * | cache = null |
||
) |
Stats: gets the number of BV-BV overlap tests after a collision query.
Definition at line 135 of file OPC_TreeCollider.h.
Stats: gets the number of BV-Triangle overlap tests after a collision query.
Definition at line 155 of file OPC_TreeCollider.h.
Gets the number of contacts after a collision query.
Definition at line 167 of file OPC_TreeCollider.h.
Stats: gets the number of Triangle-Triangle overlap tests after a collision query.
Definition at line 145 of file OPC_TreeCollider.h.
Gets the pairs of colliding triangles after a collision query.
Definition at line 177 of file OPC_TreeCollider.h.
|
protected |
AABBTreeCollider::override | ( | Collider | ) | const |
Validates current settings. You should call this method after all the settings and callbacks have been defined for a collider.
|
inline |
Definition at line 77 of file OPC_TreeCollider.h.
Settings: selects between full box-box tests or "SAT-lite" tests (where Class III axes are discarded)
flag | [in] true for full tests, false for coarse tests |
Definition at line 114 of file OPC_TreeCollider.h.
Settings: selects between full triangle-box tests or "SAT-lite" tests (where Class III axes are discarded)
flag | [in] true for full tests, false for coarse tests |
Definition at line 123 of file OPC_TreeCollider.h.
|
inlineprotected |
Definition at line 247 of file OPC_TreeCollider.h.
|
protected |
Triangle-Box overlap test using the separating axis theorem. This is the code from Tomas Möller, a bit optimized:
center | [in] box center |
extents | [in] box extents |
Definition at line 118 of file OPC_TriBoxOverlap.h.
|
protected |
Triangle/triangle intersection test routine, by Tomas Moller, 1997. See article "A Fast Triangle-Triangle Intersection Test", Journal of Graphics Tools, 2(2), 1997
Updated June 1999: removed the divisions – a little faster now! Updated October 1999: added {} to CROSS and SUB macros
int NoDivTriTriIsect(float V0[3],float V1[3],float V2[3], float U0[3],float U1[3],float U2[3])
V0 | [in] triangle 0, vertex 0 |
V1 | [in] triangle 0, vertex 1 |
V2 | [in] triangle 0, vertex 2 |
U0 | [in] triangle 1, vertex 0 |
U1 | [in] triangle 1, vertex 1 |
U2 | [in] triangle 1, vertex 2 |
Definition at line 179 of file OPC_TriTriOverlap.h.
|
protected |
Definition at line 220 of file OPC_TreeCollider.h.
|
protected |
Absolute rotation matrix.
Definition at line 198 of file OPC_TreeCollider.h.
|
protected |
Definition at line 204 of file OPC_TreeCollider.h.
|
protected |
Definition at line 206 of file OPC_TreeCollider.h.
|
protected |
Definition at line 205 of file OPC_TreeCollider.h.
|
protected |
Definition at line 207 of file OPC_TreeCollider.h.
|
protected |
Perform full BV-BV tests (true) or SAT-lite tests (false)
Definition at line 218 of file OPC_TreeCollider.h.
|
protected |
Perform full Primitive-BV tests (true) or SAT-lite tests (false)
Definition at line 219 of file OPC_TreeCollider.h.
|
protected |
Definition at line 210 of file OPC_TreeCollider.h.
|
protected |
Definition at line 211 of file OPC_TreeCollider.h.
|
protected |
User-defined mesh interface for object0.
Definition at line 191 of file OPC_TreeCollider.h.
|
protected |
User-defined mesh interface for object1.
Definition at line 192 of file OPC_TreeCollider.h.
|
protected |
Triangle index.
Definition at line 216 of file OPC_TreeCollider.h.
|
protected |
Triangle vertices.
Definition at line 215 of file OPC_TreeCollider.h.
|
protected |
Number of BV-BV tests.
Definition at line 194 of file OPC_TreeCollider.h.
|
protected |
Number of BV-Primitive tests.
Definition at line 196 of file OPC_TreeCollider.h.
|
protected |
Number of Primitive-Primitive tests.
Definition at line 195 of file OPC_TreeCollider.h.
|
protected |
Definition at line 212 of file OPC_TreeCollider.h.
|
protected |
Definition at line 213 of file OPC_TreeCollider.h.
|
protected |
Pairs of colliding primitives.
Definition at line 189 of file OPC_TreeCollider.h.
|
protected |
Rotation from object0 to object1.
Definition at line 199 of file OPC_TreeCollider.h.
|
protected |
Rotation from object1 to object0.
Definition at line 200 of file OPC_TreeCollider.h.
|
protected |
Translation from object0 to object1.
Definition at line 201 of file OPC_TreeCollider.h.
|
protected |
Translation from object1 to object0.
Definition at line 202 of file OPC_TreeCollider.h.