123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #ifndef GUI_HELPER_INTERFACE_H
- #define GUI_HELPER_INTERFACE_H
- class btRigidBody;
- class btVector3;
- class btCollisionObject;
- class btDiscreteDynamicsWorld;
- class btCollisionShape;
- struct Common2dCanvasInterface;
- struct CommonParameterInterface;
- struct CommonRenderInterface;
- struct CommonGraphicsApp;
- ///The Bullet 2 GraphicsPhysicsBridge let's the graphics engine create graphics representation and synchronize
- struct GUIHelperInterface
- {
- virtual ~GUIHelperInterface() {}
- virtual void createRigidBodyGraphicsObject(btRigidBody* body,const btVector3& color) = 0;
- virtual void createCollisionObjectGraphicsObject(btCollisionObject* obj,const btVector3& color) = 0;
- virtual void createCollisionShapeGraphicsObject(btCollisionShape* collisionShape)=0;
- virtual void syncPhysicsToGraphics(const btDiscreteDynamicsWorld* rbWorld)=0;
- virtual void render(const btDiscreteDynamicsWorld* rbWorld)=0;
- virtual void createPhysicsDebugDrawer( btDiscreteDynamicsWorld* rbWorld)=0;
- virtual int registerTexture(const unsigned char* texels, int width, int height)=0;
- virtual int registerGraphicsShape(const float* vertices, int numvertices, const int* indices, int numIndices,int primitiveType, int textureId) = 0;
- virtual int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling) =0;
- virtual void removeAllGraphicsInstances()=0;
-
- virtual Common2dCanvasInterface* get2dCanvasInterface()=0;
-
- virtual CommonParameterInterface* getParameterInterface()=0;
- virtual CommonRenderInterface* getRenderInterface()=0;
- virtual CommonGraphicsApp* getAppInterface()=0;
- virtual void setUpAxis(int axis)=0;
- virtual void resetCamera(float camDist, float pitch, float yaw, float camPosX,float camPosY, float camPosZ)=0;
-
- virtual void copyCameraImageData(const float viewMatrix[16], const float projectionMatrix[16],
- unsigned char* pixelsRGBA, int rgbaBufferSizeInPixels,
- float* depthBuffer, int depthBufferSizeInPixels,
- int startPixelIndex, int destinationWidth, int destinationHeight, int* numPixelsCopied)
- {
- copyCameraImageData(viewMatrix,projectionMatrix,pixelsRGBA,rgbaBufferSizeInPixels,
- depthBuffer,depthBufferSizeInPixels,
- 0,0,
- startPixelIndex,destinationWidth,
- destinationHeight,numPixelsCopied);
- }
- virtual void copyCameraImageData(const float viewMatrix[16], const float projectionMatrix[16],
- unsigned char* pixelsRGBA, int rgbaBufferSizeInPixels,
- float* depthBuffer, int depthBufferSizeInPixels,
- int* segmentationMaskBuffer, int segmentationMaskBufferSizeInPixels,
- int startPixelIndex, int destinationWidth, int destinationHeight, int* numPixelsCopied)=0;
- virtual void autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld) =0;
-
- virtual void drawText3D( const char* txt, float posX, float posZY, float posZ, float size)=0;
- };
- ///the DummyGUIHelper does nothing, so we can test the examples without GUI/graphics (in 'console mode')
- struct DummyGUIHelper : public GUIHelperInterface
- {
- DummyGUIHelper() {}
- virtual ~DummyGUIHelper() {}
- virtual void createRigidBodyGraphicsObject(btRigidBody* body,const btVector3& color){}
- virtual void createCollisionObjectGraphicsObject(btCollisionObject* obj,const btVector3& color) {}
- virtual void createCollisionShapeGraphicsObject(btCollisionShape* collisionShape){}
- virtual void syncPhysicsToGraphics(const btDiscreteDynamicsWorld* rbWorld){}
- virtual void render(const btDiscreteDynamicsWorld* rbWorld) {}
- virtual void createPhysicsDebugDrawer( btDiscreteDynamicsWorld* rbWorld){}
- virtual int registerTexture(const unsigned char* texels, int width, int height){return -1;}
- virtual int registerGraphicsShape(const float* vertices, int numvertices, const int* indices, int numIndices,int primitiveType, int textureId){return -1;}
- virtual int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling) {return -1;}
- virtual void removeAllGraphicsInstances(){}
-
- virtual Common2dCanvasInterface* get2dCanvasInterface()
- {
- return 0;
- }
-
- virtual CommonParameterInterface* getParameterInterface()
- {
- return 0;
- }
- virtual CommonRenderInterface* getRenderInterface()
- {
- return 0;
- }
-
- virtual CommonGraphicsApp* getAppInterface()
- {
- return 0;
- }
- virtual void setUpAxis(int axis)
- {
- }
- virtual void resetCamera(float camDist, float pitch, float yaw, float camPosX,float camPosY, float camPosZ)
- {
- }
- virtual void copyCameraImageData(const float viewMatrix[16], const float projectionMatrix[16],
- unsigned char* pixelsRGBA, int rgbaBufferSizeInPixels,
- float* depthBuffer, int depthBufferSizeInPixels,
- int* segmentationMaskBuffer, int segmentationMaskBufferSizeInPixels,
- int startPixelIndex, int width, int height, int* numPixelsCopied)
-
- {
- if (numPixelsCopied)
- *numPixelsCopied = 0;
- }
- virtual void autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld)
- {
- }
-
- virtual void drawText3D( const char* txt, float posX, float posZY, float posZ, float size)
- {
- }
-
- };
- #endif //GUI_HELPER_INTERFACE_H
|