void InputTestApp::OnKey(KeyCode key, int chr, bool down, int modifiers) { OVR_UNUSED2(chr, modifiers); switch (key) { case Key_Q: if (!down) pPlatform->Exit(0); break; case Key_F1: CurrentView = View_Perspective; SetView(CurrentView); //UpdateWindowTitle(); break; case Key_F2: CurrentView = View_XY_DownZ; SetView(CurrentView); break; case Key_F3: CurrentView = View_XZ_UpY; SetView(CurrentView); break; case Key_R: if (down) { SFusion.Reset(); SFusion2.Reset(); } break; case Key_H: if (down && pSensor) { SensorDevice::CoordinateFrame coord = pSensor->GetCoordinateFrame(); pSensor->SetCoordinateFrame( (coord == SensorDevice::Coord_Sensor) ? SensorDevice::Coord_HMD : SensorDevice::Coord_Sensor); SFusion.Reset(); SFusion2.Reset(); } break; case Key_G: if (down) { SFusion.SetGravityEnabled(!SFusion.IsGravityEnabled()); SFusion2.SetGravityEnabled(SFusion.IsGravityEnabled()); } break; case Key_A: if (down) { if (!pSensor2) { LogText("Angle: %2.3f\n", CalcDownAngleDegrees(SFusion.GetOrientation())); } else { LogText("Angle: %2.3f Secondary Sensor Angle: %2.3f\n", CalcDownAngleDegrees(SFusion.GetOrientation()), CalcDownAngleDegrees(SFusion2.GetOrientation())); } } break; /* case Key_End: if (!down) { OriAdjust = OriSensor.Conj(); Sc.ViewPoint.SetOrientation(Quatf()); } break; */ default: break; } }
extern "C" RIFTAPI_API bool ResetRift() { SFusion.Reset(); return true; }