diff --git a/docs/pybullet_quickstartguide.pdf b/docs/pybullet_quickstartguide.pdf index 9d0b61c0d..869773630 100644 Binary files a/docs/pybullet_quickstartguide.pdf and b/docs/pybullet_quickstartguide.pdf differ diff --git a/examples/pybullet/pybullet.c b/examples/pybullet/pybullet.c index c717df3f1..e69395702 100644 --- a/examples/pybullet/pybullet.c +++ b/examples/pybullet/pybullet.c @@ -31,6 +31,7 @@ static PyObject* SpamError; #define MAX_PHYSICS_CLIENTS 1024 static b3PhysicsClientHandle sPhysicsClients1[MAX_PHYSICS_CLIENTS] = {0}; +static int sPhysicsClientsGUI[MAX_PHYSICS_CLIENTS] = {0}; static int sNumPhysicsClients=0; b3PhysicsClientHandle getPhysicsClient(int physicsClientId) @@ -50,6 +51,8 @@ b3PhysicsClientHandle getPhysicsClient(int physicsClientId) //broken connection? b3DisconnectSharedMemory(sm); sPhysicsClients1[physicsClientId] = 0; + sPhysicsClientsGUI[physicsClientId] = 0; + sNumPhysicsClients--; } return 0; @@ -209,6 +212,7 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args, P int freeIndex = -1; + int method = eCONNECT_GUI; int i; b3PhysicsClientHandle sm=0; @@ -221,7 +225,7 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args, P { - int method = eCONNECT_GUI; + int key = SHARED_MEMORY_KEY; int port = 1234; const char* hostName = "localhost"; @@ -237,6 +241,21 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args, P } } + //Only one local in-process GUI connection allowed. + if (method == eCONNECT_GUI) + { + int i; + for (i=0;i