# Topology

## Topology

Topology is a branch of mathematics concerned with spatial properties preserved under bicontinuous deformation (stretching without tearing or gluing); these properties are the topological invariants. On its own, topology defines a "rubber" model, whose position is not fixed in space. For example, a circular edge and an elliptical edge are topologically equivalent, but not geometrically. Likewise, a square face and a trapezoidal face are topologically equivalent, but not geometrically. A topological entity's shape, position, and orientation are fixed in space when it is associated with a geometric entity. In ACIS, the topology describes the adjacency and connectivity relationships between the various objects in the ACIS model. This is the basis of a Boundary Representation, or B-rep, model.

ACIS separately represents the topology (connectivity) and the geometry (detailed shape) of objects. This "boundary representation" model structure allows you to determine whether a position is inside, outside, or on the boundary of a volume. (This distinguishes a solid modeler from a surface or wireframe modeler.) The "boundary" in "boundary representation" is the boundary between solid material and empty space. This boundary is made from a closed set of surfaces.

ACIS topology can be bounded, unbounded, or semi-bounded, allowing for complete and incomplete bodies. A solid, for example, can have missing faces, and existing faces can have missing edges. Solids can have internal faces that divide the solid into cells. Bodies such as these are not physically realizable, but can be represented with ACIS.

## Topological Hierarchy

Hierarchical Relationships Among the Topological Elements in an ACIS Model

## Topological Elements

Element Definition
Body The highest level of model object, which is composed of zero or more lumps.
Lump A connected 1D, 2D, or 3D set of points that is disjoint with all other lumps. It is bounded by one or more shells.
Shell A set of connected faces and wires, which bounds the outside of a solid or an internal void.
Subshell A optional decomposition of a shell for efficiency purposes.
Face A connected portion of a surface bounded by a set of loops.
Loop A connected circuit of coedges. Generally, loops are closed, having no actual start or end point.
Wire A connected set of edges that are not attached to a face.
Coedge Represents the use of an edge by a face or wire.
TCoedge A specialization of a coedge, a tolerant coedge, that exists only on a tolerant edge.
Edge A connected portion of a curve bounded by vertices.
TEdge A specialization of an edge, a tolerant edge, that represents an edge that does not lie within the system's positional tolerance of a face.
Vertex A boundary of an edge. A Vertex corresponds to a point in 3D space.
TVertex A specialization of a vertex, a tolerant vertex, that represents a vertex that does not lie within the system's positional tolerance of an edge.

## Topology Example

B-Rep topology specifies a hierarchy of topological elements. For example, the topology of a object depicted in Figure. Hollow Cube would consist of one body, one lump, two shells, 12 faces, 12 loops, 24 edges, 48 coedges, and 16 vertices. The topology specifies the connectivity or adjacency relationships among these elements. It does not specify the location, orientation, or shape of any of the elements. For example, the inner void could be centered within the cube, or could be off to one side. In fact, the topology could be the same even if the geometry were changed to wiggly B-splines.

Each edge is bounded by two vertices, one at the start and one at the end of the edge. In turn, each vertex connects three edges. Each edge bounds two faces; therefore, each edge has two coedges, one for each face. Each face is bounded by a single loop, consisting of four coedges. The four coedges correspond to the four edges that bound the face. There are two shells in this example. Each shell consists of six faces. One shell bounds the exterior of the cube; one shell bounds the interior of the cube. The only time a lump contains more than one shell is when there is a void in a solid. There is only one lump in this model because all of the points are connected. There are no wires in this example.

Hollow Cube

The ACIS data structure allows one to easily determine:

• The vertices bounding a given edge,
• The edges connected to a given vertex,
• The edges bounding a given face,
• The faces connected to a given edge,
• The vertices surrounding a given face,
• The faces adjacent to a given vertex,
• The faces adjacent to a given face,
• The edges connected to a given edge,
• All the faces in a given shell,
• All the edges in a given shell,
• All the vertices in a given shell,
• And many other topological relationships.

## Topology Interface

The topological elements are implemented in ACIS using the C++ classes: BODY, LUMP, SHELL, SUBSHELL, FACE, LOOP, WIRE, COEDGE, TCOEDGE, EDGE, TEDGE, VERTEX, and TVERTEX. Each of these classes is derived from the ENTITY class, as is depicted in the diagram below.

Topological Classes Are Derived from ENTITY

In addition to manifold topology, ACIS can represent non-manifold topology. Moreover, topological elements can be bounded, unbounded, or semi-bounded, allowing for complete and incomplete bodies. For example, a solid can have faces missing and existing faces can have missing edges. Solids can also have internal faces that divide the solid into cells. (For more information on cellular representations, refer to Cellular Topology.)

## Combining Topology and Geometry

Several of the topological elements in the ACIS data structure are connected to geometric elements that specify the size, shape and location of the topological elements. For instance, each VERTEX points to an APOINT, whose coordinates specify the location of the VERTEX. An EDGE may point to a CURVE that specifies its shape and location, or an EDGE may not point to a CURVE, in which case the EDGE is a null edge, which may be an isolated vertex on a face. A COEDGE on a FACE may point to a PCURVE that specifies its shape and location in the parameter space of the surface, or in some cases a COEDGE on a FACE may not point to a PCURVE. (The rules for when COEDGE must have a PCURVE are described in Coedge.) A FACE may point to a SURFACE that specifies its shape and location, or the FACE may not point to a SURFACE, in which case the FACE is a rubber face. Rubber faces are allowed only as temporary representations and are not considered to be valid faces. This combined geometric and topological data structure is described in Model Objects.

ACIS occasionally blurs the line between topology and geometry. Topological elements may contain geometric information. For example, a body may possess a bounding box that defines the maximal extents of the body. A face may have a parameter space box that defines its extents in the parameter space of its surface. A loop may be classified a hole or a periphery loop, depending on the geometry of the face on which it resides. This caching of frequently used geometric information in topological entities benefits the performance of many modeling algorithms.