
#########
Isovolume
#########

.. js:class:: cee.ug.Isovolume

   Specification of an isovolume (both parameters and attributes) in a :js:class:`RemoteModel <cee.ug.RemoteModel>`\ .
   
   Use this object to control the settings and attributes of an isovolume. An isovolume is defined as the combined volume of an element model where a scalar field is between a given minimum and maximum value. The surface of the isovolume is the hull of this volume. Any element on the border of the model (a surface with no neighbor) is also included in the volume if the scalar value on that surface is within the given range.
   
   You can map any scalar result onto the isovolume with :js:func:`mapScalarResultId <cee.ug.Isovolume.mapScalarResultId>` and any vector result with :js:func:`mapVectorResultId <cee.ug.Isovolume.mapVectorResultId>`\ . The settings for the mapped results can be changed with the :js:class:`ScalarSettings <cee.ug.ScalarSettings>` and :js:class:`VectorSettings <cee.ug.VectorSettings>` objects.
   
   To create an isovolume, use :js:meth:`RemoteModel.addIsovolume <cee.ug.RemoteModel.addIsovolume>`\ .
   
   **Example:** Show an isovolume
   
   .. code-block:: javascript
   
      var modelDir = myModel.modelDirectory;
      
      // Add isovolume if we have a scalar result
      if (modelDir.scalarResultArray.length > 0) {
          var iso = myModel.addIsovolume();
          iso.isoScalarResultId = modelDir.scalarResultArray[0].id;
      
          iso.minimumIsoValue = 2;
          iso.maximumIsoValue = 5;
      
          if (modelDir.scalarResultArray.length > 1) {
              iso.mapScalarResultId = modelDir.scalarResultArray[1].id;
          } else {
              iso.mapScalarResultId = modelDir.scalarResultArray[0].id;
          }
      }
      
      // Set model to outline to show the cutting planes
      myModel.setDrawStyleAllParts(cee.ug.DrawStyle.OUTLINE);
   
   This code sample produces the following image in the 3D Viewer:
   
   .. image:: /images/Isovolume.png
      :alt: None
   
   
   
   
   Index
   =====
   
   .. rubric:: Accessors
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:func:`~cee.ug.Isovolume.computeFromVisibleParts`
   * :js:func:`~cee.ug.Isovolume.highlight`
   * :js:func:`~cee.ug.Isovolume.id`
   * :js:func:`~cee.ug.Isovolume.isoScalarResultId`
   * :js:func:`~cee.ug.Isovolume.isPrecomputed`
   * :js:func:`~cee.ug.Isovolume.mapScalarResultId`
   * :js:func:`~cee.ug.Isovolume.mapVectorResultId`
   * :js:func:`~cee.ug.Isovolume.maximumIsoValue`
   * :js:func:`~cee.ug.Isovolume.minimumIsoValue`
   * :js:func:`~cee.ug.Isovolume.opacity`
   * :js:func:`~cee.ug.Isovolume.visible`
   * :js:func:`~cee.ug.Isovolume.volumeColor`
   
   .. rubric:: Methods
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:meth:`~cee.ug.Isovolume.getAsProperties`
   * :js:meth:`~cee.ug.Isovolume.setFromProperties`
   
   



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

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


.. js:method:: cee.ug.Isovolume.computeFromVisibleParts

      .. rst-class:: sig-pretty-signature
      
         | *get* computeFromVisibleParts(): *boolean*
      
      If set to true, the isovolume will be computed from only the visible parts. Any part that is not visible will not contribute to the isovolume.
      
      **Returns**\ : *boolean*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* computeFromVisibleParts(**visiblePartsOnly**\ : *boolean*\ ): *void*
      
      **Parameters**
      
      
         **visiblePartsOnly**\ : *boolean*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.highlight

      .. rst-class:: sig-pretty-signature
      
         | *get* highlight(): *boolean*
      
      Whether the isovolume should be highlighted.
      
      **Returns**\ : *boolean*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* highlight(**highlight**\ : *boolean*\ ): *void*
      
      **Parameters**
      
      
         **highlight**\ : *boolean*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.id

      .. rst-class:: sig-pretty-signature
      
         | *get* id(): *number*
      
      The id of the isovolume. This is assigned by the system when you call :js:meth:`RemoteModel.addIsovolume <cee.ug.RemoteModel.addIsovolume>` and is used to identify the isovolume.
      
      **Returns**\ : *number*
      



.. js:method:: cee.ug.Isovolume.isoScalarResultId

      .. rst-class:: sig-pretty-signature
      
         | *get* isoScalarResultId(): *number*
      
      The scalar result to compute the isovolume from. This property is mandatory and must refer to one of the scalar results in :js:data:`ModelDirectory.scalarResultArray <cee.ug.ModelDirectory.scalarResultArray>`\ .
      
      **Returns**\ : *number*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* isoScalarResultId(**isoScalarResultId**\ : *number*\ ): *void*
      
      **Parameters**
      
      
         **isoScalarResultId**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.isPrecomputed

      .. rst-class:: sig-pretty-signature
      
         | *get* isPrecomputed(): *boolean*
      
      Is true if the isovolume is precomputed and cannot be changed
      
      **Returns**\ : *boolean*
      



