give softbody name
This commit is contained in:
@@ -1458,7 +1458,7 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus()
|
|||||||
BodyJointInfoCache* bodyJoints = new BodyJointInfoCache;
|
BodyJointInfoCache* bodyJoints = new BodyJointInfoCache;
|
||||||
m_data->m_bodyJointMap.insert(bodyUniqueId, bodyJoints);
|
m_data->m_bodyJointMap.insert(bodyUniqueId, bodyJoints);
|
||||||
bodyJoints->m_bodyName = serverCmd.m_dataStreamArguments.m_bodyName;
|
bodyJoints->m_bodyName = serverCmd.m_dataStreamArguments.m_bodyName;
|
||||||
bodyJoints->m_baseName = "baseLink";
|
bodyJoints->m_baseName = serverCmd.m_dataStreamArguments.m_bodyName;
|
||||||
|
|
||||||
if (bf.ok())
|
if (bf.ok())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1218,7 +1218,7 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd
|
|||||||
BodyJointInfoCache2* bodyJoints = new BodyJointInfoCache2;
|
BodyJointInfoCache2* bodyJoints = new BodyJointInfoCache2;
|
||||||
m_data->m_bodyJointMap.insert(bodyUniqueId, bodyJoints);
|
m_data->m_bodyJointMap.insert(bodyUniqueId, bodyJoints);
|
||||||
bodyJoints->m_bodyName = serverCmd.m_dataStreamArguments.m_bodyName;
|
bodyJoints->m_bodyName = serverCmd.m_dataStreamArguments.m_bodyName;
|
||||||
bodyJoints->m_baseName = "baseLink";
|
bodyJoints->m_baseName = serverCmd.m_dataStreamArguments.m_bodyName;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CMD_SYNC_USER_DATA_FAILED:
|
case CMD_SYNC_USER_DATA_FAILED:
|
||||||
|
|||||||
@@ -3463,8 +3463,6 @@ int PhysicsServerCommandProcessor::createBodyInfoStream(int bodyUniqueId, char*
|
|||||||
btDefaultSerializer ser(bufferSizeInBytes, (unsigned char*)bufferServerToClient);
|
btDefaultSerializer ser(bufferSizeInBytes, (unsigned char*)bufferServerToClient);
|
||||||
|
|
||||||
ser.startSerialization();
|
ser.startSerialization();
|
||||||
ser.registerNameForPointer(sb, bodyHandle->m_bodyName.c_str());
|
|
||||||
|
|
||||||
int len = sb->calculateSerializeBufferSize();
|
int len = sb->calculateSerializeBufferSize();
|
||||||
btChunk* chunk = ser.allocate(len, 1);
|
btChunk* chunk = ser.allocate(len, 1);
|
||||||
const char* structType = sb->serialize(chunk->m_oldPtr, &ser);
|
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_loadSoftBodyResultArguments.m_objectUniqueId = bodyUniqueId;
|
||||||
serverStatusOut.m_type = CMD_LOAD_SOFT_BODY_COMPLETED;
|
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);
|
int streamSizeInBytes = createBodyInfoStream(bodyUniqueId, bufferServerToClient, bufferSizeInBytes);
|
||||||
serverStatusOut.m_numDataStreamBytes = streamSizeInBytes;
|
serverStatusOut.m_numDataStreamBytes = streamSizeInBytes;
|
||||||
|
|||||||
Reference in New Issue
Block a user