
###############
A3DTopoFaceData
###############

.. c:struct:: A3DTopoFaceData

   Face structure. 
   
   
      2.0
   
   
   
   For the :c:member:`m_sSurfaceDomain <A3DTopoFaceData.m_sSurfaceDomain>` member, the face domain for the usage of the surface; must be included in surface's domain. If not defined (that is, invalid domain with Min > Max), the face domain is the surface domain.
   
   The number of loops: :c:member:`m_uiLoopSize <A3DTopoFaceData.m_uiLoopSize>` can be null, in this case the surface is bounded by its domain or by the face domain: :c:member:`m_sSurfaceDomain <A3DTopoFaceData.m_sSurfaceDomain>` if :c:member:`m_bHasTrimDomain <A3DTopoFaceData.m_bHasTrimDomain>` is true.
   
   When parsing an :c:struct:`~A3DTopoFaceData` structure, use a tolerance that is the greater of these values: 
   
   
   - :c:member:`A3DTopoContextData::m_dTolerance <A3DTopoContextData.m_dTolerance>` member for the entity 
   
   - Tolerance 
   
   
   
   Index
   =====
   
   .. rubric:: Variables
   
   
   .. rst-class:: api-xref-list
   
   
   * :c:member:`~A3DTopoFaceData.m_pSurface`
   * :c:member:`~A3DTopoFaceData.m_bHasTrimDomain`
   * :c:member:`~A3DTopoFaceData.m_sSurfaceDomain`
   * :c:member:`~A3DTopoFaceData.m_uiLoopSize`
   * :c:member:`~A3DTopoFaceData.m_ppLoops`
   * :c:member:`~A3DTopoFaceData.m_uiOuterLoopIndex`
   * :c:member:`~A3DTopoFaceData.m_dTolerance`
   
   



.. rst-class:: kind-group kind-variable

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


.. c:member:: A3DSurfBase* A3DTopoFaceData.m_pSurface

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DSurfBase`\ *
      
      Basis surface. 
      
      Cannot be null. 
      



.. c:member:: A3DBool A3DTopoFaceData.m_bHasTrimDomain

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DBool`
      
      Has the surface a trim domain? 
      



.. c:member:: A3DDomainData A3DTopoFaceData.m_sSurfaceDomain

      .. rst-class:: sig-pretty-signature
      
         | :c:struct:`~A3DDomainData`
      
      Trimming domain for surface. 
      



.. c:member:: A3DUns32 A3DTopoFaceData.m_uiLoopSize

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      The size of :c:member:`m_ppLoops <A3DTopoFaceData.m_ppLoops>`\ . 
      



.. c:member:: A3DTopoLoop** A3DTopoFaceData.m_ppLoops

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DTopoLoop`\ **
      
      Array of :c:type:`~A3DTopoLoop`\ . 
      
      None can be null. 
      



.. c:member:: A3DUns32 A3DTopoFaceData.m_uiOuterLoopIndex

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      Outer loop index. 
      
      :c:macro:`~A3D_LOOP_UNKNOWN_OUTER_INDEX` if unknown. 
      
       If the outer loop index is exactly equal to the number of loops in a surface, it should not be used as an index in the loops array (since the index is zero-based, it will be out of range). In this case, it refers to an implicit outer loop corresponding to the parametric domain bound. 
      
       This can happen on closed surfaces when inner or outer loops have no meaning in the 3d space; the implicit outer loop allows users to still have an outer loop representing the outer bound of the surface parametric dimension. 
      



.. c:member:: A3DDouble A3DTopoFaceData.m_dTolerance

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Face tolerance. 
      