.. js:method:: cee.ug.Isovolume.mapScalarResultId

      .. rst-class:: sig-pretty-signature
      
         | *get* mapScalarResultId(): *number*
      
      The id of the scalar result to show on the isovolume.
      
      This id must refer to one of the scalar results in :js:data:`ModelDirectory.scalarResultArray <cee.ug.ModelDirectory.scalarResultArray>`\ . You can change the settings for the scalar with the :js:class:`ScalarSettings <cee.ug.ScalarSettings>` object.
      
      Set to -1 to show no scalars on the isovolume.
      
      **Returns**\ : *number*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* mapScalarResultId(**mapScalarResultId**\ : *number*\ ): *void*
      
      **Parameters**
      
      
         **mapScalarResultId**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.mapVectorResultId

      .. rst-class:: sig-pretty-signature
      
         | *get* mapVectorResultId(): *number*
      
      The id of the vector result to show on the isovolume. One vector will be shown in each node of the surface.
      
      This id must refer to one of the vector results in :js:data:`ModelDirectory.vectorResultArray <cee.ug.ModelDirectory.vectorResultArray>`\ . The settings for the vector arrows can be changed with the :js:class:`VectorSettings <cee.ug.VectorSettings>` object.
      
      Set to -1 to show no vectors on the isovolume.
      
      **Returns**\ : *number*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* mapVectorResultId(**mapVectorResultId**\ : *number*\ ): *void*
      
      **Parameters**
      
      
         **mapVectorResultId**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.maximumIsoValue

      .. rst-class:: sig-pretty-signature
      
         | *get* maximumIsoValue(): *number*
      
      The maximum scalar value within the isovolume.
      
      **Returns**\ : *number*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* maximumIsoValue(**maximumIsoValue**\ : *number*\ ): *void*
      
      **Parameters**
      
      
         **maximumIsoValue**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.minimumIsoValue

      .. rst-class:: sig-pretty-signature
      
         | *get* minimumIsoValue(): *number*
      
      The minimum scalar value within isovolume.
      
      **Returns**\ : *number*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* minimumIsoValue(**minimumIsoValue**\ : *number*\ ): *void*
      
      **Parameters**
      
      
         **minimumIsoValue**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.opacity

      .. rst-class:: sig-pretty-signature
      
         | *get* opacity(): *number*
      
      Opacity of the isovolume. 0.0 means fully transparent (invisible), 1.0 means fully opaque.
      
      **Returns**\ : *number*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* opacity(**opacity**\ : *number*\ ): *void*
      
      **Parameters**
      
      
         **opacity**\ : *number*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.visible

      .. rst-class:: sig-pretty-signature
      
         | *get* visible(): *boolean*
      
      Visibility of the isovolume. Use this to show or hide an isovolume in the 3D Viewer.
      
      **Returns**\ : *boolean*
      
      .. rst-class:: sig-pretty-signature
      
         | *set* visible(**visible**\ : *boolean*\ ): *void*
      
      **Parameters**
      
      
         **visible**\ : *boolean*
      
      
      **Returns**\ : *void*
      



.. js:method:: cee.ug.Isovolume.volumeColor

      .. rst-class:: sig-pretty-signature
      
         | *get* volumeColor(): :js:class:`Color3Like <cee.Color3Like>`
      
      The color of the isovolume if not showing a result (mapScalarResultId = -1)
      
      **Returns**\ : :js:class:`Color3Like <cee.Color3Like>`
      
      .. rst-class:: sig-pretty-signature
      
         | *set* volumeColor(**clr**\ : :js:class:`Color3Like <cee.Color3Like>`\ ): *void*
      
      **Parameters**
      
      
         **clr**\ : :js:class:`Color3Like <cee.Color3Like>`
      
      
      **Returns**\ : *void*
      



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

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


.. js:method:: cee.ug.Isovolume.getAsProperties

      .. rst-class:: sig-pretty-signature
      
         | getAsProperties(): :js:class:`IsovolumeProperties <cee.ug.IsovolumeProperties>`
      
      Gets the settings for this isovolume as a Plain Old JavaScript Object (POJO).
      
      **Returns**\ : :js:class:`IsovolumeProperties <cee.ug.IsovolumeProperties>`
      



.. js:method:: cee.ug.Isovolume.setFromProperties

      .. rst-class:: sig-pretty-signature
      
         | setFromProperties(**props**\ : *Partial*\ ): *void*
      
      Applies the settings in the given properties object to this isovolume.
      
      **Parameters**
      
      
         **props**\ : *Partial*
      
      
      **Returns**\ : *void*
      




