[Bf-blender-cvs] [13582b8] epic-navigation: Navigation fully working

Dalai Felinto noreply at git.blender.org
Fri Nov 14 01:49:26 CET 2014


Commit: 13582b885f02f6fe0ec5861d9491ff36fc1c2dbc
Author: Dalai Felinto
Date:   Thu Nov 13 22:17:38 2014 -0200
Branches: epic-navigation
https://developer.blender.org/rB13582b885f02f6fe0ec5861d9491ff36fc1c2dbc

Navigation fully working

* Now you can start navigating with the arrows keys directly.

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

M	release/scripts/presets/keyconfig/unreal_engine.py
M	source/blender/editors/space_view3d/view3d_walk.c

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

diff --git a/release/scripts/presets/keyconfig/unreal_engine.py b/release/scripts/presets/keyconfig/unreal_engine.py
index 911e036..2af6693 100644
--- a/release/scripts/presets/keyconfig/unreal_engine.py
+++ b/release/scripts/presets/keyconfig/unreal_engine.py
@@ -38,22 +38,27 @@ 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', 'UP_ARROW', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('BACKWARD', 'DOWN_ARROW', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('LEFT', 'LEFT_ARROW', 'PRESS', any=True)
+kmi = km.keymap_items.new_modal('RIGHT', 'RIGHT_ARROW', 'PRESS', any=True)
 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', any=True)
+kmi = km.keymap_items.new_modal('DOWN', 'NUMPAD_MINUS', 'PRESS', any=True)
+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', 'NUMPAD_PLUS', 'PRESS', any=True)
-kmi = km.keymap_items.new_modal('DECELERATE', 'NUMPAD_MINUS', 'PRESS', any=True)
+#kmi = km.keymap_items.new_modal('ACCELERATE', 'NUMPAD_PLUS', 'PRESS', any=True)
+#kmi = km.keymap_items.new_modal('DECELERATE', 'NUMPAD_MINUS', '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)
@@ -87,61 +92,25 @@ 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')
 
-# combined arrows
-kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'PRESS', key_modifier='LEFT_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_LEFT')
-kmi = km.keymap_items.new('view3d.walk', 'LEFT_ARROW', 'PRESS', key_modifier='UP_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_LEFT')
-kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'PRESS', key_modifier='RIGHT_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_RIGHT')
-kmi = km.keymap_items.new('view3d.walk', 'RIGHT_ARROW', 'PRESS', key_modifier='UP_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_RIGHT')
-kmi = km.keymap_items.new('view3d.walk', 'DOWN_ARROW', 'PRESS', key_modifier='LEFT_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_BACKWARD_LEFT')
-kmi = km.keymap_items.new('view3d.walk', 'LEFT_ARROW', 'PRESS', key_modifier='DOWN_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_BACKWARD_LEFT')
-kmi = km.keymap_items.new('view3d.walk', 'DOWN_ARROW', 'PRESS', key_modifier='RIGHT_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_BACKWARD_RIGHT')
-kmi = km.keymap_items.new('view3d.walk', 'RIGHT_ARROW', 'PRESS', key_modifier='DOWN_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_BACKWARD_RIGHT')
-
 # simple arrows
 kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'PRESS')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD')
+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, 'key_mode', 'MOVE_BACKWARD')
+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, 'key_mode', 'MOVE_LEFT')
+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, 'key_mode', 'MOVE_RIGHT')
+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, 'key_mode', 'MOVE_UP')
+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, 'key_mode', 'MOVE_DOWN')
-
-# release arrows
-kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'RELEASE')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_STOP')
-kmi = km.keymap_items.new('view3d.walk', 'DOWN_ARROW', 'RELEASE')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_STOP')
-kmi = km.keymap_items.new('view3d.walk', 'LEFT_ARROW', 'RELEASE')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_STOP')
-kmi = km.keymap_items.new('view3d.walk', 'RIGHT_ARROW', 'RELEASE')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_STOP')
-kmi = km.keymap_items.new('view3d.walk', 'NUMPAD_PLUS', 'RELEASE')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_STOP')
-kmi = km.keymap_items.new('view3d.walk', 'NUMPAD_MINUS', 'RELEASE')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_STOP')
-
-# combined arrows - not working at the moment
-kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'PRESS', key_modifier='LEFT_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_LEFT')
-kmi = km.keymap_items.new('view3d.walk', 'LEFT_ARROW', 'PRESS', key_modifier='UP_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_LEFT')
-kmi = km.keymap_items.new('view3d.walk', 'UP_ARROW', 'PRESS', key_modifier='RIGHT_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_RIGHT')
-kmi = km.keymap_items.new('view3d.walk', 'RIGHT_ARROW', 'PRESS', key_modifier='UP_ARROW')
-kmi_props_setattr(kmi.properties, 'key_mode', 'MOVE_FORWARD_RIGHT')
+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)
diff --git a/source/blender/editors/space_view3d/view3d_walk.c b/source/blender/editors/space_view3d/view3d_walk.c
index 28e693f..56a2c9b 100644
--- a/source/blender/editors/space_view3d/view3d_walk.c
+++ b/source/blender/editors/space_view3d/view3d_walk.c
@@ -65,6 +65,7 @@
 /* prototypes */
 static float getVelocityZeroTime(const float gravity, const float velocity);
 static void walk_non_modal(struct bContext *C, struct wmOperator *op);
