From db9bc4f835a10e7e159581ad584b9b802c9f05e1 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Mon, 9 Sep 2019 18:05:29 -0700 Subject: [PATCH] PyBullet: write body sync data to larger shared memory --- examples/SharedMemory/PhysicsServerCommandProcessor.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index 05f02189e..03fd8d09d 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -5963,6 +5963,8 @@ bool PhysicsServerCommandProcessor::processSyncBodyInfoCommand(const struct Shar b3AlignedObjectArray usedHandles; m_data->m_bodyHandles.getUsedHandles(usedHandles); int actualNumBodies = 0; + int* bodyUids = (int*)bufferServerToClient; + for (int i = 0; i < usedHandles.size(); i++) { int usedHandle = usedHandles[i]; @@ -5973,18 +5975,18 @@ bool PhysicsServerCommandProcessor::processSyncBodyInfoCommand(const struct Shar if (body && (body->m_multiBody || body->m_rigidBody)) #endif { - serverStatusOut.m_sdfLoadedArgs.m_bodyUniqueIds[actualNumBodies++] = usedHandle; + bodyUids[actualNumBodies++] = usedHandle; } } serverStatusOut.m_sdfLoadedArgs.m_numBodies = actualNumBodies; int usz = m_data->m_userConstraints.size(); + int* constraintUid = bodyUids + actualNumBodies; serverStatusOut.m_sdfLoadedArgs.m_numUserConstraints = usz; for (int i = 0; i < usz; i++) { int key = m_data->m_userConstraints.getKeyAtIndex(i).getUid1(); - // int uid = m_data->m_userConstraints.getAtIndex(i)->m_userConstraintData.m_userConstraintUniqueId; - serverStatusOut.m_sdfLoadedArgs.m_userConstraintUniqueIds[i] = key; + constraintUid[i] = key; } serverStatusOut.m_type = CMD_SYNC_BODY_INFO_COMPLETED;