HPS::NavigationCubeOperator Class Reference

#include <sprk.h>

Inheritance diagram for HPS::NavigationCubeOperator:
HPS::Operator HPS::Sprocket HPS::Object

Public Member Functions

virtual HPS::UTF8 GetName () const
 
HPS::Time GetTransitionTime () const
 
 NavigationCubeOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
virtual void OnModelAttached ()
 
virtual bool OnMouseDown (MouseState const &in_state)
 
virtual bool OnMouseMove (MouseState const &in_state)
 
virtual bool OnMouseUp (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 OnViewAttached (HPS::View const &in_attached_view)
 
virtual void OnViewDetached (HPS::View const &in_attached_view)
 
void SetReferenceSegment (HPS::KeyPath const &in_path_to_segment)
 
void SetReferenceSegment (HPS::KeyPathArray const &in_path_to_segments)
 
void SetTransitionTime (HPS::Time const &in_time)
 
HPS::KeyPathArray ShowReferenceSegment ()
 
- 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 bool OnKeyDown (KeyboardState const &in_state)
 
virtual bool OnKeyUp (KeyboardState const &in_state)
 
virtual void OnModelDetached ()
 
virtual bool OnMouseEnter (MouseState const &in_state)
 
virtual bool OnMouseLeave (MouseState const &in_state)
 
virtual bool OnMouseWheel (MouseState const &in_state)
 
virtual bool OnTextInput (HPS::UTF8 const &in_text)
 
virtual bool OnTimerTick (HPS::TimerTickEvent const &in_event)
 
 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::Operator
enum  Priority { Low, Default, High }
 
- 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 Attributes inherited from HPS::Operator
HPS::ModifierKeys modifier_trigger
 
HPS::MouseButtons mouse_trigger
 

Detailed Description

The NavigationCubeOperator class defines an operator which allows the user to interact with the navigation cube.

This Operator works for both mouse- and touch-driven devices.

Mouse-Driver Devices:

Left Button Down:Snap view to plane
Left Button Down and Move:Rotates the scene

Touch-Driven Devices:

Tap:Snaps view to plane
Tap and Move:Rotates the scene

In order to use the NavigationCubeOperator, it's necessary to call HPS::NavigationCubeControl::SetInteractivity(true) first.

Note
The orientation of the NavigationCubeControl is specified by the model in the associated view. See HPS::Model::SetOrientation().

Member Function Documentation

◆ GetName()

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

Returns the name of the operator.

Reimplemented from HPS::Operator.

◆ GetTransitionTime()

HPS::Time HPS::NavigationCubeOperator::GetTransitionTime ( ) const

Gets the duration of transitions, specified in seconds.

Returns
How long it will take the navigation cube to complete a transition when a user clicks on one of its faces, in seconds

◆ OnModelAttached()

virtual void HPS::NavigationCubeOperator::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::Operator.

◆ OnMouseDown()

virtual bool HPS::NavigationCubeOperator::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::Operator.

◆ OnMouseMove()

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

This function is called whenever HPS receives a MouseEvent that signals the mouse moved This function orbits the camera.

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

Reimplemented from HPS::Operator.

◆ OnMouseUp()

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

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

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

Reimplemented from HPS::Operator.

◆ OnTouchDown()

virtual bool HPS::NavigationCubeOperator::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::Operator.

◆ OnTouchMove()

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

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. This function orbits the camera as needed.

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

Reimplemented from HPS::Operator.

◆ OnTouchUp()

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

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

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

Reimplemented from HPS::Operator.

◆ OnViewAttached()

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

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

Parameters
in_attached_viewThe view attached to this operator.

Reimplemented from HPS::Operator.

◆ OnViewDetached()

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

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

Parameters
in_detached_viewThe view detached from this operator.

Reimplemented from HPS::Operator.

◆ SetReferenceSegment() [1/2]

void HPS::NavigationCubeOperator::SetReferenceSegment ( HPS::KeyPath const &  in_path_to_segment)

Sets a key path to the segment used as a reference. All rotations use the transformed bounding of the segment pointed to by the path provided in order to correctly position the camera. By default the reference segment is the View segment.

Parameters
in_path_to_segmentthe key path to the segment to rotate around.

◆ SetReferenceSegment() [2/2]

void HPS::NavigationCubeOperator::SetReferenceSegment ( HPS::KeyPathArray const &  in_path_to_segments)

Sets a group of key paths to segments to be used as a reference. All rotations happen around the combined bounding box of the reference segments, taking into account transformation sets along their key paths By default the reference segment is the View segment.

Parameters
in_path_to_segmentsthe key paths to the segments to rotate around.

◆ SetTransitionTime()

void HPS::NavigationCubeOperator::SetTransitionTime ( HPS::Time const &  in_time)

Sets how long the navigation cube will take to complete a transition when a user clicks on one of its faces.

Parameters
in_timehow long the navigation cube will take to complete a transition when a user clicks on one of its faces. Specified in seconds.
Returns
A reference to this object. By default the navigation cube will take 0.5 seconds to complete transitions.

◆ ShowReferenceSegment()

HPS::KeyPathArray HPS::NavigationCubeOperator::ShowReferenceSegment ( )

Returns the key paths to the segments used as a reference for rotations By default the reference segment is the View segment.

Returns
the key paths to segments the navigation cube rotates around.

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