#include <sprk_ops.h>

Inheritance diagram for HPS::WalkOperator:
HPS::FlyOperator HPS::Operator HPS::Sprocket HPS::Object HPS::SimpleWalkOperator

Public Types

enum  Axis {
  X, Y, Z, Negative_X,
  Negative_Y, Negative_Z

- Public Types inherited from HPS::Operator
enum  Priority { Low, Default, High }

Public Member Functions

HPS::Plane GetGroundPlane () const
virtual HPS::UTF8 GetName () const
Axis GetPrimaryUpAxis () const
float GetWalkerHeight () const
virtual void OnModelAttached ()
virtual bool OnTimerTick (HPS::TimerTickEvent const &in_event)
virtual void OnViewAttached (HPS::View const &in_attached_view)
void SetGroundPlane (HPS::Plane const &in_plane)
void SetWalkerHeight (float height)
Axis UpdatePrimaryUpAxis (HPS::Vector const &v)
 WalkOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonRight(), ModifierKeys in_modifier_trigger=ModifierKeys())
- Public Member Functions inherited from HPS::FlyOperator
 FlyOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonRight(), ModifierKeys in_modifier_trigger=ModifierKeys())
float GetJoystickDeadZone () const
float GetKeyboardSensitivity () const
float GetLeftJoystickSensitivity () const
float GetMouseSensitivity () const
float GetRightJoystickSensitivity () const
float GetSceneExtents () const
void InvertXAxis ()
void InvertYAxis ()
bool IsXAxisInverted () const
bool IsYAxisInverted () const
virtual bool OnKeyDown (KeyboardState const &in_state)
virtual bool OnKeyUp (KeyboardState const &in_state)
virtual bool OnMouseDown (MouseState const &in_state)
virtual bool OnMouseMove (MouseState const &in_state)
virtual bool OnMouseUp (MouseState const &in_state)
virtual bool OnMouseWheel (MouseState const &in_state)
virtual bool OnTouchDown (TouchState const &in_state)
virtual bool OnTouchMove (TouchState const &in_state)
virtual bool OnTouchUp (TouchState const &in_state)
virtual void OnViewDetached (HPS::View const &in_detached_view)
void SetJoystickDeadZone (float in_dead_zone)
void SetKeyboardSensitivity (float in_keyboard_sensitivity)
void SetLeftJoystickSensitivity (float in_left_joystick_sensitivity)
void SetMouseSensitivity (float in_mouse_sensitivity)
void SetRightJoystickSensitivity (float in_right_joystick_sensitivity)
- Public Member Functions inherited from HPS::Operator
virtual void Assign (Operator const &in_that)
void DetachView ()
virtual bool Equals (Operator const &in_that) const
View GetAttachedView () const
ModifierKeys GetModifierTrigger () const
MouseButtons GetMouseTrigger () const
virtual bool IsMouseTriggered (MouseState const &in_state)
HPS::Type ObjectType () const
virtual void OnModelDetached ()
virtual bool OnMouseEnter (MouseState const &in_state)
virtual bool OnMouseLeave (MouseState const &in_state)
virtual bool OnTextInput (HPS::UTF8 const &in_text)
 Operator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 Operator (Operator const &in_that)
virtual bool operator!= (Operator const &in_that) const
virtual Operatoroperator= (Operator const &in_that)
virtual bool operator== (Operator const &in_that) const
void SetModifierTrigger (ModifierKeys in_modifiers)
void SetMouseTrigger (MouseButtons in_buttons)
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (Sprocket &&in_that)
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
intptr_t GetClassID () const
intptr_t GetInstanceID () const
bool HasType (HPS::Type in_mask) const
 Object (Object const &that)
 Object (Object &&in_that)
Objectoperator= (Object const &other_object)
Objectoperator= (Object &&in_that)
virtual void Reset ()
virtual HPS::Type Type () const

Static Public Member Functions

static Axis GetPrimaryAxis (HPS::Vector const &v)
- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()

Additional Inherited Members

