.. _group__a3d__reference__on__topo:

##################################
Reference on Topology/Tessellation
##################################

Creates and accesses entities that reference topological entities and that specify globally-defined attributes. 


   2.0



Entity type is :c:enumerator:`~kA3DTypeMiscReferenceOnTopology`\ .

Referenced topological entities are retrieved by indexes which are meaningful in the context of their parent element.

For a :c:type:`~A3DTopoConnex`\ , it needs: 


- the :c:type:`~A3DTopoConnex` index on the current :c:type:`~A3DTopoBrepData`\ .


For a :c:type:`~A3DTopoShell`\ , it needs: 


- 

  ::

     A3DUns32uiShellIndex=0;
     forallpConnexonA3DTopoBrepData
     {
     forallpShellonpConnex
     {
     ifpShelliswanted
     returnuiShellIndex;
     uiShellIndex++;
     }
     }



For a :c:type:`~A3DTopoFace`\ , it needs: 


- 

  ::

     A3DUns32uiFaceIndex=0;
     forallpConnexonA3DTopoBrepData
     {
     forallpShellonpConnex
     {
     forallpFaceonpShell
     {
     ifpFaceiswanted
     returnuiFaceIndex;
     uiFaceIndex++;
     }
     }
     }



For a :c:type:`~A3DTopoEdge` or :c:type:`~A3DTopoCoEdge`\ , it needs: 


- the :c:type:`~A3DTopoFace` index on the current :c:type:`~A3DTopoBrepData` (see index need for :c:type:`~A3DTopoFace` reference). 
- the :c:type:`~A3DTopoLoop` index on the current :c:type:`~A3DTopoFace`\ . 
- the :c:type:`~A3DTopoCoEdge` index on the current :c:type:`~A3DTopoLoop`\ .


For a :c:type:`~A3DTopoVertex`\ , it needs: 


- the :c:type:`~A3DTopoFace` index on the current :c:type:`~A3DTopoBrepData` (see index need for :c:type:`~A3DTopoFace` reference). 
- the :c:type:`~A3DTopoLoop` index on the current :c:type:`~A3DTopoFace`\ . 
- the :c:type:`~A3DTopoCoEdge` index on the current :c:type:`~A3DTopoLoop`\ . 
- the :c:type:`~A3DTopoVertex` index on the current :c:type:`~A3DTopoEdge`\ . Is set to 0 for the start vertex, and 1 for the end vertex. 

**Parameters**


   **pData**\ : The :c:struct:`~A3DMiscReferenceOnTessData` instance to create reference from 

   **ppReferenceOnTess**\ : A pointer to the resulting :c:type:`~A3DMiscReferenceOnTess` entity


**Returns**


   ``A3D_SUCCESS`` on success, or an error code on failure


.. rst-class:: kind-group kind-record

.. rubric:: Structures
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:struct:`~A3DMiscReferenceOnTopologyData`
* :c:struct:`~A3DMiscReferenceOnTessData`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DMiscReferenceOnTopologyGet`
* :c:func:`~A3DMiscReferenceOnTessGet`
* :c:func:`~A3DMiscReferenceOnTessCreate`
* :c:func:`~A3DMiscReferenceOnTopologyCreate`

.. toctree::
   :maxdepth: 1
   :hidden:

   ../structures/A3DMiscReferenceOnTopologyData
   ../structures/A3DMiscReferenceOnTessData
   ../functions/A3DMiscReferenceOnTopologyGet
   ../functions/A3DMiscReferenceOnTessGet
   ../functions/A3DMiscReferenceOnTessCreate
   ../functions/A3DMiscReferenceOnTopologyCreate


