Each shape has two bitmasks. One category and one collide. Each bit bit in category represents type of object. For example bit 1 can be set for players, bit 2 for enemies and bit 3 set for the ground. A player shape would then have bit 1 set. In the players collide fields all the types that the player shape can collide with is set. So 2 and 3 to collide with enemies and the ground.
Object A and B collides if ((A.cat & B.col) || (B.cat & A.col)) returns true.
Callback that is called early in the collision pipeline. It avoids generating collision pairs at all.
Narrow phase Callback