
################
MeshIndexedLines
################

.. js:class:: cee.geo.MeshIndexedLines

   This class implements a :js:class:`Mesh <cee.geo.Mesh>` for indexed lines.
   
   Rather than defining each line directly as an array of vertices, an array containing each unique vertex in the part is defined. Then lines are defined by arrays of indices that refer to elements of this vertex array. This allows lines to share vertices, thus reducing the number of vertices.
   
   
   Index
   =====
   
   .. rubric:: Constructors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.geo.MeshIndexedLines.constructor`
   
   .. rubric:: Accessors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.geo.MeshIndexedLines.boundingBox`
   * :js:func:`~cee.geo.MeshIndexedLines.indexArray`
   * :js:func:`~cee.geo.MeshIndexedLines.primitiveCount`
   * :js:func:`~cee.geo.MeshIndexedLines.primitiveType`
   * :js:func:`~cee.geo.MeshIndexedLines.textureCoordinates`
   * :js:func:`~cee.geo.MeshIndexedLines.vertexArray`
   * :js:func:`~cee.geo.MeshIndexedLines.vertexCount`
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~cee.geo.MeshIndexedLines.getPrimitiveVertices`
   * :js:meth:`~cee.geo.MeshIndexedLines.rayIntersect`
   
   



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

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


.. js:method:: cee.geo.MeshIndexedLines.constructor

      .. rst-class:: sig-pretty-signature
      
         | MeshIndexedLines(**vertices**\ : *ArrayLike*\ , **indices**\ : *ArrayLike*\ , **optionalVertexData**\ : :js:class:`OptionalIndexedLinesVertexData <cee.geo.OptionalIndexedLinesVertexData>`\ ): :js:class:`MeshIndexedLines <cee.geo.MeshIndexedLines>`
      
      Creates an indexed lines mesh with the given vertices and indices.
      
      **Parameters**
      
      
         **vertices**\ : *ArrayLike*
      
         **indices**\ : *ArrayLike*
      
         **optionalVertexData**\ : :js:class:`OptionalIndexedLinesVertexData <cee.geo.OptionalIndexedLinesVertexData>`
      
      
      **Returns**\ : :js:class:`MeshIndexedLines <cee.geo.MeshIndexedLines>`
      



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

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


.. js:method:: cee.geo.MeshIndexedLines.boundingBox

      The :js:class:`BoundingBox <cee.BoundingBox>` of the mesh.
      
      .. rst-class:: sig-pretty-signature
      
         | *get* boundingBox(): :js:class:`BoundingBox <cee.BoundingBox>`
      
      Returns a copy of the :js:class:`BoundingBox <cee.BoundingBox>` of the mesh
      
      **Returns**\ : :js:class:`BoundingBox <cee.BoundingBox>`
      



.. js:method:: cee.geo.MeshIndexedLines.indexArray

      .. rst-class:: sig-pretty-signature
      
         | *get* indexArray(): *ArrayLike*
      
      A readonly array containing the indices of the mesh
      
      **Returns**\ : *ArrayLike*
      



.. js:method:: cee.geo.MeshIndexedLines.primitiveCount

      The number of primitives in the mesh.
      
      .. rst-class:: sig-pretty-signature
      
         | *get* primitiveCount(): *number*
      
      The number of primitives in the mesh.
      
      **Returns**\ : *number*
      



.. js:method:: cee.geo.MeshIndexedLines.primitiveType

      The type of primitives that are used in the mesh.
      
      .. rst-class:: sig-pretty-signature
      
         | *get* primitiveType(): :js:data:`MeshPrimitiveType <cee.geo.MeshPrimitiveType>`
      
      The type of primitives that are used in the mesh.
      
      **Returns**\ : :js:data:`MeshPrimitiveType <cee.geo.MeshPrimitiveType>`
      



.. js:method:: cee.geo.MeshIndexedLines.textureCoordinates

      .. rst-class:: sig-pretty-signature
      
         | *get* textureCoordinates(): *ArrayLike*
      
      A readonly array containing the 2d texture coordinates of the mesh
      
      **Returns**\ : *ArrayLike*
      



.. js:method:: cee.geo.MeshIndexedLines.vertexArray

      .. rst-class:: sig-pretty-signature
      
         | *get* vertexArray(): *ArrayLike*
      
      A readonly array containing the vertices of the mesh
      
      **Returns**\ : *ArrayLike*
      



.. js:method:: cee.geo.MeshIndexedLines.vertexCount

      The number of vertices in the mesh.
      
      .. rst-class:: sig-pretty-signature
      
         | *get* vertexCount(): *number*
      
      The number of vertices in the mesh.
      
      **Returns**\ : *number*
      



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

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


.. js:method:: cee.geo.MeshIndexedLines.getPrimitiveVertices

      .. rst-class:: sig-pretty-signature
      
         | getPrimitiveVertices(**primitiveIndex**\ : *number*\ ): :js:class:`Vec3 <cee.Vec3>`\ []
      
      Returns a copy of the vertex indices of a given primitive.
      
      **Parameters**
      
      
         **primitiveIndex**\ : *number*
      
      
      **Returns**\ : :js:class:`Vec3 <cee.Vec3>`\ []
      



.. js:method:: cee.geo.MeshIndexedLines.rayIntersect

      .. rst-class:: sig-pretty-signature
      
         | rayIntersect(**ray**\ : :js:class:`Ray <cee.Ray>`\ , **hitItem**\ : :js:class:`MeshHitItem <cee.geo.MeshHitItem>`\ ): *boolean*
      
      Performs picking on the mesh.
      
      If a primitive was hit, the function returns true and populates the passed hitItem object with information about this primitive. It nothing was hit, returns false.
      
      **Parameters**
      
      
         **ray**\ : :js:class:`Ray <cee.Ray>`
      
         **hitItem**\ : :js:class:`MeshHitItem <cee.geo.MeshHitItem>`
      
      
      **Returns**\ : *boolean*
      




