cd_pqp.cpp File Reference

Detailed Description

Implementation of the C interface for the PQP collision detection engine.

See Also
cd_pqp.h

Definition in file cd_pqp.cpp.

Functions

TpqpDefinePQPModel (double **v, unsigned int nf, unsigned int *nvf, unsigned int **fv)
 Adds a polyhedron to the pqp object. More...
 
boolean PQPTest (THTransform *t1, Tpqp *m1, THTransform *t2, Tpqp *m2)
 Test for collision. More...
 
void DeletePQPModel (Tpqp *m)
 Deletes a given PQP object. More...
 

Function Documentation

Tpqp* DefinePQPModel ( double **  v,
unsigned int  nf,
unsigned int *  nvf,
unsigned int **  fv 
)

Adds a polyhedron to the pqp system. Note that pqp only accepts triangulated geometry. So spsheres and cylinders need to be triangulated to send them to pqp. This implies a reduction in the accuracy of the collision detection. Moreover, non-triangular faces of the polyhedron must be triangulated.

Parameters
vThe vertexes of the polyhedron.
nfNumber of faces.
nvfNumber of vertices per face.
fvThe indexes of the vertexes forming each face.
Returns
The identifier assigned to the new object.

Definition at line 20 of file cd_pqp.cpp.

References Error().

Referenced by InitPQPCD().

boolean PQPTest ( THTransform t1,
Tpqp m1,
THTransform t2,
Tpqp m2 
)

Test for collision.

Parameters
t1The transform to apply to the first PQP model. NULL if no transform need to be applied.
m1The first PQP model.
t2The transform to apply to the second PQP model. NULL if no transform need to be applied.
m2The second PQP model.
Returns
TRUE if there is a collision.

Definition at line 50 of file cd_pqp.cpp.

References AXIS_H, FALSE, HTransformGetElement(), and TRUE.

Referenced by CheckCollisionPQP().

void DeletePQPModel ( Tpqp m)

Deletes a given PQP object.

Parameters
mThe PQP object to modify.

Definition at line 88 of file cd_pqp.cpp.

Referenced by DeletePQPCD().