chipmunk_glue.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef BB_CHIPMUNK_GLUE_H
  2. #define BB_CHIPMUNK_GLUE_H
  3. #include <chipmunk/chipmunk.h>
  4. #include <bbmonkey.h>
  5. // ***** cpCollisionHandler *****
  6. typedef bbFunction<cpBool(cpArbiter*,cpSpace*,cpDataPointer)> bb_cpCollisionBeginFunc;
  7. typedef bbFunction<cpBool(cpArbiter*,cpSpace*,cpDataPointer)> bb_cpCollisionPreSolveFunc;
  8. typedef bbFunction<void(cpArbiter*,cpSpace*,cpDataPointer)> bb_cpCollisionPostSolveFunc;
  9. typedef bbFunction<void(cpArbiter*,cpSpace*,cpDataPointer)> bb_cpCollisionSeparateFunc;
  10. struct bb_cpCollisionHandler : public bbObject{
  11. cpCollisionType typeA;
  12. cpCollisionType typeB;
  13. bb_cpCollisionBeginFunc beginFunc;
  14. bb_cpCollisionPreSolveFunc preSolveFunc;
  15. bb_cpCollisionPostSolveFunc postSolveFunc;
  16. bb_cpCollisionSeparateFunc separateFunc;
  17. cpDataPointer userData;
  18. void gcMark();
  19. };
  20. bb_cpCollisionHandler *bb_cpSpaceAddDefaultCollisionHandler( cpSpace* );
  21. bb_cpCollisionHandler *bb_cpSpaceAddCollisionHandler( cpSpace*,cpCollisionType,cpCollisionType );
  22. bb_cpCollisionHandler *bb_cpSpaceAddWildcardHandler( cpSpace*,cpCollisionType );
  23. // ***** cpSpaceDebugDraw *****
  24. typedef bbFunction<void(cpVect,cpFloat,cpFloat,cpSpaceDebugColor,cpSpaceDebugColor,cpDataPointer)> bb_cpSpaceDebugDrawCircleImpl;
  25. typedef bbFunction<void(cpVect,cpVect,cpSpaceDebugColor,cpDataPointer)> bb_cpSpaceDebugDrawSegmentImpl;
  26. typedef bbFunction<void(cpVect,cpVect,cpFloat,cpSpaceDebugColor,cpSpaceDebugColor,cpDataPointer)> bb_cpSpaceDebugDrawFatSegmentImpl;
  27. typedef bbFunction<void(int,cpVect*,cpFloat,cpSpaceDebugColor,cpSpaceDebugColor,cpDataPointer)> bb_cpSpaceDebugDrawPolygonImpl;
  28. typedef bbFunction<void(cpFloat,cpVect,cpSpaceDebugColor,cpDataPointer)> bb_cpSpaceDebugDrawDotImpl;
  29. typedef bbFunction<cpSpaceDebugColor(cpShape*,cpDataPointer)> bb_cpSpaceDebugDrawColorForShapeImpl;
  30. struct bb_cpSpaceDebugDrawOptions : public bbObject{
  31. bb_cpSpaceDebugDrawCircleImpl drawCircle;
  32. bb_cpSpaceDebugDrawSegmentImpl drawSegment;
  33. bb_cpSpaceDebugDrawFatSegmentImpl drawFatSegment;
  34. bb_cpSpaceDebugDrawPolygonImpl drawPolygon;
  35. bb_cpSpaceDebugDrawDotImpl drawDot;
  36. cpSpaceDebugDrawFlags flags;
  37. cpSpaceDebugColor shapeOutlineColor;
  38. bb_cpSpaceDebugDrawColorForShapeImpl colorForShape;
  39. cpSpaceDebugColor constraintColor;
  40. cpSpaceDebugColor collisionPointColor;
  41. cpDataPointer userData;
  42. void gcMark();
  43. };
  44. void bb_cpSpaceDebugDraw( cpSpace *space,bb_cpSpaceDebugDrawOptions *options );
  45. #endif