:orphan:

###############
CATIA V4 Reader
###############

.. rst-class:: format-title-block

+----------------------------------------------------------------------+
|                    **CATIA V4**                                      |
+-----------------------------------------+----------------------------+
| **File Extension**                      | MODEL, SESSION, DLV, EXP   |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | Up to 4.2.5                |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |ay| |iy|   | 
+-----------------------------------------+----------------------------+
| :ref:`catiav4_tessellation`             | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`catiav4_brep`                     | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`catiav4_pmi`                      | |c_green| Supported        | 
+-----------------------------------------+----------------------------+

CATIA V4 files are legacy CAD formats that store surface- and wireframe-based design data.
When read by HOOPS Exchange, they provide access to model structure and supported surface 
and curve data for visualization and processing.
The CATIA V4 Reader also provides full access to the assembly, b-rep, and PMI data that is 
stored within a CATIA V4 file. 

A file does not need to have a particular extension to be read correctly by HOOPS Exchange. 
However, the file extensions of CATIA V4 files that you can expect to be loaded by HOOPS 
Exchange include:

* `.DLV`
* `.EXP`
* `.MODEL`
* `.SESSION`

How to Import From CATIA V4 
===========================

Reading ``CATIA V4`` files follows the same pattern as other formats: configure load 
parameters, then call the standard load function.

To load a CATIA V4 file, use :cpp:func:`A3DAsmModelFileLoadFromFile`.
The :cpp:struct:`A3DParamsLoadData` structure is used to customize the loading behavior:

.. code-block:: c

   A3DAsmModelFile* pModelFile = 0;

   A3DRWParamsLoadData sReadParam = A3D_MAKE_DATA(A3DRWParamsLoadData);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

   A3DAsmModelFileLoadFromFile("path/to/file.dlv", &sReadParam, &pModelFile);

See :doc:`/guide/basic_operations/load_model` for more about loading model files.

.. _catiav4_tessellation: 

Tessellation
============

The visualization data for this format is generated by the HOOPS Exchange tessellation engine.

.. _catiav4_brep: 

Boundary Representation (B-rep)
===============================

B-rep support within CATIA V4 is limited; therefore, the list of different types of 
geometries is small. 
HOOPS Exchange provides evaluators, which allows you to direct query all of the geometric 
types available in CGM. 
Additionally, you can use HOOPS Exchange to approximate any specific geometry and provide 
it in a standard NURBS form.

The list of surface types available in CATIA V4 include:

* B-spline
* Cylinder
* Extrusion
* Plane
* RuledSurface
* SurfOfRevolution

The list of curve types available in CATIA V4 include:

* B-spline
* Circle
* Conic (ellipse)
* Conic (hyperbola)
* Conic (parabola)
* Line

.. _catiav4_pmi: 

Product and Manufacturing Information (PMI)
=======================================

CATIA V4 has limited PMI support, which consists solely of supporting 3D notes. 
This feature is supported by HOOPS Exchange.

Assembly
========

HOOPS Exchange supports datum planes and construction geometry. 
These are accessed through the assembly tree.

Incremental load is available with CATIA V4.

Views
=====

This concept is unsupported by CATIA V4.
