Forráskód Böngészése

Made middle mouse button activate trackball camera navigation in entity editor

Ivan Safrin 12 éve
szülő
commit
fdb0de9d81

+ 3 - 1
IDE/Contents/Include/TrackballCamera.h

@@ -39,6 +39,8 @@ class TrackballCamera : public EventDispatcher {
     
         void setCameraPosition(Vector3 cameraPosition);
     
+		bool isNavKeyDown();
+
         void disableRotation(bool val);
     
 		static const int MOUSE_MODE_IDLE = 0;
@@ -54,7 +56,7 @@ class TrackballCamera : public EventDispatcher {
 		Number trackballRotateSpeed;
 		
 	private:
-	
+
 		int mouseMode;
 	
 		Vector3 getMouseProjectionOnBall(const Vector2 &mousePosition);

+ 6 - 2
IDE/Contents/Source/TrackballCamera.cpp

@@ -70,13 +70,17 @@ Camera *TrackballCamera::getTargetCamera() {
 	return targetCamera;
 }
 
-void TrackballCamera::handleEvent(Event *event) {
 
+bool TrackballCamera::isNavKeyDown() {
+	return (coreInput->getKeyState(KEY_LALT) || coreInput->getKeyState(KEY_RALT));
+}
+
+void TrackballCamera::handleEvent(Event *event) {
 	if(event->getDispatcher() == trackballShape) {
 		InputEvent *inputEvent = (InputEvent*) event;
 		switch(event->getEventCode()) {
 			case InputEvent::EVENT_MOUSEDOWN:
-				if(coreInput->getKeyState(KEY_LALT) || coreInput->getKeyState(KEY_RALT)) {
+				if(isNavKeyDown() || inputEvent->mouseButton == CoreInput::MOUSE_BUTTON3) {
 					if(coreInput->getKeyState(KEY_LSHIFT) || coreInput->getKeyState(KEY_RSHIFT)) {
 						mouseMode = MOUSE_MODE_PANNING;
 						trackBallMouseStart = Vector2(