[Bf-blender-cvs] [6ab9f1b] testbuild: View3D: Walk Navigation - Unreal Engine modes and keymap

Dalai Felinto noreply at git.blender.org
Fri Nov 14 04:33:08 CET 2014


Commit: 6ab9f1b4920bc7579dd61eedde7079172fa6be03
Author: Dalai Felinto
Date:   Fri Nov 14 01:26:26 2014 -0200
Branches: testbuild
https://developer.blender.org/rB6ab9f1b4920bc7579dd61eedde7079172fa6be03

View3D: Walk Navigation - Unreal Engine modes and keymap

===================================================================

M	intern/ghost/GHOST_Types.h
M	intern/ghost/intern/GHOST_SystemCocoa.mm
A	release/scripts/presets/keyconfig/unreal_engine.py
M	source/blender/blenlib/BLI_math_vector.h
M	source/blender/blenlib/intern/math_vector_inline.c
M	source/blender/editors/space_view3d/view3d_walk.c
M	source/blender/makesrna/intern/rna_wm.c
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/wm_event_types.h

===================================================================

diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h
index 7333ba0..7f03abb 100644
--- a/intern/ghost/GHOST_Types.h
+++ b/intern/ghost/GHOST_Types.h
@@ -400,7 +400,8 @@ typedef enum {
 	GHOST_kTrackpadEventScroll,
 	GHOST_kTrackpadEventRotate,
 	GHOST_kTrackpadEventSwipe, /* Reserved, not used for now */
-	GHOST_kTrackpadEventMagnify
+	GHOST_kTrackpadEventMagnify,
+	GHOST_kTrackpadEventUntouch,
 } GHOST_TTrackpadEventSubTypes;
 	
 
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm
index cfa1e8b..5dcad1d 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -1372,6 +1372,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
 			break;
 		case NSEventTypeEndGesture:
 			m_hasMultiTouchTrackpad = 0;
+			pushEvent(new GHOST_EventTrackpad([event timestamp] * 1000, window, GHOST_kTrackpadEventUntouch, 0, 0,
+			                                  0, 0));
 			break;
 			
 		case NSScrollWheel:
