This article was downloaded by: [University of Otago

On: 02 January 2015, At: 16:19
Publisher: Taylor & Francis
Informa Ltd Registered in England and Wales Registered Number: 1072954 Registered office: Mortimer House,
37-41 Mortimer Street, London W1T 3JH, UK

Journal of Graphics, GPU, and Game Tools
Publication details, including instructions for authors and subscription information:

A Nonoriented, Nonmanifold Boundary Representation
for Geometric Applications
a a
Frutuoso G. M. Silva & Abel J. P. Gomes
University of Beira Interior
Published online: 30 Jan 2011.

To cite this article: Frutuoso G. M. Silva & Abel J. P. Gomes (2008) A Nonoriented, Nonmanifold Boundary Representation for
Geometric Applications, Journal of Graphics, GPU, and Game Tools, 13:3, 15-33, DOI: 10.1080/2151237X.2008.10129264

To link to this article:


Taylor & Francis makes every effort to ensure the accuracy of all the information (the “Content”) contained
in the publications on our platform. However, Taylor & Francis, our agents, and our licensors make no
representations or warranties whatsoever as to the accuracy, completeness, or suitability for any purpose of the
Content. Any opinions and views expressed in this publication are the opinions and views of the authors, and
are not the views of or endorsed by Taylor & Francis. The accuracy of the Content should not be relied upon and
should be independently verified with primary sources of information. Taylor and Francis shall not be liable for
any losses, actions, claims, proceedings, demands, costs, expenses, damages, and other liabilities whatsoever
or howsoever caused arising directly or indirectly in connection with, in relation to or arising out of the use of
the Content.

This article may be used for research, teaching, and private study purposes. Any substantial or systematic
reproduction, redistribution, reselling, loan, sub-licensing, systematic supply, or distribution in any
form to anyone is expressly forbidden. Terms & Conditions of access and use can be found at http://

i i

“jgt” — 2008/11/13 — 20:29 — page 15 — #1
i i

Vol. 13, No. 3: 15–33

A Nonoriented, Nonmanifold
Boundary Representation
for Geometric Applications
Downloaded by [University of Otago] at 16:19 02 January 2015

Frutuoso G. M. Silva and Abel J. P. Gomes
University of Beira Interior

Abstract. Topology-based geometric models are important in many fields, in-
cluding CAD (computer-aided design) and computer graphics. This paper intro-
duces a general, concise, and responsive topology-based geometric data structure,
called NNB-rep (nonoriented, nonmanifold boundary representation). Its general-
ity comes from its ability to store manifold and nonmanifold geometric models, no
matter whether they are degenerate or not, as needed in the first stages of the
design and modeling of engineering artifacts, in particular those with cracks and
degeneracies. Unlike most boundary models, the NNB-rep does not accommodate
any topologically oriented cells, hence its compactness. Furthermore, despite the
classical trade-off between memory and time performance, the NNB-rep is quite re-
sponsive because it hosts an optimal incidence scheme C49 , which makes it adequate
for a number of interactive geometric applications.

1. Introduction

As known, B-reps (boundary representations) represent objects through their
boundaries. B-rep kernels allow us to create geometric objects in memory,
as well as to process and manipulate such objects by means of well-defined
query, topological, and geometric operations (e.g., Euler operators, Boolean
operators, blending, etc.). Unfortunately, there is always a trade-off between
memory and time performance in the development of geometric applications.
© A K Peters, Ltd.
15 1086-7651/08 $0.50 per page

i i

i i

Responsiveness. edge-uses. The AIF was designed and implemented for storing and manipulating manifold multiresolution meshes. NNB-rep gener- alizes AIF to nonmanifold geometric objects. Lee and Lee redesigned the radial edge data structure and claimed they halved its memory space needs. the NNB-rep data structure proposed in this paper does not rep- resent topological orientation data explicitly. They called it partial entity data structure [Lee and Lee 01]. though it is possible to represent some nonmanifold objects.. NNB-rep was designed to ensure fast queries using a single indexed traversal operator. Weiler designed the radial edge data structure [Weiler 88]. including CAD. To cope with a broad number of applications using nonmanifold models and conditions. 90] and Yamaguchi and Kimura [Yamaguchi and Kimura 95] in the 90s. i i “jgt” — 2008/11/13 — 20:29 — page 16 — #2 i i 16 journal of graphics tools Speeding up geometric applications led many researchers to design and implement topologically oriented B-rep data structures as a way to rapidly access and retrieve adjacency and incidence information. half-edges).e. It explicitly implements the best incidence scheme of the class C49 . providing support for a larger number of geometric applications. only the vertices and the top simplexes of the complex. Similarly. Floriani and Hui proposed the nonmanifold indexed data structure with adjacencies (NMIA) [Floriani and Hui 03]. Instead of topologically oriented data structures. i. This model was im- plemented by Sriram et al. The half-edge data structure [Mäntylä 88]. It is known as the cell-tuple data structure and is due to Brisson [Brisson 93]. and vir- tual reality. This data structure does not encode any topological orientation. [Sriram et al. was designed to take over the winged-edge data structure [Baumgart 72]. Rossignac and O’Connor proposed SGCs (selective geometric complexes) as a new model to represent geometric objects by means of a simple graph without orientation data [Rossignac and O’Connor 89]. He called them vertex-uses. It was designed to satisfy three major important requirements. Similar oriented nonmanifold data structures were developed by Gursoz et al. 95].. the B-reps evolved from topologically nonoriented to oriented data structures to more quickly access topological data and reasoning. it is a follow-up of the AIF (adjacency and incidence framework). More recently. 1. the result is a quite verbose data structure. However. more speed usually means more memory space to store oriented cells (e. In this sense. [Gursoz et al. In his seminal work on nonmanifold geometric models. Downloaded by [University of Otago] at 16:19 02 January 2015 and face-uses. which means that a minimal number of direct and indirect accesses are required to retrieve all adjacency and i i i i . Weiler extended the concept of oriented edges to vertices and faces. together with a restricted subset of topological relations among simplexes. a few researchers opted to develop topologically nonoriented data structures. With this in mind. computer games. for example. the incidence scheme of a mesh can be considered as a data structure on its own.g. For example.

