1 #ifndef REMOTE_HELPER_H 2 #define REMOTE_HELPER_H 3 4 #include "../CommonInterfaces/CommonGUIHelperInterface.h" 5 6 ///a RemoteGUIHelper will connect to an existing graphics server through shared memory 7 struct RemoteGUIHelper : public GUIHelperInterface 8 { 9 struct RemoteGUIHelperInternalData* m_data; 10 11 RemoteGUIHelper(); 12 13 virtual ~RemoteGUIHelper(); 14 15 bool isConnected() const; 16 17 virtual void setVisualizerFlag(int flag, int enable); 18 19 virtual void createRigidBodyGraphicsObject(btRigidBody* body, const btVector3& color); 20 21 virtual void createCollisionObjectGraphicsObject(btCollisionObject* body, const btVector3& color); 22 23 virtual void createCollisionShapeGraphicsObject(btCollisionShape* collisionShape); 24 25 virtual bool getCameraInfo(int* width, int* height, float viewMatrix[16], float projectionMatrix[16], float camUp[3], float camForward[3], float hor[3], float vert[3], float* yaw, float* pitch, float* camDist, float camTarget[3]) const; 26 27 virtual void syncPhysicsToGraphics(const btDiscreteDynamicsWorld* rbWorld); 28 virtual void syncPhysicsToGraphics2(const class btDiscreteDynamicsWorld* rbWorld); 29 virtual void syncPhysicsToGraphics2(const GUISyncPosition* positions, int numPositions); 30 31 virtual void render(const btDiscreteDynamicsWorld* rbWorld); 32 33 virtual void createPhysicsDebugDrawer(btDiscreteDynamicsWorld* rbWorld); 34 35 virtual int registerTexture(const unsigned char* texels, int width, int height); 36 virtual int registerGraphicsShape(const float* vertices, int numvertices, const int* indices, int numIndices, int primitiveType, int textureId); 37 virtual int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling); 38 virtual void removeAllGraphicsInstances(); 39 virtual void removeGraphicsInstance(int graphicsUid); 40 virtual void changeRGBAColor(int instanceUid, const double rgbaColor[4]); 41 virtual void changeScaling(int instanceUid, const double scaling[3]); 42 43 virtual Common2dCanvasInterface* get2dCanvasInterface(); 44 45 virtual CommonParameterInterface* getParameterInterface(); 46 47 virtual CommonRenderInterface* getRenderInterface(); 48 49 virtual CommonGraphicsApp* getAppInterface(); 50 51 virtual void setUpAxis(int axis); 52 53 virtual void resetCamera(float camDist, float yaw, float pitch, float camPosX, float camPosY, float camPosZ); 54 55 virtual void copyCameraImageData(const float viewMatrix[16], const float projectionMatrix[16], 56 unsigned char* pixelsRGBA, int rgbaBufferSizeInPixels, 57 float* depthBuffer, int depthBufferSizeInPixels, 58 int* segmentationMaskBuffer, int segmentationMaskBufferSizeInPixels, 59 int startPixelIndex, int width, int height, int* numPixelsCopied); 60 61 virtual void setProjectiveTextureMatrices(const float viewMatrix[16], const float projectionMatrix[16]); 62 63 virtual void setProjectiveTexture(bool useProjectiveTexture); 64 65 virtual void autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld); 66 67 virtual void drawText3D(const char* txt, float posX, float posZY, float posZ, float size); 68 69 virtual void drawText3D(const char* txt, float position[3], float orientation[4], float color[4], float size, int optionFlag); 70 71 virtual int addUserDebugLine(const double debugLineFromXYZ[3], const double debugLineToXYZ[3], const double debugLineColorRGB[3], double lineWidth, double lifeTime, int trackingVisualShapeIndex, int replaceItemUid); 72 virtual void removeUserDebugItem(int debugItemUniqueId); 73 virtual void removeAllUserDebugItems(); 74 75 int uploadData(const unsigned char* data, int sizeInBytes, int slot); 76 }; 77 78 #endif //REMOTE_HELPER_H 79