Blender V4.3
view3d_navigate_walk.cc File Reference
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_kdopbvh.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_rect.h"
#include "BLI_time.h"
#include "BLI_utildefines.h"
#include "BKE_context.hh"
#include "BKE_lib_id.hh"
#include "BKE_report.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "ED_screen.hh"
#include "ED_space_api.hh"
#include "ED_transform_snap_object_context.hh"
#include "ED_undo.hh"
#include "UI_resources.hh"
#include "GPU_immediate.hh"
#include "view3d_intern.hh"
#include "view3d_navigate.hh"
#include "BLI_strict_flags.h"

Go to the source code of this file.

Classes

struct  WalkTeleport
 
struct  WalkInfo
 

Macros

#define USE_TABLET_SUPPORT
 
#define JUMP_SPEED_MIN   1.0f
 
#define JUMP_TIME_MAX   0.2f /* s */
 
#define JUMP_SPEED_MAX   sqrtf(2.0f * walk->gravity * walk->jump_height)
 
#define JUMP_HEIGHT_FACTOR   1.5f
 
#define JUMP_HEIGHT_MIN   0.1f
 
#define JUMP_HEIGHT_MAX   10.0f
 
#define WALK_ROTATE_TABLET_FAC   8.8f /* Higher is faster, relative to region size. */
 
#define WALK_ROTATE_CONSTANT_FAC   DEG2RADF(0.15f) /* Higher is faster, radians per-pixel. */
 
#define WALK_TOP_LIMIT   DEG2RADF(85.0f)
 
#define WALK_BOTTOM_LIMIT   DEG2RADF(-80.0f)
 
#define WALK_MOVE_SPEED   (0 ? 0.0f : g_walk.base_speed)
 
#define WALK_JUMP_HEIGHT   (0 ? 0.0f : g_walk.jump_height)
 
#define WALK_BOOST_FACTOR   ((void)0, walk->speed_factor)
 
#define WALK_ZUP_CORRECT_FAC   0.1f /* Amount to correct per step. */
 
#define WALK_ZUP_CORRECT_ACCEL   0.05f /* Increase upright momentum each step. */
 

Enumerations

Internal Walk Structs
enum  eWalkState { WALK_RUNNING = 0 , WALK_CANCEL = 1 , WALK_CONFIRM = 2 }
 

Functions

Internal Walk Drawing
static int walkApply (bContext *C, WalkInfo *walk, bool is_confirm)
 
static float walk_calc_velocity_zero_time (const float gravity, const float velocity)
 
static void drawWalkPixel (const bContext *, ARegion *region, void *arg)
 
Walk Operator
static int walk_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void walk_cancel (bContext *C, wmOperator *op)
 
static int walk_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
void VIEW3D_OT_walk (wmOperatorType *ot)
 

Modal Key-map

enum  {
  WALK_MODAL_CANCEL = 1 , WALK_MODAL_CONFIRM , WALK_MODAL_DIR_FORWARD , WALK_MODAL_DIR_FORWARD_STOP ,
  WALK_MODAL_DIR_BACKWARD , WALK_MODAL_DIR_BACKWARD_STOP , WALK_MODAL_DIR_LEFT , WALK_MODAL_DIR_LEFT_STOP ,
  WALK_MODAL_DIR_RIGHT , WALK_MODAL_DIR_RIGHT_STOP , WALK_MODAL_DIR_UP , WALK_MODAL_DIR_UP_STOP ,
  WALK_MODAL_DIR_DOWN , WALK_MODAL_DIR_DOWN_STOP , WALK_MODAL_FAST_ENABLE , WALK_MODAL_FAST_DISABLE ,
  WALK_MODAL_SLOW_ENABLE , WALK_MODAL_SLOW_DISABLE , WALK_MODAL_JUMP , WALK_MODAL_JUMP_STOP ,
  WALK_MODAL_TELEPORT , WALK_MODAL_GRAVITY_TOGGLE , WALK_MODAL_ACCELERATE , WALK_MODAL_DECELERATE ,
  WALK_MODAL_AXIS_LOCK_Z , WALK_MODAL_INCREASE_JUMP , WALK_MODAL_DECREASE_JUMP , WALK_MODAL_DIR_LOCAL_UP ,
  WALK_MODAL_DIR_LOCAL_UP_STOP , WALK_MODAL_DIR_LOCAL_DOWN , WALK_MODAL_DIR_LOCAL_DOWN_STOP
}
 
