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!
1.5.2