Version C3 4.4.0 - -
Bug
CAE-654 Vectors shown on the RemoteModel are not clipped as expected
Vector shown on the model (not regular cutting plane vectors) were not clipped by cutting plane or view clipping.
CAE-653 Labels behind surfaces appearing in some cases in front of model if using walk navigation
When using walk navigation and auto clipping (or setting the front clipping plane to very close), labels might be moved too much forward so all labels appear in front of the model when walking towards or inside the model. This applies to labels added using the addWithOffsetDirection*
methods. This fix should improve the lifting algorithm when the front clipping plane is very small.
Also fixed an issue with Camera.enableAutoClipFixedNearDistance()
not working as expected.
CAE-649 Zoom to cursor hits labels and behaves strangely
Zoom to cursor will no longer consider labels which made the view move when a label was hit.
CAE-580 Returning false in CRC::initialize() is logging an error
Result calculators will no longer log an error (only warning) if an error message is set from the calculator on init(). To log an error you can use the logger object.
CAE-541 CugComposer crashing in some rare cases with expanded beams
Some rare cases with expanded beams might cause the CugComposer to crash when creating a model for the ConstantRemoteModel.
CAE-533 Issues with Parallel VTU (pvtu) reader
Fixed a crash and results not being read correctly in some cases.
Story
CAE-656 Update the readers in ImportCAE (VdmTools 4.6.1)
Added support for ANSYS and ABAQUS 2022. Several fixes for other formats.
CAE-537 Add option to specify if particle traces should be clipped or not
Added support in C3 for specifying if particle traces should be clipped (view or cutting plane clipping) or not.
Added ParticleTraceGroup.ignoreClipping
Set this to true to always show the particle traces (no clipping).
Note: Clipping of particle traces is now default on (ignoreClipping = false
) to behave the same way as CDC. This is a change from previous versions.
CAE-524 Addition vector arrow rendering types for vector results
Added support for new vector styles: Symmetric and reverse symmetric arrows. Added new property VectorSettings.vectorType
.
Added support for simplified vectors (line + two unlit triangles). Added new property VectorSettings.drawMode
.
Version C3 4.3.1 - - 326041e6
Bug
CAE-523 Result Calculators: Vector results did not work as expected
Version C3 4.3.0 - - 7a4ff130
Note: C3 4.3.x requires Ceetron Data Provider Framework (CDP) 6.x and Ceetron Result Calculator Framework (CRC) 4.x.
Bug
CAE-487 Rare crash and holes for cutting planes computed from Polyhedron
On some very specific models computing a cutting plane would cause a crash on the server as well as producing some holes in polyhedrons and second-order elements.
CAE-462 Added element type name in picking/query for polyhedrons and less used element types (brick, shell, ...)
Feature
CAE-516 Update Angular examples to use Socket.io 4.0
CAE-515 Added support for parallel VTU files (*.pvtu)
CAE-513 DataProvider: Added support for specifying default part colors
You can now specify the default colors of parts from a data provider using the CDPGeometryInfo::addElementGroupInfoWithColor()
or CDPElementGroupInfo::setPartColor()
CAE-505 Parallelization of computing node average and result calculator results
Results from Result Calculators are now computed in parallel as well as all node average computations. This should give a speed-up on the CeeCloudServer running on multi-core systems.
CAE-497 Added CRCError parameter to CRCResultCalculator::initialize() to be able to communicate an error message to the host application
You can now provide an error message from result calculator initialize() method that can be picked up by the host.
CAE-485 Remove #DP and #RC prefix from Data Provider and Result Calculator logs
CAE-482 Add support for executing QueryNodeInfo by region
You can now query all nodes within a region (with a user defined max count) and get information on all the nodes inside this screen-spaced region.
CAE-474 Return more data from QueryElementInfo
Added position, scalar and vector results for all element nodes. You can now also specify any scalar and vector result and not be limited to what was shown in the model.
CAE-394 Add support for updating devicePixelRatio while the app is running
Use the Viewer.setPixelScaleFactor()
function to change the device pixel ratio or use the Viewer.updatePixelScaleFactor()
function to update it to the current factor in the browser.
Version C3 4.2.2 - - c062c92b
Bug
CAE-493 Particle traces fails to continue into a new part when using displacements
Version C3 4.2.1 - - 1f568bb5
Bug
CAE-476 ScalarSettings not available for newly added ResultCalculator results
Version C3 4.2.0 - - fb640a07
Note: C3 4.2.x requires data providers built with Ceetron Data Provider Framework (CDP) version 5.x
Bug
CAE-469 RemoteModel streaming might stop on models with many parts
CAE-464 Markup label attachment arrow heads do not respect LabelDrawMode.ALWAYS_IN_FRONT
CAE-401 ElementVolume in rayPick and queryElementInfo is not adjusted for mode shape or transform
CAE-397 NaN values are not correctly shown with undefined color
CAE-395 Outline edges are not correct when having overlapping shell and volume elements
CAE-378 Node ids in QueryResultMinMaxData do not fall back to undisplaced node ids
CAE-364 sendToCloud assumes response from CeetronCloud is in single chunk
Feature
CAE-471 Added a React demo application to the examples in C3
We now have 4 identical examples covering popular frameworks: Angular, React, Vue, Svelte. You can find the examples in the Example folder of the C3 distribution
CAE-460 Add geometry statistics query cee.ug.QueryGeometryStatisticsData
New query to get model statistics like number of elements broken down on element type.
CAE-456 Add option to mrk.PartLabels and PartImageLabel to display attachment line as arrow
CAE-450 Added getResultIdByIdString() and getResultIdStringById() to cee.ug.ModelDirectory
CAE-449 Added handleClientRequest() to CDPDataProvider
The client can now communicate directly with the DataProvider (if used). The client can call RemoteModel.executeDataSourceRequest()
to send a message to the data provider. The provider receives this in the handleClientRequest() and can report back a user-defined response as well as a change notification if any of the data it provides has changed.
This opens up for a wider use of data providers where the client can instruct the provider to modify the data and then see the results.
Note: C3 4.2.x requires data providers built with Ceetron Data Provider Framework (CDP) version 5.x
CAE-393 Add command line parameters to CugComposer for creating JS and Bin bundle files
The CugComposer now has a new parameter to control the output format:
-outputFormat { JSBundle | BinBundle | CugDB (default) }
CAE-392 Create new remote model query for fetching element data cee.ug.QueryElementInfo
A query similar to QueryNodeInfo used to get information about a given list of elements (including element tessellation and element nodes).
Version C3 4.1.1 - - 3ccc40d2
Bug
CAE-399 Add empty CDPResultValueGroup (no result for the part) was not correctly handled
Version C3 4.1.0 - - d4729217
Bug
CAE-231 QueryGlobalNodePositionsForFrames and QueryNodeScalarResult do not work as expected for mode shape animations
CAE-221 CUG LowRes models are sometimes streaming slower than expected
CAE-220 cee.ug.HitItem.nodePosition is not correct for mode shape animations
CAE-213 Picked node ids are not reported correctly if displacements are used
CAE-205 cee.ug.PartSettings.opacity has no effect on mesh edges
Feature
CAE-230 Add support for manual placement (offset) of cee.mrk.PartLabels
Labels can be interactively positioned with e.g. the mouse. See documentation of cee.mrk.PartLabels.setLabelOffsetPosition() for an example on how to do this.
CAE-229 Added cee.ug.QueryNodeInfo to get information about node(s) based on node ids
CAE-208 Optimized streaming of many parts (>10k) in RemoteModel
CAE-207 Add support for updating and deleting individual labels in mrk.PartLabels
CAE-206 Added an error callback for executePartQuery and executeCuttingPlaneQuery
CAE-204 Added ug.VectorSettings.drawMaxCount to limit the number of vectors drawn
This feature can be used as a replacement for the drawSkipBy and is easier to provide a good default value.
CAE-202 Get and set view matrix in Camera to be able to sync views
CAE-193 Show assertion errors in console, not only modal dialog
CAE-177 Official support for embedded or static hosted CUG bundles in C3
C3 4.0 (CAE-119) added a technical preview of the support for CUG bundles. This version adds official support for loading CUG bundles in the ConstantRemoteModel.
CUG bundles can be either downloaded as a static resource, opened as a local file or encoded as a JavaScript object. A CUG bundle is a single file, either containing binary data (cugbundle.bin
) or encoded into a JavaScript object (cugbundle.js
). If encoded as a JavaScript object, the model can be embedded into a single HTML page to create a standalone 3D result visualization without any server requirement.
Loading remote bundles, typically served as a static resource, can be done using ConstantRemoteModel.openRemoteBundle()
.
Local CUG bundles must be loaded/read by the client code, and can then be passed on to ConstantRemoteModel
using ConstantRemoteModel.openLocalBundle()
.
CAE-26 Result Calculator: Create multiple calculator instances with initString
The Result Calculator Framework (CRC) has been refactored to support multiple calculator instances from a single calculator (dll/so/dylib).
RemoteModel.openModel()
now takes a OpenModelOptions
parameter which allows you to specify any default calculator setup using the defaultResultCalculatorDefinitions
.
Added RemoteModel.createResultCalculator
, recreateResultCalculator
and deleteResultCalculator
to manipulate result calculators.
RemoteModel.setResultCalculatorParams
is refactored to conform to the new methods above.
See documentation for more info about Result Calculators.
Version C3 4.0.0 - - eb93b346
Bug
CAE-120 CUG: Mesh lines not correct for parts with some expanded beams
CAE-109 CugComposer with demo license refuses to convert demo models when a case is specified
CAE-80 cee.ug.HitItem.elementTriangleVertices does not handle mode shape animation
CAE-70 Assert in CUG model with beams with per element results
CAE-66 Improved GeometryModel.regionIntersect() when the vertices are not inside the region
Feature
CAE-142 New Angular example application. See Examples/Angular/angular-example
CAE-141 Added position of closest node in cee.ug.HitItem
CAE-140 Support for mode shape animations in cee.ug.QueryNodeScalarResult
CAE-126 Added setting of mesh color in ConstantRemoteModel
CAE-119 CUG bundle support - Loading CUG models without a REST API server
Added support for loading CUG bundles in Constant Remote Model. CUG bundles can be either downloaded as a static resource, opened as a local file or encoded as a JavaScript object. A CUG bundle is a single file, either containing binary data (cugbundle.bin
) or encoded into a JavaScript object (cugbundle.js
)
Loading remote bundles, typically served as a static resource, can be done using ConstantRemoteModel.openRemoteBundle()
.
Local CUG bundles must be loaded/read by the client code, and can then be passed on to ConstantRemoteModel
using ConstantRemoteModel.openLocalBundle()
.
Note: The constructor and the openModel() method of ConstantRemoteModel has a new signature.
Note: This is a technology preview with all the breaking changes to ConstantRemoteModel as well as a new example to showcase the feature. Generation of CUG bundle files (with CugComposer or CPM) will be available in C3 4.1.
CAE-116 Added caseDescription to CUG SimulationInfo
CAE-104 Add Butterfly to demo models
CAE-72 CugComposer: License key as command line parameter
CAE-65 Compute a cross section of a geometry model
CAE-57 Upgrade to Socket.IO 4.0 for CeeCloudServer (RemoteModel)
Upgraded to Socket IO 4.0 as previous versions had several security issues. 4.0 is not compatible with previous versions, so make sure both server and client are updated (this is always a good practice).