i. 2. a two-dimensional B-rep data structure incorporates up to 32 = 9 adjacency and incidence relations among cells. it is more concise than traditional B-reps because it only needs to allocate a single memory chunk for each cell. the result is a more responsive. regardless of whether they are degenerate or not. those having dangling cells. the NNB-rep may accommodate not only simplicial complexes and cell com- plexes. concise. The NNB-rep data structure was designed as a generalization of the AIF core to support nonmanifold. NNB-rep supports not only triangular models but also man- ifold and nonmanifold polygonal models. It directly represents four out of nine adjacency i i i i . Data Structure Design The NNB-rep data structure holds the essential incidence data from which we can derive supplementary incidence data as needed during a cellwise walk- through of a geometric object. Following this study. i i “jgt” — 2008/11/13 — 20:29 — page 17 — #3 i i Silva and Gomes: A Nonoriented. In contrast. Therefore. 2. the remaining five have to be inferred using topological reasoning. NNB-rep is not topo- logically oriented. say faces. Unlike other B-rep data structures. Based on these relations. as well as degenerate. Ni and Bloor [Ni and Bloor 94] studied and evaluated the performance of boundary data structures according to their incidence scheme. geometric objects. as shown in the next sections. The NNB-rep Data Structure The AIF data structure was designed for manifold multiresolution meshes so that it consists of two layers: the core and the multiresolution shell [Silva and Gomes 03a]. the NNB-rep data structure implements an optimal representation in the class C49 . but also more general geometric objects such as those having cells with holes.e. it does not contain oriented cells. Conciseness. The AIF multiresolution shell is not considered in this paper. Downloaded by [University of Otago] at 16:19 02 January 2015 In short. Generality. edges. Nonmanifold Boundary Representation 17 incidence information from it. 2. This means that only four out of nine incidence relations are explicitly represented in the data structure.. According to Weiler [Weiler 85]. Thus. and general B-rep data structure for the wide domain of nonmanifold geometric objects. See [Ni and Bloor 94] for more details about representations types. even in higher dimensions. and nonmanifold objects in general. one for each half-edge. 3. the half-edge data structure needs two memory chunks for each edge.1. and vertices.

