:tocdepth: 2

############
Envision 1.1
############

November 25, 2022 - SHA: 68b113ab


------------------------------------------------

*************
New Features
*************

CAE-848 cee.ug.ScalarSettings: Custom continuous color scheme support
=====================================================================

Added support for specifying a custom color mapping for continuous color legends. You can provide an array of colors 
and the legend will then be interpolated between these colors. If values are provided the legend will have the given 
color at the given value. If no values are provided the colors will be evenly spaced.

.. code-block:: ts

    scalarSettings.setCustomContinuousColorArr([
        {r: 148/255, g:   0/255, b: 211/255},
        {r:  75/255, g:   0/255, b: 130/255},
        {r:   0/255, g:   0/255, b: 255/255},
        {r:   0/255, g: 255/255, b:   0/255},
        {r: 255/255, g: 255/255, b:   0/255},
        {r: 255/255, g: 127/255, b:   0/255},
        {r: 255/255, g:   0/255, b:   0/255},
    ], [0,1,2,3,4,5,6]);

.. image:: ../images/release-notes/cae848-1.png

.. code-block:: ts

    scalarSettings.setCustomContinuousColorArr(
    [
        { r: 0.9, g: 0.9, b: 0.9 },
        { r: 1, g: 0, b: 0 }
    ], [0, 1000]);


.. image:: ../images/release-notes/cae848-2.png

.. code-block:: ts

    scalarSettings.setCustomContinuousColorArr([
        {r: 148/255, g:   0/255, b: 211/255},
        {r:  75/255, g:   0/255, b: 130/255},
        {r:   0/255, g:   0/255, b: 255/255},
        {r:   0/255, g: 255/255, b:   0/255},
        {r: 255/255, g: 255/255, b:   0/255},
        {r: 255/255, g: 127/255, b:   0/255},
        {r: 255/255, g:   0/255, b:   0/255},
    ], [0, 0.33, 0.66, 1, 5.5, 5.9, 6.3]);


.. image:: ../images/release-notes/cae848-3.png

See ``cee.ug.ScalarSettings.setCustomContinuousColorArr()`` for more info.

.. note::
    Setting ``cee.ug.ScalarSettings..colorScheme = cee.ug.ColorScheme.CUSTOM`` was never intended to be a valid 
    operation and this is now documented and the property will throw if this is tried.


CAE-867 Element edge, face and node DataSets
============================================

Added support for element edge, element face and element node sets in Envision Web and VTFx.

**CeeVTFx:**

-   Added ``ELEMENT_FACE``, ``ELEMENT_EDGE``, ``ELEMENT_NODE`` and ``NODE`` as supported item types in ``cee::vtfx::SetBlock``.
-   Added ``itemSubIndex`` to ``cee::vtfx::SetItemGroup`` in order to specify a local face, edge, node index for these new set types.
-   Added new example VTFxSets which showcases how to use sets in VTFx.

**Envision Web: (cee.ug)**

-   Added ``elementFaceIndex``, ``elementEdgeIndex`` and ``elementNodeIndex`` to ``cee.ug.HitItem``.
-   Added itemType to ``cee.ug.SetInfo``
-   Added new query ``QuerySetItems`` to get items in a given set. This has an option to also return the tesselation of the set items (triangles for element face sets, lines for element edge sets and points for element node/node sets). This is useful for showing the sets by feeding these tessellations into the Markup or Geometry model.

Updated documentation to show element edge and surface order for 
`Envision Desktop <https://docs.techsoft3d.com/hoops/latest/envision-desktop/api/classcee_1_1ug_1_1_element.html#_CPPv4N3cee2ug7Element4TypeE>`_ 
and `VTFx <https://docs.techsoft3d.com/hoops/latest/envision-desktop/api-vtfx/classcee_1_1vtfx_1_1_element_block.html#_CPPv4N3cee4vtfx12ElementBlock11ElementTypeE>`_:

.. figure:: ../images/release-notes/cae867.png
   
   Screenshot from new documentation

