:orphan:

##########
PRC Reader
##########

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

+----------------------------------------------------------------------+
|                        **PRC**                                       |
+-----------------------------------------+----------------------------+
| **File Extension**                      | PRC                        |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | All                        |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |ay| |iy|   | 
+-----------------------------------------+----------------------------+
| :ref:`prc_rd_tessellation`              | |t_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`prc_rd_brep`                      | |c_green| Supported        | 
+-----------------------------------------+----------------------------+
| :ref:`prc_rd_pmi`                       | |c_green| Supported        | 
+-----------------------------------------+----------------------------+

PRC is the internal format of HOOPS Exchange. As such it supports all the different concepts supported by the other formats. A file does not need to have a particular extension to be read correctly by HOOPS Exchange however the file extension of PRC files that you can expect to be loaded by HOOPS Exchange is:

* `.PRC`

How to Import From PRC 
======================

To load a PRC 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_INITIALIZE_DATA(A3DRWParamsLoadData, sReadParam);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

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

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

.. _prc_rd_tessellation: 

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

PRC has full support for Visualization data including textures.

.. _prc_rd_brep: 

B-rep
=====

PRC supports all the geometries that are imported by its readers.

.. _prc_rd_pmi: 

PMI
===

Full support for both semantic and visual PMI is included.

Assembly
========

The full assembly tree definition is supported by PRC. Datum planes and construction geometry is also supported and accessed through the assembly tree.
Incremental load is not supported by our PRC reader.

Views
=====

Full support for Views is included.

Import Options Specific to PRC
==============================

At export time you can request that user options and the B-rep definition are removed from the PRC stream. This allows developers to remove what is potentially sensitive information from the PRC data.
