.. _group__a3d__topology__module:

###############
Topology Module
###############

Creates and accesses topological entities.

This module defines the following types of topological entities:


- Body: An exact 3D geometric representation of a solid, surfacic, or wireframe model. A topology body entity is contained in a representation item entity.
- Connex: For solids, a connex represents a continuous piece of material.
- Shell: A hollow sphere is represented by two shells (one inner and one outer).
- Face: Every shell is represented by a collection of faces sewn together. Each face holds an associated geometric surface.
- Loop: A face may be trimmed by several loops (one outer loop and multiple inner loops). Currently, HOOPS Exchange does not allow a face to have multiple outer loops. Instead, you can make several faces, each containing a single outer loop.
- Co-edge: A loop is a collection of oriented and ordered co-edges, containing space parametric curves (if any), and neighboring information. The current version of HOOPS Exchange handles only manifold solids which are solids that have single neighbors per co-edge.
- Edge: Each co-edge holds an edge, which in turn holds 3D information (if any), such as 3D curves and vertices.


   An :c:type:`~A3DTopoContext`\ defines a global tolerance for every topological entity in this context. This global tolerance can then be superseded by less strict local tolerances for particular entities such as edges.



Tolerance
=========

In general, if the local tolerance is lower than the tolerance specified in the associated :c:type:`~A3DTopoContext`\ entity, you must use the tolerance from the :c:type:`~A3DTopoContext`\ entity.


   :ref:`SingleWireBody <group__a3d__singlewirebody>`\ , :ref:`BrepData <group__a3d__brepdata>`\ , :ref:`Connex <group__a3d__connex>`\ , :ref:`Shell <group__a3d__shell>`\ , :ref:`Face <group__a3d__face>`\ , :ref:`Loop <group__a3d__loop>`\ , :ref:`CoEdge <group__a3d__coedge>`\ , :ref:`Edge <group__a3d__edge>`\ , :ref:`WireEdge <group__a3d__wireedge>`



.. rst-class:: kind-group kind-topic

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


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


* :ref:`Topology Body (the topology base entity) <group__a3d__topobody>`
* :ref:`Topology Context <group__a3d__topocontext>`
* :ref:`SingleWireBody <group__a3d__singlewirebody>`
* :ref:`BrepData <group__a3d__brepdata>`
* :ref:`Connex <group__a3d__connex>`
* :ref:`Shell <group__a3d__shell>`
* :ref:`Face <group__a3d__face>`
* :ref:`Loop <group__a3d__loop>`
* :ref:`CoEdge <group__a3d__coedge>`
* :ref:`Edge <group__a3d__edge>`
* :ref:`WireEdge <group__a3d__wireedge>`
* :ref:`Vertex <group__a3d__vertex>`

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

   a3d_topobody
   a3d_topocontext
   a3d_singlewirebody
   a3d_brepdata
   a3d_connex
   a3d_shell
   a3d_face
   a3d_loop
   a3d_coedge
   a3d_edge
   a3d_wireedge
   a3d_vertex


