.. _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


