FlyOperator

class HPS::FlyOperator : public HPS::Operator

The FlyOperator class defines an operator which allows the user to accurately move the camera around the scene. This Operator works for both mouse- and touch-driven devices. Mouse-Driven Devices: W: Move camera position and target forward A: Pan camera left S: Move camera position and target forward D: Pan camera right C: Pan camera down Space: Pan camera up Q: Roll camera left E: Roll camera right 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-Driven 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 -right side of screen: Pans camera up or down, rolls camera left or right The movement speed increases as the user drags his fingers away from the initial touch position

Subclassed by HPS::WalkOperator

Public Functions

FlyOperator(MouseButtons in_mouse_trigger = MouseButtons::ButtonRight(), ModifierKeys in_modifier_trigger = ModifierKeys())
inline float GetJoystickDeadZone() const
inline float GetKeyboardSensitivity() const
inline float GetLeftJoystickSensitivity() const
inline float GetMouseSensitivity() const
inline virtual HPS::UTF8 GetName() const

Returns the name of the operator.

inline float GetRightJoystickSensitivity() const
inline float GetSceneExtents() const
inline void InvertXAxis()
inline void InvertYAxis()
inline bool IsXAxisInverted() const
inline bool IsYAxisInverted() const
virtual bool OnKeyDown(KeyboardState const &in_state)

This function is called whenever HPS receives a KeyboardState event that signals a button was pressed. This function instructs the operator on which direction to move towards.

Parameters

in_state – A KeyboardState object describing the current keyboard state. W: Move camera position and target forward A: Pan camera left S: Move camera position and target forward D: Pan camera right C: Pan camera down Space: Pan camera up Q: Roll camera left E: Roll camera right Shift: Walk at double the speed while pressed Ctrl: Walk at half the speed while pressed

Returns

true if the input event was handled, false otherwise.

virtual bool OnKeyUp(KeyboardState const &in_state)

This function is called whenever HPS receives a KeyboardState event that signals a button was released.

Parameters

in_state – A KeyboardState object describing the current keyboard state.

Returns

true if the input event was handled, false otherwise.

virtual void 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.

virtual bool OnMouseDown(MouseState const &in_state)

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_state – A MouseState object describing the current mouse state.

Returns

true if the input event was handled, false otherwise.

virtual bool OnMouseMove(MouseState const &in_state)

This function is called whenever HPS receives a MouseEvent that signals the mouse moved This function rotates the camera in place if the right mouse button is down.

Parameters

in_state – A MouseState object describing the current mouse state.

Returns

true if the input event was handled, false otherwise.

virtual bool OnMouseUp(MouseState const &in_state)

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

Parameters

in_state – A MouseState object describing the current mouse state.

Returns

true if the input event was handled, false otherwise.

virtual bool OnMouseWheel(MouseState const &in_state)

This function is called whenever HPS receives a MouseEvent that signals the mouse wheel moved If shift is not pressed this function increases or decreases the step length. If shift is pressed this function increases or decreases the camera field of view.

Parameters

in_state – A MouseState object describing the current mouse state.

Returns

true if the input event was handled, false otherwise.

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

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

Parameters

in_event – A TimerTickEvent object describing the current timer tick.

Returns

true if the input event was handled, false otherwise.

virtual bool OnTouchDown(TouchState const &in_state)

This function is called whenever HPS receives a TouchEvent that signals the device was touched. This function starts the operator and computes the position of the starting point.

Parameters

in_state – A TouchState object describing the current touch state.

Returns

true if the input event was handled, false otherwise.

virtual bool OnTouchMove(TouchState const &in_state)

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. This function rotates the camera in place.

Parameters

in_state – A TouchState object describing the current touch state.

Returns

true if the input event was handled, false otherwise.

virtual bool OnTouchUp(TouchState const &in_state)

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

Parameters

in_state – A TouchState object describing the current touch state.

Returns

true if the input event was handled, false otherwise.

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

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

virtual void OnViewDetached(HPS::View const &in_detached_view)

This function is called whenever a view is detached from this operator.

inline void SetJoystickDeadZone(float in_dead_zone)
inline void SetKeyboardSensitivity(float in_keyboard_sensitivity)
inline void SetLeftJoystickSensitivity(float in_left_joystick_sensitivity)
inline void SetMouseSensitivity(float in_mouse_sensitivity)
inline void SetRightJoystickSensitivity(float in_right_joystick_sensitivity)