.. role:: clio-optional
   :class: clio-flag clio-flag-optional


########
Operator
########

.. js:class:: cee.Operator

   The :js:class:`Operator <cee.Operator>` class is the base class for all operators. A name is required for all operators, and the name is used to identify the operator in the :js:class:`~cee.OperatorStack`\ .
   
   Operators contain optional methods that correspond to the different events that may occur in the view. When an operator is set on a :js:class:`View <cee.View>`\ , the operator can interact with its ownerView, but only that view. The :js:class:`~cee.Viewer` sets the events listeners internally, and then fires the corresponding Operator event handler method when the event is recieved.
   
   
   Index
   =====
   
   .. rubric:: Constructors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.Operator.constructor`
   
   .. rubric:: Accessors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.Operator.name`
   * :js:func:`~cee.Operator.ownerView`
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~cee.Operator.onAddedToView`
   * :js:meth:`~cee.Operator.onClick`
   * :js:meth:`~cee.Operator.onDblClick`
   * :js:meth:`~cee.Operator.onKeyDown`
   * :js:meth:`~cee.Operator.onKeyUp`
   * :js:meth:`~cee.Operator.onMouseDown`
   * :js:meth:`~cee.Operator.onMouseMove`
   * :js:meth:`~cee.Operator.onMouseUp`
   * :js:meth:`~cee.Operator.onPointerDown`
   * :js:meth:`~cee.Operator.onPointerMove`
   * :js:meth:`~cee.Operator.onPointerUp`
   * :js:meth:`~cee.Operator.onRemovedFromView`
   * :js:meth:`~cee.Operator.onTouchEnd`
   * :js:meth:`~cee.Operator.onTouchMove`
   * :js:meth:`~cee.Operator.onTouchStart`
   * :js:meth:`~cee.Operator.onWheel`
   
   



.. rst-class:: kind-group kind-constructors

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


.. js:method:: cee.Operator.constructor

      .. rst-class:: sig-pretty-signature
      
         | Operator(**name**\ : *string*\ ): :js:class:`Operator <cee.Operator>`
      
      **Parameters**
      
      
         **name**\ : *string*
      
      
      **Returns**\ : :js:class:`Operator <cee.Operator>`
      



.. rst-class:: kind-group kind-accessors

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


.. js:method:: cee.Operator.name

      .. rst-class:: sig-pretty-signature
      
         | *get* name(): *string*
      
      The name of the operator. Built-in operator names can be referenced by the :js:data:`StandardOperator <cee.StandardOperator>` enum.
      
      **Returns**\ : *string*
      



.. js:method:: cee.Operator.ownerView

      .. rst-class:: sig-pretty-signature
      
         | *get* ownerView(): :js:class:`View <cee.View>`
      
      Returns the :js:class:`View <cee.View>` that this operator is set on. If the operator is not on a view's :js:class:`~cee.OperatorStack`\ , null is returned.
      
      **Returns**\ : :js:class:`View <cee.View>`
      



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

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


.. js:method:: cee.Operator.onAddedToView

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onAddedToView(): *void*
      
      **Returns**\ : *void*
      



.. js:method:: cee.Operator.onClick

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onClick(**event**\ : *MouseEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *MouseEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onDblClick

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onDblClick(**event**\ : *MouseEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *MouseEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onKeyDown

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onKeyDown(**event**\ : *KeyboardEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *KeyboardEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onKeyUp

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onKeyUp(**event**\ : *KeyboardEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *KeyboardEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onMouseDown

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onMouseDown(**event**\ : *MouseEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *MouseEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onMouseMove

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onMouseMove(**event**\ : *MouseEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *MouseEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onMouseUp

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onMouseUp(**event**\ : *MouseEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *MouseEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onPointerDown

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onPointerDown(**event**\ : *PointerEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *PointerEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onPointerMove

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onPointerMove(**event**\ : *PointerEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *PointerEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onPointerUp

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onPointerUp(**event**\ : *PointerEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *PointerEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onRemovedFromView

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onRemovedFromView(): *void*
      
      **Returns**\ : *void*
      



.. js:method:: cee.Operator.onTouchEnd

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onTouchEnd(**event**\ : *TouchEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *TouchEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onTouchMove

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onTouchMove(**event**\ : *TouchEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *TouchEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onTouchStart

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onTouchStart(**event**\ : *TouchEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *TouchEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      



.. js:method:: cee.Operator.onWheel

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | onWheel(**event**\ : *WheelEvent*\ ): :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      
      **Parameters**
      
      
         **event**\ : *WheelEvent*
      
      
      **Returns**\ : :js:data:`OperatorEventStatus <cee.OperatorEventStatus>`
      




