Envision 2.0
February 28, 2024 - SHA: 35e51d55
CEETRON Envision 2.0 is a major release which means it contains breaking changes. The main focus this release have been:
Updating to newer compilers
Upgrading dependencies to increase performance and reduce vulnerabilities
Removing deprecated code
Strengthen core implementation to make the components more robust
Ensuring that the public interfaces remain clean and consistent
Improved automated testing
All this to ensure that we are better equipped to continue to provide the best CAE Visualization toolkit in the marked!
Updated Supported Platforms
CEETRON Envision now supports the following platforms:
Supported platforms |
Operating system |
Compiler |
---|---|---|
Windows |
Windows 10 |
MSVC 2019 (142 toolset) |
Linux |
Ubuntu 20.04 (glibc 2.31) |
gcc 9.4 |
CEETRON Envision for Web
CEETRON Envision for Desktop
New Features
CAE-1257 C++17 Standard
CEETRON Envision is now built using the C++ 17 standard.
CAE-1245 Node.js version upgrade
We now support Node.js runtime version 18.
https://nodejs.org/
CAE-1231 Add scalar result filtering to Web
Scalar results can now be filtered on Web with cee.ug.ScalarSettings.setFilteringRange()
. Results outside of this
range will not be drawn. Feature already exists on Desktop.
CAE-1291 Update to version 1.9.1 of CEETRON Access
Our file interfaces now uses version 1.9.1 of CEETRON Access (CeetronSAM_1.9.1_945b810c)
CAE-1294 Updated to TBB 2021.11
Updated to version 2021.11 of oneAPI Threading Building Blocks (oneTBB).
https://github.com/oneapi-src/oneTBB
Breaking Changes
CAE-1254 Handling of default camera config for UG and CUG
New functionality:
Added new abstract method
Model.getDefaultCameraConfig()
that lets a model report a default camera configuration. Currently implemented by theRemoteModel
andConstantRemoteModel
models.Added new methods
Camera.applyCameraConfig()
andCamera.resetCamera()
.
Changes:
The signature of the
ug.OpenModelCallback
function, utilized inug.RemoteModel.openModel()
has changed. A new parameter, info of typeug.OpenModelInfo
, has been added to be able to communicate camera configurations from the server through theserverCameraConfig
property.The logic for setting up a default camera in a
View
when the camera has not already been modified has changed. This logic will now try and use the default camera config of the contained models if any exist. Note that this will only happen if the camera has not yet been modified. The new functionCamera.resetCamera()
can be used to reset a view to its initial state.Instances of
ug.RemoteModel
will no longer reset/update the camera of the views it which they are contained. For views where the camera has not been modified, the view will try and derive a default camera setup by calling theug.RemoteModel.getDefaultCameraConfig()
function on the contained models. For most use-cases we recommend that you explicitly configure the view’s camera before streaming of the model starts instead. This would normally be done in theug.OpenModelCallback
function, either by utilizingug.RemoteModel.getDefaultCameraConfig()
or any camera config received throughug.OpenModelInfo.serverCameraConfig
.The signature of the
ug.RemoteModel.applyVTFxCase()
has changed. TheapplyCameraSettings
parameter has been removed. It is no longer possible to have the model automatically apply the camera settings to the associated views. This must now be done in the callback function.
CAE-1249 Refactor and consolidate bounding boxes
The overall change going forward is that when Model.getBoundingBox()
is called without any parameters it will
return the current bounding box of the model. This bounding box includes only the parts/objects that are currently
visible in the model.
To get the full (ignoring part visibility) bounding box of the model, Model.getBoundingBox()
can be called with the
optional ModelBoundingBoxOptions.includeHiddenParts
parameter set to true. Note that at the moment RemoteModel
and ConstantRemoteModel
does not support ModelBoundingBoxOptions
.
The same logic applies to View.getBoundingBox()
which also accepts an optional ModelBoundingBoxOptions
parameter. Consequently, View.getBoundingBoxVisibleParts()
has been removed.
Breaking changes
View.getBoundingBox()
now returns the bounding box of visible parts/objects by default. If you want to get the “full” bounding box that includes hidden items, you can achieve this by setting the optionalModelBoundingBoxOptions.includeHiddenParts
flag to true. Note that this is not fully supported by all models.Removed the
View.getBoundingBoxVisibleParts()
method. Getting the bounding box for the visible parts is now the default behavior ofView.getBoundingBox()
API removed/renamed/changes features |
||
---|---|---|
Class/function |
Replacement |
|
|
If multiple models are desired, create and open another |
|
|
Use |
|
|
Use |
|
|
Use NOTE! The logic is now inverted! bool isDisabled = !ps->elementSetFilteringEnabled(); \\ OLD
bool isDisabled = ps->isElementSetFilteringDisabled(); \\ NEW
|
|
|
Use NOTE! The logic is now inverted! bool disable = true;
ps->setElementSetFilteringEnabled(!disable); \\ OLD
ps->disableElementSetFiltering(disable); \\ NEW
|
|
|
Helper function is removed. Use the |
|
|
Use the base |
|
|
Instead, use |
|
|
Instead, use |
|
|
Use |
|
|
Use |
|
|
Use |
|
|
Use |
|
|
Use |
|
|
Use |
|
|
Instead, use methods |
|
|
Use |
|
|
Use |
|
|
Use |
|
|
Refactored
|
|
|
Use |
|
|
Use new |
|
|
Use new non-array versions |
|
|
In |
|
|
Refactored |
|
|
Remove unnecessary and confusing “RemoteModel” prefix to some of the worker/utility
classes in UG/RemoteModel.
|
|
|
Renamed to |