.. _group__a3d__brepdata:

########
BrepData
########

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


Orientations
============

Here are some important points about :c:type:`~A3DTopoBrepData` entity orientation: 


- Edges are implicitly oriented from the Start vertex toward the End vertex. 
- 3D curves referenced by edges are oriented from the Start vertex toward the End vertex. 

- Orientation with loop, which relates to the corresponding edge.
- Orientation UV with loop, which relates to the space parametric curve attached to the co-edge, if defined. 

- Co-edge has two flags that describe orientation:
- Loop is oriented regarding Ampere rule (in surface parametric space). 
- Surface is oriented with the shell so that normals point from the material to the void.


Generally, a face containing a hole is defined with two loops having the same orientation. The outside loop is defined by the ``m_uiOuterLoopIndex`` member of an :c:struct:`~A3DTopoFaceData` structure, regardless of orientation. To get the real face normal vector, you must consider the surface normal vector and the ``m_pucOrientationWithShell`` member of the :c:struct:`~A3DTopoShellData` structure.

sa :c:type:`~A3DTopoBrepData`\ , :c:struct:`~A3DTopoBrepDataData`\ , A3DTopoBrepDataGet, A3DTopoBrepDataCreate 


**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:`~A3DTopoBrepDataData`

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

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


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


* :c:func:`~A3DTopoBrepDataGet`
* :c:func:`~A3DTopoBrepDataCreate`
* :c:func:`~A3DTopoBrepDataGetFaces`
* :c:func:`~A3DTopoBrepDataGetEdges`
* :c:func:`~A3DTopoFaceGetShellAndOrientation`
* :c:func:`~A3DTopoFaceGetShell`
* :c:func:`~A3DTopoLoopGetFace`

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

   ../structures/A3DTopoBrepDataData
   ../functions/A3DTopoBrepDataGet
   ../functions/A3DTopoBrepDataCreate
   ../functions/A3DTopoBrepDataGetFaces
   ../functions/A3DTopoBrepDataGetEdges
   ../functions/A3DTopoFaceGetShellAndOrientation
   ../functions/A3DTopoFaceGetShell
   ../functions/A3DTopoLoopGetFace


