Example #1
0
        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();
        }
Example #2
0
        // 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
            }
        }