#ifndef BB_CHIPMUNK_GLUE_H #define BB_CHIPMUNK_GLUE_H #include #include // ***** cpCollisionHandler ***** typedef bbFunction bb_cpCollisionBeginFunc; typedef bbFunction bb_cpCollisionPreSolveFunc; typedef bbFunction bb_cpCollisionPostSolveFunc; typedef bbFunction bb_cpCollisionSeparateFunc; struct bb_cpCollisionHandler : public bbObject{ cpCollisionType typeA; cpCollisionType typeB; bb_cpCollisionBeginFunc beginFunc; bb_cpCollisionPreSolveFunc preSolveFunc; bb_cpCollisionPostSolveFunc postSolveFunc; bb_cpCollisionSeparateFunc separateFunc; cpDataPointer userData; void gcMark(); }; bb_cpCollisionHandler *bb_cpSpaceAddDefaultCollisionHandler( cpSpace* ); bb_cpCollisionHandler *bb_cpSpaceAddCollisionHandler( cpSpace*,cpCollisionType,cpCollisionType ); bb_cpCollisionHandler *bb_cpSpaceAddWildcardHandler( cpSpace*,cpCollisionType ); // ***** cpSpaceDebugDraw ***** typedef bbFunction bb_cpSpaceDebugDrawCircleImpl; typedef bbFunction bb_cpSpaceDebugDrawSegmentImpl; typedef bbFunction bb_cpSpaceDebugDrawFatSegmentImpl; typedef bbFunction bb_cpSpaceDebugDrawPolygonImpl; typedef bbFunction bb_cpSpaceDebugDrawDotImpl; typedef bbFunction bb_cpSpaceDebugDrawColorForShapeImpl; struct bb_cpSpaceDebugDrawOptions : public bbObject{ bb_cpSpaceDebugDrawCircleImpl drawCircle; bb_cpSpaceDebugDrawSegmentImpl drawSegment; bb_cpSpaceDebugDrawFatSegmentImpl drawFatSegment; bb_cpSpaceDebugDrawPolygonImpl drawPolygon; bb_cpSpaceDebugDrawDotImpl drawDot; cpSpaceDebugDrawFlags flags; cpSpaceDebugColor shapeOutlineColor; bb_cpSpaceDebugDrawColorForShapeImpl colorForShape; cpSpaceDebugColor constraintColor; cpSpaceDebugColor collisionPointColor; cpDataPointer userData; void gcMark(); }; void bb_cpSpaceDebugDraw( cpSpace *space,bb_cpSpaceDebugDrawOptions *options ); #endif