# HOOPS Exchange 2024

Version 2024.0

Format Updates

Format | Updated Version
--- | ---
Solid Edge | 2024
Parasolid | 36.0

See File Formats for the list of all supported formats.

## 32-bit support deprecation

Windows and Linux x86 binaries have been removed from the standard delivered packages. Please contact the Support team to get them.

They will not be available starting with HOOPS Exchange 2025.

## CATIA V5: Publications Support

Since this version our support for reading CATIA V5 publications from CATIA files is no longer in beta state.

For more information look at our dedicated section in the Programming Guide.

## JT: Support for Incremental Loading

The latest release introduces support for load struct only and incremental load workflows for the JT format. This enhancement ensures compatibility with the intended behavior and limitations observed in other formats that support similar features.

Notably, incremental load for JT format is now extended to include support for JT monolithic files, providing users with added flexibility in managing and loading their data.

See also

- File Formats
- JT Reader

## New Usability API

Introducing a more intuitive and efficient way to navigate model files, the New Usability API now offers a set of functions designed for seamless traversal. The newly introduced entities, `A3DTree` and `A3DTreeNode`, present an abstract representation of a model file, enhancing usability through a standardized tree structure.

Explore the capabilities of these new functions in our dedicated programming guide section: Tree Traversal API.

To help you integrate these features seamlessly into your workflow, we have updated the following tutorials to showcase the use of these functions:

- Traverse CAD Structure (sample code: he_basic_viewer)
- Write a CAD Viewer (sample code: he_basic_viewer)

## Documentation Change

We are pleased to announce a comprehensive update to the Getting Started section of the HOOPS Exchange Documentation. This update includes new tutorials and aims to provide a more user-friendly experience for developers.

More additional enhancements will be added in upcoming releases.

## API Changes

- Android x86 binaries are no longer delivered.
- Support for material physical properties:
  - A new field `m_dYieldStrength` has been added to A3DMiscMaterialIsotropicData and is supported in our CATIA V5 reader. Also, the value of the Shear Modulus in our CATIA V5 reader was actually the value of the Yield Strength: this has been corrected as the Shear Modulus is not available in CATIA V5.
  - Three new fields `m_dTensileStrength`, `m_dThermalConductivity` and `m_dSpecificHeat` have been added to `A3DMiscMaterialIsotropicData`. All the fields from `A3DMiscMaterialIsotropicData` are now supported in our NX reader. Some properties, such as Yield Strength, are sometimes expressed in a table as a function of temperature: by default, we retrieve the first value, i.e., the first line of the table.
- Removed the unused `A3DMiscPhysicMaterialData` structure.
- `m_ppuiNormalIndicesPerFace` is removed from `A3DMeshData` (point coordinates and normals now share the same indices array: `m_puiVertexIndicesPerFace`)
- Renamed members:
  - Renamed the `m_uiContraintsSize` member of the `A3DAsmProductOccurrenceData` structure to `m_uiConstraintsSize`.
  - In `A3DMeshData` `m_ppuiPointIndicesPerFace` is renamed `m_puiVertexIndicesPerFace` (indices now are continuous)
  - In `A3DMeshData` `m_ppuiTextureUVIndicesPerFace` is renamed `m_puiTextureUVIndicesPerFace` (indices now are continuous)
- Added new structures and functions:
  - `A3DRiComputeMeshDataParameters`
  - `A3DRiComputeMeshDataParameters` has been added to the `A3DRiComputeMesh()` function
  - `A3DTreeComputeParameters`
  - `A3DTreeCompute()`
  - `A3DTreeGetRootNode()`
  - `A3DTreeNodeGetChildren()`
  - `A3DTreeNodeGetParent()`
  - `A3DTreeNodeGetEntity()`
  - `A3DTreeNodeGetName()`
  - `A3DTreeNodeGetTransformation()`
  - `A3DTreeNodeGetNetTransformation()`
  - `A3DTreeNodeGetNetVisibility()`
  - `A3DTreeNodeGetNetStyle()`
  - `A3DTreeNodeGetGeometry()`