+static bool running_non_modal = false;
 
 /* NOTE: these defines are saved in keymap files, do not change values but just add new ones */
 enum {
@@ -101,10 +102,11 @@ typedef enum {
 	WALK_BIT_RIGHT    = 1 << 3,
 	WALK_BIT_UP       = 1 << 4,
 	WALK_BIT_DOWN     = 1 << 5,
+	WALK_BIT_INIT     = 1 << 6,
 } eWalkDirectionFlag;
 
 typedef enum eWalkKeyMode{
-	WALK_KEY_MODAL    = 0,
+	WALK_KEY_NULL    = 0,
 	WALK_KEY_FORWARD  = 1 << 1,
 	WALK_KEY_BACKWARD = 1 << 2,
 	WALK_KEY_LEFT     = 1 << 3,
@@ -132,9 +134,10 @@ typedef enum eWalkGravityState {
 } eWalkGravityState;
 
 typedef enum eWalkMouseMode {
-	WALK_MOUSE_LOOKAROUND     = 1 << 0,
-	WALK_MOUSE_MOVEHORIZONTAL = 1 << 1,
-	WALK_MOUSE_MOVEVERTICAL   = 1 << 2,
+	WALK_MOUSE_LOOKAROUND     = 0,
+	WALK_MOUSE_MOVEHORIZONTAL,
+	WALK_MOUSE_MOVEVERTICAL,
+	WALK_MOUSE_NULL,
 } eWalkMouseMode;
 
 /* called in transform_ops.c, on each regeneration of keymaps  */
@@ -289,7 +292,7 @@ typedef struct WalkInfo {
 
 	eWalkMouseMode mouse_mode;
 
-	bool is_modal;
+	bool use_mouse;
 
 	/* teleport */
 	WalkTeleport teleport;
@@ -393,7 +396,7 @@ static void walk_navigation_mode_set(bContext *C, WalkInfo *walk, eWalkMethod mo
 		walk->gravity_state = WALK_GRAVITY_STATE_START;
 	}
 
-	if (walk->is_modal) {
+	if (walk->use_mouse) {
 		walk_update_header(C, walk);
 	}
 }
@@ -478,6 +481,7 @@ enum {
 /* keep the previous speed until user changes userpreferences */
 static float base_speed = -1.f;
 static float userdef_speed = -1.f;
+static double non_modal_time = 0.0;
 
 static bool initWalkInfo(bContext *C, WalkInfo *walk, wmOperator *op, const wmEvent *event)
 {
@@ -525,7 +529,9 @@ static bool initWalkInfo(bContext *C, WalkInfo *walk, wmOperator *op, const wmEv
 	walk->grid = 1.f / walk->scene->unit.scale_length;
 
 	walk->mouse_mode = RNA_enum_get(op->ptr, "mouse_mode");
-	walk->is_modal = RNA_enum_get(op->ptr, "key_mode") == WALK_KEY_MODAL;
+	walk->use_mouse = walk->mouse_mode != WALK_MOUSE_NULL;
+
+	walk->time_lastdraw = PIL_check_seconds_timer();
 
 	/* user preference settings */
 	walk->teleport.duration = U.walk_navigation.teleport_time;
@@ -552,7 +558,7 @@ static bool initWalkInfo(bContext *C, WalkInfo *walk, wmOperator *op, const wmEv
 
 	walk->is_reversed = ((U.walk_navigation.flag & USER_WALK_MOUSE_REVERSE) != 0);
 
-	walk->active_directions = 0;
+	walk->active_directions

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list