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