# NavigationCubeOperator

class `NavigationCubeOperator` : public HPS::Operator

      <p>The NavigationCubeOperator class defines an operator which allows the user to interact with the navigation cube.</p>
      <p>This Operator works for both mouse- and touch-driven devices.</p>
      <p><strong>Mouse-Driver Devices:</strong></p>
          <table>
              <tr><td>Left Button Down:</td><td>          Snap view to plane</td></tr>
              <tr><td>Left Button Down and Move:</td><td> Rotates the scene</td></tr>
          </table>
      <p><strong>Touch-Driven Devices:</strong></p>
          <table>
              <tr><td>Tap:</td><td>Snaps view to plane</td></tr>
              <tr><td>Tap and Move:</td><td>Rotates the scene</td></tr>
          </table>

      <p>In order to use the NavigationCubeOperator, it's necessary to call <span class='code'>\ref

  HPS::NavigationCubeControl::SetInteractivity() “HPS::NavigationCubeControl::SetInteractivity(true)” first.

  Note

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

  Public Functions

  inline virtual HPS::UTF8 `GetName`() const

    Returns the name of the operator.

  HPS::Time `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

  `NavigationCubeOperator`(MouseButtons in_mouse_trigger = MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger = ModifierKeys())
  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 orbits the camera.

    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. This function stops the operator.

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

    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 orbits the camera as needed.

    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. This function stops the operator.

    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.

    Parameters: | in_attached_view – The view attached to this operator.

  virtual void `OnViewDetached`(HPS::View const &in_attached_view)

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

    Parameters: | in_detached_view – The view detached from this operator.

  void `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_segment – the key path to the segment to rotate around.

  void `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_segments – the key paths to the segments to rotate around.

  void `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_time – how 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.

  HPS::KeyPathArray `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.

  inline `~NavigationCubeOperator`()

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize Desktop?
What are the latest release notes for HOOPS Visualize Desktop?
How do I start evaluating HOOPS Visualize Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...