
###########
MarkupModel
###########

.. js:class:: cee.mrk.MarkupModel

   This class can be used to add markup items to a visualization.
   
   
   Index
   =====
   
   .. rubric:: Constructors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.mrk.MarkupModel.constructor`
   
   .. rubric:: Accessors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.mrk.MarkupModel.ignoreViewClipping`
   * :js:func:`~cee.mrk.MarkupModel.name`
   * :js:func:`~cee.mrk.MarkupModel.partCount`
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~cee.mrk.MarkupModel.addArrowsPart`
   * :js:meth:`~cee.mrk.MarkupModel.addImageLabelPart`
   * :js:meth:`~cee.mrk.MarkupModel.addIndexedTrianglesPart`
   * :js:meth:`~cee.mrk.MarkupModel.addLabelsPart`
   * :js:meth:`~cee.mrk.MarkupModel.addLinesPart`
   * :js:meth:`~cee.mrk.MarkupModel.addPointsPart`
   * :js:meth:`~cee.mrk.MarkupModel.addTexturedIndexedTrianglesPart`
   * :js:meth:`~cee.mrk.MarkupModel.deleteAllParts`
   * :js:meth:`~cee.mrk.MarkupModel.deletePart`
   * :js:meth:`~cee.mrk.MarkupModel.deletePartAt`
   * :js:meth:`~cee.mrk.MarkupModel.getBoundingBox`
   * :js:meth:`~cee.mrk.MarkupModel.getDefaultCameraConfig`
   * :js:meth:`~cee.mrk.MarkupModel.getPartAt`
   * :js:meth:`~cee.mrk.MarkupModel.rayIntersect`
   
   



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

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


.. js:method:: cee.mrk.MarkupModel.constructor

      .. rst-class:: sig-pretty-signature
      
         | MarkupModel(): :js:class:`MarkupModel <cee.mrk.MarkupModel>`
      
      Constructor
      
      **Returns**\ : :js:class:`MarkupModel <cee.mrk.MarkupModel>`
      



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

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


.. js:method:: cee.mrk.MarkupModel.ignoreViewClipping

      .. rst-class:: sig-pretty-signature
      
         | *get* ignoreViewClipping(): *boolean*
      
      Enable or disable option to ignore view clipping in this model
      
      **Returns**\ : *boolean*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* ignoreViewClipping(**ignore**\ : *boolean*\ ): *void*
      
      **Parameters**
      
      
         **ignore**\ : *boolean*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.mrk.MarkupModel.name

      Name of the model.
      
      Mainly used for debugging.
      
      .. rst-class:: sig-pretty-signature
      
         | *get* name(): *string*
      
      Name of the markup model.
      
      **Returns**\ : *string*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* name(**name**\ : *string*\ ): *void*
      
      Name of the model.
      
      Mainly used for debugging.
      
      **Parameters**
      
      
         **name**\ : *string*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.mrk.MarkupModel.partCount

      .. rst-class:: sig-pretty-signature
      
         | *get* partCount(): *number*
      
      The number of parts in the model.
      
      **Returns**\ : *number*
      



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

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


.. js:method:: cee.mrk.MarkupModel.addArrowsPart

      .. rst-class:: sig-pretty-signature
      
         | addArrowsPart(): :js:class:`PartArrows <cee.mrk.PartArrows>`
      
      Adds a part for drawing points. Use the returned :js:class:`PartPoints <cee.mrk.PartPoints>` to add points to the new part.
      
      **Returns**\ : :js:class:`PartArrows <cee.mrk.PartArrows>`
      



.. js:method:: cee.mrk.MarkupModel.addImageLabelPart

      .. rst-class:: sig-pretty-signature
      
         | addImageLabelPart(): :js:class:`PartImageLabel <cee.mrk.PartImageLabel>`
      
      Add a part with an image attached to a 3d coordinate
      
      **Returns**\ : :js:class:`PartImageLabel <cee.mrk.PartImageLabel>`
      



.. js:method:: cee.mrk.MarkupModel.addIndexedTrianglesPart

      .. rst-class:: sig-pretty-signature
      
         | addIndexedTrianglesPart(): :js:class:`PartIndexedTriangles <cee.mrk.PartIndexedTriangles>`
      
      Adds a part containing indexed triangles to the markup model. Use the returned :js:class:`PartIndexedTriangles <cee.mrk.PartIndexedTriangles>` to set the mesh data and color of the new part.
      
      **Returns**\ : :js:class:`PartIndexedTriangles <cee.mrk.PartIndexedTriangles>`
      



.. js:method:: cee.mrk.MarkupModel.addLabelsPart

      .. rst-class:: sig-pretty-signature
      
         | addLabelsPart(): :js:class:`PartLabels <cee.mrk.PartLabels>`
      
      Adds a part containing positioned text labels to the markup model. Use the returned :js:class:`PartLabels <cee.mrk.PartLabels>` to add text labels to the new part.
      
      **Returns**\ : :js:class:`PartLabels <cee.mrk.PartLabels>`
      



.. js:method:: cee.mrk.MarkupModel.addLinesPart

      .. rst-class:: sig-pretty-signature
      
         | addLinesPart(): :js:class:`PartLines <cee.mrk.PartLines>`
      
      Adds a part for drawing lines. Use the returned :js:class:`PartLines <cee.mrk.PartLines>` to add lines to the new part.
      
      **Returns**\ : :js:class:`PartLines <cee.mrk.PartLines>`
      



.. js:method:: cee.mrk.MarkupModel.addPointsPart

      .. rst-class:: sig-pretty-signature
      
         | addPointsPart(): :js:class:`PartPoints <cee.mrk.PartPoints>`
      
      Adds a part for drawing points. Use the returned :js:class:`PartPoints <cee.mrk.PartPoints>` to add points to the new part.
      
      **Returns**\ : :js:class:`PartPoints <cee.mrk.PartPoints>`
      



.. js:method:: cee.mrk.MarkupModel.addTexturedIndexedTrianglesPart

      .. rst-class:: sig-pretty-signature
      
         | addTexturedIndexedTrianglesPart(): :js:class:`PartTexturedIndexedTriangles <cee.mrk.PartTexturedIndexedTriangles>`
      
      Adds a part containing textured indexed triangles to the markup model. Use the returned :js:class:`PartTexturedIndexedTriangles <cee.mrk.PartTexturedIndexedTriangles>` to set the mesh data and texture of the new part.
      
      **Returns**\ : :js:class:`PartTexturedIndexedTriangles <cee.mrk.PartTexturedIndexedTriangles>`
      



.. js:method:: cee.mrk.MarkupModel.deleteAllParts

      .. rst-class:: sig-pretty-signature
      
         | deleteAllParts(): *void*
      
      Deletes all parts in model
      
      **Returns**\ : *void*
      



.. js:method:: cee.mrk.MarkupModel.deletePart

      .. rst-class:: sig-pretty-signature
      
         | deletePart(**part**\ : :js:class:`Part <cee.mrk.Part>`\ ): *boolean*
      
      Delete the given part if present.
      
      Returns true if the part was found and deleted, false if not.
      
      **Parameters**
      
      
         **part**\ : :js:class:`Part <cee.mrk.Part>`
      
      
      **Returns**\ : *boolean*
      



.. js:method:: cee.mrk.MarkupModel.deletePartAt

      .. rst-class:: sig-pretty-signature
      
         | deletePartAt(**partIndex**\ : *number*\ ): *void*
      
      Deletes the part at the given (zero-based) index.
      
      **Parameters**
      
      
         **partIndex**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.mrk.MarkupModel.getBoundingBox

      .. rst-class:: sig-pretty-signature
      
         | getBoundingBox(**_options**\ : :js:class:`ModelBoundingBoxOptions <cee.ModelBoundingBoxOptions>`\ ): :js:class:`BoundingBox <cee.BoundingBox>`
      
      Returns the :js:class:`BoundingBox <cee.BoundingBox>` (in world coordinates) of the model.
      
      Note that currently this method does not support any :js:class:`ModelBoundingBoxOptions <cee.ModelBoundingBoxOptions>`
      
      **Parameters**
      
      
         **_options**\ : :js:class:`ModelBoundingBoxOptions <cee.ModelBoundingBoxOptions>`
      
      
      **Returns**\ : :js:class:`BoundingBox <cee.BoundingBox>`
      



.. js:method:: cee.mrk.MarkupModel.getDefaultCameraConfig

      .. rst-class:: sig-pretty-signature
      
         | getDefaultCameraConfig(): *None*
      
      Returns default camera configuration, which is always null for this model.
      
      **Returns**\ : *None*
      



.. js:method:: cee.mrk.MarkupModel.getPartAt

      .. rst-class:: sig-pretty-signature
      
         | getPartAt(**partIndex**\ : *number*\ ): :js:class:`Part <cee.mrk.Part>`
      
      Returns an active reference to the part at the given (zero-based) index.
      
      **Parameters**
      
      
         **partIndex**\ : *number*
      
      
      **Returns**\ : :js:class:`Part <cee.mrk.Part>`
      



.. js:method:: cee.mrk.MarkupModel.rayIntersect

      .. rst-class:: sig-pretty-signature
      
         | rayIntersect(**ray**\ : :js:class:`Ray <cee.Ray>`\ , **ignoreLabels**\ : *boolean*\ ?): :js:class:`HitItem <cee.mrk.HitItem>`
      
      Performs picking on the model.
      
      If something was hit, returns a HitItem containing information about the part and primitive that was hit.
      
      If nothing was hit, returns null.
      
      Labels have a "special treatment" ray intersect where hitting the label will cause a hit on the label attachment point. This is not always what is intended, e.g. when doing zoom to cursor. Set ignoreLabels to true to skip labels when doing ray intersect.
      
      **Parameters**
      
      
         **ray**\ : :js:class:`Ray <cee.Ray>`
      
         **ignoreLabels**\ : *boolean* = false
      
      
      **Returns**\ : :js:class:`HitItem <cee.mrk.HitItem>`
      




