CommonGUIHelperInterface.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #ifndef GUI_HELPER_INTERFACE_H
  2. #define GUI_HELPER_INTERFACE_H
  3. class btRigidBody;
  4. class btVector3;
  5. class btCollisionObject;
  6. class btDiscreteDynamicsWorld;
  7. class btCollisionShape;
  8. struct Common2dCanvasInterface;
  9. struct CommonParameterInterface;
  10. struct CommonRenderInterface;
  11. struct CommonGraphicsApp;
  12. ///The Bullet 2 GraphicsPhysicsBridge let's the graphics engine create graphics representation and synchronize
  13. struct GUIHelperInterface
  14. {
  15. virtual ~GUIHelperInterface() {}
  16. virtual void createRigidBodyGraphicsObject(btRigidBody* body,const btVector3& color) = 0;
  17. virtual void createCollisionObjectGraphicsObject(btCollisionObject* obj,const btVector3& color) = 0;
  18. virtual void createCollisionShapeGraphicsObject(btCollisionShape* collisionShape)=0;
  19. virtual void syncPhysicsToGraphics(const btDiscreteDynamicsWorld* rbWorld)=0;
  20. virtual void render(const btDiscreteDynamicsWorld* rbWorld)=0;
  21. virtual void createPhysicsDebugDrawer( btDiscreteDynamicsWorld* rbWorld)=0;
  22. virtual int registerGraphicsShape(const float* vertices, int numvertices, const int* indices, int numIndices) =0;
  23. virtual int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling) =0;
  24. virtual Common2dCanvasInterface* get2dCanvasInterface()=0;
  25. virtual CommonParameterInterface* getParameterInterface()=0;
  26. virtual CommonRenderInterface* getRenderInterface()=0;
  27. virtual CommonGraphicsApp* getAppInterface()=0;
  28. virtual void setUpAxis(int axis)=0;
  29. virtual void resetCamera(float camDist, float pitch, float yaw, float camPosX,float camPosY, float camPosZ)=0;
  30. virtual void autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld) =0;
  31. virtual void drawText3D( const char* txt, float posX, float posZY, float posZ, float size)=0;
  32. };
  33. ///the DummyGUIHelper does nothing, so we can test the examples without GUI/graphics (in 'console mode')
  34. struct DummyGUIHelper : public GUIHelperInterface
  35. {
  36. DummyGUIHelper() {}
  37. virtual ~DummyGUIHelper() {}
  38. virtual void createRigidBodyGraphicsObject(btRigidBody* body,const btVector3& color){}
  39. virtual void createCollisionObjectGraphicsObject(btCollisionObject* obj,const btVector3& color) {}
  40. virtual void createCollisionShapeGraphicsObject(btCollisionShape* collisionShape){}
  41. virtual void syncPhysicsToGraphics(const btDiscreteDynamicsWorld* rbWorld){}
  42. virtual void render(const btDiscreteDynamicsWorld* rbWorld) {}
  43. virtual void createPhysicsDebugDrawer( btDiscreteDynamicsWorld* rbWorld){}
  44. virtual int registerGraphicsShape(const float* vertices, int numvertices, const int* indices, int numIndices) { return -1; }
  45. virtual int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling) { return -1;}
  46. virtual Common2dCanvasInterface* get2dCanvasInterface()
  47. {
  48. return 0;
  49. }
  50. virtual CommonParameterInterface* getParameterInterface()
  51. {
  52. return 0;
  53. }
  54. virtual CommonRenderInterface* getRenderInterface()
  55. {
  56. return 0;
  57. }
  58. virtual CommonGraphicsApp* getAppInterface()
  59. {
  60. return 0;
  61. }
  62. virtual void setUpAxis(int axis)
  63. {
  64. }
  65. virtual void resetCamera(float camDist, float pitch, float yaw, float camPosX,float camPosY, float camPosZ)
  66. {
  67. }
  68. virtual void autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld)
  69. {
  70. }
  71. virtual void drawText3D( const char* txt, float posX, float posZY, float posZ, float size)
  72. {
  73. }
  74. };
  75. #endif //GUI_HELPER_INTERFACE_H