(The symbol ≺ means “adjacent to. . e2 . is defined by means of a triple O = {V. e3 . (A face is said to be degenerate if it has at least one boundary consisting of a single vertex. hence the C49 data structure. E. . were found necessary for temporarily degenerate objects. as is the case with the NNB-rep data structure.. E is a finite set of edges. . Analogously. .. el }. where V is a finite set of vertices. as those depicted in Figure 2.. F }. . Every edge e = {{v1 . and faces. e3 . and F is a finite set of faces. where V . f2 . .. {f1 . E  V . In addition to those four relations. ei }. fk }}. E. and F  E (see Figure 1). e ∈ E.. a two-dimensional object in three-dimensional space. two more degenerated incidence rela- tions. as well as the degenerated relation F D V . we can say that the NNB-rep is a temporarily C69 representation that tends to or “converges” to a C49 representation. The first represents the bounding (adjacent) edges i i i i . namely V ≺ E. Every vertex v ∈ V is defined by a pair of nonordered tuples. {v1 .3.” while  stands for “incident on. We say “temporarily” because degenerate situations mainly occur at intermediate stages of the design of engineering ar- tifacts. in the NNB-rep data structure. and F stand for the set of vertices.) This is the way of representing the relation E  V . In geometric modeling. hence the relations V ≺ E and F  E. Downloaded by [University of Otago] at 16:19 02 January 2015 and incidence relations between cells. i i “jgt” — 2008/11/13 — 20:29 — page 18 — #4 i i 18 journal of graphics tools Figure 1. is also viewed as a pair of tuples. edges. while the second collects the degenerate faces incident on v. v2 }. F D V and V ≺D F (the subscript “D” indicates that the relation is degenerated). e2 .. E ≺ F . f ∈ F . is de- fined as a pair of tuples. . . The first tuple stores the vertices which bound e.”) The remaining five topo- logical relations can be easily inferred by querying the data structure through the topological query operator described in Section 2. . {f1 . fk }}. while the second keeps the faces incident on e. v = {{e1 . respectively. . The first tuple includes the edges incident at v. that is. . every face f = {{e1 .. we often create two-dimensional objects even when the data structure supports n-dimensional objects. NNB-rep representation. vn }}. Thus. A temporarily degenerate object has at least two adjacent or incident cells whose dimensions differ by at least two. Thus.

namely the Vertex class. we are able to represent manifold and some nonmanifold geometric objects. as illustrated in Figure 1. the Edge class. For example. as well as the degenerated relation V ≺D F . Data Structure Implementation As previously mentioned.2. With those four nondegenerate adjacency and incidence relations embedded in the NNB-rep data structure. i i i i . we need two supplementary relations. of f . to be able to represent any nonmanifold object. the NNB-rep data structure has been designed for nonmanifold geometric objects consisting of sets of cells (vertices. This is feasible because every n- dimensional cell is seen as a set of incident (n + 1)-dimensional cells and a set of adjacent (n − 1)-dimensional cells. 2. the data structure represents the relation E ≺ F . in particular those having degener- ate cells. Note that the dimension-based hierarchy of the NNB-rep and the co- boundary relations of incidence/adjacency enables us to extend the repre- sentation to higher-dimensional objects. All the cells of an object are collected into the Object class. such as those shown in Figure 2. i i “jgt” — 2008/11/13 — 20:29 — page 19 — #5 i i Silva and Gomes: A Nonoriented. Nonmanifold Boundary Representation 19 (a) (b) Figure 2. V ≺D F and F D V .) Thus. (A vertex is said to be degenerate if it forms a boundary of a face. we have decided to encode each cell type as a C++ class. adding solids to the NNB-rep would imply adding the relation S  F to faces and the relation F ≺ S to solids. while the second keeps its adjacent degenerated vertices. All cell types could have been encoded by means of a single C++ class as needed for n-dimensional objects. and the Face class. But. Graphical output of (a) a manifold object and (b) a nonmanifold object Downloaded by [University of Otago] at 16:19 02 January 2015 stored in the NNB-rep data structure. and faces). degenerate cells are collected into separate sets. edges. However.

// edge id Vertex *v1. the NNB-rep data structure is then as follows: class Point { double x. all faces will be oriented consistently for illumination purposes. an orientation is topologically induced over an object in or- der to generate a consistent geometric orientation (i. // incident edges fvector li_nm. // face id evector la. // geometry } class Edge { Downloaded by [University of Otago] at 16:19 02 January 2015 int id.. for example. such as the one described in.e. // face normal } class Object { int id.e. This means that each face acquires a geometric orientation (i. unlike most B-reps. 04]. Silva and Gomes [Silva and Gomes 03b] or Borodin et al. All faces are said to be consistently oriented if they are all ori- ented either clockwise or counterclockwise. // adjacent degenerate vertices Point *nf. // vector of faces } Note that. *v2. it is geometrically oriented by the face normal nf in the class Face. // vector of edges fvector fv. the NNB-rep data structure does not include any topologically oriented cells. we use the query operator described in the next section for retrieving alternately vertices and edges bounding each face. i i i i . [Borodin et al. // object id vvector vv. and all faces must be oriented counterclockwise in order to get all face normals pointing outward. In the end. For that purpose. This means that we need an orientation mechanism capable of inducing a geometric orientation on the NNB-rep object..y. Instead.x. // adjacent vertices fvector li. // point coordinates } class Vertex { int id. // incident faces } class Face { int id. the normal vector nf) by traversing its frontier counter- clockwise. // vector of vertices evector ev. i i “jgt” — 2008/11/13 — 20:29 — page 20 — #6 i i 20 journal of graphics tools For two-dimensional objects. For that. Let us assume that an orientation has been induced counterclockwise for all faces. // incident degenerate faces Point *pt. // vertex id evector li. // adjacent edges vvector la_nm. a normal vector) for each face of the object.

IC0 (NULL.e. if α 6= NULL. v2 } directly returns both bounding vertices of e1 . Let α be an n-dimensional cell argument. . e8 } directly returns all edges incident at v1 .e.. f2 . IC1 (v1 . 1.) of d-dimensional cells.e. in an equivalent manner. But. NULL. The following examples illustrate how the query operator retrieves incidence in- formation from the NNB-rep data structure. f2 } ∪ {f2 . 3.e. where fk stands for a face incident on an edge ej (symbolically. . Topological Query Operator The query operator allows us to retrieve topological adjacency and incidence infor- mation from the data structure.. with C = V ∪ E ∪ F (i. The ICd operator returns all the d-cells incident on the (d − 1). Then. the union of the set V of vertices. NULL) = {v1 . the incidence data of F  v1 .or lower- dimensional cells and adjacent to the (d + 1). To better understand how this query operator works.. NULL. except α itself. two cases can occur. f4 } = {f1 . Example 1. f4 } ∪ {f1 . These arguments establish incidence relations between cells. and the set F of faces) such that ICd (vi .e. all d-cells will also be considered for retrieval. IC2 (v1 . as above. It is used not only to induce a geometric orientation on an object but also to enable topological reasoning on the cell structure of such an object. e1 . NULL) = {e1 . . Let us consider the manifold object in Figure 3(a): 1.e. If α = NULL. NULL) is called for each edge ei in order to retrieve all faces incident on ei . NULL) = {f1 . we say that vi is adjacent to ej (vi ≺ ej ) and ej is adjacent to fk (ej ≺ fk ). the operator IC2 (NULL.. The arguments of ICd are cells in the set V × E × F . as needed for Euler and Boolean operators of B-rep geometric modelers [Mäntylä 88]. but the cell argument α is the only n-dimensional cell that counts in the sense that it imposes an adjacency or incidence restriction on d-cells to be retrieved. all n-cells will be considered for retrieval. i i “jgt” — 2008/11/13 — 20:29 — page 21 — #7 i i Silva and Gomes: A Nonoriented.. fk )}. i i i i . all the n-cells are retrievable. i. the incidence semantics behind the query operator just lies in its argu- ments. This incidence scheme can be described. f4 }. In fact. depending on whether the index d is equal to n (the dimension of the cell argument α) or not. Note that v1 is not a degenerate vertex. which is not explicitly stored in the vertex v1 . the incidence data of E  v1 explicitly stored in the vertex v1 . ej .or higher-dimensional cells that satisfy the restrictions imposed by any non-NULL argument. If d = n. f4 } indirectly returns all faces incident at v1 .3. f2 . we first have to determine the edges incident at v1 . Downloaded by [University of Otago] at 16:19 02 January 2015 The query operator is defined as ICd : V × E × F → C. Conversely. the adjacency data of V ≺ e1 explicitly stored in the edge e1 . let us change a little the way we look at the NNB-rep incidence scheme according to Brisson [Brisson 93]. 2. Therefore. as a set of cell-tuples T = {(vi . e8 }. the set E of edges. i. the incidence data of F  ei . ej . e4 . fk ) = {cdl } returns a set {cdl } (l = 0. otherwise (d 6= n).. ei . i. there is no restriction on the n-dimensional cells. fk  ej ) and ej stands for an edge incident at a vertex vi (ej  vi ). The resulting set of faces is given by F  v1 = (F  e1 ) ∪ (F  e4 ) ∪ (F  e8 ) = {f1 . or E  v1 = {e1 . e4 . i. i. Nonmanifold Boundary Representation 21 2.

i. NULL. NULL. only the degenerate face f7 explicitly appears represented in the vertex instance v2 . f4 . (b) Nonmanifold object. i. v4 } indirectly returns all vertices in the frontier of f1 . Two objects supported by NNB-rep data structure. Let us consider the nonmanifold object in Figure 3(b): 1.. which also means that v2 is a degenerate vertex. v2 .e. the incidence data of F  v2 . IC0 (NULL. 2. i.. the adjacency data of V ≺ ei . 5. e2 . v1 } = {v1 . e4 } = {e4 }. IC1 (v2 .. ei . after retrieving E  v2 = {e1 .e. e1 . v2 .e. f1 ) = {e4 } indirectly retrieves the edges in the frontier of f1 that are incident at v1 . For that. 4. the incidence data of i i i i . e9 . IC1 (v1 . v4 } ∪ {v4 . f1 ) = {e1 . e12 } as above.. the incidence data of E  v2 explicitly stored in the vertex v2 . 2. The remaining faces incident on v2 can be only retrieved from the edges incident at v2 . v3 } ∪ {v3 . NULL. 3. v3 . i i “jgt” — 2008/11/13 — 20:29 — page 22 — #8 i i 22 journal of graphics tools Downloaded by [University of Otago] at 16:19 02 January 2015 (a) Manifold object. the adjacency data of V ≺ f1 . we are able to retrieve all faces incident on ei . it is first necessary to invoke the operator IC1 (NULL. 4. This is equivalent to ((v1 ≺ E) \ {e1 }) ∩ ((E ≺ f1 ) \ {e1 }). which is only partially stored in the vertex v2 . NULL) for each ei . i. e12 } directly returns all edges incident at v2 . e9 . which is not explicitly stored in the face f1 . IC1 (v1 .e. NULL. In fact.. Example 2. NULL) = {f1 . The resulting set of vertices is given by V ≺ f1 = (V ≺ e1 ) ∪ (V ≺ e2 ) ∪ (V ≺ e3 ) ∪ (V ≺ e4 ) = {v1 . This way. i. f1 ) = {v1 . ei .e. e4 } to directly retrieve all frontier edges of f1 and subsequently call the operator IC0 (NULL.. IC2 (v2 . v3 . e1 . i. Figure 3. e8 } ∩ {e2 . e1 . f7 } indirectly returns all faces incident at v2 . NULL) for each edge ei of E  v2 . with the exception of e1 .. we invoke the operator IC2 (NULL. e3 . e3 . NULL) = {e1 . e2 .e. v4 }. e2 . For that. f3 . with i = 1. i. NULL) ∩ IC1 (NULL. f1 ) = {e4 . v2 } ∪ {v2 .e.

For example. e6 . v7 }. the following situations can be unambiguously characterized: • Isolated vertex. Its representation can be retrieved by calling IC1 (v1 . • Dangling edge. This is very important for handling large objects. The i i i i . so its representation is given by v1 = {{}. the NNB-rep data structure is capable of storing both manifold and nonmanifold objects with or without boundary. {f1 }} has dimension 2. {}} shown in Figure 4(a) is a zero-dimensional manifold. f3 }∪{f3 . v3 . v2 . the isolated vertex v1 in Figure 4(a) does not possess incident cells. e7 }. However. v2 }.1.e. NULL) = {}. the dangling edge e1 in Figure 4(b) is represented by e1 = {{v1 . e4 . For example. Analysis 3. the number of cells).1. For example. {}}. An edge without incident faces is an unambiguous character- ization of a dangling edge. v5 . • Boundary edge. we use the query operator. we retrieve its empty tuple of faces. Boundary edges are typical of two-dimensional manifolds with boundary. f4 }∪{} = {f7 . It handles a geometric object locally by using the adjacency and incidence relations stored in the cells of the data structure. so we can conclude that O is nonmanifold. its time performance holds independently of the object size (i. f1 . e2 . Thus. The resulting set of faces is given by F  v2 = (F D v2 ) ∪ (F  e1 )∪(F  e2 )∪(F  e9 )∪(F  e12 ) = {f7 }∪{f1 . v4 . i i “jgt” — 2008/11/13 — 20:29 — page 23 — #9 i i Silva and Gomes: A Nonoriented. e3 . {f1 }} in Figure 4(f) is a manifold with two boundaries. the NNB-rep data structure allows us to distinguish a manifold object from a nonmanifold object. Downloaded by [University of Otago] at 16:19 02 January 2015 3. e2 . Note that the operator ICd does not need to handle all the data structure con- stituents to retrieve local topological information. Nonmanifold Boundary Representation 23 F  ei . v2 . For that. e4 }. f4 }∪{f1 . By calling IC2 (NULL. (c). and (e) are nonmanifold. Nondegenerate Objects Recall that a nondegenerate object has no degenerate cells.1. its hosting object O = {{v1 . 3. So. the objects (a) and (f) are manifold. the object O = {{v1 . e3 . For example. NULL. f4 }. {e1 . (d). e1 . in particular those involving local operations at interactive rates. An isolated vertex is unambiguously characterized by having no incident cells. the object O = {{v1 }. NULL) = {} and IC2 (v1 . f3 . {}}. where F D v2 = {f7 } denotes the degenerated topological relation of faces incident on v2 .. v3 . the objects depicted in Figure 4 are all nondegenerate. in principle. while (b). regardless of whether they are degenerate or not. {e1 . v4 }. NULL. Generality Issue As seen above. {}. e5 . v6 . For example. In fact. NULL) = {} in sequence.

v1 in Figure 4(c)) or the existence of two or more complete stars at- tached to it (e. {f1 }} has indeed only one incident face f1 . checking for the cut-vertex v1 of the object O = {{v1 . which can be retrieved by means of the operator IC2 (NULL. f2 ) = {e3 } → IC2 (v1 .. a cut-vertex can be iden- tified by the existence of an incomplete star of edges and faces around it (e. v4 . {e1 . we alternately apply the operators IC1 and IC0 to vertices and edges. e4 . A vertex v of the object O is a cut-vertex if a small connected neighborhood N of v in O passes to have at least two connected compo- nents after the removal of v from O. the sequence IC2 (v1 . i i “jgt” — 2008/11/13 — 20:29 — page 24 — #10 i i 24 journal of graphics tools (a) (b) (c) Downloaded by [University of Otago] at 16:19 02 January 2015 (d) (e) (f) Figure 4. • Cut-vertex. i i i i . NULL) = {f1 }. e4 . v3 . NULL) = {f2 } → IC1 (v1 . f2 }} in Fig- ure 4(c) is carried out by alternately applying the operators IC2 and IC1 to edges and faces. e6 }. e4 . e3 . respectively. e3 . v3 }. the boundary edge e4 = {{v2 . edges of this object are all boundary edges because each has only one inci- dent face. To make sure that O has a boundary starting at a vertex vi .g. e5 . f2 ) = {} outputs no face attached to e3 counterclockwise. For example. respectively.. so we can conclude that the star around v1 is incomplete and v1 is a cut-vertex because there are more cells attached to it. {f1 . Thus. e4 . v5 }.g. v2 . For example. incident on v1 . e2 . Basically. v2 Figure 3(b)). Nondegenerate geometric objects. to counterclockwise (or clockwise exclusively) cycle along a boundary until reaching the initial vertex vi .

A face with a hole is a face with two edge boundaries or loops. To make sure that f1 has a hole. The same applies to f1 = {{e1 . the face f1 of the object depicted in Fig- ure 5(a) is degenerate because it is bounded by a degenerate vertex v1 . • Degenerate face. For example. some of the edges of f1 have not been visited. e2 . e4 . A degenerate object has at least one degenerate cell. e3 . For example. • Face with a hole. Let us then see how they are unambiguously represented in the NNB-rep data structure: • Degenerate vertex. {f1 }} in Figure 5(c). assuming that v1 and e1 are the starting cells.e. degenerate. e2 . hence.. For example. to counter- clockwise (or clockwise exclusively) circulate along a boundary until reaching the initial vertex. For example. {f1 }}. i. i i “jgt” — 2008/11/13 — 20:29 — page 25 — #11 i i Silva and Gomes: A Nonoriented. f1 ) = {e3 } → IC0 (v4 . These degenerate objects require two further degenerated topological re- lations. v1 = {{}. f8 }. f1 ) = {v4 } → IC1 (v4 . so restarting from a nonvisited vertex and a non- visited edge. For example.1. the following sequence of operators provides us the outer loop of f1 : Downloaded by [University of Otago] at 16:19 02 January 2015 IC1 (v1 .2. 3. Its only incident cell is the face f1 . V ≺D F and F D V . A cut-edge is the cut-vertex counterpart of dimension one. the object depicted in Figure 5(b) would be degenerate because the only incident cell on the edge e4 = {{v1 . However. nonmanifold. and i i i i . v2 }. e5 }. one com- ponent more than the original object. the edge e7 = {{v1 . v6 }. f6 . e1 . e4 . Therefore. Degenerate Objects As mentioned above. {}} shown in Figure 4(d) is a cut-edge because its removal causes the appearance of two components.. f1 ) = {v2 } → IC1 (v2 . e3 . taking into account the ability of the NNB-rep data structure to repre- sent a wide range of geometric objects (i. • Degenerate edge. e3 . manifold. This is also a typical situation we find in nonmanifold geometric modeling. {s1 }} is the solid pyramid s1 bounded by the set of cell faces {f5 . the NNB-rep also enables the representation of degenerate objects. f7 . we apply a similar sequence to find out the inner loop. e4 . respectively. e6 }. Starting at a given vertex. f1 ) = {v3 } → IC1 (v3 . the face f1 of the object shown in Figure 4(f) possesses two boundaries. For example. There would be degenerated edges if we had considered the representation of three.e. it is enough to alternately apply the operators IC1 and IC0 to vertices and edges. since our data structure is currently prepared for representing two-dimensional geometric objects in R3 . we have to find two loops bounding it. Nonmanifold Boundary Representation 25 • Cut-edge. f1 ) = {e4 } → IC0 (v3 . However. e2 . f1 ) = {v1 }. {}. {v1 }} and v1 = {{e7 .and higher-dimensional cells in the current im- plementation of our data structure. f1 ) = {e1 } → IC0 (v2 . the object depicted in Figure 5(a) is degen- erate because the vertex v1 has no incident edges. f1 ) = {e2 } → IC0 (v1 . as is usual for most boundary representations. e1 . degenerate edges were not considered in the current implementation.

non-degenerate objects). It is i i i i . . the column “Bytes/M” gives us a quantitative measure of the occupied memory in terms of the number of bytes necessary per triangle. Degenerate geometric objects. all aggrega- tion entities of cells. and their oriented counterparts. 3. for example. namely CAD kernels. The column “Nonmanifoldness” tells us whether a given data structure supports nonmanifold objects or not. if any. in our calculations.e. Conciseness Issue Taking into consideration that not all B-rep data structures listed in Table 1 support nonmanifold objects. and virtual environments. 9) of the data structure. Finally. It is worth noting that. such as. have been left out. faces. shells. The variable ν stands for the number of degenerate vertices. loops. Looking at Table 1. This gives us a quali- tative measure of the memory storage needs. i.. and NNB-rep data structures do not include them. where k stands for the number of explicit or direct topological rela- tions represented in the data structure. The column “Incidence” indicates the incidence class Ck9 (k = 1. AIF.. the comparison between them takes a manifold triangular mesh as a reference model. . . i i “jgt” — 2008/11/13 — 20:29 — page 26 — #12 i i 26 journal of graphics tools Downloaded by [University of Otago] at 16:19 02 January 2015 (a) (b) (c) Figure 5. . The bigger the number k. etc. The variable δ stands for the vertex degree. the number of edges incident at a given vertex. edges. we have only considered the occupied mem- ory for vertices.2. simply because the star-vertex. we easily conclude that this data structure can be useful for many geometric modeling applications. we clearly see that nonoriented data structures (the first four) are more concise than oriented data structures (the remaining three). while the column “Orientation” tells us whether a given data structure is topologically oriented or not. animation. hence the supple- mentary brackets denoting the storage overhead for each degenerate vertex. the more memory storage is necessary to store additional topological relations. 2.

So.e. directed edges. However. where ν = 1. a model with n vertices has about m faces (m = 2n) and e edges (3m = 2e). according to the Euler formula for two- dimensional triangular meshes. 5. It is not prepared to accommodate edges and faces. In fact.) For degenerate objects (ν > 0).e. 52+8ν. This explains why every neighboring vertex comes with an index for navigation purposes (i. 4. hence its conciness. respectively. co-edges. references to faces and vertices of degenerated topological relations. 50. The star-vertex data structure only stores vertices and their neighboring vertices. V ≺D F and F D V ). It also supports the representation of nonmanifold objects. and 54+8ν bytes per triangle for δ = 3. Similar to the winged-edge data structure. . stands for the number of degenerate vertices. for traversing the vertices bounding an imaginary face counterclockwise). and 6. namely: half-edge [Mäntylä 88]. the NNB-rep data structure does not include oriented cells. 52. partial entity [Lee and Lee 01]. Downloaded by [University of Otago] at 16:19 02 January 2015 also interesting to observe that the winged-edge data structure [Baumgart 72]— the pioneer B-rep data structure—is more concise than its later oriented variants. . and 54 bytes per triangle for δ = 3. It is concise because it only needs 10 + 4δ bytes per triangle.3 60 partial entity yes yes C49 86 9 half-edge no yes C3. 4.1 104 radial edge yes yes C49 116 Table 1. and (4+4)ν = 8ν bytes for the overhead for each degenerate vertex (i. i i i i . Nonmanifold Boundary Representation 27 Data structures Nonmanifoldness Orientation Incidence Bytes/M star-vertex yes no C19 10+4δ AIF yes no C49 42+2δ NNB-rep yes no C49 [C69 ] 42+2δ+[8ν] 9 winged-edge no no C2. respectively. topologically oriented B-rep data structures are more verbose because they include oriented cells (e. i i “jgt” — 2008/11/13 — 20:29 — page 27 — #13 i i Silva and Gomes: A Nonoriented. In fact. in general. half-edges.. and radial edge [Weiler 88]. Both the AIF and NNB-rep data structures require approximately 48. (Note that the AIF data structure is not prepared to represent degenerate objects. assuming that floats and pointers are 4 bytes each. 50+8ν. 5 and 6. . but the adjacency information retrieval involves very time- consuming operations because no edges and faces are explicitly stored in the data structure.. considering only nondegenerated manifold objects.).. etc. Memory performance comparison of B-rep data structures. for nondegenerate manifold objects (ν = 0).g. 2. the corresponding storage cost is the following: (3×4+4×δ)n = (12+4δ)n = (6+2δ)m bytes for vertices (references to coordinates and edges). the latter is more concise than the former because it has fewer relations explicitly represented. (2 × 4 + 2 × 4)e = 16e = 24m bytes for edges (references to vertices and faces). (3×4)m = 12m bytes for faces (ref- erences to edges). the NNB-rep requires 48+8ν.

3. as shown in Table 2. This depends on the incidence scheme embedded in the data structure. The only (a) C19 9 (b) C2. EF. (c). we are able to compare the responsiveness of several data structures in terms of time units: a direct access takes t time units. and eight indirect accesses with cellular reconstruction (R). in this case. indirect (I). they do not involve cellular reconstruction at all. and (e). we have one direct access (D) to incidence information of V ≺ V . which only includes the topological relation V ≺ V . (d). VF. an indirect access lasts at least 2t. the column “Incidence” just indicates the incidence scheme of each data structure. It is clear that cellular reconstruction involves a Downloaded by [University of Otago] at 16:19 02 January 2015 significant pre-processing overhead. The incidence diagrams of the remaining data structures listed in Table 2 appear in Figures 6(b).1 (d) C49 (e) C69 (f) Type of relations Figure 6. Responsiveness Issue As suggested before. All these data structures accommodate vertices. in the design of a B-rep data structure. EV. In Table 1. i i i i .e. re- sponsiveness or access efficiency) for a manifold triangular model with n vertices. For example. or indirect access with cellular reconstruction (R). and faces. Thus. VE. i i “jgt” — 2008/11/13 — 20:29 — page 28 — #14 i i 28 journal of graphics tools 3. which in turn is faster than an indirect access with cellular reconstruction. Cellular reconstruction means that we have to infer the missing cells—edges and faces. after which we can then infer the eight incidence relations. in this case—from the data structure.. Therefore. we need to take into account a trade-off between memory and time performance. FV. Schemes of different incidence classes. the diagram of the incidence scheme C19 of the star- vertex data structure appears in Figure 6(a).3 9 (c) C3. FE. Table 2 characterizes several data structures in terms of time units t (i. EE. edges. Assuming that a direct access is faster than an indirect access. and an indirect access with cellular reconstruction requires at least 3t. FF) in terms of direct (D). This is done by characterizing the nine incidence relations (VV.

1 . an indirect access). the E ≺ E relation can be inferred by first retrieving the V ≺ E and E  V relations (i. it spends one more unit of time (15t) than the NNB-rep data structure (14t). For example. They implement the same scheme as NNB-rep. we consider that a direct i i i i . Thus. 9 The half-edge data structure belongs to the class C3. vertex use. and face use). V ≺D F and F D V .e. for an easy classification and comparison of several data structures. In other words. 9 The winged-edge data structure belongs to the class C2. The radial-edge and the partial-entity data structures belong to the class C49 (Figure 6(d)). indi- rect (I). V ≺ E (the fields v1 and v2 in the class Edge). edge use. to retrieve all incidence/adjacent relations. i i “jgt” — 2008/11/13 — 20:29 — page 29 — #15 i i Silva and Gomes: A Nonoriented. we consider the cells and their subsidiary oriented cells as a whole. represented as dashed line arrows in Figure 6(e). Retrieving an implicitly represented incidence relation involves an indirect access (I) to the data structure. the essential incidence scheme of the NNB-rep (and AIF as well) belongs to the class C49 . whose scheme appears in Figure 6(c). For example..e. Therefore. The remaining five incidence relations need be inferred somehow by means of indirect accesses to the data structure.. F  E (the field li in the class Edge). it has only two total relations and three partial relations represented explicitly (a partial relation stores a proper subset of adjacent/incident cells). so they spend the same number of time units (14t). an indirect access is a compo- sition of at least two direct accesses. it has only three total relations and one partial relation represented explicitly. they are oriented data structures. instead of 14t taken by NNB-rep. and indirect with cellular reconstruction (R). which means that any direct access is via oriented cells (i. Time performance comparison of B-rep data structures: direct (D). With this assumption in mind. which means that it has four out of nine adjacency and incidence relationships explicitly represented in the data structure (Figure 6(d)). and E ≺ F (the field la in the class Face). that is. Nonmanifold Boundary Representation 29 Data structures V V V E V F EV EE EF F V F E F F Accesses Time AIF I D I D I D I D I 4D+5I 14t NNB-rep I D I D I D I D I 4D+5I 14t partial entity I D I D I D I D I 4D+5I 14t radial edge I D I D I D I D I 4D+5I 14t half-edge I I I D I D I D I 3D+6I 15t winged-edge I I I D I D I I I 2D+7I 16t star-vertex D R R R R R R R R 1D+8R 25t Table 2. Note that the NNB-rep data structure incorporates two supplementary relations for degenerate objects. Downloaded by [University of Otago] at 16:19 02 January 2015 extra overhead results from the inference of incidence relations not represented in the data structure explicitly.3 (Figure 6 (b)). However. not by using the cells themselves. Recall that all direct and indirect accesses to the NNB-rep data structure are done through the query operator. These four explicit relationships are E  V (the field li in the class Vertex). that is. It is then less responsive than the NNB-rep data structure because it requires 16t time units. we directly access them without additional processing overheads.

AIF. the radial- edge and the partial-entity data structures also require more memory because they incorporate oriented cells. 4. while the remaining data structures require more time units to retrieve all topological information. interactive editing [Silva and Gomes 04a] and simplification [Silva and Gomes 04b] of meshes. for example. NNB-rep. there is not a closed 2D disk around these vertices. Besides. (b) Cessna model. In fact.. How- ever. Besides. Examples The NNB-rep data structure has been used in some applications such as. The mechanical part is non- manifold because it has three faces incident on a single edge (Figure 7(a)). though this is not true because we have to use oriented cells in between. i i “jgt” — 2008/11/13 — 20:29 — page 30 — #16 i i 30 journal of graphics tools access to an oriented data structure is equivalent to a direct access to a nonoriented data structure. Figure 7. Figure 7 shows two nonmanifold NNB-rep models.e. radial-edge and partial-entity) spend the same time units. the NNB-rep data structure is more responsive than other conventional B-rep data structures. i i i i . In short. This shows us that the larger the number of relations explicitly represented.e. more incidence relations in the data structure means more memory storage Downloaded by [University of Otago] at 16:19 02 January 2015 consumption. the point is how to get an optimal balance between conciseness and responsiveness. Note that the Cessna model is also nonmanifold because some faces incident at inner vertices have been removed from the cockpit zone. the faster the access to the data structure to retrieve the topological information. the Cessna model has triangular and nontriangular faces (see Figure 7(b)). but the absence of oriented cells makes the NNB-rep data structure more concise than conventional B-rep data structures yet. i. (a) Mechanical part. Thus. it has the advantage of being much more concise. Two nonmanifold objects stored in the NNB-rep data structure. the first four data structures in Table 2 (i.. However.

while Figure 8(b) shows a simplified version of the bunny model with 4099 faces. “Vertex-Based Representation of Non-Manifold Boundaries. CA: IEEE Computer Society Press. Downloaded by [University of Otago] at 16:19 02 January 2015 Figure 8. J. pp. Wozny. [Brisson 93] E. and K. Figure 8 shows two manifold NNB-rep models. Nonmanifold Boundary Representation 31 (a) Interactive editing of the bunny. [Gursoz et al. G. Turner. 2004. “A Scalable Data Structure for Three-dimensional Non-manifold Objects. regardless of whether these objects are degenerate or not. 107–130. Two manifold objects stored in the NNB-rep data structure.” In Eurographics Symposium on Geometric Processing. 1990. References [Baumgart 72] B. 2003. [Borodin et al. Preiss. edited by M. Baumgart. J. [Floriani and Hui 03] Leila De Floriani and Annie Hui. “Winged-Edge Polyhedron Representation. 387– 426. (b) The bunny with 4099 faces. pp. Gabriel Zachmann. “Representing Geometric Structures in d Dimension: Topology and Order. Brisson. i i i i . Aire-la-Ville. Amsterdam: North-Holland. Young Choi. U. 1972. Stanford University.” In Proceedings of Geometric Modeling for Product Engineering. 18–25. we can say that it is appropriate to support interactive graphical applications for a wide range of objects in geometric modeling and computer graphics. Besides the NNB-rep data structure is a suited alternative for applications using nonmanifold objects. “Con- sistent Normal Orientation for Polygonal Meshes.” Tech- nical Report STAN-CS-320. 90] E. 72–82. Los Alamitos. Levent Gursoz. 04] Pavel Borodin. Given the optimal trade-off of the incidence scheme C94 of the NNB-rep in terms of memory storage and time performance. Switzerland: Eurographics As- sociation. pp. i i “jgt” — 2008/11/13 — 20:29 — page 31 — #17 i i Silva and Gomes: A Nonoriented.” Descrete & Computational Geometry 9:4 (1993).” In Proceedings of Computer Graphics International. Figure 8(a) shows the effect of changing the shape of the left ear of the bunny model interactively. and Fritz Prinz. and Reinhard Klein.

Susan Bloor. Silva and Abel J. 202–209. C. “Normal-based Simplification Algorithm for Meshes. Los Alami- tos. L’Ecuyer. Gomes. CA: IEEE Computer Society Press. He. Silva and Abel J. Gravilova. 2004. 3–36. Pro- Downloaded by [University of Otago] at 16:19 02 January 2015 ceedings of the IFIP Workshop on CAD/CAM edited by M.” In Proceedings of XVII Brazilian Sympo- sium on Computer Graphics and Image Processing /II Ibero-American Sympo- sium on Computer Graphics (SIBGRAPI/SIACG’04). [Silva and Gomes 04b] Frutuoso G. Part III. An Introduction to Solid Modeling. 145–180. Lecture Notes in Computer Science 2669. New York: ACM Press. i i “jgt” — 2008/11/13 — 20:29 — page 32 — #18 i i 32 journal of graphics tools [Lee and Lee 01] Sang Hun Lee and Kunwoo Lee. Preiss. M. [Ni and Bloor 94] Xiujun Ni and M. Kumar. edited by M.” In Proceedings of International Conference on Com- puter Graphics and Interactive Techniques in Australasia and South East Asia (GRAPHITE’03).” In Proceedings of Computational Science and Its Applications (ICCSA’03). M. [Sriram et al. and L. and P. M. pp. pp. 159–166. 1989. [Rossignac and O’Connor 89] Jarek Rossignac and Michael O’Connor. “AIF: A Data Structure for Polygonal Meshes. Berlin: Springer-Verlag. Amsterdam: North-Holland. Tan. “The Radial Edge Structure: A Topological Representa- tion for Non-manifold Geometric Boundary Modelling. 95] R.” In Proceedings of the Sixth ACM Symposium on Solid Modeling and Applications. edited by V. Silva and Abel J. “Interactive Editing of Multiresolution Meshes. McLaughlin. pp. Gomes. Wong. P. Encarnacao. pp.” Computer-Aided Design 27:11 (1995) 853– 868. 1988. P. Wozny. Turner. “Partial Entity Structure: A Fast and Compact Non-Manifold Boundary Representation Based on Partial Topological Entities. [Silva and Gomes 03b] Frutuoso G. 2003. [Weiler 85] Kevin Weiler. MD: Computer Science Press. Gomes. “SGC: A Dimension-Independent Model for Pointsets with Internal Structures and In- complete Boundaries. “Performance Evaluation of Boundary Data Structures. 2003. “Edge-based Data Structure for Solid Modelling in Curved-surface Environments.” IEEE Computer Graphics and Applications 14:6 (1994) 66–77. [Mäntylä 88] Martti Mäntylä. P. Amsterdam: North-Holland. 1988. P. Silva and Abel J. and K. pp. A. 2001. H. i i i i .” IEEE Computer Graphics & Applications 5:1 (1985) 21–40. J. [Silva and Gomes 04a] Frutuoso G. Rockville. pp. 478-487. pp. “Adjacency and Incidence Framework: A Data Structure for Efficient and Fast Management of Multiresolution Meshes.” In Proceedings of Theory and Practice of Computer Graphics (TPCG’04). [Silva and Gomes 03a] Frutuoso G. M. M. 159–170. Wozny.” In Geometric Modeling for Product Engineering. “GNOMES: An Object-Oriented Nonmanifold Geometric Engine.” In Geometric Modelling for CAD Applications. Gomes. New York: ACM Press. 211–218. Sriram. [Weiler 88] Kevin Weiler. Los Alamitos. and J. CA: IEEE Com- puter Society Press. 2004.

i i i i . 6201-001 Covilhã Frutuoso G. Rua Marquês d’Ávila e Bolama. Downloaded by [University of Otago] at 16:19 02 January 2015 University of Beira Interior. “A Combinatorial Analysis of Boundary Data Structure Schema. Department of Computer Science and Engineering. Department of Computer Science and Abel Received August 4. Rua Marquês d’Ávila e Bolama. Nonmanifold Boundary Representation 33 [Woo 85] Anthony C. Web Information: http://jgt. 2008.akpeters. i i “jgt” — 2008/11/13 — 20:29 — page 33 — #19 i i Silva and Gomes: A Nonoriented. M. Portugal (fsilva@di. Gomes. [Yamaguchi and Kimura 95] Yasushi Yamaguchi and Fumihiko Kimura.ubi. 2006. P. Woo.” IEEE Computer Graphics and Applications 15:1 (1995) 42–50.” IEEE Computer Graphics and Applications 5:3 (1985) 19–27. 6201-001 Covilhã. Silva. University of Beira Interior. Portugal (agomes@di. “Nonman- ifold Topology Based on Coupling Entities. accepted September 19.

Downloaded by [University of Otago] at 16:19 02 January 2015 .