enum  eWalkDirectionFlag {
  WALK_BIT_LOCAL_FORWARD = 1 << 0 , WALK_BIT_LOCAL_BACKWARD = 1 << 1 , WALK_BIT_LOCAL_LEFT = 1 << 2 , WALK_BIT_LOCAL_RIGHT = 1 << 3 ,
  WALK_BIT_LOCAL_UP = 1 << 4 , WALK_BIT_LOCAL_DOWN = 1 << 5 , WALK_BIT_GLOBAL_UP = 1 << 6 , WALK_BIT_GLOBAL_DOWN = 1 << 7
}
 
enum  eWalkTeleportState { WALK_TELEPORT_STATE_OFF = 0 , WALK_TELEPORT_STATE_ON }
 
enum  eWalkMethod { WALK_MODE_FREE = 0 , WALK_MODE_GRAVITY }
 
enum  eWalkGravityState { WALK_GRAVITY_STATE_OFF = 0 , WALK_GRAVITY_STATE_JUMP , WALK_GRAVITY_STATE_START , WALK_GRAVITY_STATE_ON }
 
enum  eWalkLockState { WALK_AXISLOCK_STATE_OFF = 0 , WALK_AXISLOCK_STATE_ACTIVE = 2 , WALK_AXISLOCK_STATE_DONE = 3 }
 
void walk_modal_keymap (wmKeyConfig *keyconf)
 

Internal Walk Logic

struct { 
 
   float   base_speed 
 
   float   userdef_speed 
 
   float   jump_height 
 
