From 618c85325cd2fb8321988550f0e0e0d63ce56e5a Mon Sep 17 00:00:00 2001 From: Chuyuan Fu Date: Tue, 22 Oct 2019 15:14:47 -0700 Subject: [PATCH] give softbody name --- examples/SharedMemory/PhysicsClientSharedMemory.cpp | 2 +- examples/SharedMemory/PhysicsDirect.cpp | 2 +- examples/SharedMemory/PhysicsServerCommandProcessor.cpp | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/SharedMemory/PhysicsClientSharedMemory.cpp b/examples/SharedMemory/PhysicsClientSharedMemory.cpp index 479fae693..bb198f23e 100644 --- a/examples/SharedMemory/PhysicsClientSharedMemory.cpp +++ b/examples/SharedMemory/PhysicsClientSharedMemory.cpp @@ -1458,7 +1458,7 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() BodyJointInfoCache* bodyJoints = new BodyJointInfoCache; m_data->m_bodyJointMap.insert(bodyUniqueId, bodyJoints); bodyJoints->m_bodyName = serverCmd.m_dataStreamArguments.m_bodyName; - bodyJoints->m_baseName = "baseLink"; + bodyJoints->m_baseName = serverCmd.m_dataStreamArguments.m_bodyName; if (bf.ok()) { diff --git a/examples/SharedMemory/PhysicsDirect.cpp b/examples/SharedMemory/PhysicsDirect.cpp index b8a4eb57c..cceb55a10 100644 --- a/examples/SharedMemory/PhysicsDirect.cpp +++ b/examples/SharedMemory/PhysicsDirect.cpp @@ -1218,7 +1218,7 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd BodyJointInfoCache2* bodyJoints = new BodyJointInfoCache2; m_data->m_bodyJointMap.insert(bodyUniqueId, bodyJoints); bodyJoints->m_bodyName = serverCmd.m_dataStreamArguments.m_bodyName; - bodyJoints->m_baseName = "baseLink"; + bodyJoints->m_baseName = serverCmd.m_dataStreamArguments.m_bodyName; break; } case CMD_SYNC_USER_DATA_FAILED: diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index 437584951..c90a6ccbc 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -3463,8 +3463,6 @@ int PhysicsServerCommandProcessor::createBodyInfoStream(int bodyUniqueId, char* btDefaultSerializer ser(bufferSizeInBytes, (unsigned char*)bufferServerToClient); ser.startSerialization(); - ser.registerNameForPointer(sb, bodyHandle->m_bodyName.c_str()); - int len = sb->calculateSerializeBufferSize(); btChunk* chunk = ser.allocate(len, 1); const char* structType = sb->serialize(chunk->m_oldPtr, &ser); @@ -8227,6 +8225,12 @@ bool PhysicsServerCommandProcessor::processLoadSoftBodyCommand(const struct Shar serverStatusOut.m_loadSoftBodyResultArguments.m_objectUniqueId = bodyUniqueId; serverStatusOut.m_type = CMD_LOAD_SOFT_BODY_COMPLETED; + int pos = strlen(relativeFileName)-1; + while(pos>=0 && relativeFileName[pos]!='/') { pos--;} + btAssert(strlen(relativeFileName)-pos-5>0); + std::string object_name (std::string(relativeFileName).substr(pos+1, strlen(relativeFileName)- 5 - pos)); + bodyHandle->m_bodyName = object_name; + int streamSizeInBytes = createBodyInfoStream(bodyUniqueId, bufferServerToClient, bufferSizeInBytes); serverStatusOut.m_numDataStreamBytes = streamSizeInBytes;