[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53661] trunk/blender/source/blender/ editors/space_view3d/view3d_fly.c: Added trackpad (and magic mouse) support to control speed in Fly Mode in 3d.

Ton Roosendaal ton at blender.org
Tue Jan 8 17:54:32 CET 2013


Revision: 53661
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53661
Author:   ton
Date:     2013-01-08 16:54:26 +0000 (Tue, 08 Jan 2013)
Log Message:
-----------
Added trackpad (and magic mouse) support to control speed in Fly Mode in 3d.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_fly.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_fly.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_fly.c	2013-01-08 16:39:36 UTC (rev 53660)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_fly.c	2013-01-08 16:54:26 UTC (rev 53661)
@@ -76,7 +76,8 @@
 	FLY_MODAL_PRECISION_ENABLE,
 	FLY_MODAL_PRECISION_DISABLE,
 	FLY_MODAL_FREELOOK_ENABLE,
-	FLY_MODAL_FREELOOK_DISABLE
+	FLY_MODAL_FREELOOK_DISABLE,
+	FLY_MODAL_SPEED,	/* mousepan typically */
 
 };
 
@@ -132,6 +133,8 @@
 	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_ACCELERATE);
 	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_DECELERATE);
 
+	WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, FLY_MODAL_SPEED);
+	
 	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_PAN_ENABLE);
 	/* XXX - Bug in the event system, middle mouse release doesnt work */
 	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PAN_DISABLE);
@@ -544,7 +547,22 @@
 			case FLY_MODAL_CONFIRM:
 				fly->state = FLY_CONFIRM;
 				break;
-
+				
+			/* speed adjusting with mousepan (trackpad) */
+			case FLY_MODAL_SPEED:
+			{
+				float fac = 0.02f * (event->prevy - event->y);
+				
+				/* allowing to brake immediate */
+				if (fac > 0.0f && fly->speed < 0.0f)
+					fly->speed = 0.0f;
+				else if (fac < 0.0f && fly->speed > 0.0f)
+					fly->speed = 0.0f;
+				else
+					fly->speed += fly->grid * fac;
+				
+				break;
+			}
 			case FLY_MODAL_ACCELERATE:
 			{
 				double time_currwheel;




More information about the Bf-blender-cvs mailing list