From 17002580012f48ba1741fdc865166ecba7ce7e91 Mon Sep 17 00:00:00 2001 From: andreja6 Date: Fri, 26 Oct 2018 13:28:44 -0700 Subject: [PATCH] Added dynamic cast to camera to prevent corrupted CFrame --- CameraController.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/CameraController.cpp b/CameraController.cpp index db6eec8..1d3e2ce 100644 --- a/CameraController.cpp +++ b/CameraController.cpp @@ -133,18 +133,20 @@ void CameraController::tiltDown() void CameraController::centerCamera(Instance* selection) { CoordinateFrame frame = CoordinateFrame(g3dCamera.getCoordinateFrame().translation); - if(selection == NULL) + if(PartInstance* part = dynamic_cast(selection)) { - lookAt(Vector3(0,0,0)); - focusPosition=Vector3(0,0,0); - } - else - { - Vector3 partPos = ((PartInstance*)selection)->getPosition()/2; + Vector3 partPos = (part)->getPosition()/2; lookAt(partPos); focusPosition=partPos; zoom=((partPos-frame.translation).magnitude()); } + else + { + { + lookAt(Vector3(0,0,0)); + focusPosition=Vector3(0,0,0); + } + } } void CameraController::update(Demo* demo)