work-in-progress
add UDP network connection for physics client <-> server. also set spinning friction in rolling friction demo (otherwise objects may keep on spinning forever)
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
#include "../SharedMemory/PhysicsClientC_API.h"
|
||||
#include "../SharedMemory/PhysicsDirectC_API.h"
|
||||
#include "../SharedMemory/SharedMemoryInProcessPhysicsC_API.h"
|
||||
|
||||
#ifdef BT_ENABLE_ENET
|
||||
#include "../SharedMemory/PhysicsClientUDP_C_API.h"
|
||||
#endif //BT_ENABLE_ENET
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <Python/Python.h>
|
||||
@@ -22,6 +24,7 @@ enum eCONNECT_METHOD {
|
||||
eCONNECT_GUI = 1,
|
||||
eCONNECT_DIRECT = 2,
|
||||
eCONNECT_SHARED_MEMORY = 3,
|
||||
eCONNECT_UDP = 4,
|
||||
};
|
||||
|
||||
static PyObject* SpamError;
|
||||
@@ -60,8 +63,8 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args) {
|
||||
int method = eCONNECT_GUI;
|
||||
if (!PyArg_ParseTuple(args, "i", &method)) {
|
||||
PyErr_SetString(SpamError,
|
||||
"connectPhysicsServer expected argument eCONNECT_GUI, "
|
||||
"eCONNECT_DIRECT or eCONNECT_SHARED_MEMORY");
|
||||
"connectPhysicsServer expected argument GUI, "
|
||||
"DIRECT, SHARED_MEMORY or UDP");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -85,6 +88,18 @@ static PyObject* pybullet_connectPhysicsServer(PyObject* self, PyObject* args) {
|
||||
sm = b3ConnectSharedMemory(SHARED_MEMORY_KEY);
|
||||
break;
|
||||
}
|
||||
case eCONNECT_UDP:
|
||||
{
|
||||
#ifdef BT_ENABLE_ENET
|
||||
|
||||
sm = b3ConnectPhysicsUDP("localhost", 1234);
|
||||
#else
|
||||
PyErr_SetString(SpamError, "UDP is not enabled in this pybullet build");
|
||||
return NULL;
|
||||
#endif //BT_ENABLE_ENET
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
PyErr_SetString(SpamError, "connectPhysicsServer unexpected argument");
|
||||
@@ -2401,6 +2416,8 @@ initpybullet(void)
|
||||
eCONNECT_SHARED_MEMORY); // user read
|
||||
PyModule_AddIntConstant(m, "DIRECT", eCONNECT_DIRECT); // user read
|
||||
PyModule_AddIntConstant(m, "GUI", eCONNECT_GUI); // user read
|
||||
PyModule_AddIntConstant(m, "UDP", eCONNECT_UDP); // user read
|
||||
|
||||
|
||||
PyModule_AddIntConstant(m, "TORQUE_CONTROL", CONTROL_MODE_TORQUE);
|
||||
PyModule_AddIntConstant(m, "VELOCITY_CONTROL",
|
||||
|
||||
Reference in New Issue
Block a user