HPS::SimpleWalkOperator Class Reference

#include <sprk_ops.h>

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

Public Member Functions

bool GetEnableMiddleMouseButtonDolly () const
 
virtual HPS::UTF8 GetName () const
 
bool IsMouseTriggered (MouseState const &in_state)
 
virtual bool OnKeyDown (KeyboardState const &in_state)
 
virtual bool OnKeyUp (KeyboardState const &in_state)
 
virtual void OnModelAttached ()
 
virtual bool OnMouseDown (MouseState const &in_state)
 
virtual bool OnMouseEnter (MouseState const &in_state)
 
virtual bool OnMouseLeave (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 OnTimerTick (HPS::TimerTickEvent const &in_event)
 
virtual bool OnTouchDown (TouchState const &in_state)
 
virtual bool OnTouchMove (TouchState const &in_state)
 
virtual bool OnTouchUp (TouchState const &in_state)
 
virtual void OnViewAttached (HPS::View const &in_attached_view)
 
void SetEnableMiddleMouseButtonDolly (bool in_enable)
 
void SetKeyboardControlKey (bool in_state)
 
void SetKeyboardShiftKey (bool in_state)
 
 SimpleWalkOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
- Public Member Functions inherited from HPS::WalkOperator
HPS::Plane GetGroundPlane () const
 
Axis GetPrimaryUpAxis () const
 
float GetWalkerHeight () const
 
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 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
 
HPS::Type ObjectType () const
 
virtual void OnModelDetached ()
 
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
 

Additional Inherited Members

- Public Types inherited from HPS::WalkOperator
enum  Axis {
  X, Y, Z, Negative_X,
  Negative_Y, Negative_Z
}


 
- Public Types inherited from HPS::Operator
enum  Priority { Low, Default, High }
 
- Static Public Member Functions inherited from HPS::WalkOperator
static Axis GetPrimaryAxis (HPS::Vector const &v)
 
- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 
- 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 SimpleWalkOperator class defines an operator which allows the user to move forward and backwards and rotate while staying snapped to a plane.

Mouse Operation:

Left-button down and move:Dollies the camera forward or backward, or Pans the camera left or right based on the mouse movement direction. The movement velocity changes based on how far the mouse is dragged from the starting point.
Middle-button down and move:Dollies the camera vertically or horizontally based on the mouse movement direction. The movement velocity changes based on how far the mouse is dragged from the starting point.
Shift:With the Shift key down the forward/backward velocity is ten times faster.
Ctrl:With the Ctrl key down the forward/backward velocity is ten times slower, and the left/right velocity is 45% slower.
Mouse wheel:Pans the camera vertically. This will change the tilt direction that the camera is looking, but does not change the direction of forward/backward movement.
Shift + mouse wheel:Increases or decreases the base velocity of Dolly operations.

Touch Operation:

Single Finger DragDollies the camera forward or backward, or Pans the camera left or right based on the touch movement direction. The movement velocity changes based on how far the touch is dragged from the starting point.
Two Finger DragDollies the camera vertically or horizontally based on the touch movement direction. The movement velocity changes based on how far the touch is dragged from the starting point.
Shift:With the Shift key down the forward/backward velocity is ten times faster.
Ctrl:With the Ctrl key down the forward/backward velocity is ten times slower, and the left/right velocity is 45% slower.

Member Function Documentation

◆ GetEnableMiddleMouseButtonDolly()

bool HPS::SimpleWalkOperator::GetEnableMiddleMouseButtonDolly ( ) const

This function returns the state of Camera Dolly operations using the middle mouse button. The SimpleWalkOperator has Camera Dolly operations fixed to the middle mouse button by default. To disable this behavior, set this value to false.

Returns
true if middle mouse button Camera Dollying is enabled, false otherwise.

◆ GetName()

virtual HPS::UTF8 HPS::SimpleWalkOperator::GetName ( ) const
inlinevirtual

Returns the name of the operator.

Reimplemented from HPS::WalkOperator.

◆ IsMouseTriggered()

bool HPS::SimpleWalkOperator::IsMouseTriggered ( MouseState const &  in_state)
virtual

This function overrides the base class implementation to additionally inspect in_state for the middle mouse button state if middle mouse button Camera Dollying is enabled.

Returns
true if the MouseButtons and ModifierKeys are active.

Reimplemented from HPS::Operator.

◆ OnKeyDown()

virtual bool HPS::SimpleWalkOperator::OnKeyDown ( KeyboardState const &  in_state)
inlinevirtual

This function is called whenever HPS receives a KeyboardState event that signals a button was pressed. This operator does not handle key down events.

Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnKeyUp()

virtual bool HPS::SimpleWalkOperator::OnKeyUp ( KeyboardState const &  in_state)
inlinevirtual

This function is called whenever HPS receives a KeyboardState event that signals a button was released. This operator does not handle key up events.

Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnModelAttached()

virtual void HPS::SimpleWalkOperator::OnModelAttached ( )
virtual

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::WalkOperator.

◆ OnMouseDown()

virtual bool HPS::SimpleWalkOperator::OnMouseDown ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. This function starts the operator and computes the position of the starting point.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnMouseEnter()

virtual bool HPS::SimpleWalkOperator::OnMouseEnter ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals the mouse entered the window.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnMouseLeave()

virtual bool HPS::SimpleWalkOperator::OnMouseLeave ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals the mouse left the window.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnMouseMove()

virtual bool HPS::SimpleWalkOperator::OnMouseMove ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals the mouse moved This function rotates the camera in place and moves forward/back if the left mouse button is down.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnMouseUp()

virtual bool HPS::SimpleWalkOperator::OnMouseUp ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals a mouse button was released.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnMouseWheel()

virtual bool HPS::SimpleWalkOperator::OnMouseWheel ( MouseState const &  in_state)
virtual

This function is called whenever HPS receives a MouseEvent that signals the mouse wheel moved

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnTimerTick()

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

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

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

Reimplemented from HPS::WalkOperator.

◆ OnTouchDown()

virtual bool HPS::SimpleWalkOperator::OnTouchDown ( TouchState const &  in_state)
virtual

This function is called whenever HPS receives a TouchEvent that signals the device was touched.

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnTouchMove()

virtual bool HPS::SimpleWalkOperator::OnTouchMove ( TouchState const &  in_state)
virtual

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved.

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnTouchUp()

virtual bool HPS::SimpleWalkOperator::OnTouchUp ( TouchState const &  in_state)
virtual

This function is called whenever HPS receives a TouchEvent that signals a point of contact has been released.

Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::FlyOperator.

◆ OnViewAttached()

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

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

Reimplemented from HPS::WalkOperator.

◆ SetEnableMiddleMouseButtonDolly()

void HPS::SimpleWalkOperator::SetEnableMiddleMouseButtonDolly ( bool  in_enable)

This function enables or disables Camera Dolly operations using the middle mouse button. The SimpleWalkOperator has Camera Dolly operations fixed to the middle mouse button by default. To disable this behavior, set this value to false.

Parameters
in_stateThe new state of middle mouse button dollying.

◆ SetKeyboardControlKey()

void HPS::SimpleWalkOperator::SetKeyboardControlKey ( bool  in_state)

This function sets the Control key state in this operator. Call this function from your application to inform the the operator of the Control key state. The Control key decreases the velocities of forward/backward and rotation movements.

Parameters
in_stateThe new state of the Control key.

◆ SetKeyboardShiftKey()

void HPS::SimpleWalkOperator::SetKeyboardShiftKey ( bool  in_state)

This function sets the Shift key state in this operator. Call this function from your application to inform the the operator of the Shift key state. The Shift key increases the mouse trigger button forward/backward velocity.

Parameters
in_stateThe new state of the Shift key.

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