public PickingCameraController(CameraMode camMode, float fovy, ScenePartMode scenePartMode) { _fovy = fovy; _scenePartMode = scenePartMode; SetVRCameraMode(camMode); var saved = CoreSettings.CoreSettings.Default.TrackerToCamera; string[] savedData; string SN = OpenVRInterface.deviceSNs[contIndex]; Matrix4 outMatrix; if (saved != null) { foreach (var s in saved) { savedData = s.Split(MainWindow.recentDataSeparator, StringSplitOptions.None); if (savedData[0] == SN) { bool valid = OpenVRInterface.StringToMatrix4(s, out outMatrix, out SN); if (valid) { OpenVRInterface.trackerToCamera[contIndex] = outMatrix; break; } } } } UpdateViewMatrix(); }
// kladné x kamera vlevo, kladné y DOLU, kladné z kamera vpøed; //+ kamera èumák nahoru/- èumák dolù, radiány // var hmd = OpenVR.System; // var compositor = OpenVR.Compositor; private void UpdateViewMatrix() { if (OpenVRInterface.EVRerror == EVRInitError.None) { _trackerPosition = OpenVRInterface.trackedPositions[contIndex]; _viewPosition = OpenVRInterface.trackerToCamera[contIndex] * _trackerPosition; _view = OpenVRInterface.GetViewFromPosition(_viewPosition); } else { _view = Matrix4.CreateTranslation(TrackingOffPosition); //backup for offline condition } }