class CommonExampleInterface* PhysicsClientCreateFunc(struct CommonExampleOptions& options) { PhysicsClientExample* example = new PhysicsClientExample(options.m_guiHelper); if (gSharedMemoryKey>=0) { example->setSharedMemoryKey(gSharedMemoryKey); } return example; }
void MyCallback(int buttonId, bool buttonState, void* userPtr) { PhysicsClientExample* cl = (PhysicsClientExample*) userPtr; b3Assert(cl); if (cl && buttonState) { cl->enqueueCommand(buttonId); } }
void MyComboBoxCallback(int combobox, const char* item, void* userPointer) { //b3Printf("Item selected %s", item); PhysicsClientExample* cl = (PhysicsClientExample*)userPointer; b3Assert(cl); if (cl) { cl->selectComboBox(combobox, item); } }
void MyCallback(int buttonId, bool buttonState, void* userPtr) { PhysicsClientExample* cl = (PhysicsClientExample*) userPtr; SharedMemoryCommand command; switch (buttonId) { case CMD_LOAD_URDF: { command.m_type =CMD_LOAD_URDF; sprintf(command.m_urdfArguments.m_urdfFileName,"r2d2.urdf");//kuka_lwr/kuka.urdf"); command.m_urdfArguments.m_initialPosition[0] = 0.0; command.m_updateFlags = URDF_ARGS_FILE_NAME| URDF_ARGS_INITIAL_POSITION|URDF_ARGS_INITIAL_ORIENTATION|URDF_ARGS_USE_MULTIBODY|URDF_ARGS_USE_FIXED_BASE; command.m_urdfArguments.m_initialPosition[1] = 0.0; command.m_urdfArguments.m_initialPosition[2] = 0.0; command.m_urdfArguments.m_initialOrientation[0] = 0.0; command.m_urdfArguments.m_initialOrientation[1] = 0.0; command.m_urdfArguments.m_initialOrientation[2] = 0.0; command.m_urdfArguments.m_initialOrientation[3] = 1.0; command.m_urdfArguments.m_useFixedBase = false; command.m_urdfArguments.m_useMultiBody = true; cl->enqueueCommand(command); break; } case CMD_CREATE_BOX_COLLISION_SHAPE: { command.m_type =CMD_CREATE_BOX_COLLISION_SHAPE; command.m_updateFlags = BOX_SHAPE_HAS_INITIAL_POSITION; command.m_createBoxShapeArguments.m_initialPosition[0] = 0; command.m_createBoxShapeArguments.m_initialPosition[1] = 0; command.m_createBoxShapeArguments.m_initialPosition[2] = -3; cl->enqueueCommand(command); break; } case CMD_REQUEST_ACTUAL_STATE: { command.m_type =CMD_REQUEST_ACTUAL_STATE; cl->enqueueCommand(command); break; }; case CMD_STEP_FORWARD_SIMULATION: { command.m_type =CMD_STEP_FORWARD_SIMULATION; cl->enqueueCommand(command); command.m_type =CMD_REQUEST_DEBUG_LINES; command.m_requestDebugLinesArguments.m_debugMode = btIDebugDraw::DBG_DrawWireframe;//:DBG_DrawConstraints; command.m_requestDebugLinesArguments.m_startingLineIndex = 0; cl->enqueueCommand(command); break; } case CMD_SEND_DESIRED_STATE: { command.m_type =CMD_SEND_DESIRED_STATE; cl->prepareControlCommand(command); cl->enqueueCommand(command); break; } case CMD_RESET_SIMULATION: { command.m_type = CMD_RESET_SIMULATION; cl->enqueueCommand(command); break; } case CMD_SEND_BULLET_DATA_STREAM: { command.m_type = buttonId; cl->enqueueCommand(command); break; } default: { b3Error("Unknown buttonId"); btAssert(0); } }; }