diff --git a/release/scripts/presets/keyconfig/unreal_engine.py b/release/scripts/presets/keyconfig/unreal_engine.py
new file mode 100644
index 0000000..9e16577
--- /dev/null
+++ b/release/scripts/presets/keyconfig/unreal_engine.py
@@ -0,0 +1,441 @@
+# Configuration Unreal Engine
+import bpy
+import os
+
+def kmi_props_setattr(kmi_props, attr, value):
+    try:
+        setattr(kmi_props, attr, value)
+    except AttributeError:
+        print("Warning: property '%s' not found in keymap item '%s'" %
+              (attr, kmi_props.__class__.__name__))
+    except Exception as e:
+        print("Warning: %r" % e)
+
+wm = bpy.context.window_manager
+kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])
+
+# Map View3D Walk Modal
+km = kc.keymaps.new('View3D Walk Modal', space_type='EMPTY', region_type='WINDOW', modal=True)
+
+kmi = km.keymap_items.new_modal('CANCEL', 'ESC', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CANCEL', 'RIGHTMOUSE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'LEFTMOUSE', 'ANY', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'RET', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'NUMPAD_ENTER', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('FAST_ENABLE', 'LEFT_SHIFT', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('FAST_DISABLE', 'LEFT_SHIFT', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('SLOW_ENABLE', 'LEFT_ALT', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('SLOW_DISABLE', 'LEFT_ALT', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('FORWARD', 'W', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('BACKWARD', 'S', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('LEFT', 'A', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('RIGHT', 'D', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('UP', 'E', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('DOWN', 'Q', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('FORWARD_STOP', 'W', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('BACKWARD_STOP', 'S', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('LEFT_STOP', 'A', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('RIGHT_STOP', 'D', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('UP_STOP', 'E', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('DOWN_STOP', 'Q', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('FORWARD', 'UP_ARROW', 'PRESS')
+kmi = km.keymap_items.new_modal('BACKWARD', 'DOWN_ARROW', 'PRESS')
+kmi = km.keymap_items.new_modal('LEFT', 'LEFT_ARROW', 'PRESS')
+kmi = km.keymap_items.new_modal('RIGHT', 'RIGHT_ARROW', 'PRESS')
+kmi = km.keymap_items.new_modal('FORWARD_STOP', 'UP_ARROW', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('BACKWARD_STOP', 'DOWN_ARROW', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('LEFT_STOP', 'LEFT_ARROW', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('RIGHT_STOP', 'RIGHT_ARROW', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('UP', 'NUMPAD_PLUS', 'PRESS')
+kmi = km.keymap_items.new_modal('DOWN', 'NUMPAD_MINUS', 'PRESS')
+kmi = km.keymap_items.new_modal('UP_STOP', 'NUMPAD_PLUS', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('DOWN_STOP', 'NUMPAD_MINUS', 'RELEASE', any=True)
+
+kmi = km.keymap_items.new_modal('GRAVITY_TOGGLE', 'TAB', 'PRESS')
+kmi = km.keymap_items.new_modal('GRAVITY_TOGGLE', 'G', 'PRESS')
+kmi = km.keymap_items.new_modal('JUMP', 'V', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('JUMP_STOP', 'V', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('TELEPORT', 'SPACE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('TELEPORT', 'MIDDLEMOUSE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('ACCELERATE', 'WHEELUPMOUSE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('DECELERATE', 'WHEELDOWNMOUSE', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'TRACKPADUNTOUCH', 'ANY', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'LEFTMOUSE', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'RIGHTMOUSE', 'RELEASE', any=True)
+kmi = km.keymap_items.new_modal('CONFIRM', 'MIDDLEMOUSE', 'RELEASE', any=True)
+
+# Map 3D View
+km = kc.keymaps.new('3D View', space_type='VIEW_3D', region_type='WINDOW', modal=False)
+
+kmi = km.keymap_items.new('view3d.manipulator', 'LEFTMOUSE', 'PRESS', any=True)
+kmi_props_setattr(kmi.properties, 'release_confirm', True)
+kmi = km.keymap_items.new('view3d.cursor3d', 'ACTIONMOUSE', 'PRESS')
+#kmi = km.keymap_items.new('view3d.rotate', 'MIDDLEMOUSE', 'PRESS')
+kmi = km.keymap_items.new('view3d.move', 'MIDDLEMOUSE', 'PRESS', shift=True)
+kmi = km.keymap_items.new('view3d.zoom', 'MIDDLEMOUSE', 'PRESS', ctrl=True)
+kmi = km.keymap_items.new('view3d.dolly', 'MIDDLEMOUSE', 'PRESS', shift=True, ctrl=True)
+kmi = km.keymap_items.new('view3d.view_selected', 'NUMPAD_PERIOD', 'PRESS', ctrl=True)
+kmi_props_setattr(kmi.properties, 'use_all_regions', True)
+kmi = km.keymap_items.new('view3d.view_selected', 'NUMPAD_PERIOD', 'PRESS')
+kmi_props_setattr(kmi.properties, 'use_all_regions', False)
+kmi = km.keymap_items.new('view3d.view_lock_to_active', 'NUMPAD_PERIOD', 'PRESS', shift=True)
+kmi = km.keymap_items.new('view3d.view_lock_clear', 'NUMPAD_PERIOD', 'PRESS', alt=True)
+kmi = km.keymap_items.new('view3d.navigate', 'F', 'PRESS', shift=True)
+kmi = km.keymap_items.new('view3d.smoothview', 'TIMER1', 'ANY', any=True)
+kmi = km.keymap_items.new('view3d.walk', 'TRACKPADPAN', 'ANY')
+kmi = km.keymap_items.new('view3d.walk', 'EVT_TWEAK_R', 'ANY')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'LOOK_AROUND')
+kmi = km.keymap_items.new('view3d.walk', 'EVT_TWEAK_L', 'ANY')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'MOVE_HORIZONTAL')
+kmi = km.keymap_items.new('view3d.walk', 'EVT_TWEAK_M', 'ANY')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'MOVE_VERTICAL')
+
+# simple arrows
+kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'PRESS')
+kmi_props_setattr(kmi.properties, 'initial_direction', 'MOVE_FORWARD')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'NONE')
+kmi = km.keymap_items.new('view3d.walk', 'DOWN_ARROW', 'PRESS')
+kmi_props_setattr(kmi.properties, 'initial_direction', 'MOVE_BACKWARD')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'NONE')
+kmi = km.keymap_items.new('view3d.walk', 'LEFT_ARROW', 'PRESS')
+kmi_props_setattr(kmi.properties, 'initial_direction', 'MOVE_LEFT')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'NONE')
+kmi = km.keymap_items.new('view3d.walk', 'RIGHT_ARROW', 'PRESS')
+kmi_props_setattr(kmi.properties, 'initial_direction', 'MOVE_RIGHT')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'NONE')
+kmi = km.keymap_items.new('view3d.walk', 'NUMPAD_PLUS', 'PRESS')
+kmi_props_setattr(kmi.properties, 'initial_direction', 'MOVE_UP')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'NONE')
+kmi = km.keymap_items.new('view3d.walk', 'NUMPAD_MINUS', 'PRESS')
+kmi_props_setattr(kmi.properties, 'initial_direction', 'MOVE_DOWN')
+kmi_props_setattr(kmi.properties, 'mouse_mode', 'NONE')
+
+kmi = km.keymap_items.new('view3d.rotate', 'MOUSEROTATE', 'ANY')
+kmi = km.keymap_items.new('view3d.move', 'TRACKPADPAN', 'ANY', shift=True)
+kmi = km.keymap_items.new('view3d.zoom', 'TRACKPADZOOM', 'ANY')
+kmi = km.keymap_items.new('view3d.zoom', 'TRACKPADPAN', 'ANY', ctrl=True)
+#kmi = km.keymap_items.new('view3d.zoom', 'NUMPAD_PLUS', 'PRESS')
+#kmi_props_setattr(kmi.properties, 'delta', 1)
+#kmi = km.keymap_items.new('view3d.zoom', 'NUMPAD_MINUS', 'PRESS')
+#kmi_props_setattr(kmi.properties, 'delta', -1)
+kmi = km.keymap_items.new('view3d.zoom', 'EQUAL', 'PRESS', ctrl=True)
+kmi_props_setattr(kmi.properties, 'delta', 1)
+kmi = km.keymap_items.new('view3d.zoom', 'MINUS', 'PRESS', ctrl=True)
+kmi_props_setattr(kmi.properties, 'delta', -1)
+kmi = km.keymap_items.new('view3d.zoom', 'WHEELINMOUSE', 'PRESS')
+kmi_props_setattr(kmi.properties, 'delta', 1)
+kmi = km.keymap_items.new('view3d.zoom', 'WHEELOUTMOUSE', 'PRESS')
+kmi_props_setattr(kmi.properties, 'delta', -1)
+kmi = km.keymap_items.new('view3d.dolly', 'NUMPAD_PLUS', 'PRESS', shift=True)
+kmi_props_setattr(kmi.properties, 'delta', 1)
+kmi = km.keymap_items.new('view3d.dolly', 'NUMPAD_MINUS', 'PRESS', shift=True)
+kmi_props_setattr(kmi.properties, 'delta', -1)
+kmi = km.keymap_items.new('view3d.dolly', 'EQUAL', 'PRESS', shift=True, ctrl=True)
+kmi_props_setattr(kmi.properties, 'delta', 1)
+kmi = km.keymap_items.new('view3d.dolly', 'MINUS', 'PRESS', shift=True, ctrl=True)
+kmi_props_setattr(kmi.properties, 'delta', -1)
+kmi = km.keymap_items.new('view3d.zoom_camera_1_to_1', 'NUMPAD_ENTER', 'PRESS', shift=True)
+kmi = km.keymap_items.new('view3d.view_center_camera', 'HOME', 'PRESS')
+kmi = km.keymap_items.new('view3d.view_center_lock', 'HOME', 'PRESS')
+kmi = km.keymap_items.new('view3d.view_center_cursor', 'HOME', 'PRESS', alt=True)
+kmi = km.keymap_items.new('view3d.view_center_pick', 'F', 'PRESS', alt=True)
+kmi = km.keymap_items.new('view3d.view_all', 'HOME', 'PRESS')
+kmi_props_setattr(kmi.properties, 'center', False)
+kmi = km.keymap_items.new('view3d.view_all', 'HOME', 'PRESS', ctrl=True)
+kmi_props_setattr(kmi.properties, 'use_all_regions', True)
+kmi_props_set

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list