| 3907 | } |
| 3908 | |
| 3909 | void Scene::setCameraController(CameraControllerType type) |
| 3910 | { |
| 3911 | if (!mCameraSwitched && mCamCtrlType == type && mpCamCtrl) return; |
| 3912 | |
| 3913 | auto camera = getCamera(); |
| 3914 | switch (type) |
| 3915 | { |
| 3916 | case CameraControllerType::FirstPerson: |
| 3917 | mpCamCtrl = std::make_unique<FirstPersonCameraController>(camera); |
| 3918 | break; |
| 3919 | case CameraControllerType::Orbiter: |
| 3920 | mpCamCtrl = std::make_unique<OrbiterCameraController>(camera); |
| 3921 | ((OrbiterCameraController*)mpCamCtrl.get())->setModelParams(mSceneBB.center(), mSceneBB.radius(), 3.5f); |
| 3922 | break; |
| 3923 | case CameraControllerType::SixDOF: |
| 3924 | mpCamCtrl = std::make_unique<SixDoFCameraController>(camera); |
| 3925 | break; |
| 3926 | default: |
| 3927 | FALCOR_UNREACHABLE(); |
| 3928 | } |
| 3929 | mpCamCtrl->setUpDirection((CameraController::UpDirection)mUpDirection); |
| 3930 | mpCamCtrl->setCameraSpeed(mCameraSpeed); |
| 3931 | mpCamCtrl->setCameraBounds(mCameraBounds); |
| 3932 | mCamCtrlType = type; |
| 3933 | } |
| 3934 | |
| 3935 | bool Scene::onMouseEvent(const MouseEvent& mouseEvent) |
| 3936 | { |
nothing calls this directly
no test coverage detected