Note: Full support in Envision Desktop is coming in a later version, as well as support in Data Providers.


CAE-870 Add cug-server to examples docker installation
======================================================

The Envision distribution demo (http://envision.ceetron.com) now has a CugServer running to the CUG examples should 
work as intended.


CAE-876 cee.ug.CuttingPlane: Eye-lift support for cutting planes
================================================================

Added a setting for giving cutting planes a visual priority (eye-lift) to control z-fighting when the cutting plane is 
competing against other geometry.

See ``cee.ug.CuttingPlane.eyeLift`` for more info.


CAE-879 Added Data Provider Framework documentation to the Envision Desktop documentation
=========================================================================================

The documentation for the Data Provider Framework is now a part of the Envision Documentation.


CAE-881 The web ugServer is now built with CentOS7 and only requires glibc 2.17
===============================================================================

The server for RemoteModel (server/UgServer) is now built with CentOS7 and requires only glibc 2.17. The previous 
requirement was Ubuntu16 (glibc 2.23).


CAE-885 Add support for serving web apps through CUG server
===========================================================

-   Add support to CUG server for serving web apps over same port
-   Add ``CEW_CUGS_PUBLIC_DIR`` env var for specifying dir to be served statically
-   Add ``CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE`` env var for providing extra routes required by the app
-   Move status route to /status
-   Rename docker container models dir from "TestModels" to more generic name "Models"


CAE-888 Add DataProviderFramework/ResultCalculatorFramework to Envision Desktop distribution 
============================================================================================

Added the Data Provider Framework and the Result Calculator Framework distribution to Envision Desktop.


CAE-895 Add interface name to SimulationInfo
============================================

Added name of interface (file reader / data provider) currently used by RemoteModel to SimulationInfo 
(e.g. NASTRAN, ABAQUS, OpenFOAM, etc)

See ``cee.ug.SimulationInfo.interfaceName`` for more info.


CAE-904 cee.ug.CuttingPlane: Support for turning the light on/off
=================================================================

Add support for disabling lighting of cutting planes. This can be useful to see the colors on the cutting plane 
without shading effects.

See ``cee.ug.CuttingPlane.lighting`` for more info.


CAE-907 Add OpenFOAM data provider to Envision Desktop distribution
===================================================================

The OpenFOAM data provider is now distributed as a part of Envision for Desktop.


CAE-910 Upgrade Envision Desktop and Web to use CEETRON SAM 1.0.1
=================================================================

Upgrade Envision Desktop and Web to use CEETRON SAM 1.0.1

------------------------------------------------

***********
Fixed Bugs
***********

CAE-756 VisualizationPartQuery: Crash when computing surface path on nodes connected to null-surface triangles
==============================================================================================================

Fixed a crash when trying to do a surface path query starting on a beam or a point element.


CAE-852 Default value for MODEL_PATH in server/UgServer/Main.js is wrong
========================================================================

Fixed the model path based on the package reorganization for Envision 1.0


CAE-853 CugServer build fails for typescript 3.9
================================================

Fixed so you can compile the CugServer with TypeScript 3.9


CAE-868 Web: BuildYourFirstApp/2-Viewer: The initial camera is not set as intended
===================================================================================

The callback to the openModel() was not correct in the example so setting the initial camera did not work.


CAE-878 ug.ScalarSettings.scalingConstantTerm and scalingFirstDegreeTerm not applied to legends
===============================================================================================

The use of unit conversion (setting a linear transformation of the results on the legend) did not always work as intended.


CAE-880 Assertion failed if using continuous legend bar and setting same min and max range values
=================================================================================================

When using a continuous legend mapping (numLevels = 0) the client would assert if min was set to the same as max.


CAE-892 HitItem returns undefined intersectionPointResult value for cutting plane when having parts without results
===================================================================================================================

The intersectionPointResult value in cee.ug.HitItem was undefined or wrong if a model had some parts without any results defined.


CAE-902 CugServer: CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE should be relative to current dir rather than Main.js
===============================================================================================================

Changed the behavior of the ``CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE`` environment.


