|
|
|
@@ -2843,7 +2843,7 @@ void PhysicsServerCommandProcessor::deleteDynamicsWorld()
|
|
|
|
|
|
|
|
|
|
|
|
bool PhysicsServerCommandProcessor::supportsJointMotor(btMultiBody* mb, int mbLinkIndex)
|
|
|
|
bool PhysicsServerCommandProcessor::supportsJointMotor(btMultiBody* mb, int mbLinkIndex)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
bool canHaveMotor = (mb->getLink(mbLinkIndex).m_jointType == btMultibodyLink::eRevolute
|
|
|
|
bool canHaveMotor = (mb->getLink(mbLinkIndex).m_jointType == btMultibodyLink::eRevolute
|
|
|
|
|| mb->getLink(mbLinkIndex).m_jointType == btMultibodyLink::ePrismatic);
|
|
|
|
|| mb->getLink(mbLinkIndex).m_jointType == btMultibodyLink::ePrismatic);
|
|
|
|
return canHaveMotor;
|
|
|
|
return canHaveMotor;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -3056,7 +3056,7 @@ bool PhysicsServerCommandProcessor::processImportedObjects(const char* fileName,
|
|
|
|
std::string* baseName = new std::string(u2b.getLinkName(u2b.getRootLinkIndex()));
|
|
|
|
std::string* baseName = new std::string(u2b.getLinkName(u2b.getRootLinkIndex()));
|
|
|
|
m_data->m_strings.push_back(baseName);
|
|
|
|
m_data->m_strings.push_back(baseName);
|
|
|
|
mb->setBaseName(baseName->c_str());
|
|
|
|
mb->setBaseName(baseName->c_str());
|
|
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
#if 0
|
|
|
|
btAlignedObjectArray<char> urdf;
|
|
|
|
btAlignedObjectArray<char> urdf;
|
|
|
|
mb->dumpUrdf(urdf);
|
|
|
|
mb->dumpUrdf(urdf);
|
|
|
|
@@ -3067,7 +3067,7 @@ bool PhysicsServerCommandProcessor::processImportedObjects(const char* fileName,
|
|
|
|
fclose(f);
|
|
|
|
fclose(f);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@@ -6315,7 +6315,7 @@ bool PhysicsServerCommandProcessor::processRequestActualStateCommand(const struc
|
|
|
|
|
|
|
|
|
|
|
|
//we store the state details in the shared memory block, to reduce status size
|
|
|
|
//we store the state details in the shared memory block, to reduce status size
|
|
|
|
SendActualStateSharedMemoryStorage* stateDetails = (SendActualStateSharedMemoryStorage*)bufferServerToClient;
|
|
|
|
SendActualStateSharedMemoryStorage* stateDetails = (SendActualStateSharedMemoryStorage*)bufferServerToClient;
|
|
|
|
|
|
|
|
|
|
|
|
//make sure the storage fits, otherwise
|
|
|
|
//make sure the storage fits, otherwise
|
|
|
|
btAssert(sizeof(SendActualStateSharedMemoryStorage) < bufferSizeInBytes);
|
|
|
|
btAssert(sizeof(SendActualStateSharedMemoryStorage) < bufferSizeInBytes);
|
|
|
|
if (sizeof(SendActualStateSharedMemoryStorage) > bufferSizeInBytes)
|
|
|
|
if (sizeof(SendActualStateSharedMemoryStorage) > bufferSizeInBytes)
|
|
|
|
@@ -6327,11 +6327,12 @@ bool PhysicsServerCommandProcessor::processRequestActualStateCommand(const struc
|
|
|
|
{
|
|
|
|
{
|
|
|
|
btMultiBody* mb = body->m_multiBody;
|
|
|
|
btMultiBody* mb = body->m_multiBody;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
|
|
|
|
|
|
|
|
serverStatusOut.m_type = CMD_ACTUAL_STATE_UPDATE_COMPLETED;
|
|
|
|
serverStatusOut.m_type = CMD_ACTUAL_STATE_UPDATE_COMPLETED;
|
|
|
|
|
|
|
|
|
|
|
|
serverCmd.m_sendActualStateArgs.m_bodyUniqueId = bodyUniqueId;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_bodyUniqueId = bodyUniqueId;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_numLinks = body->m_multiBody->getNumLinks();
|
|
|
|
serverCmd.m_sendActualStateArgs.m_numLinks = body->m_multiBody->getNumLinks();
|
|
|
|
|
|
|
|
serverCmd.m_numDataStreamBytes = sizeof(SendActualStateSharedMemoryStorage);
|
|
|
|
serverCmd.m_sendActualStateArgs.m_stateDetails = 0;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_stateDetails = 0;
|
|
|
|
int totalDegreeOfFreedomQ = 0;
|
|
|
|
int totalDegreeOfFreedomQ = 0;
|
|
|
|
int totalDegreeOfFreedomU = 0;
|
|
|
|
int totalDegreeOfFreedomU = 0;
|
|
|
|
@@ -6540,9 +6541,10 @@ bool PhysicsServerCommandProcessor::processRequestActualStateCommand(const struc
|
|
|
|
btRigidBody* rb = body->m_rigidBody;
|
|
|
|
btRigidBody* rb = body->m_rigidBody;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
serverCmd.m_type = CMD_ACTUAL_STATE_UPDATE_COMPLETED;
|
|
|
|
serverCmd.m_type = CMD_ACTUAL_STATE_UPDATE_COMPLETED;
|
|
|
|
|
|
|
|
|
|
|
|
serverCmd.m_sendActualStateArgs.m_bodyUniqueId = bodyUniqueId;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_bodyUniqueId = bodyUniqueId;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_numLinks = 0;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_numLinks = 0;
|
|
|
|
|
|
|
|
serverCmd.m_numDataStreamBytes = sizeof(SendActualStateSharedMemoryStorage);
|
|
|
|
serverCmd.m_sendActualStateArgs.m_stateDetails = 0;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_stateDetails = 0;
|
|
|
|
|
|
|
|
|
|
|
|
int totalDegreeOfFreedomQ = 0;
|
|
|
|
int totalDegreeOfFreedomQ = 0;
|
|
|
|
@@ -6584,6 +6586,7 @@ bool PhysicsServerCommandProcessor::processRequestActualStateCommand(const struc
|
|
|
|
serverCmd.m_type = CMD_ACTUAL_STATE_UPDATE_COMPLETED;
|
|
|
|
serverCmd.m_type = CMD_ACTUAL_STATE_UPDATE_COMPLETED;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_bodyUniqueId = bodyUniqueId;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_bodyUniqueId = bodyUniqueId;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_numLinks = 0;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_numLinks = 0;
|
|
|
|
|
|
|
|
serverCmd.m_numDataStreamBytes = sizeof(SendActualStateSharedMemoryStorage);
|
|
|
|
serverCmd.m_sendActualStateArgs.m_stateDetails = 0;
|
|
|
|
serverCmd.m_sendActualStateArgs.m_stateDetails = 0;
|
|
|
|
|
|
|
|
|
|
|
|
serverCmd.m_sendActualStateArgs.m_rootLocalInertialFrame[0] =
|
|
|
|
serverCmd.m_sendActualStateArgs.m_rootLocalInertialFrame[0] =
|
|
|
|
@@ -7197,7 +7200,7 @@ bool PhysicsServerCommandProcessor::processCreateMultiBodyCommandSingle(const st
|
|
|
|
m_data->m_sdfRecentLoadedBodies.clear();
|
|
|
|
m_data->m_sdfRecentLoadedBodies.clear();
|
|
|
|
if (bodyUniqueId >= 0)
|
|
|
|
if (bodyUniqueId >= 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
serverStatusOut.m_type = CMD_CREATE_MULTI_BODY_COMPLETED;
|
|
|
|
serverStatusOut.m_type = CMD_CREATE_MULTI_BODY_COMPLETED;
|
|
|
|
if (bufferSizeInBytes>0 && serverStatusOut.m_numDataStreamBytes==0)
|
|
|
|
if (bufferSizeInBytes>0 && serverStatusOut.m_numDataStreamBytes==0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@@ -7205,7 +7208,7 @@ bool PhysicsServerCommandProcessor::processCreateMultiBodyCommandSingle(const st
|
|
|
|
BT_PROFILE("autogenerateGraphicsObjects");
|
|
|
|
BT_PROFILE("autogenerateGraphicsObjects");
|
|
|
|
m_data->m_guiHelper->autogenerateGraphicsObjects(this->m_data->m_dynamicsWorld);
|
|
|
|
m_data->m_guiHelper->autogenerateGraphicsObjects(this->m_data->m_dynamicsWorld);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
BT_PROFILE("createBodyInfoStream");
|
|
|
|
BT_PROFILE("createBodyInfoStream");
|
|
|
|
int streamSizeInBytes = createBodyInfoStream(bodyUniqueId, bufferServerToClient, bufferSizeInBytes);
|
|
|
|
int streamSizeInBytes = createBodyInfoStream(bodyUniqueId, bufferServerToClient, bufferSizeInBytes);
|
|
|
|
serverStatusOut.m_numDataStreamBytes = streamSizeInBytes;
|
|
|
|
serverStatusOut.m_numDataStreamBytes = streamSizeInBytes;
|
|
|
|
@@ -7667,7 +7670,7 @@ bool PhysicsServerCommandProcessor::processForwardDynamicsCommand(const struct S
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
btScalar deltaTimeScaled = m_data->m_physicsDeltaTime * simTimeScalingFactor;
|
|
|
|
btScalar deltaTimeScaled = m_data->m_physicsDeltaTime * simTimeScalingFactor;
|
|
|
|
|
|
|
|
|
|
|
|
int numSteps = 0;
|
|
|
|
int numSteps = 0;
|
|
|
|
if (m_data->m_numSimulationSubSteps > 0)
|
|
|
|
if (m_data->m_numSimulationSubSteps > 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@@ -7694,7 +7697,7 @@ bool PhysicsServerCommandProcessor::processForwardDynamicsCommand(const struct S
|
|
|
|
m_data->m_dynamicsWorld->getAnalyticsData(islandAnalyticsData);
|
|
|
|
m_data->m_dynamicsWorld->getAnalyticsData(islandAnalyticsData);
|
|
|
|
serverCmd.m_forwardDynamicsAnalyticsArgs.m_numIslands = islandAnalyticsData.size();
|
|
|
|
serverCmd.m_forwardDynamicsAnalyticsArgs.m_numIslands = islandAnalyticsData.size();
|
|
|
|
int numIslands = btMin(islandAnalyticsData.size(), MAX_ISLANDS_ANALYTICS);
|
|
|
|
int numIslands = btMin(islandAnalyticsData.size(), MAX_ISLANDS_ANALYTICS);
|
|
|
|
|
|
|
|
|
|
|
|
for (int i=0;i<numIslands;i++)
|
|
|
|
for (int i=0;i<numIslands;i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
serverCmd.m_forwardDynamicsAnalyticsArgs.m_numSolverCalls = islandAnalyticsData[i].m_numSolverCalls;
|
|
|
|
serverCmd.m_forwardDynamicsAnalyticsArgs.m_numSolverCalls = islandAnalyticsData[i].m_numSolverCalls;
|
|
|
|
@@ -7786,7 +7789,7 @@ bool PhysicsServerCommandProcessor::processChangeDynamicsInfoCommand(const struc
|
|
|
|
{
|
|
|
|
{
|
|
|
|
mb->setCanWakeup(false);
|
|
|
|
mb->setCanWakeup(false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (clientCmd.m_updateFlags & CHANGE_DYNAMICS_INFO_SET_LINEAR_DAMPING)
|
|
|
|
if (clientCmd.m_updateFlags & CHANGE_DYNAMICS_INFO_SET_LINEAR_DAMPING)
|
|
|
|
@@ -7892,7 +7895,7 @@ bool PhysicsServerCommandProcessor::processChangeDynamicsInfoCommand(const struc
|
|
|
|
{
|
|
|
|
{
|
|
|
|
mb->setMaxCoordinateVelocity(clientCmd.m_changeDynamicsInfoArgs.m_maxJointVelocity);
|
|
|
|
mb->setMaxCoordinateVelocity(clientCmd.m_changeDynamicsInfoArgs.m_maxJointVelocity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@@ -7980,7 +7983,7 @@ bool PhysicsServerCommandProcessor::processChangeDynamicsInfoCommand(const struc
|
|
|
|
btRigidBody* childRb = &body->m_rigidBodyJoints[linkIndex]->getRigidBodyB();
|
|
|
|
btRigidBody* childRb = &body->m_rigidBodyJoints[linkIndex]->getRigidBodyB();
|
|
|
|
rb = childRb;
|
|
|
|
rb = childRb;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -8071,13 +8074,13 @@ bool PhysicsServerCommandProcessor::processChangeDynamicsInfoCommand(const struc
|
|
|
|
{
|
|
|
|
{
|
|
|
|
rb->setAnisotropicFriction(anisotropicFriction);
|
|
|
|
rb->setAnisotropicFriction(anisotropicFriction);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (clientCmd.m_updateFlags & CHANGE_DYNAMICS_INFO_SET_CONTACT_PROCESSING_THRESHOLD)
|
|
|
|
if (clientCmd.m_updateFlags & CHANGE_DYNAMICS_INFO_SET_CONTACT_PROCESSING_THRESHOLD)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
rb->setContactProcessingThreshold(clientCmd.m_changeDynamicsInfoArgs.m_contactProcessingThreshold);
|
|
|
|
rb->setContactProcessingThreshold(clientCmd.m_changeDynamicsInfoArgs.m_contactProcessingThreshold);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (clientCmd.m_updateFlags & CHANGE_DYNAMICS_INFO_SET_CCD_SWEPT_SPHERE_RADIUS)
|
|
|
|
if (clientCmd.m_updateFlags & CHANGE_DYNAMICS_INFO_SET_CCD_SWEPT_SPHERE_RADIUS)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@@ -8498,7 +8501,7 @@ bool PhysicsServerCommandProcessor::processSendPhysicsParametersCommand(const st
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_data->m_dynamicsWorld->getSolverInfo().m_reportSolverAnalytics = clientCmd.m_physSimParamArgs.m_reportSolverAnalytics;
|
|
|
|
m_data->m_dynamicsWorld->getSolverInfo().m_reportSolverAnalytics = clientCmd.m_physSimParamArgs.m_reportSolverAnalytics;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
serverCmd.m_type = CMD_CLIENT_COMMAND_COMPLETED;
|
|
|
|
serverCmd.m_type = CMD_CLIENT_COMMAND_COMPLETED;
|
|
|
|
return hasStatus;
|
|
|
|
return hasStatus;
|
|
|
|
@@ -8592,7 +8595,7 @@ bool PhysicsServerCommandProcessor::processInitPoseCommand(const struct SharedMe
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int posVarCount = mb->getLink(i).m_posVarCount;
|
|
|
|
int posVarCount = mb->getLink(i).m_posVarCount;
|
|
|
|
bool hasPosVar = posVarCount > 0;
|
|
|
|
bool hasPosVar = posVarCount > 0;
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j < posVarCount; j++)
|
|
|
|
for (int j = 0; j < posVarCount; j++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (clientCmd.m_initPoseArgs.m_hasInitialStateQ[posVarCountIndex+j] == 0)
|
|
|
|
if (clientCmd.m_initPoseArgs.m_hasInitialStateQ[posVarCountIndex+j] == 0)
|
|
|
|
@@ -8621,7 +8624,7 @@ bool PhysicsServerCommandProcessor::processInitPoseCommand(const struct SharedMe
|
|
|
|
mb->setJointVelMultiDof(i, vel);
|
|
|
|
mb->setJointVelMultiDof(i, vel);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool hasVel = true;
|
|
|
|
bool hasVel = true;
|
|
|
|
for (int j = 0; j < mb->getLink(i).m_dofCount; j++)
|
|
|
|
for (int j = 0; j < mb->getLink(i).m_dofCount; j++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@@ -8644,7 +8647,7 @@ bool PhysicsServerCommandProcessor::processInitPoseCommand(const struct SharedMe
|
|
|
|
mb->setJointVelMultiDof(i, &clientCmd.m_initPoseArgs.m_initialStateQdot[uDofIndex]);
|
|
|
|
mb->setJointVelMultiDof(i, &clientCmd.m_initPoseArgs.m_initialStateQdot[uDofIndex]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
posVarCountIndex += mb->getLink(i).m_posVarCount;
|
|
|
|
posVarCountIndex += mb->getLink(i).m_posVarCount;
|
|
|
|
uDofIndex += mb->getLink(i).m_dofCount;
|
|
|
|
uDofIndex += mb->getLink(i).m_dofCount;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -9015,7 +9018,7 @@ bool PhysicsServerCommandProcessor::processInverseDynamicsCommand(const struct S
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#ifdef STATIC_LINK_SPD_PLUGIN
|
|
|
|
#ifdef STATIC_LINK_SPD_PLUGIN
|
|
|
|
{
|
|
|
|
{
|
|
|
|
cRBDModel* rbdModel = m_data->findOrCreateRBDModel(bodyHandle->m_multiBody,
|
|
|
|
cRBDModel* rbdModel = m_data->findOrCreateRBDModel(bodyHandle->m_multiBody,
|
|
|
|
clientCmd.m_calculateInverseDynamicsArguments.m_jointPositionsQ,
|
|
|
|
clientCmd.m_calculateInverseDynamicsArguments.m_jointPositionsQ,
|
|
|
|
clientCmd.m_calculateInverseDynamicsArguments.m_jointVelocitiesQdot);
|
|
|
|
clientCmd.m_calculateInverseDynamicsArguments.m_jointVelocitiesQdot);
|
|
|
|
if (rbdModel)
|
|
|
|
if (rbdModel)
|
|
|
|
@@ -9032,9 +9035,9 @@ bool PhysicsServerCommandProcessor::processInverseDynamicsCommand(const struct S
|
|
|
|
}
|
|
|
|
}
|
|
|
|
serverCmd.m_inverseDynamicsResultArgs.m_bodyUniqueId = clientCmd.m_calculateInverseDynamicsArguments.m_bodyUniqueId;
|
|
|
|
serverCmd.m_inverseDynamicsResultArgs.m_bodyUniqueId = clientCmd.m_calculateInverseDynamicsArguments.m_bodyUniqueId;
|
|
|
|
serverCmd.m_inverseDynamicsResultArgs.m_dofCount = dof;
|
|
|
|
serverCmd.m_inverseDynamicsResultArgs.m_dofCount = dof;
|
|
|
|
|
|
|
|
|
|
|
|
serverCmd.m_type = CMD_CALCULATED_INVERSE_DYNAMICS_COMPLETED;
|
|
|
|
serverCmd.m_type = CMD_CALCULATED_INVERSE_DYNAMICS_COMPLETED;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
@@ -9506,7 +9509,7 @@ bool PhysicsServerCommandProcessor::processRemoveBodyCommand(const struct Shared
|
|
|
|
int numCollisionObjects = m_data->m_dynamicsWorld->getNumCollisionObjects();
|
|
|
|
int numCollisionObjects = m_data->m_dynamicsWorld->getNumCollisionObjects();
|
|
|
|
m_data->m_dynamicsWorld->removeMultiBody(bodyHandle->m_multiBody);
|
|
|
|
m_data->m_dynamicsWorld->removeMultiBody(bodyHandle->m_multiBody);
|
|
|
|
numCollisionObjects = m_data->m_dynamicsWorld->getNumCollisionObjects();
|
|
|
|
numCollisionObjects = m_data->m_dynamicsWorld->getNumCollisionObjects();
|
|
|
|
|
|
|
|
|
|
|
|
delete bodyHandle->m_multiBody;
|
|
|
|
delete bodyHandle->m_multiBody;
|
|
|
|
bodyHandle->m_multiBody = 0;
|
|
|
|
bodyHandle->m_multiBody = 0;
|
|
|
|
serverCmd.m_type = CMD_REMOVE_BODY_COMPLETED;
|
|
|
|
serverCmd.m_type = CMD_REMOVE_BODY_COMPLETED;
|
|
|
|
@@ -10933,7 +10936,7 @@ bool PhysicsServerCommandProcessor::processRemoveStateCommand(const struct Share
|
|
|
|
bool hasStatus = true;
|
|
|
|
bool hasStatus = true;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
SharedMemoryStatus& serverCmd = serverStatusOut;
|
|
|
|
serverCmd.m_type = CMD_REMOVE_STATE_FAILED;
|
|
|
|
serverCmd.m_type = CMD_REMOVE_STATE_FAILED;
|
|
|
|
|
|
|
|
|
|
|
|
if (clientCmd.m_loadStateArguments.m_stateId >= 0)
|
|
|
|
if (clientCmd.m_loadStateArguments.m_stateId >= 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (clientCmd.m_loadStateArguments.m_stateId < m_data->m_savedStates.size())
|
|
|
|
if (clientCmd.m_loadStateArguments.m_stateId < m_data->m_savedStates.size())
|
|
|
|
@@ -11273,7 +11276,7 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm
|
|
|
|
hasStatus = processCreateVisualShapeCommand(clientCmd, serverStatusOut, bufferServerToClient, bufferSizeInBytes);
|
|
|
|
hasStatus = processCreateVisualShapeCommand(clientCmd, serverStatusOut, bufferServerToClient, bufferSizeInBytes);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case CMD_CREATE_MULTI_BODY:
|
|
|
|
case CMD_CREATE_MULTI_BODY:
|
|
|
|
{
|
|
|
|
{
|
|
|
|
hasStatus = processCreateMultiBodyCommand(clientCmd, serverStatusOut, bufferServerToClient, bufferSizeInBytes);
|
|
|
|
hasStatus = processCreateMultiBodyCommand(clientCmd, serverStatusOut, bufferServerToClient, bufferSizeInBytes);
|
|
|
|
|