//-- private methods ----- static void drawController(ClientControllerView *controllerView, const glm::mat4 &transform, const glm::vec3 &bulb_color) { switch(controllerView->GetControllerViewType()) { case ClientControllerView::PSMove: drawPSMoveModel(transform, bulb_color); break; case ClientControllerView::PSNavi: drawPSNaviModel(transform); break; case ClientControllerView::PSDualShock4: drawPSDualShock4Model(transform, bulb_color); break; } }
void AppStage_ControllerSettings::render() { glm::mat4 scale2RotateX90= glm::rotate( glm::scale(glm::mat4(1.f), glm::vec3(2.f, 2.f, 2.f)), 90.f, glm::vec3(1.f, 0.f, 0.f)); switch (m_menuState) { case eControllerMenuState::idle: { if (m_selectedControllerIndex >= 0) { const ControllerInfo &controllerInfo= m_bluetoothControllerInfos[m_selectedControllerIndex]; switch(controllerInfo.ControllerType) { case PSMoveProtocol::PSMOVE: { const ControllerInfo &controllerInfo = m_bluetoothControllerInfos[m_selectedControllerIndex]; // Display the tracking color being used for the controller glm::vec3 bulb_color = glm::vec3(1.f, 1.f, 1.f); switch (controllerInfo.TrackingColorType) { case PSMoveTrackingColorType::Magenta: bulb_color = glm::vec3(1.f, 0.f, 1.f); break; case PSMoveTrackingColorType::Cyan: bulb_color = glm::vec3(0.f, 1.f, 1.f); break; case PSMoveTrackingColorType::Yellow: bulb_color = glm::vec3(1.f, 1.f, 0.f); break; case PSMoveTrackingColorType::Red: bulb_color = glm::vec3(1.f, 0.f, 0.f); break; case PSMoveTrackingColorType::Green: bulb_color = glm::vec3(0.f, 1.f, 0.f); break; case PSMoveTrackingColorType::Blue: bulb_color = glm::vec3(0.f, 0.f, 1.f); break; default: break; } drawPSMoveModel(scale2RotateX90, bulb_color); } break; case PSMoveProtocol::PSNAVI: { drawPSNaviModel(scale2RotateX90); } break; default: assert(0 && "Unreachable"); } } } break; case eControllerMenuState::pendingControllerListRequest: case eControllerMenuState::failedControllerListRequest: { } break; default: assert(0 && "unreachable"); } }