:tocdepth: 2

############
Envision 1.6
############

August 16, 2023 - SHA: f991e3e2

|web| CEETRON Envision for Web        |desktop| CEETRON Envision for Desktop



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

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

CAE-1123 Custom labels for color legend tickmarks |desktop|
===========================================================

Added support for specifying custom color legend labels for ``FILLED_CONTOURS_UNIFORM`` and ``FILLED_CONTOURS`` legends. 
You have to specify ``numberOfFilledContoursColors() + 1`` strings (one for each tickmark).

Added to ``cee::ug::ColorMapper``

.. code-block:: cpp

    std::vector<cee::Str>   customFilledContoursTickMarkLabels() const;
    void                    setCustomFilledContoursTickMarkLabels(const std::vector<cee::Str>& levelLabels);

.. image:: ../images/release-notes/cae1123.png


CAE-1193 Add constant fluid viscosity property to MassedParticleParameters |web|
================================================================================

You can now specify a constant molecular fluid viscosity when using the massed particle tracing. This is useful if the 
viscosity is constant and you do not have a dedicated viscosity scalar field.

Added ``cee.ug.MassedParticleParameters.constantFluidViscosity``. This will be used when ``fluidViscosityResultId`` is 
not set (-1).


CAE-1202 Added ArrowGenerator and fix typings of cee.utils |web|
================================================================

Added ``cee.utils.ArrowGenerator`` class to generate a tessellation of an arrow. 

Added ``cee.utils.ConeGenerator`` and ``cee.utils.PathGenerator`` to the typings files ``CeeEnvisionWebComponents.d.ts``


CAE-1206 Add documentation to .d.ts file |web|
==============================================

Added the Envision Web documentation to the ``CeeEnvisionWebComponents.d.ts``. This allows for a much nicer development 
experience, as most editors (including VS Code) will show the documentation as tooltips when hovering over code.

.. image:: ../images/release-notes/cae1206.png


CAE-1208 Do not expose the license code when using the HOOPS Exchange plugin |desktop| |web|
============================================================================================

When using the HOOPS Exchange Data Provider for the RemoteModel, you can now use the ``CEW_TECH_SOFT_LICENSE_CODE`` and 
``HOOPS_LIBRARY_PATH`` environment variables to specify the license and the location of the HOOPS Exchange distribution 
on the server side. This avoids providing these as ``ReaderSettings`` from the client side.

The `documentation <https://docs.techsoft3d.com/hoops/latest/envision-desktop/topics/dataproviders/plugins/exchange.html#overview>`_ 
has been updated to reflect this. 


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

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

CAE-1196 QueryNodeScalarResult does not support calculator results |desktop| |web|
==================================================================================

The ``cee.ug.QueryNodeScalarResult`` query now supports querying scalar results that are computed with a result 
calculator plug-in. 


CAE-1200 Crash in loadState() when changing section configuration |desktop|
===========================================================================

When changing sections in ``cee::imp::cae::DataSourceCae`` and then calling ``loadState()`` you might in some cases get 
an assert. 


CAE-1203 Navigation cube cannot be used to set the camera inside the OpenModelCallback |web|
============================================================================================

The ``Overlay.viewConfigurationFromNavigationCubeItem()`` did not work before the first visualization was ready (e.g. 
in the ``openModelCompleted`` callback in ``RemoteModel.openModel()``. 


CAE-1209 DataProvider: setCreateDerivedResults(false) does not work when adding results in pollForChanges |desktop| |web|
=========================================================================================================================

The ``CDPDataProvider::setCreateDerivedResults(false)`` setting did not work when providing new results in 
``CDPDataProvider::pollForChanges()``, it would always provide derived results.

Also fixed an issue where the results provided by result calculators disappeared if a ``pollForChanges()`` resulted in 
a new call to getMetaData (``CDPChangeNotifications.notifyTriggerNewGetMetaData()``).


CAE-1211 ImportCAE: For some file formats undefined results are reported as 0 |desktop| |web|
=============================================================================================

The file readers supported by Ceetron Access (most CAE formats) specifies undefined results as 0 and not undefined. 
This causes the visualization to be wrong and also for 0 to be included in the min/max calculations.

Added a new setting to control this behavior: On desktop we enabled the 
``cee::imp::cae::ReaderSettings::setUsesUndefinedResults`` reader setting for Ceetron Access so you can now force 
undefined results to be zero.

In Envision Web, we added a new reader setting:

.. code-block:: cpp

    myModel.setReaderOptions("CEETRON_ACCESS", { 
        "USE_UNDEFINED_RESULTS": true
    }); 

In future releases, this will be set to default true (use undefined), but that requires some fixes in Ceetron Access.


CAE-1210 UgServer crashes on some old legacy VTFx files |web|
=============================================================

Some old and partial VTFx files caused an assert and crashed the RemoteModel (UG) server.
