diff --git a/examples/ExampleBrowser/GwenGUISupport/gwenUserInterface.cpp b/examples/ExampleBrowser/GwenGUISupport/gwenUserInterface.cpp index 678bae4cc..4f8ef5dd0 100644 --- a/examples/ExampleBrowser/GwenGUISupport/gwenUserInterface.cpp +++ b/examples/ExampleBrowser/GwenGUISupport/gwenUserInterface.cpp @@ -589,7 +589,6 @@ bool GwenUserInterface::keyboardCallback(int bulletKey, int state) } }; - bool bDown = (state == 1); if (gwenKey>=0) { diff --git a/examples/SharedMemory/PhysicsClient.cpp b/examples/SharedMemory/PhysicsClient.cpp index b9be5dfdf..e33d1dbc6 100644 --- a/examples/SharedMemory/PhysicsClient.cpp +++ b/examples/SharedMemory/PhysicsClient.cpp @@ -29,7 +29,6 @@ struct PhysicsClientSharedMemoryInternalData btAlignedObjectArray m_debugLinesTo; btAlignedObjectArray m_debugLinesColor; - int m_counter; bool m_serverLoadUrdfOK; bool m_isConnected; @@ -218,11 +217,10 @@ bool PhysicsClientSharedMemory::processServerStatus(SharedMemoryStatus& serverSt { { b3JointInfo info; - info.m_flags = 0; - info.m_qIndex = qOffset; - info.m_uIndex = uOffset; - info.m_linkIndex = link; - + info.m_flags = 0; + info.m_qIndex = (0 < mb->m_links[link].m_posVarCount) ? qOffset : -1; + info.m_uIndex = (0 < mb->m_links[link].m_dofCount) ? uOffset : -1; + if (mb->m_links[link].m_linkName) { if (m_data->m_verboseOutput) @@ -267,8 +265,8 @@ bool PhysicsClientSharedMemory::processServerStatus(SharedMemoryStatus& serverSt { b3JointInfo info; info.m_flags = 0; - info.m_qIndex = qOffset; - info.m_uIndex = uOffset; + info.m_qIndex = (0 < mb->m_links[link].m_posVarCount) ? qOffset : -1; + info.m_uIndex = (0 < mb->m_links[link].m_dofCount) ? uOffset : -1; if (mb->m_links[link].m_linkName) { diff --git a/examples/SharedMemory/PhysicsClientC_API.cpp b/examples/SharedMemory/PhysicsClientC_API.cpp index 8d627322a..47a977bd9 100644 --- a/examples/SharedMemory/PhysicsClientC_API.cpp +++ b/examples/SharedMemory/PhysicsClientC_API.cpp @@ -80,6 +80,16 @@ int b3InitStepSimulationCommand(struct SharedMemoryCommand* command) } +int b3InitResetSimulationCommand(struct SharedMemoryCommand* command) +{ + b3Assert(command); + command->m_type = CMD_RESET_SIMULATION; + command->m_updateFlags = 0; + + return 0; + +} + int b3JointControlCommandInit(struct SharedMemoryCommand* command, int controlMode) { diff --git a/examples/SharedMemory/PhysicsClientC_API.h b/examples/SharedMemory/PhysicsClientC_API.h index d726d2740..cc3c6d420 100644 --- a/examples/SharedMemory/PhysicsClientC_API.h +++ b/examples/SharedMemory/PhysicsClientC_API.h @@ -33,6 +33,8 @@ int b3PhysicsParamSetTimeStep(struct SharedMemoryCommand* command, double timeSt int b3InitStepSimulationCommand(struct SharedMemoryCommand* command); +int b3InitResetSimulationCommand(struct SharedMemoryCommand* command); + int b3LoadUrdfCommandInit(struct SharedMemoryCommand* command, const char* urdfFileName); ///all those commands are optional, except for the *Init int b3LoadUrdfCommandSetStartPosition(struct SharedMemoryCommand* command, double startPosX,double startPosY,double startPosZ); diff --git a/examples/SharedMemory/PhysicsServer.cpp b/examples/SharedMemory/PhysicsServer.cpp index 2ebca4f81..4b6a0ad08 100644 --- a/examples/SharedMemory/PhysicsServer.cpp +++ b/examples/SharedMemory/PhysicsServer.cpp @@ -975,6 +975,10 @@ void PhysicsServerSharedMemory::processClientCommands() case CMD_SEND_PHYSICS_SIMULATION_PARAMETERS: { + if (clientCmd.m_updateFlags&SIM_PARAM_UPDATE_DELTA_TIME) + { + m_data->m_physicsDeltaTime = clientCmd.m_physSimParamArgs.m_deltaTime; + } if (clientCmd.m_updateFlags&SIM_PARAM_UPDATE_GRAVITY) { btVector3 grav(clientCmd.m_physSimParamArgs.m_gravityAcceleration[0], @@ -1010,7 +1014,6 @@ void PhysicsServerSharedMemory::processClientCommands() } - case CMD_RESET_SIMULATION: { //clean up all data diff --git a/examples/SharedMemory/SharedMemoryBlock.h b/examples/SharedMemory/SharedMemoryBlock.h index f922a4f26..ba7faccb5 100644 --- a/examples/SharedMemory/SharedMemoryBlock.h +++ b/examples/SharedMemory/SharedMemoryBlock.h @@ -30,7 +30,13 @@ struct SharedMemoryBlock }; -static void InitSharedMemoryBlock(struct SharedMemoryBlock* sharedMemoryBlock) +//http://stackoverflow.com/questions/24736304/unable-to-use-inline-in-declaration-get-error-c2054 +#ifdef _WIN32 +__inline +#else +inline +#endif +void InitSharedMemoryBlock(struct SharedMemoryBlock* sharedMemoryBlock) { sharedMemoryBlock->m_numClientCommands = 0; sharedMemoryBlock->m_numServerCommands = 0; diff --git a/examples/SharedMemory/SharedMemoryCommands.h b/examples/SharedMemory/SharedMemoryCommands.h index 52af0ca8a..6f5c6fd3e 100644 --- a/examples/SharedMemory/SharedMemoryCommands.h +++ b/examples/SharedMemory/SharedMemoryCommands.h @@ -287,7 +287,6 @@ struct b3JointInfo int m_jointType; int m_qIndex; int m_uIndex; - int m_linkIndex; /// int m_flags; }; diff --git a/examples/SimpleOpenGL3/main.cpp b/examples/SimpleOpenGL3/main.cpp index 1dc80f31b..68dc00366 100644 --- a/examples/SimpleOpenGL3/main.cpp +++ b/examples/SimpleOpenGL3/main.cpp @@ -13,7 +13,7 @@ int main(int argc, char* argv[]) b3CommandLineArgs myArgs(argc,argv); - SimpleOpenGL3App* app = new SimpleOpenGL3App("SimpleOpenGL3App",1024,768); + SimpleOpenGL3App* app = new SimpleOpenGL3App("SimpleOpenGL3App",1024,768,true); app->m_instancingRenderer->getActiveCamera()->setCameraDistance(13); app->m_instancingRenderer->getActiveCamera()->setCameraPitch(0); app->m_instancingRenderer->getActiveCamera()->setCameraTargetPosition(0,0,0); diff --git a/test/SharedMemory/test.c b/test/SharedMemory/test.c index ad4e7cfe4..55fd1dc70 100644 --- a/test/SharedMemory/test.c +++ b/test/SharedMemory/test.c @@ -148,8 +148,15 @@ int main(int argc, char* argv[]) status.m_sendActualStateArgs.m_jointReactionForces[6*sensorJointIndexRight+1], status.m_sendActualStateArgs.m_jointReactionForces[6*sensorJointIndexRight+2]); } + + ret = b3InitResetSimulationCommand(&command); + ret = b3SubmitClientCommand(sm, &command); + timeout = MAX_TIMEOUT; + while ((timeout-- > 0) && b3ProcessServerStatus(sm, &status)==0) {} } + + b3DisconnectSharedMemory(sm); }