## API Deprecation

As a reminder these functions, structures, members and types are deprecated and will be removed in future versions of HOOPS Exchange, at the latest in HOOPS Exchange 2025:

- `m_iNbMultiProcess`
- `m_dMinimalTriangleAngleDeg`
- `m_bSewBrepModels`
- `kA3DTessLODControlledPrecision`
- The whole draw module:
  - kA3DDraw3D
  - kA3DDrawMarkups
  - A3DCallbackDrawPushMatrix
  - A3DCallbackDrawPopMatrix
  - A3DCallbackDrawMultMatrix
  - A3DCallbackDrawBegin
  - A3DCallbackDrawEnd
  - A3DCallbackDrawSetTessellationPoints
  - A3DCallbackDrawProject
  - A3DCallbackDrawUnProject
  - A3DCallbackDrawTriangle
  - A3DCallbackDrawTriangleFan
  - A3DCallbackDrawTriangleStripe
  - A3DCallbackDrawTriangleOneNormal
  - A3DCallbackDrawTriangleFanOneNormal
  - A3DCallbackDrawTriangleStripeOneNormal
  - A3DCallbackDrawTriangleTextured
  - A3DCallbackDrawTriangleFanTextured
  - A3DCallbackDrawTriangleStripeTextured
  - A3DCallbackDrawTriangleOneNormalTextured
  - A3DCallbackDrawTriangleFanOneNormalTextured
  - A3DCallbackDrawTriangleStripeOneNormalTextured
  - A3DCallbackDrawColor
  - A3DCallbackDrawMaterial
  - A3DCallbackDrawBeginMaterial
  - A3DCallbackDrawEndMaterial
  - A3DCallbackDrawGetDrawContext
  - A3DCallbackDrawMarkupTriangle
  - A3DCallbackDrawBeginFrameDraw
  - A3DCallbackDrawEndFrameDraw
  - A3DCallbackDrawBeginFixedSize
  - A3DCallbackDrawEndFixedSize
  - A3DCallbackDrawCylinder
  - A3DCallbackDrawPolygon
  - A3DCallbackDrawBeginLineWidth
  - A3DCallbackDrawEndLineWidth
  - A3DCallbackDrawPoint
  - A3DCallbackDrawFont
  - A3DCallbackDrawBeginLineStipple
  - A3DCallbackDrawEndLineStipple
  - A3DCallbackDrawSymbol
  - A3DCallbackDrawPolyLine
  - A3DCallbackDrawText
  - A3DCallbackDrawPattern
  - A3DCallbackDrawPicture
  - `A3DDrawCallbacksData`
  - `A3DDrawInitCallbacks()`
  - `A3DDraw()`
  - `A3DDrawRepresentationItem()`
  - `A3DDrawMarkup()`
  - `A3DDrawGetBoundingBox()`
- `A3DDisableHandleSIGSEGV()`
- `A3DEnableHandleSIGSEGV()`
- `A3DGetCurveAsAnalytic()`
- `A3DGetCurveAsAnalyticFromCoEdge()`
- `A3DGetSurfaceAsAnalytic()`
- `A3DProjectPointCloud2()`
- `A3DComputeOrthoHLROnModelFile()`
- `A3DComputeOrthoHLROnModelFile2()`
- `A3DAsmPartDefinitionFeatureTreesGet()`
- `A3DSurfBaseGetAsNurbs()`
- `A3DMkpRTFFieldData`
- `A3DMkpRTFInit()`
- `A3DMkpRTFGetField()`
- `A3DMkpRTFDelete()`
- `A3DSimplifyModelFileCurveAndSurfaceAsAnalytic()`
- `A3DAsmProductOccurrenceUnload()`
- `m_usValidDisplayFields`

## Fixed Bugs

The list of fixed bugs can be found on the fixed bugs page.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Exchange in your own language, or choose a sample question below to start a conversation:

What is HOOPS Exchange?
What are the latest release notes for HOOPS Exchange?
How do I start evaluating HOOPS Exchange?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...