Пример #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();
        }
Пример #2
0
 public Viewport(Vector4 bounds, CameraMode camMode, float fovy, ScenePartMode scenePartMode)
 {
     _bounds        = bounds;
     _camMode       = camMode;
     _fovy          = fovy;
     _scenePartMode = scenePartMode;
 }
Пример #3
0
 public void ResetCameraController()
 {
     _cameraImpls[(int)_camMode] = null;
     _fovy          = MathHelper.PiOver4 * 78 / 90;
     _scenePartMode = ScenePartMode.All;
     ActiveCameraControllerForView();
 }
 public FpsCameraController(float fovy, ScenePartMode scenePartMode)
 {
     _view          = Matrix4.Identity;
     _translation   = StartPosition;
     _fovy          = fovy;
     _scenePartMode = scenePartMode;
     UpdateViewMatrix();
 }
Пример #5
0
 public void SetParam(float fovy, ScenePartMode scenePartMode, CameraMode mode)
 {
     Debug.Assert((mode == CameraMode.X) || (mode == CameraMode.Y) || (mode == CameraMode.Z) || (mode == CameraMode.Orbit));
     _scenePartMode = scenePartMode;
     _cameraMode    = mode;
     _fovy          = fovy;
     SetOrbitOrConstrainedMode(mode, false);
 }
Пример #6
0
        public OrbitCameraController(CameraMode camMode, float fovy, ScenePartMode scenePartMode)
        {
            _view             = Matrix4.CreateFromAxisAngle(new Vector3(0.0f, 1.0f, 0.0f), 0.0f);
            _fovy             = fovy;
            _scenePartMode    = scenePartMode;
            _viewLookAtAndPan = Matrix4.Identity;

            _cameraDistance = InitialCameraDistance;

            _right = Vector3.UnitX;
            _up    = Vector3.UnitY;
            _front = Vector3.UnitZ;

            SetOrbitOrConstrainedMode(camMode, true);
        }
Пример #7
0
        private void ProcessKeys()
        {
            var cam = UiState.ActiveTab.ActiveCameraController;

            if (cam == null)
            {
                return;
            }

            var   dt = (float)_fps.LastFrameDelta;
            float x = 0.0f, y = 0.0f, z = 0.0f;

            var changed  = false;
            var changedz = false;

            if (_forwardPressed)
            {
                changed = true;
                z      -= dt;
            }
            if (_backPressed)
            {
                changed = true;
                z      += dt;
            }

            if (_rightPressed)
            {
                changed = true;
                x      += dt;
            }
            if (_leftPressed)
            {
                changed = true;
                x      -= dt;
            }

            if (_upPressed)
            {
                changed = true;
                y      += dt;
            }
            if (_downPressed)
            {
                changed = true;
                y      -= dt;
            }

            if (changed)
            {
                cam.MovementKey(x, y, z);
            }

            float step = 1.005f;

            if (_shiftPressed)
            {
                step = 1.05f;
            }


            if ((cam.GetScenePartMode() == ScenePartMode.Camera) || (cam.GetScenePartMode() == ScenePartMode.Composite))
            {
                cam = _renderer.renderingController;
            }

            float fov = cam.GetFOV();

            if (_fovyUpPressed)
            {
                changedz = true;
                fov      = fov * step;
            }
            if (_fovyDownPressed)
            {
                changedz = true;
                fov      = fov / step;
            }

            if (!changedz)
            {
                return;
            }

            if (fov > MathHelper.PiOver2)
            {
                fov = MathHelper.PiOver2;
            }
            ScenePartMode spm = cam.GetScenePartMode();
            CameraMode    cm  = cam.GetCameraMode();

            cam.SetParam(fov, spm, cm);
        }
Пример #8
0
 public void SetScenePartMode(ScenePartMode value)
 {
     _scenePartMode = value;
 }
Пример #9
0
 public void SetParam(float fovy, ScenePartMode scenePartMode, CameraMode mode)
 {
     _scenePartMode = scenePartMode;
     _cameraMode    = mode;
     _fovy          = fovy;
 }
Пример #10
0
 public VRModelCameraController(CameraMode camMode, float fovy, ScenePartMode scenePartMode)
 {
     _fovy          = fovy;
     _cameraMode    = camMode;
     _scenePartMode = scenePartMode;
 }
Пример #11
0
 public void SetParam(float fovy, ScenePartMode scenePartMode, CameraMode mode)
 {
     _scenePartMode = scenePartMode;
     Debug.Assert(mode == CameraMode.Fps);
     _fovy = fovy;
 }