MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / setCameraController

Method setCameraController

Source/Falcor/Scene/Scene.cpp:3909–3933  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 7

setModelParamsMethod · 0.80
setUpDirectionMethod · 0.80
setCameraSpeedMethod · 0.80
setCameraBoundsMethod · 0.80
getMethod · 0.45
centerMethod · 0.45
radiusMethod · 0.45

Tested by

no test coverage detected