[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