[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