Envision 1.2.0

January 27, 2023 - SHA: 18704d8b

web CEETRON Envision for Web desktop CEETRON Envision for Desktop

Fixed Bugs

CAE-920 UgModule is missing some exports web

DisplacementSettingsProperties, ScalarSettingsProperties, VectorSettingsProperties were missing from the UgModule TypeScript d.ts file.

CAE-921 UgServer is sometimes confused about the current state id after applying a VTFx case web

When applying cases from VTFx files, in some cases the current state was not properly synced between client and server, needing an extra update to get in sync.

CAE-925 PVD/VTM/VTU: Displacement vector fields are not interpreted as displacements result unless their name starts with “displacement” web desktop

The VTK reader now will use any result with the word “displacement” as part of the result name as a displacement result. See CAE-971 for an option to treat all vector results in VTK files as displacements.

CAE-947 UgServer: Memory is not freed by the c++ heap manager on Linux web

Added option to trim heap memory usage on Linux/gcc using malloc_trim(). The feature can be enabled by setting the environment variable CEW_UG_ENABLE_MEMORY_TRIM

This functionality was added after getting reports of growing memory usage (and eventually crash) when running Linux version of ugServer in a Docker container. When enabled, the feature performs regular calls to malloc_trim() to manually do “garbage collection” on the c/c++ heap manager. Note that doing this could probably has a negative impact on performance.

CAE-962 Updating a cug model + removing another causes assert error web

Fix assert error that occurs on update a CUG model then remove another.

CAE-964 Asset error on update cug part then call getBoundingBoxForPart() web

Fix assert error that occurs on update CUG model then call getBoundingBoxForPart()

CAE-984 CugComposer crashes on VTFx files with IndexedFaceSets web

The CugComposer did not handle (legacy) VTFx files with Indexed Face Sets

CAE-1019 Reference counting did not work properly from Python desktop

Reference counting is now handled properly in the Python bindings for Envision for Python in the same way as for C#.

CAE-1039 ExportVTFx uses wrong vendor code, can’t open in Viewer desktop

The VTFx files exported from Envision for Desktop is now properly signed and can be viewed in the CEETRON 3D Viewer.

CAE-1049 CugComposer cannot pass unicode characters in arguments paths web

The CugComposer now handles unicode filenames, both for input VTFx files and output folder/files.

New Features

CAE-782 Camera changed callback web

Added cee.Camera.setViewChangeHandler() that sets a handler to be invoked each time the camera view changes.

CAE-802 Enable/disable mirroring per part web desktop

Added an option in UnstructGrid PartSettings to control if a part should be mirrored or not.

Added cee::ug::PartSettingsDisableMirroring() method (desktop) and cee.ug.PartSettings.disableMirroring property (Web).

CAE-810 Specify a background color for color legends desktop

Desktop: Added support for a background for color legends. This helps making text more readable in some situations. The background color and opacity, as well as border color can be specified.

Added setDrawLegendBackground(), setLegendBackgroundColor(), setLegendBackgroundOpacity() and setLegendBackgroundBorderColor() to cee::ug::ScalarSettings


CAE-882 Vectors fields visualization: optionally display a vector a a point when length is 0 desktop

Desktop: Added an option to draw vectors with zero length (null vectors) as a point or a sphere.

CAE-918 Add visible property to cug.ParticleTraceGroup web

The visibility of particle trace groups can now be controlled in the ConstantRemoteModel.

Added cee.cug.ParticleTraceGroup.visible property.

CAE-919 Add method for getting BoundingBox for single part in ConstantRemoteModel web

You can now get the bounding box of a part in the ConstantRemoteModel.

Added cee.cug.ConstantRemoteModel.getBoundingBoxForPart()

CAE-926 Add support for computing fit view eye position from a bounding box web

Added a new method to Camera to compute the fitView eye position based on a given bounding box.

Added cee.Camera.computeFitViewEyePosition()

CAE-931 Web: Query to get feature extraction data web

Added a new query to get the display model of a feature extraction item (cutting plane, isosurface or isovolume). Triangle and lines with the corresponding per vertex scalar result is provided as a result of the query. This is useful for client-side post processing of the feature extraction, as well as to visualize it in various ways.

Added cee.ug.QueryFeatureExtraction

CAE-949 Improve “Assertion failed” reporting mechanism web

Added support for specifying an assertion failed handler that is invoked if a code assert fails on the client.

Added cee.setAssertFailedHandler().

CAE-953 Add support for custom view layouts web

Added support for specifying a custom layout of views within a viewer. This enables using many views in one viewer, and thus working around the limit of only 16 WebGL canvases on one page.

Added cee.View.setViewport()

Here is an example with 28 views with different models on one page (within one viewer):

../_images/cae953-1.png ../_images/cae953-2.png

CAE-971 VTK: Reader option to provide all vector results as displacements web desktop

Added an option for the VTK (vtu/pvtu) reader to treat all results as displacements, and thus making them available as displacements, vectors and individual scalar results.

desktop Added cee::imp::cae::ReaderSettingsVtk& ReaderSettings::vtk() with setReadVectorsAsDisplacements().

web Added VTK setting ALL_VECTORS_AS_DISPLACEMENT to be used in the cee.ug.RemoteModel.setReaderOptions() method.


this.m_model.setReaderOptions("VTK", {

CAE-988 Add support for supplying license code as environment variable to CugComposer web

Added use of the environment variable CEW_TECH_SOFT_LICENSE_CODE in the CugComposer and the UgServer. There are now 4 ways to provide a license to the CugComposer:

  1. - license command line option

  2. CEW_TECH_SOFT_LICENSE_CODE environment variable

  3. -licenseFile command line option

  4. CEW_TECH_SOFT_LICENSE_FILE environment variable

CAE-1008 Added option to disable spatial partitioning when optimizing parts in UnstructGridModel desktop

Added an option to specify only to merge equal parts based on appearance and not do spatial partitioning into equal sized chunks.

Added new parameter to cee.ug.ModelSettings.setOptimizePartRendering(bool optimize, bool spatiallyPartitionParts = false)

Default is now to only merge parts with equal appearance.

CAE-1035 Added support for CrinkleCut cutting planes of 2d elements web desktop

Crinkle-cut cutting planes now also work as expected for 2d elements, showing the entire 2d element if intersected by the cutting plane.


CAE-1046 CugServer: Support absolute paths for CONFIGURE_EXPRESS_APP_JS_FILE web

The app config file for the CugServer can now be specified with an absolute path.