.. role:: clio-inherited
   :class: clio-flag clio-flag-inherited


########################
CameraNavigationOperator
########################

.. js:class:: wv.Operators.Camera.CameraNavigationOperator

   Base class for operators that handle mouse and touch input. It provides common functionality for tracking mouse and touch events, as well as button and key modifier mappings. It is a Base class with No-OP hook methods (non virtual interface), meaning that it provides a default implementation for all methods, but can be extended by child classes to override specific behavior.
   
   
   Index
   =====
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.addMapping`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.checkMapping`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.clearMapping`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.getBimNavigationEnabled`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.isActive`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.isDragging`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.onDoubleClick`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.setBimNavigationEnabled`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.setHandled`
   * :js:meth:`~wv.Operators.Camera.CameraNavigationOperator.setMapping`
   
   



.. rst-class:: kind-group kind-methods

.. rubric:: Methods
   :class: kind-group-title


.. js:method:: wv.Operators.Camera.CameraNavigationOperator.addMapping

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | addMapping(**button**\ : :js:data:`Button <wv.Button>`\ , **modifier**\ : :js:data:`KeyModifiers <wv.KeyModifiers>`\ ?): *void*
      
      Adds a button and key modifier mapping for the operator. If no mapping is provided, all combinations are considered valid. All mappings require a mouse button, but a key modifier is optional.
      
      **Parameters**
      
      
         **button**\ : :js:data:`Button <wv.Button>`
      
         **modifier**\ : :js:data:`KeyModifiers <wv.KeyModifiers>` = KeyModifiers.None
      
      
      **Returns**\ : *void*
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.checkMapping

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | checkMapping(**event**\ : :js:class:`MouseInputEvent <wv.Event.MouseInputEvent>`\ ): *boolean*
      
      Checks if the given mouse event matches any of the button and key modifier mappings for the operator. If no mappings are defined, it returns true.
      
      **Parameters**
      
      
         **event**\ : :js:class:`MouseInputEvent <wv.Event.MouseInputEvent>`
      
      
            The mouse event to check against the operator's mappings.
      
      
      
      **Returns**\ : *boolean*
      
      
         True if the event matches any mapping or if no mappings are defined, false otherwise.
      
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.clearMapping

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | clearMapping(): *void*
      
      Clears any button and key modifier mappings for the operator.
      
      **Returns**\ : *void*
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.getBimNavigationEnabled

      .. rst-class:: sig-pretty-signature
      
         | getBimNavigationEnabled(): *boolean*
      
      Returns true if BIM navigation is enabled.
      
      **Returns**\ : *boolean*
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.isActive

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | isActive(): *boolean*
      
      Checks if the operator is currently active, which is determined by whether the button and key modifier mapping is active or a touch event is active, and that a double click has not occurred and the context menu is not open.
      
      **Returns**\ : *boolean*
      
      
         True if the operator is active, false otherwise.
      
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.isDragging

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | isDragging(): *boolean*
      
      Checks if the operator is currently dragging.
      
      **Returns**\ : *boolean*
      
      
         True if the operator is dragging, false otherwise.
      
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.onDoubleClick

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | onDoubleClick(**_event**\ : :js:class:`MouseInputEvent <wv.Event.MouseInputEvent>`\ ): *void*
      
      NO-OP method for handling double click events. By default, it does nothing, but child classes can override this method to provide specific behavior for double click events.
      
      **Parameters**
      
      
         **_event**\ : :js:class:`MouseInputEvent <wv.Event.MouseInputEvent>`
      
      
            The double click event to handle.
      
      
      
      **Returns**\ : *void*
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.setBimNavigationEnabled

      .. rst-class:: sig-pretty-signature
      
         | setBimNavigationEnabled(**bimNavigation**\ : *boolean*\ ): *void*
      
      When BIM navigation is enabled, the following controls for orbit, pan, and zoom are set: Left mouse button: orbit Middle mouse wheel: zoom Middle mouse button: pan Right mouse button: zoom
      
      **Parameters**
      
      
         **bimNavigation**\ : *boolean*
      
      
      **Returns**\ : *void*
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.setHandled

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | setHandled(): *boolean*
      
      Base method for setting the handled state of events. By default, it returns false, but child classes can override this method to provide specific behavior for determining whether events should be marked as handled.
      
      **Returns**\ : *boolean*
      
      
         True if the event should be marked as handled, false otherwise.
      
      



.. js:method:: wv.Operators.Camera.CameraNavigationOperator.setMapping

      .. rst-class:: clio-flags
      
         :clio-inherited:`inherited`
      
      .. rst-class:: sig-pretty-signature
      
         | setMapping(**button**\ : :js:data:`Button <wv.Button>`\ , **modifier**\ : :js:data:`KeyModifiers <wv.KeyModifiers>`\ ?): *void*
      
      Sets the button and key modifier mapping for the operator.
      
      **Parameters**
      
      
         **button**\ : :js:data:`Button <wv.Button>`
      
         **modifier**\ : :js:data:`KeyModifiers <wv.KeyModifiers>` = KeyModifiers.None
      
      
      **Returns**\ : *void*
      




