.. role:: ts-api-decorator

#######
cee.cug
#######

.. container:: ts-api-section

   .. js:module:: cee.cug

   The **cug** sub-module provides a constant remote model designed for viewing CAE models. 

   Assuming that the EnvisionWeb client component has been imported into the variable ``cee``, members of
   the cug module may be referenced using the ``cee.cug`` prefix, e.g.:


   .. code-block:: javascript

      var model = new cee.cug.ConstantRemoteModel();


 
   **Features**

    * Scalable CAE Model visualization in the Cloud
    * Starts streaming immediately, independent of model size
    * State-less, RESTful API based server
    * No native add-on for server, no web sockets
    * Easy to scale, low cost to deploy
    * The viewer in Ceetron Cloud 2.0

   **Supports interactive viewing of all cee.ug features**

    * Model with scalars, vectors and displacements
    * All part attributes (mesh, draw style, transparency, etc)
    * Time, mode-shape and particle trace animations
    * Cutting planes, isosurfaces, isovolumes
    * Particle traces

   **Interactive features**

    * Pan/rotate/zoom
    * Show/hide model mesh
    * Show/hide parts and objects
    * Animation control 

   **Server**

   The ConstantRemoteModel requires the use of a server (CugServer). Models needs to be converted into a CUG database format before they can be streamed. 
   The conversion is done with the CugComposer command line application which is provided in the NativeApplications/CugComposer/bin/<PLATFORM> folder of the 
   distribution (binaries for Windows, Linux and MacOS).

   The CUG server uses a DataStore interface to access data, and ships with a FileDataStore. It can be extended to pull data from other sources.




.. toctree::
   :titlesonly:
   :hidden:

   /c3_reference/interfaces/cee.cug.Animation
   /c3_reference/interfaces/cee.cug.Base64ModelBundle
   /c3_reference/classes/cee.cug.BinaryModelBundle
   /c3_reference/classes/cee.cug.ConstantRemoteModel
   /c3_reference/classes/cee.cug.CuttingPlane
   /c3_reference/interfaces/cee.cug.DataStreamingCompleteCallback
   /c3_reference/classes/cee.cug.FrameInfo
   /c3_reference/interfaces/cee.cug.HitItem
   /c3_reference/interfaces/cee.cug.InitializationCompleteCallback
   /c3_reference/interfaces/cee.cug.InitializationCompleteInfo
   /c3_reference/classes/cee.cug.Isosurface
   /c3_reference/classes/cee.cug.Isovolume
   /c3_reference/classes/cee.cug.ModelSpec
   /c3_reference/enum/cee.cug.ObjectType
   /c3_reference/interfaces/cee.cug.OpenModelOptions
   /c3_reference/interfaces/cee.cug.OpenRemoteBundleOptions
   /c3_reference/classes/cee.cug.Part
   /c3_reference/classes/cee.cug.ParticleTraceGroup
   /c3_reference/interfaces/cee.cug.ProgressData
   /c3_reference/interfaces/cee.cug.ProgressHandler
   /c3_reference/classes/cee.cug.QueryNodeScalarTimeHistory
   /c3_reference/interfaces/cee.cug.QueryNodeScalarTimeHistoryCallback
   /c3_reference/interfaces/cee.cug.QueryNodeScalarTimeHistoryData
   /c3_reference/interfaces/cee.cug.RayIntersectCallback
   /c3_reference/classes/cee.cug.RemoteQuery
   /c3_reference/classes/cee.cug.ResultInfo
   /c3_reference/enum/cee.cug.ResultMapping
   /c3_reference/enum/cee.cug.ResultType
   /c3_reference/classes/cee.cug.ServerItemIdent
   /c3_reference/classes/cee.cug.SimulationInfo

.. container:: api-index-section

   .. rubric:: Enumerations

   .. rst-class:: api-index-list-item api-kind-enum api-parent-kind-module

   * :ref:`cee.cug.ObjectType`
   * :ref:`cee.cug.ResultMapping`
   * :ref:`cee.cug.ResultType`



.. container:: api-index-section

   .. rubric:: Classes

   .. rst-class:: api-index-list-item api-kind-class api-parent-kind-module

   * :js:class:`~cee.cug.BinaryModelBundle`
   * :js:class:`~cee.cug.ConstantRemoteModel`
   * :js:class:`~cee.cug.CuttingPlane`
   * :js:class:`~cee.cug.FrameInfo`
   * :js:class:`~cee.cug.Isosurface`
   * :js:class:`~cee.cug.Isovolume`
   * :js:class:`~cee.cug.ModelSpec`
   * :js:class:`~cee.cug.Part`
   * :js:class:`~cee.cug.ParticleTraceGroup`
   * :js:class:`~cee.cug.QueryNodeScalarTimeHistory`
   * :js:class:`~cee.cug.RemoteQuery`
   * :js:class:`~cee.cug.ResultInfo`
   * :js:class:`~cee.cug.ServerItemIdent`
   * :js:class:`~cee.cug.SimulationInfo`



.. container:: api-index-section

   .. rubric:: Interfaces

   .. rst-class:: api-index-list-item api-kind-interface api-parent-kind-module

   * :js:class:`~cee.cug.Animation`
   * :js:class:`~cee.cug.Base64ModelBundle`
   * :js:class:`~cee.cug.DataStreamingCompleteCallback`
   * :js:class:`~cee.cug.HitItem`
   * :js:class:`~cee.cug.InitializationCompleteCallback`
   * :js:class:`~cee.cug.InitializationCompleteInfo`
   * :js:class:`~cee.cug.OpenModelOptions`
   * :js:class:`~cee.cug.OpenRemoteBundleOptions`
   * :js:class:`~cee.cug.ProgressData`
   * :js:class:`~cee.cug.ProgressHandler`
   * :js:class:`~cee.cug.QueryNodeScalarTimeHistoryCallback`
   * :js:class:`~cee.cug.QueryNodeScalarTimeHistoryData`
   * :js:class:`~cee.cug.RayIntersectCallback`