   float   userdef_jump_height 
 
g_walk 
 
static void walk_navigation_mode_set (WalkInfo *walk, eWalkMethod mode)
 
static bool walk_floor_distance_get (RegionView3D *rv3d, WalkInfo *walk, const float dvec[3], float *r_distance)
 
static bool walk_ray_cast (RegionView3D *rv3d, WalkInfo *walk, float r_location[3], float r_normal[3], float *r_ray_distance)
 
static bool initWalkInfo (bContext *C, WalkInfo *walk, wmOperator *op, const int mval[2])
 
static int walkEnd (bContext *C, WalkInfo *walk)
 
static void walkEvent (WalkInfo *walk, const wmEvent *event)
 
static void walkMoveCamera (bContext *C, WalkInfo *walk, const bool do_rotate, const bool do_translate, const bool is_confirm)
 
static float walk_calc_free_fall_distance (const float gravity, const float time)
 

Detailed Description

Interactive walk navigation modal operator (similar to walking around in a first person game).

Defines VIEW3D_OT_navigate, walk modal operator.

Note
Similar logic to view3d_navigate_fly.cc changes here may apply there too.

Definition in file view3d_navigate_walk.cc.

Macro Definition Documentation

◆ JUMP_HEIGHT_FACTOR

#define JUMP_HEIGHT_FACTOR   1.5f

Referenced by walkEvent().

◆ JUMP_HEIGHT_MAX

#define JUMP_HEIGHT_MAX   10.0f

Referenced by walkEvent().

◆ JUMP_HEIGHT_MIN

#define JUMP_HEIGHT_MIN   0.1f

Referenced by walkEvent().

◆ JUMP_SPEED_MAX

#define JUMP_SPEED_MAX   sqrtf(2.0f * walk->gravity * walk->jump_height)

Referenced by walkEvent().

◆ JUMP_SPEED_MIN

#define JUMP_SPEED_MIN   1.0f

Referenced by walkEvent().

◆ JUMP_TIME_MAX

#define JUMP_TIME_MAX   0.2f /* s */

Referenced by walkEvent().

◆ USE_TABLET_SUPPORT

#define USE_TABLET_SUPPORT

Definition at line 55 of file view3d_navigate_walk.cc.

◆ WALK_BOOST_FACTOR

#define WALK_BOOST_FACTOR   ((void)0, walk->speed_factor)

Referenced by walkApply().

◆ WALK_BOTTOM_LIMIT

#define WALK_BOTTOM_LIMIT   DEG2RADF(-80.0f)

Referenced by walkApply().

◆ WALK_JUMP_HEIGHT

#define WALK_JUMP_HEIGHT   (0 ? 0.0f : g_walk.jump_height)

Referenced by walkApply().

◆ WALK_MOVE_SPEED

#define WALK_MOVE_SPEED   (0 ? 0.0f : g_walk.base_speed)

Referenced by walkApply().

◆ WALK_ROTATE_CONSTANT_FAC

#define WALK_ROTATE_CONSTANT_FAC   DEG2RADF(0.15f) /* Higher is faster, radians per-pixel. */

Referenced by walkApply().

◆ WALK_ROTATE_TABLET_FAC

#define WALK_ROTATE_TABLET_FAC   8.8f /* Higher is faster, relative to region size. */

Referenced by walkApply().

◆ WALK_TOP_LIMIT

#define WALK_TOP_LIMIT   DEG2RADF(85.0f)

Referenced by walkApply().

◆ WALK_ZUP_CORRECT_ACCEL

#define WALK_ZUP_CORRECT_ACCEL   0.05f /* Increase upright momentum each step. */

Referenced by walkApply().

◆ WALK_ZUP_CORRECT_FAC

#define WALK_ZUP_CORRECT_FAC   0.1f /* Amount to correct per step. */

Referenced by walkApply().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
WALK_MODAL_CANCEL 
WALK_MODAL_CONFIRM 
WALK_MODAL_DIR_FORWARD 
WALK_MODAL_DIR_FORWARD_STOP 
WALK_MODAL_DIR_BACKWARD 
WALK_MODAL_DIR_BACKWARD_STOP 
WALK_MODAL_DIR_LEFT 
WALK_MODAL_DIR_LEFT_STOP 
WALK_MODAL_DIR_RIGHT 
WALK_MODAL_DIR_RIGHT_STOP 
WALK_MODAL_DIR_UP 
WALK_MODAL_DIR_UP_STOP 
WALK_MODAL_DIR_DOWN 
WALK_MODAL_DIR_DOWN_STOP 
WALK_MODAL_FAST_ENABLE 
WALK_MODAL_FAST_DISABLE 
WALK_MODAL_SLOW_ENABLE 
WALK_MODAL_SLOW_DISABLE 
WALK_MODAL_JUMP 
WALK_MODAL_JUMP_STOP 
WALK_MODAL_TELEPORT 
WALK_MODAL_GRAVITY_TOGGLE 
WALK_MODAL_ACCELERATE 
WALK_MODAL_DECELERATE 
WALK_MODAL_AXIS_LOCK_Z 
WALK_MODAL_INCREASE_JUMP 
WALK_MODAL_DECREASE_JUMP 
WALK_MODAL_DIR_LOCAL_UP 
WALK_MODAL_DIR_LOCAL_UP_STOP 
WALK_MODAL_DIR_LOCAL_DOWN 
WALK_MODAL_DIR_LOCAL_DOWN_STOP 

Definition at line 63 of file view3d_navigate_walk.cc.

◆ eWalkDirectionFlag

Enumerator
WALK_BIT_LOCAL_FORWARD 
WALK_BIT_LOCAL_BACKWARD 
WALK_BIT_LOCAL_LEFT 
WALK_BIT_LOCAL_RIGHT 
WALK_BIT_LOCAL_UP 
WALK_BIT_LOCAL_DOWN 
WALK_BIT_GLOBAL_UP 
WALK_BIT_GLOBAL_DOWN 

Definition at line 97 of file view3d_navigate_walk.cc.

◆ eWalkGravityState

Enumerator
WALK_GRAVITY_STATE_OFF 
WALK_GRAVITY_STATE_JUMP 
WALK_GRAVITY_STATE_START 
WALK_GRAVITY_STATE_ON 

Definition at line 119 of file view3d_navigate_walk.cc.

◆ eWalkLockState

Relative view axis Z axis locking.

Enumerator
WALK_AXISLOCK_STATE_OFF 

Disabled.

WALK_AXISLOCK_STATE_ACTIVE 

Moving.

WALK_AXISLOCK_STATE_DONE 

Done moving, it cannot be activated again.

Definition at line 127 of file view3d_navigate_walk.cc.

◆ eWalkMethod

Enumerator
WALK_MODE_FREE 
WALK_MODE_GRAVITY 

Definition at line 114 of file view3d_navigate_walk.cc.

◆ eWalkState

enum eWalkState

WalkInfo::state

Enumerator
WALK_RUNNING 
WALK_CANCEL 
WALK_CONFIRM 

Definition at line 225 of file view3d_navigate_walk.cc.

◆ eWalkTeleportState

Enumerator
WALK_TELEPORT_STATE_OFF 
WALK_TELEPORT_STATE_ON 

Definition at line 109 of file view3d_navigate_walk.cc.

Function Documentation

◆ drawWalkPixel()

◆ initWalkInfo()

static bool initWalkInfo ( bContext * C,
WalkInfo * walk,
wmOperator * op,
const int mval[2] )
static

Definition at line 512 of file view3d_navigate_walk.cc.

References WalkInfo::active_directions, WalkInfo::anim_playing, BKE_id_is_editable(), BKE_report(), BLI_time_now_seconds(), View3D::camera, Object::constraints, copy_v2_v2_int(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_view3d(), CTX_wm_view3d(), CTX_wm_window(), WalkInfo::depsgraph, WalkInfo::draw_handle_pixel, drawWalkPixel(), WalkTeleport::duration, WalkInfo::dvec_prev, ED_region_draw_cb_activate(), ED_screen_animation_playing(), ED_transform_snap_object_context_create(), ED_view3d_cameracontrol_acquire(), ED_view3d_offset_lock_check(), fabsf, ListBase::first, PhysicsSettings::flag, g_walk, PhysicsSettings::gravity, WalkInfo::gravity, WalkInfo::gravity_state, WalkInfo::grid, Object::id, WalkInfo::init_mval, WalkInfo::is_cursor_absolute, WalkInfo::is_fast, WalkInfo::is_reversed, WalkInfo::is_slow, WalkInfo::jump_height, WalkInfo::mouse_speed, WalkInfo::need_rotation_keyframe, WalkInfo::need_translation_keyframe, RegionView3D::persp, PHYS_GLOBAL_GRAVITY, Scene::physics_settings, WalkInfo::prev_mval, WalkInfo::redraw, WalkInfo::region, REGION_DRAW_POST_PIXEL, wmOperator::reports, RegionView3D::rflag, RPT_ERROR, WalkInfo::rv3d, RV3D_CAMOB, RV3D_NAVIGATING, RV3D_PERSP, UnitSettings::scale_length, WalkInfo::scene, WalkInfo::snap_context, WalkInfo::speed, WalkInfo::speed_factor, WalkInfo::state, UnitSettings::system, WalkInfo::teleport, WalkInfo::time_lastdraw, TIMER, WalkInfo::timer, ARegion::type, Scene::unit, USER_UNIT_NONE, USER_WALK_GRAVITY, USER_WALK_MOUSE_REVERSE, WalkInfo::v3d, WalkInfo::v3d_camera_control, WalkInfo::view_height, WALK_AXISLOCK_STATE_OFF, WALK_GRAVITY_STATE_OFF, WALK_MODE_FREE, WALK_MODE_GRAVITY, walk_navigation_mode_set(), WALK_RUNNING, ARegion::winrct, WM_cursor_grab_enable(), WM_CURSOR_WRAP_NONE, WM_event_timer_add(), zero_v3(), and WalkInfo::zlock.

Referenced by walk_invoke().

◆ VIEW3D_OT_walk()

◆ walk_calc_free_fall_distance()

static float walk_calc_free_fall_distance ( const float gravity,
const float time )
static

Definition at line 1011 of file view3d_navigate_walk.cc.

References time.

Referenced by walkApply().

◆ walk_calc_velocity_zero_time()

static float walk_calc_velocity_zero_time ( const float gravity,
const float velocity )
static

Definition at line 1016 of file view3d_navigate_walk.cc.

Referenced by walkEvent().

◆ walk_cancel()

static void walk_cancel ( bContext * C,
wmOperator * op )
static

Definition at line 1486 of file view3d_navigate_walk.cc.

References wmOperator::customdata, WalkInfo::state, WALK_CANCEL, and walkEnd().

Referenced by VIEW3D_OT_walk().

◆ walk_floor_distance_get()

static bool walk_floor_distance_get ( RegionView3D * rv3d,
WalkInfo * walk,
const float dvec[3],
float * r_distance )
static

◆ walk_invoke()

◆ walk_modal()

◆ walk_modal_keymap()

◆ walk_navigation_mode_set()

static void walk_navigation_mode_set ( WalkInfo * walk,
eWalkMethod mode )
static

◆ walk_ray_cast()

static bool walk_ray_cast ( RegionView3D * rv3d,
WalkInfo * walk,
float r_location[3],
float r_normal[3],
float * r_ray_distance )
static
Parameters
ray_distanceDistance to the hit point
r_locationLocation of the hit point
r_normalNormal of the hit surface, transformed to always face the camera

Definition at line 458 of file view3d_navigate_walk.cc.

References BVH_RAYCAST_DIST_MAX, copy_v3_v3(), WalkInfo::depsgraph, dot_v3v3(), ED_transform_snap_object_project_ray(), WalkInfo::grid, mul_mat3_m4_v3(), negate_v3(), normalize_v3(), ret, SCE_SNAP_TARGET_ALL, WalkInfo::snap_context, SnapObjectParams::snap_target_select, WalkInfo::v3d, and RegionView3D::viewinv.

Referenced by walkEvent().

◆ walkApply()

static int walkApply ( bContext * C,
WalkInfo * walk,
bool is_confirm )
static

Definition at line 1021 of file view3d_navigate_walk.cc.

References WalkInfo::active_directions, add_v3_v3(), angle(), asinf, axis_angle_to_quat(), axis_angle_to_quat_single(), BLI_time_now_seconds(), copy_m3_m4(), copy_v2_v2(), copy_v2_v2_int(), copy_v3_fl3(), copy_v3_v3(), WalkTeleport::direction, WalkTeleport::duration, WalkInfo::dvec_prev, ELEM, fabsf, float, WalkInfo::gravity, WalkInfo::gravity_state, WalkInfo::grid, WalkTeleport::initial_time, WalkInfo::is_cursor_absolute, WalkInfo::is_fast, WalkInfo::is_reversed, WalkInfo::is_slow, WalkInfo::jump_height, len_squared_v3(), madd_v3_v3fl(), min_ff(), WalkInfo::moffset, WalkInfo::mouse_speed, mul_m3_v3(), mul_qt_qtqt(), mul_v3_fl(), mul_v3_v3fl(), WalkInfo::navigation_mode, WalkTeleport::navigation_mode, WalkInfo::need_rotation_keyframe, WalkInfo::need_translation_keyframe, normalize_v3(), RegionView3D::ofs, OPERATOR_FINISHED, WalkTeleport::origin, RegionView3D::persp, printf, WalkInfo::redraw, WalkInfo::region, WalkInfo::rv3d, RV3D_CAMOB, WalkInfo::speed, WalkInfo::speed_jump, WalkTeleport::state, sub_v3_v3v3(), WalkInfo::teleport, WalkInfo::time_lastdraw, WalkInfo::view_height, RegionView3D::viewinv, RegionView3D::viewmat, RegionView3D::viewquat, WALK_AXISLOCK_STATE_ACTIVE, WALK_AXISLOCK_STATE_DONE, WALK_BIT_GLOBAL_DOWN, WALK_BIT_GLOBAL_UP, WALK_BIT_LOCAL_BACKWARD, WALK_BIT_LOCAL_DOWN, WALK_BIT_LOCAL_FORWARD, WALK_BIT_LOCAL_LEFT, WALK_BIT_LOCAL_RIGHT, WALK_BIT_LOCAL_UP, WALK_BOOST_FACTOR, WALK_BOTTOM_LIMIT, walk_calc_free_fall_distance(), walk_floor_distance_get(), WALK_GRAVITY_STATE_JUMP, WALK_GRAVITY_STATE_OFF, WALK_GRAVITY_STATE_ON, WALK_GRAVITY_STATE_START, WALK_JUMP_HEIGHT, WALK_MODE_FREE, WALK_MODE_GRAVITY, WALK_MOVE_SPEED, walk_navigation_mode_set(), WALK_ROTATE_CONSTANT_FAC, WALK_ROTATE_TABLET_FAC, WALK_TELEPORT_STATE_OFF, WALK_TELEPORT_STATE_ON, WALK_TOP_LIMIT, WALK_ZUP_CORRECT_ACCEL, WALK_ZUP_CORRECT_FAC, walkMoveCamera(), x, y, zero_v3(), WalkInfo::zlock, and WalkInfo::zlock_momentum.

Referenced by walk_modal(), and walkEnd().

◆ walkEnd()

◆ walkEvent()

static void walkEvent ( WalkInfo * walk,
const wmEvent * event )
static

Definition at line 696 of file view3d_navigate_walk.cc.

References WalkInfo::active_directions, add_v3_v3(), BLI_time_now_seconds(), copy_v2_v2(), copy_v2_v2_int(), copy_v3_v3(), wmEvent::customdata, WalkTeleport::direction, distance(), WalkTeleport::duration, WalkInfo::dvec_prev, EVT_MODAL_MAP, float, g_walk, WalkInfo::gravity, WalkInfo::gravity_state, WalkTeleport::initial_time, WalkInfo::is_cursor_absolute, WalkInfo::is_fast, wmTabletData::is_motion_absolute, WalkInfo::is_slow, ISMOUSE_MOTION, JUMP_HEIGHT_FACTOR, JUMP_HEIGHT_MAX, JUMP_HEIGHT_MIN, JUMP_SPEED_MAX, JUMP_SPEED_MIN, JUMP_TIME_MAX, max_ff(), MEM_dupallocN, MEM_freeN(), min_ff(), WalkInfo::moffset, wmEvent::mval, WalkInfo::navigation_mode, WalkTeleport::navigation_mode, NDOF_MOTION, nor, normalize_v3_length(), WalkTeleport::origin, P_FINISHING, P_IN_PROGRESS, P_STARTING, WalkInfo::prev_mval, WalkInfo::redraw, ret, WalkInfo::rv3d, WalkInfo::speed_jump, WalkInfo::state, WalkTeleport::state, sub_v3_v3v3(), wmEvent::tablet, WalkInfo::teleport, WalkInfo::time_lastdraw, TIMER, WalkInfo::timer, wmEvent::type, wmEvent::val, WalkInfo::view_height, RegionView3D::viewinv, WALK_AXISLOCK_STATE_ACTIVE, WALK_AXISLOCK_STATE_DONE, WALK_BIT_GLOBAL_DOWN, WALK_BIT_GLOBAL_UP, WALK_BIT_LOCAL_BACKWARD, WALK_BIT_LOCAL_DOWN, WALK_BIT_LOCAL_FORWARD, WALK_BIT_LOCAL_LEFT, WALK_BIT_LOCAL_RIGHT, WALK_BIT_LOCAL_UP, walk_calc_velocity_zero_time(), WALK_CANCEL, WALK_CONFIRM, WALK_GRAVITY_STATE_JUMP, WALK_GRAVITY_STATE_OFF, WALK_GRAVITY_STATE_ON, WALK_MODAL_ACCELERATE, WALK_MODAL_AXIS_LOCK_Z, WALK_MODAL_CANCEL, WALK_MODAL_CONFIRM, WALK_MODAL_DECELERATE, WALK_MODAL_DECREASE_JUMP, WALK_MODAL_DIR_BACKWARD, WALK_MODAL_DIR_BACKWARD_STOP, WALK_MODAL_DIR_DOWN, WALK_MODAL_DIR_DOWN_STOP, WALK_MODAL_DIR_FORWARD, WALK_MODAL_DIR_FORWARD_STOP, WALK_MODAL_DIR_LEFT, WALK_MODAL_DIR_LEFT_STOP, WALK_MODAL_DIR_LOCAL_DOWN, WALK_MODAL_DIR_LOCAL_DOWN_STOP, WALK_MODAL_DIR_LOCAL_UP, WALK_MODAL_DIR_LOCAL_UP_STOP, WALK_MODAL_DIR_RIGHT, WALK_MODAL_DIR_RIGHT_STOP, WALK_MODAL_DIR_UP, WALK_MODAL_DIR_UP_STOP, WALK_MODAL_FAST_DISABLE, WALK_MODAL_FAST_ENABLE, WALK_MODAL_GRAVITY_TOGGLE, WALK_MODAL_INCREASE_JUMP, WALK_MODAL_JUMP, WALK_MODAL_JUMP_STOP, WALK_MODAL_SLOW_DISABLE, WALK_MODAL_SLOW_ENABLE, WALK_MODAL_TELEPORT, WALK_MODE_FREE, WALK_MODE_GRAVITY, walk_navigation_mode_set(), walk_ray_cast(), WALK_TELEPORT_STATE_OFF, WALK_TELEPORT_STATE_ON, WalkInfo::zlock, and WalkInfo::zlock_momentum.

Referenced by walk_invoke(), and walk_modal().

◆ walkMoveCamera()

static void walkMoveCamera ( bContext * C,
WalkInfo * walk,
const bool do_rotate,
const bool do_translate,
const bool is_confirm )
static

Variable Documentation

◆ base_speed

float base_speed

Definition at line 501 of file view3d_navigate_walk.cc.

◆ [struct]

struct { ... } g_walk
Initial value:
= {
-1.0f,
-1.0f,
-1.0f,
-1.0f,
}

Keep the previous speed and jump height until user changes preferences.

Referenced by initWalkInfo(), and walkEvent().

◆ jump_height

float jump_height

Definition at line 503 of file view3d_navigate_walk.cc.

◆ userdef_jump_height

float userdef_jump_height

Definition at line 504 of file view3d_navigate_walk.cc.

◆ userdef_speed

float userdef_speed

Definition at line 502 of file view3d_navigate_walk.cc.