Blender V5.0
view3d_navigate_walk.cc File Reference
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_kdopbvh.hh"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.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 "BKE_screen.hh"
#include "BLT_translation.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 <fmt/format.h>
#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 void walk_draw_status (bContext *C, wmOperator *op)
static wmOperatorStatus walk_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static void walk_cancel (bContext *C, wmOperator *op)
static wmOperatorStatus 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 wmOperatorStatus 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 61 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 69 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 103 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 125 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 133 of file view3d_navigate_walk.cc.

◆ eWalkMethod

Enumerator
WALK_MODE_FREE 
WALK_MODE_GRAVITY 

Definition at line 120 of file view3d_navigate_walk.cc.

◆ eWalkState

enum eWalkState

WalkInfo::state

Enumerator
WALK_RUNNING 
WALK_CANCEL 
WALK_CONFIRM 

Definition at line 231 of file view3d_navigate_walk.cc.

◆ eWalkTeleportState

Enumerator
WALK_TELEPORT_STATE_OFF 
WALK_TELEPORT_STATE_ON 

Definition at line 115 of file view3d_navigate_walk.cc.

Function Documentation

◆ drawWalkPixel()

◆ initWalkInfo()

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

Definition at line 521 of file view3d_navigate_walk.cc.

References WalkInfo::active_directions, WalkInfo::anim_playing, BKE_id_is_editable(), BKE_report(), BLI_time_now_seconds(), C, 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_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, ARegion::runtime, WalkInfo::rv3d, RV3D_CAMOB, RV3D_NAVIGATING, RV3D_PERSP, UnitSettings::scale_length, WalkInfo::scene, WalkInfo::snap_context, blender::ed::transform::snap_object_context_create(), WalkInfo::speed, WalkInfo::speed_factor, WalkInfo::state, UnitSettings::system, WalkInfo::teleport, WalkInfo::time_lastdraw, TIMER, WalkInfo::timer, U, Scene::unit, USER_UNIT_NONE, USER_WALK_GRAVITY, USER_WALK_MOUSE_REVERSE, userdef_jump_height, 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()

void VIEW3D_OT_walk ( wmOperatorType * ot)

◆ walk_calc_free_fall_distance()

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

Definition at line 1026 of file view3d_navigate_walk.cc.

Referenced by walkApply().

◆ walk_calc_velocity_zero_time()

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

Definition at line 1031 of file view3d_navigate_walk.cc.

Referenced by walkEvent().

◆ walk_cancel()

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

Definition at line 1578 of file view3d_navigate_walk.cc.

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

Referenced by VIEW3D_OT_walk().

◆ walk_draw_status()

◆ walk_floor_distance_get()

◆ walk_invoke()

◆ walk_modal()

◆ walk_modal_keymap()

◆ walk_navigation_mode_set()

void walk_navigation_mode_set ( WalkInfo * walk,
eWalkMethod mode )
static

◆ walk_ray_cast()

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 464 of file view3d_navigate_walk.cc.

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

Referenced by walkEvent().

◆ walkApply()

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

Definition at line 1036 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(), C, 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_qt(), 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(), ARegion::winx, ARegion::winy, x, y, zero_v3(), WalkInfo::zlock, and WalkInfo::zlock_momentum.

Referenced by walk_modal(), and walkEnd().

◆ walkEnd()

◆ walkEvent()

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

Definition at line 711 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, U, 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()

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 507 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(), walk_draw_status(), and walkEvent().

◆ jump_height

float jump_height

Definition at line 511 of file view3d_navigate_walk.cc.

◆ userdef_jump_height

float userdef_jump_height

Only used to detect change.

Definition at line 513 of file view3d_navigate_walk.cc.

Referenced by initWalkInfo().

◆ userdef_speed

float userdef_speed

Only used to detect change.

Definition at line 509 of file view3d_navigate_walk.cc.