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 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)
-
FlyOperator(MouseButtons in_mouse_trigger = MouseButtons::ButtonRight(), ModifierKeys in_modifier_trigger = ModifierKeys())