The current situation in 3D geometry modeling was summarized in [Saxena1995] in the following words: "The state-of-the-art in commercial geometric modeling technology is solid modeling. Topologically, a solid model is a two-manifold object. [...] There is a growing awareness in the CAD/CAM/CAE community of the importance of providing systems which can model and represent non-manifold objects. Unfortunately, this functionality is not yet a commercial reality." Here, "non-manifold object" refers to a geometry with inner boundaries, boundary lines and so on.
The geometry description proposed in this (and other like [Shepard1987] ) papers is based on a separate "topology description" developed by Weiler [Weiler1986] which lists all regions and boundaries and the neighbourhood relations between them, and "geometric entity data" which are usually functions from the basic boundary entities into the space. They are usually taken from some special function space, the current favorite seems to be NURBS (non-uniform rational B-splines). See also [Barnhill1992] , [Hagen1992a] , [Hagen1992] , [Farin1991] , [Stoyanov1992] . Let's at first consider the basic ideas of these geometry descriptions.
There are a lot of geometry descriptions, including the usual CAD systems, which may be considered as different variants of a single concept. Almost all are based on one main idea --- the cell complex.
A cell complex may be defined by induction. A 0-dimensional cell complex is a discrete set of points. A k-dimensional cell complex may be created based on a (k-1)-dimensional cell complex and a set of k-dimensional cells. A k-cell is some standard k-dimensional reference cell (for example the k-dimensional simplex or cube). To define the k-dimensional cell complex, we identify the boundary points of the k-cells with points of the (k-1)-dimensional cell complex using some boundary mapping. That means, the cell complex is defined by a set of cells and boundary mappings. For a given space X, a cell complex in X is simply a continuous mapping from the cell complex into X. Thus, a cell complex in X will be defined by a set of cells and their mappings into the space X. On the boundary of the cells, the mapping must coincide with the mappings of the related boundary cells. A cell complex in X is smooth if all these mappings are smooth.
A standard geometry on the n-dimensional manifold X consists of:
If only the geometry has to be defined by the cell complex, it is not necessary to define explicitly the n-dimensional cells. Only the neighbourhood relations have to be described correctly. In this case, the geometry will be defined by a boundary description.
In applications, a lot of different variants of this general scheme will be used:
The main failure of this formalization of the geometry is that it does not lead to a natural realization of the induced geometry: If we have a mapping f: X --> Y and a cell complex on X, this defines a natural cell complex on Y.
The have simply to use the composition of the mapping from the cell complex into X with the mapping f. In the language of category theory, the cell complex is covariant (transforms from X to Y), that means it is different from the behaviour of a geometry which is contravariant (transforms from Y to X). That's why this cell complex usually cannot be used to define a geometry on Y. The related cell complex on Y defines a geometry if f is a homeomorphism. Indeed, in this case it simply coincides with the geometry induced on Y by f^{-1}: Y --> X.
Thus, only in the case of the homeomorphism we obtain a natural possibility to describe the induced geometry by a cell complex. In the general case, there is no such general scheme which allows to define the cell complex of the induced geometry. This leads to complicate algorithms also for a lot of other useful and natural methods to create geometries:
To describe some special 3D geometry is usually not a big problem using one of the available CAD systems. Problems with the standard geometry description we obtain if we need general algorithms, for example if we have time-dependent geometries. For example, assume we have defined a geometry by a boundary grid and a velocity field on this boundary grid. Let's look what we have to do now to compute the geometry for the next time step. We shift the boundary grid in the direction of the velocity field. But after that we have to control the correctness of the resulting boundary grid:
As already mentioned, the majority of implementations is based on the ideas of the cell complex. But some parts of our dual concept also may be found in some applications.
The idea of the first of our intersection functions f(0) which returns the region containing a given point is very simple, and often even this information is available. That's why in many applications this function will be used to describe the geometry. If necessary, the boundary position will be approximated by a simple iteration. But in this way it is not possible to describe the geometry of the boundary itself. So usually such a geometry description will be considered only as a poor substitute of a complete geometry description.
To obtain a unique, modular interface for different geometry descriptions which use a lot of different spline types it is a natural idea to use intersection functions instead of the explicit mapping functions. This idea was also already used for geometry description, for example in [Shepard1987] . But, for the description of the topological neighbourhood relations, the classical cell-complex concept was used. The resulting concept is only for 3D and is based in many parts on the bottom-up strategy from lower to higher cell dimension.