:tocdepth: 2

############
Envision 3.1
############

March 20, 2025 - SHA: 19460d9e

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

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

CAE-1303 VTFx: Handle running animation over states with missing displacement results |desktop|
===============================================================================================

Fixed an issue where the VTFx animation would not run over states with missing displacement results. 

CAE-1383 GeometryModel::polygonIntersect does not handle duplicate points |desktop|
======================================================================================

If duplicate points are passed in the coordinates array to ``UnstructGridModel::polygonIntersect``, the function will 
not determine a valid polygon and will fail. This issue was resolved by adding a preprocessing step to filter out 
duplicate points before attempting to determine the polygon.

CAE-1427 When switching cases vectors are set from previous case |web|
======================================================================

Switching into a new VTFx case now clears all previous visual settings before applying new properties from the newly 
selected case. This prevents scenarios when e.g. a vector setting is being shown but the newly case has no specified 
vector to show.

Reset settings include: 
Shown fringes, vectors and displacement, scalar and vector settings, mode shape animation, visible element sets.

CAE-1440 Fix Anisotropic Scale Factor Handling for Strict Null Checks |web|
===========================================================================

Fixed ``anisotropicScaleFactor`` handling to ensure all factors are non-null if anisotropic scaling is used. 

CAE-1442 Assert while mapping a vector result on a cutting plane |desktop|
==========================================================================

When setting a result on a cutting plane (or feature extraction), one should use NORMAL update. Using ``CUTTING_PLANE`` 
will not set the result correctly. But it is a regression that using ``CUTTING_PLANE`` causes an assert. This was 
introduced in CAE-42: Color vectors by any scalar (not just the one shown as fringes)

CAE-1473 VTU: Improve large model handling |web| |desktop|
===========================================================

Improved handling of large models in Vtu format. This includes better performance and memory usage when loading large
models.

CAE-1474 Wrong state being preserved in state linear combination |desktop|
==========================================================================  

Fixed an issue where the wrong state was being preserved in state linear combination. When combining state results, 
we were keeping the first state in the provided list instead of the current state of the model.

CAE-1477 Geometry model number of parts differs between 2.4.1 and 3.0.1 versions |web|
======================================================================================

Prior to implementing strict null checks, it was possible to add parts even if the mesh indices for the part were empty. 
After implementing strict null checks, parts were not added unless the indices were populated. This is incorrect.

To reconcile this, an error will now be thrown if the number of vertices per primitive is not supported/expected. The 
subsequent conditional checking indices size can be removed. This change keeps the intended behavior and is compatible 
with strict null checks.

Regression introduced in Envision 3.0.0.

CAE-1486 OpenFOAM: Result data has zero values |web| |desktop|
===============================================================

Fixed an issue where data results read incorrectly. Ensure that the reader continues to the next data result buffer.

Fixed in version 1.17.0 of the OpenFOAM data provider. 

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

CAE-591 Attributes of Vtu Xml elements now have case insensitive names |web| |desktop|
====================================================================================== 

The attributes of the Vtu Xml elements are now case insensitive. This means that the attributes can be written in any case
and the parser will still be able to read them. This is useful when the Vtu Xml files are generated by other software that
does not follow the same case convention as Envision.

CAE-1444 Add "Turbo" and "Cool to Warm", two other popular color schemes |web| |desktop|
===========================================================================================

This feature adds the popular Turbo and Cool to Warm color scheme to the list of available built-in color schemes 
within Envision.

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

CAE-1446 Custom legend labels: support for "TickMarksPosition" (centered labels) |desktop|
===========================================================================================

Added the option to center labels on each "level" of the legend instead of next to the tick mark.

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

This is solved by calling ``setCustomFilledContoursTickMarkLabels()`` with an array of labels the same as number of 
levels. So;

- If size of labels array is numLevels +1: Custom label by each tick mark
- If size of labels array is numLevels: Custom label centered in the level. No tick marks are drawn.

When number of levels are changed, the custom labels are reset and need to be set again.

CAE-1464 Added support for polygon elements in Vtu. Mixed polygon/polyhedron meshes also supported |web| |desktop|
====================================================================================================================

Added support for POLYGON elements in Vtu. Mixed polygon/polyhedron meshes are also supported. 

CAE-1488 Use bounding box diagonal to relatively scale displacements |web| |desktop|
=====================================================================================

Relative displacement scaling now scales with the length of the model bounding box's diagonal, instead of the largest 
axial component of the bounding box to better align with existing software. This will result in displacements being 
slightly larger for the same scale factor, only when using relative scaling 
(``cee.ug.DisplacementScaleMode.RELATIVE_SCALING`` or ``cee::ug::DisplacementSettings::RELATIVE_SCALING``).

CAE-1492 Add support for reading VTK legacy files |web| |desktop|
==================================================================  

Added support for reading VTK legacy files.