- Static Public Attributes inherited from HPS::Operator
static const HPS::Type staticType = HPS::Type::Operator
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
- Protected Types inherited from HPS::FlyOperator
enum  MovementFlags {
  no_movement = 0x0000, moving_forward = 0x0001, moving_back = 0x0002, moving_left = 0x0004,
  moving_right = 0x0008, moving_up = 0x0010, moving_down = 0x0020, roll_left = 0x0040,
  roll_right = 0x0080, rotating = 0x0100, move_with_touch = 0x0200, rotate_with_touch = 0x0400

- Protected Member Functions inherited from HPS::FlyOperator
void MoveBack (HPS::Point &position, HPS::Point &target, HPS::Vector const &direction)
void MoveDown (HPS::Point &position, HPS::Point &target, HPS::Vector &up)
void MoveForward (HPS::Point &position, HPS::Point &target, HPS::Vector const &direction)
void MoveLeft (HPS::Point &position, HPS::Point &target, HPS::Vector &up)
void MoveRight (HPS::Point &position, HPS::Point &target, HPS::Vector &up)
void MoveUp (HPS::Point &position, HPS::Point &target, HPS::Vector &up)
bool MoveWithTouch (HPS::Point &position, HPS::Point &target, HPS::Vector &up, HPS::Vector const &walking_direction)
void RotateCommon (HPS::Point const &delta, HPS::Point &position, HPS::Point &target)
bool RotateScene (HPS::Point &position, HPS::Point &target)
bool RotateWithTouch (HPS::Point &position, HPS::Point &target)
- Protected Attributes inherited from HPS::FlyOperator
unsigned int movement_flags
- Protected Attributes inherited from HPS::Operator
HPS::ModifierKeys modifier_trigger
HPS::MouseButtons mouse_trigger

Detailed Description

The WalkOperator class defines an operator which allows the user to accurately move the camera around the scene, while snapped to a plane. This operator is intended for walking through models that have a defined ground plane, such as a floor in a building. For models that don't have a ground plane, Visualize will attempt to determine a ground plane heuristically. This operator works for both mouse and touch-driven devices.

Mouse-driven devices:

W:Move camera position and target forward
S:Move camera position and target backward
A:Pan camera left
D:Pan camera right
C:Pan camera down
space:Pan camera up
Right-button down and move:Rotate camera in place
Shift:Walk at double the speed while pressed
Ctrl:Walk at half the speed while pressed
Mouse wheel:Increase / decrease step length
Shift + mouse wheel:Increase / decrease field of view

Touch devices:

Touch left side of screen:Pans camera in left or right, moves camera forward or back.
Touch right side of screen:Rotates camera in place.
Two-finger touch and move one finger:Pans camera up or down.
Double-touch anywhere on the screen:Re-center the model.

NOTE: The movement speed increases as the user drags his fingers away from the initial touch position

Member Function Documentation

◆ GetName()

virtual HPS::UTF8 HPS::WalkOperator::GetName ( ) const

Returns the name of the operator.

Reimplemented from HPS::FlyOperator.

Reimplemented in HPS::SimpleWalkOperator.

◆ OnModelAttached()

virtual void HPS::WalkOperator::OnModelAttached ( )

This function is called whenever a model is attached to the view that is attached to this operator. If no view is attached to this operator, this function will not be called.

Reimplemented from HPS::FlyOperator.

Reimplemented in HPS::SimpleWalkOperator.

◆ OnTimerTick()

virtual bool HPS::WalkOperator::OnTimerTick ( HPS::TimerTickEvent const &  in_event)

This function is called whenever HPS receives a TimerTickEvent This function moves the camera

in_stateA TimerTickEvent object describing the current timer tick.
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

Reimplemented in HPS::SimpleWalkOperator.

◆ OnViewAttached()

virtual void HPS::WalkOperator::OnViewAttached ( HPS::View const &  in_attached_view)

This function is called whenever a view is attached to this operator.

Reimplemented from HPS::FlyOperator.

Reimplemented in HPS::SimpleWalkOperator.

The documentation for this class was generated from the following file: