source: proiecte/SIMEO/Simeo/src/SimeoEngine/RemoteGui.h @ 167

Last change on this file since 167 was 167, checked in by (none), 14 years ago

Simeo: added final project and also older proof of concept code.

We used Git for version control, so look at the Git repo
in SIMEO/Simeo/ for more info.

File size: 1.7 KB
Line 
1#ifndef REMOTEGUI_H
2#define REMOTEGUI_H
3
4#include "BulletDynamics/Dynamics/btDynamicsWorld.h"
5#include "BulletCollision/CollisionShapes/btCollisionShape.h"
6
7#include "Gui.h"
8#include "Environment.h"
9
10#include <sys/types.h>
11#include <sys/socket.h>
12#include <netinet/in.h>
13
14#define YES     "Yes"
15#define NO      "No"
16#define SERVER_BANNER   "SIMEO Remote GUI at duty!"
17#define MAX_CLIENTS 1
18
19
20typedef struct {
21        int id;
22        btScalar m[16];
23        btMatrix3x3 rot;
24        btVector3 aabbMin, aabbMax;
25} guiUpdateData;
26
27typedef struct {
28        int id;
29        int numVertices;
30        int numIndices;
31        btVector3 *vertexPointer;
32        int *indexPointer;
33} guiAddData;
34
35class RemoteGui : public Gui
36{
37private:
38        int sockfd;
39        int m_addCounter;
40
41        map<void *, guiUpdateData *> m_cache;
42//      map<int,guiAddData> m_add;
43//      map<int,guiData> m_update;
44//      vector<int> m_remove;
45
46//      int getGuiData(guiUpdateData **gd);
47        int getGuiData(map<void *, guiAddData *> &addObjects, map<void *, guiUpdateData *> &updateObjects, vector<int> &removeObjects);
48        void sendData(int sock, const void *buffer, size_t size);
49
50        int equal(guiUpdateData *e1, guiUpdateData *e2);
51
52        // packing functions
53        float* packScalar(btScalar s, void *buffer);
54        int* packInt(int i, void *buffer);
55        float* packVector3(btVector3 v, void *buffer);
56        float* packMatrix3x3(btMatrix3x3 m, void *buffer);
57        void* packGuiData(guiUpdateData *gd, void *buff);
58        int packAddData(map<void *, guiAddData *> addObjects, void **buffer);
59        int packUpdateData(map<void *, guiUpdateData *> updateObjects, void **buffer);
60        int packRemoveData(vector<int> removeObjects, void **buffer);
61
62protected:
63        btDynamicsWorld *m_dynamicsWorld;
64
65public:
66        RemoteGui(Environment *env);
67        ~RemoteGui();
68
69        void init(int port);
70        void run();
71};
72
73#endif
Note: See TracBrowser for help on using the repository browser.