Collaboration diagram for col::MatrixCell:
Public Member Functions | |
MatrixCell (const ColObj *colobj1, const ColObj *colobj2) | |
void | addCallback (Callback *callback) |
Add a collision callback. | |
void | callCallbacks (void) const |
Process all callbacks. | |
bool | check (bool use_hulls) |
Check a pair for collision (internal). | |
Protected Attributes | |
vector< Callback * > | m_callback |
positive collision callbacks | |
ColObj const *const | m_colobj1 |
the two collision objects of this cell | |
ColObj const *const | m_colobj2 |
LevelOfDetectionE | m_level |
the maximum level of detection of all callbacks of this cell | |
SepPlane | m_sep_plane |
the seprating plane of the convex hulls ColObj::hull | |
Data | m_data |
Collision data for collision callback and internal usage. | |
bool | m_allpolygons |
Each cell contains a list of Callback's, and other pairwise data (like separating plane).
Each cell also contains a "level of collision". The minimum level is LEVEL_BOX. When a cell checks the pair of objects for collision, the maximum level of all callbacks is used for that check.
XCollision | If one of the nodes does not have a geometry. |
void col::MatrixCell::addCallback | ( | Callback * | cb | ) |
Add a collision callback.
XColBug | If m_callback->m_node1/2 doesn't match cell.m_colobj1/2->m_node. | |
XCollision | If one of the objects pointers in the callback is a NullNode. |
void col::MatrixCell::callCallbacks | ( | void | ) | const |
Process all callbacks.
bool col::MatrixCell::check | ( | bool | use_hulls | ) |
Check a pair for collision (internal).
use_hulls | do a convex hull pre-check |
m_doptree
and m_boxtree
should be set! It will call the check() function of the one which is set. And both ColObj's in a cell should have the same instance variables set, and the other unset!