Version C3 4.7.0 - -
Feature
CAE-750 Perform a min/max result query on a per-part basis
Extended cee.ug.QueryResultMinMax
to support min/max queries for visible parts only as well as for a specific part. Added executeQueryVisibleParts()
and executeQuerySinglePart()
. Note that the perStateGlobalMinMax
and globalMinimumValue
/globalMaximumValue
is not affected by this and will always return the global min/max over all states and all parts.
CAE-749 Bulk Calculator position of min/max point or cell
Added the location (3d coordinate) of the minimum and maximum values for surface, node, volume and volume node data. See cee.ug.QueryBulkCalculationValues
for more info.
Version C3 4.6.0 - - 2e33eb37
Bug
CAE-753 ConstantRemoteModel doesn't clear legends on closeModel
Fixed clearing of color legends when closing a ConstantRemoteModel
CAE-726 Scalar settings for the new result was not available in the callback from RemoteModel.createResultCalculator()
The scalar settings for new results was not available from the RemoteModel in the callback of createResultCalculator(), which prevented the user from setting default settings for the new results.
CAE-712 Isosurfaces computed from per element results does not have the correct scalar value (the iso value)
Iso surfaces now have the correct (constant iso) value if the result is per element and the same result is mapped on the the surface as the one being used to compute the surface.
CAE-711 The CeeCloudServer did not properly set the SimulationInfo.description field
The SimulationInfo.description field is now properly populated with the description from e.g.
Feature
CAE-754 Optimized cee::ug::UnstructGridModel::rayIntersect()
Optimized rayIntersect() by doing an early reject ray/sphere test before doing a ray/triangle test. This should give up to 3-4x performance gain and is especially useful on parts with a lot of visible element surfaces.
CAE-730 Updated Socket.IO and async to the latest version
Updated Socket.IO to 4.5.1 and async to 3.2.4 to not have the vulnerabilities of the previous versions.
Version C3 4.5.0 - - ed466b6f
Note: C3 4.5.x requires Ceetron Data Provider Framework (CDP) 7.x
Bug
CAE-705 A CUG model with a particle trace with only one point did cause an error
Some rare CUG models produced particle traces with only one point, which the client viewer did not handle properly.
CAE-702 CDPElementGroup::addPolyhedronData() did not work as intended if called multiple times for one group
The data provider framework did not properly handle multiple calls to addPolyhedronData. If only called once per part (usual usage) it worked fine.
CAE-701 GeometryModel.rayIntersect did not consider the part.settings.visible property
The picking/ray intersect method in the Geometry Model did not take the visibility setting of the part into account, which made it possible to pick parts that are not rendered.
CAE-690 QueryElementInfo and QueryGeometryStatistics was missing from CeeCloudClientComponent.d.ts
The QueryElementInfo and QueryGeometryStatistics classes were missing from the .d.ts file.
CAE-676 Particle traces produce extremely long lasting traces due to numerical precision
This impacted particle trace visualization styles that depend on time (comets and spheres) as well as animations. In some rare cases the particle traces would become extremely long lasting and thus taking an extremely long time. This also caused different behavior between C3 and CPM/CDC.
Feature
CAE-706 New ParticleTraceGroup setting: maximumNumberOfPointsToCompute
This controls the maximum number of increments that will be computed for each trace in the group. The default is 5000.
CAE-668 Add reader options to load either global or local mesh in OpenFOAM data provider
The OpenFOAM reader now has two new options: LOAD_GLOBAL_MESH
and LOAD_LOCAL_MESHES
. Both are set to default true
.
CAE-647 Add support for providing error messages on init in CDP (Data Providers)
Added a new parameter to the CDPDataProvider::init()
method:
init(const CDPString& modelKey, const CDPInitOptions& initOptions, CDPError* error) = 0;
The error objects allows for the data provider to specify an error message which is then accessible from the host.
This error will be available from the client in the OpenModelCallback
provided to RemoteModel.openModel()
as the error: Error
parameter.
Note: This bumps the version of CDP to 7.0 and requires data providers built with CDP 7.0 or later to work.
CAE-529 Add support for Ambient Occlusion in C3
Added support for Ambient Occlusion (AO) in C3. This enables a more advanced shading technique that calculates how exposed each point in a scene is to ambient lighting.
Added new class AmbientOcclusion
to control usage of AO. Currently you can enable/disable the effect, as well as control the screenProportionalRadius
, which is the distance from the pixel C3 will look for occluding objects. This radius controls the amount of AO effect, and can be tuned to fit the type of models used.
To enable Ambient Occlusion, do the following:
myView.ambientOcclusion.enable = true
Below you can see an example of the same model with and without AO:
Note: The AO in C3 4.5 is an initial version with some known rendering artifacts. We will improve the visual quality of the AO effect in subsequent releases.
CAE-336 Custom positioning of navigation cube, color legends and info box
Added new properties to Overlay: navigationCubePosition
, legendsPosition
and infoBoxPosition
. This allows the user to control the placement of the navigation cube, color legends and info box. The available options are: Top, middle and bottom on both the left and right side. For legends, if put on the right side the legends labels will be shown on the left side of the legend.
Version C3 4.4.0 - - c3703e2b
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.
Feature
CAE-656 Update the readers in ImportCAE (VdmTools 4.6.1)
Added support for ANSYS and ABAQUS 2022. Several fixes for other formats.
CAE-628 Add support to RemoteModel for getting vector and displacement ranges
Added getVectorResult{Minimum|Maximum}Length()
and getDisplacementResult{Minimum|Maximum}Length()
to cee.ug.RemoteModel to be able to query the model for min/max vector and displacement results.
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).
Add Comment