Abstract
Recently a Delaunay refinement algorithm has been proposed that can mesh piecewise smooth complexes which include polyhedra, smooth and piecewise smooth surfaces, and non-manifolds. However, this algorithm employs domain dependent numerical predicates, some of which could be computationally expensive and hard to implement. In this paper we develop a refinement strategy that eliminates these complicated domain dependent predicates. As a result we obtain a meshing algorithm that is practical and implementation-friendly.
1. Introduction
Delaunay mesh generation of non-smooth domains such as piecewise smooth surfaces and complexes is a difficult challenge. Aided by recent developments in sampling theory and computational topology, Chew’s furthest point strategy [1, 2] (Delaunay refinement) has been applied to generate Delaunay meshes for smooth surfaces with provable guarantees [3, 4]. The lack of global smoothness poses two main difficulties in extending these methods to non-smooth domains. First, the sampling theory developed for smooth surfaces breaks down for non-smooth surfaces. Secondly, small input angles possibly present at non-smooth regions pose problems for the termination of Delaunay refinement [5].
Boissonnat and Oudot [6] gave a provable algorithm for a class of non-smooth surfaces called Lipschitz-surfaces. They showed that their algorithm for smooth surface meshing [3] extends to this class only if input angles are sufficiently large. Unfortunately, this approach failed to admit small input angles which limited the input class. Rineau and Yvinec [7] implemented an algorithm for meshing volumes bounded by piecewise smooth surfaces; their approach also suffers from an angle constraint. Recently Cheng, Dey and Ramos [8] proposed an approach that completely removed any constraint on input angles. As a result their algorithm could accommodate large class of input domains called piecewise smooth complexes (PSCs). This class includes polyhedral domains, smooth and piecewise smooth surfaces, and even non-manifolds.
The algorithm of [8] uses the idea of protecting non-smooth curves and vertices in the input complex with balls. This idea already gave good results in the polyhedral case [9,10,11]. A novelty introduced by Cheng et al. is that they turn the balls into weighted points and then carry out the mesh refinement in the weighted Delaunay triangulation [12, 13]. Notwithstanding its theoretical success, practical relevance of this algorithm remains questionable. It employs some expensive numerical computations that are hard to implement. Unless these computations are removed, one cannot expect a practical solution for Delaunay mesh generation of PSCs. The goal of this paper is to design a refinement strategy without expensive predicates so that it becomes implementation-friendly and practical.
Bottleneck. Consider a smooth surface given by an implicit equation. To generate a meaningful mesh for this surface, one needs to sample it at a scale that captures its smallest local variations. One approach would be to guess a scale and sample the surface with it. If the guess is right, sampling with the furthest point strategy gives a mesh with provable guarantees as shown by Boissonnat and Oudot [3]. A second approach would be to compute a version of the local length scales and mesh the surface with those scales. The algorithm of Cheng et al. [8] works on this latter principle. It computes how a curve or a surface varies normal-wise around a point. It also computes separation distances between different elements (vertices, curves, and surfaces) to capture separation feature size (gap size) in the sense of [9, 14]. These assumed powerful numerical primitives allow Cheng et al. to determine the size of the protecting balls with certain desirable properties and allow them to sample surface patches at appropriate length scales. Unfortunately, these computations are expensive and are hard to implement which makes the algorithm impractical.
Solution. To circumvent the problem we follow the guessing approach. We would like to guarantee that even if the guess is incorrect, the algorithm terminates and outputs a mesh which approximates the input complex at a coarse level. A main difficulty in this approach is to formulate a unified refinement strategy that captures the input topology correctly when the guessed scale is right and outputs a mesh with some reasonable properties all the time. To reach this goal we formulate a disk condition that says that the output mesh should have a topological disk formed by triangles around each vertex. This disk condition drives the refinement, that is, we go on refining protecting balls or surface meshes if this disk condition fails. If this refinement terminates, the disk condition necessarily holds for the output mesh. Then, by PL topology, the output Delaunay mesh restricted to each manifold surface patch is a manifold. Furthermore, the input incidence structure among different elements in the PSC is maintained. The output may not be homeomorphic to the input since a small feature such as a small handle may not be detected at the length scale the algorithm is asked to operate. However, a homeomorphic meshing is guaranteed when the supplied scale is sufficiently small. Actually, in practice, the disk condition usually suffices to provide a homeomorphism.
One of our main tasks is to prove that the refinement always terminates. To this end we use the following result. If the protecting balls are sufficiently small and satisfy some separation properties (conditions C1-C3 in Section 2.), then the disk condition holds if the restricted Delaunay triangles are sufficiently small. Therefore, the failure of the disk condition signals either balls do not satisfy separation properties, or are large, or triangles are large. The way we compute the protecting balls, failure of separation properties also implies that they are large. In essence, if the disk condition fails, either a ball or a triangle is too large. The algorithm refines the larger of the two and hence guarantees that neither a protecting ball nor a triangle gets arbitrarily small ensuring termination. One may observe that, this strategy does not allow adaptive mesh sizing. However, one may regulate the input scale to produce meshes at different levels of resolution.
Perhaps the most important ingredient in this approach is to maintain a set of protecting balls with the separation properties. It turns out that it is difficult to ensure one of these properties exactly (condition C3) when the balls are large. Instead we maintain a more relaxed condition which implies the desired property when the balls are sufficiently small.
We have implemented our algorithm in this paper. In an earlier attempt we tried to mesh with the disk condition but pre-computed the balls with a small radius chosen heuristically [15]. The code failed in cases where the pre-selected size of the balls was wrong. The approach in this paper allows the refinement algorithm to determine the balls automatically instead of pre-computing them. We report experimental results for our protection algorithm and meshing in Section 5. The code and a video explaining the experimental results have been released [16].
1.1. Domain
Throughout this paper, we assume a generic intersection property that a k-manifold , , and a j-manifold , , intersect (if at all) in a -manifold if and . We will use both geometric and topological versions of closed balls. A geometric closed ball centered at point with radius , is denoted as . We use and to denote the interior and boundary of a topological space , respectively.
The domain D is a piecewise smooth complex (PSC) where each element is a compact subset of a smooth () k-manifold, . Each element is closed and hence contains its boundaries. For simplicity we assume that each element has a non-empty boundary (used in Lemma 8, this restriction can be removed by some added complication in the initialization of the algorithm). We use to denote the subset of all k-dimensional elements, the kth stratum. is a set of vertices; is a set of curves called 1-faces; is a set of surface patches called 2-faces. For , we use to denote .
The domain D satisfies the usual proper requirements for being a complex: (i) interiors of the elements are pairwise disjoint and for any , ; (ii) for any , either or is a union of elements in D. We use to denote the underlying space of D. For , we also use to denote the underlying space of .
1.2. Complexes
We will be dealing with weighted points and their Delaunay and Voronoi diagrams. A weighted point p with weight is represented as a ball . The squared weighted distance of any two points p and q is where and are the weights of p and q respectively. With this definition, an unweighted point has a distance of from p. Under the distance metric , one can define weighted versions of Delaunay and Voronoi diagrams. For a weighted point set , let and denote the weighted Voronoi and Delaunay diagrams of S respectively. Each diagram is a cell complex where each k-face is a k-polytope in and is a k-simplex in . Each k-simplex ξ in is dual to a -face in and vice versa.
Let S be a point set sampled from . For any sub-collection we define to be the Delaunay subcomplex restricted to , i.e., each simplex , called a restricted simplex, is the dual of a Voronoi face where . By this definition, for any , denotes the Delaunay subcomplex restricted to σ, and An i-face should be meshed with i-simplices. However, may have lower dimensional simplices not incident to any restricted i-simplex. Therefore, we compute special sub-complexes of restricted complexes. Define the following i-dimensional subcomplexes (see Figure 1):
is an i-simplex or a sub-simplex of an i-simplexand
Figure 1.
(left) and (right) There is one extra edge in which is not in .
2. Protection and Refinement
The meshing algorithm computes a set of balls protecting 1-faces. Unlike [8], the protecting balls are adjusted on the fly as refinement proceeds. It inserts points in 2-faces to refine the triangulation. The protecting balls and the triangulation are refined simultaneously either to satisfy a disk condition or to achieve a refinement level dictated by an input scale parameter. In what follows all skipped proofs appear in the appendix.
2.1. Covering 1-faces
Let denote the curve segment oriented from x to y on any 1-face σ. In this notation where σ is oriented from the end point u to the other end point v. Let be a ball with . The intersection is a set of curve segments. Among them the curve segment containing c is called the segment of b in σ, , see Figure 2. Two balls b and with their centers c and respectively on a 1-face σ are adjacent if does not contain any other ball center. In this case the corresponding weighted vertices of b and are also called adjacent. Any two balls or weighted vertices that are not adjacent are called non-adjacent. We use to denote the Euclidean distance between two points and use to denote the length of a curve segment . Let be a set of balls that protect σ where with . We require that the balls satisfy the following conditions:
- (C1)
- and are centered at u and v respectively. These will be called the vertex balls.
- (C2)
- σ is covered by the balls, that is, and any two adjacent balls and intersect deeply, that is, where .
- (C3)
- No point in is contained in a ball non-adjacent to .
Notice that the choice of the constant in C2 is a little arbitrary. We need only a factor of in the expression and a follow-up analysis with other constants are also possible.
Figure 2.
Covering 1-faces : (left) A 1-face σ between u and v is being protected. The ball b shown with solid boundary has as the curve segment between and . The balls satisfy C1 and C2 but intersect arbitrarily. (right) Balls are refined and they start satisfying separation properties C1-C3.
We will maintain a point set with the following properties throughout the algorithm: all points in S except those in are unweighted and no unweighted point has a negative weighted distance to any other point. This means each unweighted point has non-empty. We call such a point set admissible.
It is worthwhile to note that one of the consequences of conditions C1-C3 would be the following result which would imply R2 in Lemma 2.
Lemma 1 Let S be an admissible point set satisfying conditions C1-C3. Let p and q be adjacent weighted vertices on a 1-face σ. is the only Voronoi facet in that intersects .
Let z be any point in . Let and be the balls centered at p and q respectively. The point z is contained in . Due to property C3, z being a point in cannot lie inside any ball other than and . We remark that and may have a common intersection with another ball, but z cannot be contained in that ball. Therefore, z cannot lie on any Voronoi facet partly defined by a point other than p and q. However, has to intersect at least one Voronoi facet since p and q lie in two different Voronoi cells. Therefore, the only Voronoi facet which intersects is .
For any and any triangle , define to be the maximum weighted distance between the vertices of t and points in . This is the maximum weighted distance between vertices of t and the points where the dual Voronoi edge of t intersects σ.
λ-property: We say S has the λ-weight property if each point in S has a weight at most . We say S has the λ-size property if for each triangle and S has the λ-weight property.
The following observation is at the heart of our refinement algorithm (see Section 7. in appendix for a proof sketch).
Lemma 2 Let be an admissible point set and be a point on a 2-face σ. Let be the set of all connected components in that intersect a Voronoi edge. There exists a constant so that hypotheses H1 and H2 imply results R1 and R2 where
- (H1)
- S satisfies λ-size property.
- (H2)
- Weighted points in S satisfy C1-C3.
- (R1)
- is a 2-disk where any edge of intersects at most once and any facet of intersects in an empty set or an open curve.
- (R2)
- If , at least two Voronoi facets of intersect , each intersecting one of the curve segments between p and its adjacent weighted points (possibly two) in .
Interpreted in terms of the Delaunay triangulation, the conclusion of the above lemma implies that the triangles incident to p and restricted with respect to σ form a topological disk around p. This disk has p at the boundary if and only if p is in . Furthermore, if p is in , it is connected to its two adjacent weighted points in on this disk. We will formulate a disk condition with these properties. Our refinement algorithm is primarily driven by this disk condition. The conclusion of Lemma 2 fails only if either there is a protecting ball with radius more than λ, or there is a triangle for which for some . However, since we do not know which of the above two cases has happened, we take a conservative approach. We compute the maximum radius of all protecting balls and also compute the maximum over all t and σ. Let x be the point of intersection of a Voronoi edge with D which realizes . If we refine the largest protecting ball. Otherwise, we insert x. In the first case we are ensured that we are refining balls of size larger than a fixed positive constant. In the second case, we are inserting a point in a compact domain with a positive lower bound on its distances to every other points. Termination by packing argument follows.
For the above algorithm to work, it is important that the balls satisfy C1-C3 when balls are sufficiently small. It turns out that it is difficult to maintain the condition C3 at early phases when the balls are relatively large. We replace C3 by the following two conditions that are maintained by the ball refinement algorithm. These conditions imply C3 when the balls are small enough. For a 1-face covered by balls these conditions are:
- (C3.a)
- Let be any ball in . For an adjacent ball , if is contained in , then .
- (C3.b)
- Any two balls centered in different 1-faces do not intersect and any two non-adjacent balls centered on a common 1-face have a weighted distance larger than the radius of the smaller ball.
Lemma 3 There exists a so that, if all protecting balls are smaller than λ, C3.a and C3.b imply C3.
Consider any two non-adjacent balls and . If c and are on different 1-faces, b and do not intersect by C3.b. Then C3 is satisfied trivially. So, assume that c and belong to a common 1-face σ.
We show that and do not intersect for sufficiently small λ. It follows from the differentiability of σ that there exists a so that any ball of size smaller than λ intersects σ in a single segment. Assuming that b and have radii smaller than λ, we have and . We claim that no point in can lie in when λ is sufficiently small. If there were such a point, there would exists a ball with one of the following properties: (i) either is adjacent to b and its center lies in , or (ii) is adjacent to and lies in . Without loss of generality, assume that (i) holds since the other case can be argued exactly the same way.
We know that the length is at least by property C3.a. Making λ sufficiently small, can be set arbitrarily close to which would imply that can be made arbitrarily close to r. This would contradict that is at least . Therefore, we can claim that the curve segments of two non-adjacent balls cannot intersect if they are centered on a same 1-face σ.
2.2. Ball refinement
The ball refinement routine simply removes a ball and covers the curve segment between the centers of its adjacent balls with balls of smaller radii. Therefore, we encounter the generic situation where a curve segment needs to be covered by protecting balls whose radii are determined by a given parameter . The points x and y are the right and left end points of some segments, say and respectively, see Figure 3. We call this routine Cover().
We proceed from x toward y along the curve while computing the balls that satisfy conditions C1, C2, and C3.a. Condition C3.b is taken care of by another routine called Separate. As we walk from x to y, each step places a new ball of radius α that intersects deeply with the previous ball while covering a new piece of the curve. When we reach y, we place a ball that intersects deeply with both the endpoint ball and the previous one in the walk.
More specifically, suppose that is already computed. Let . We compute a small ball that aids the computation of , see Figure 3. The aiding ball helps compute the next ball so that its center is not contained in the segment of the previous ball. Among the two end points of segment , we use the one which is further from x. Let this end point be . The center of the next ball is placed at .
Figure 3.
Curve segment between x and y is being covered. Aiding balls are shown with solid boundaries. Notice how the centers of and are placed with the aiding balls. The end game with enlarged aiding ball is shown on left, the other case is shown on right.
We will eventually encounter one of two situations near the end: either extends past or contains y. These situations are shown in the left and right images of Figure 3, respectively. In the first case may violate C3.a and in the second case may not intersect deeply violating C2. In these cases we conduct an end game. If , we throw away and take as enlarged concentrically to a radius . In the other case when contains y, we enlarge to a radius of . Cover terminates after the end game. Lemma 4 is proved in the appendix.
Lemma 4 Let b be a ball adjacent to and in a set of balls that satisfy C1, C2, and C3.a. Suppose we replace b with Cover where is the segment between and . Then, for α less than the radii of the balls , and , C1, C2, and C3.a remain satisfied after Cover terminates.
Cover does not necessarily satisfy C3.b. We use the routine Separate to enforce C3.b on a set of balls . This routine calls RefineBall(b) which removes the ball b and replaces it with smaller balls.
| Separate() |
|
| RefineBall (b) |
| endwhile. |
|
Lemma 5 If Separate issues a call to refine a ball b, its radius must be more than a fixed positive constant .
First assume that the two balls and considered by Separate belong to the same 1-face σ. By assumption . Let x be any point where the boundary spheres of b and meet. If θ is the angle between the normals to b and at x, the squared weighted distance between b and is given by . For , this weighted distance is more than when which is satisfied for . The curve can be assumed to lie within cones having apexes at c and and arbitrarily small aperture angles if r and hence is sufficiently small. Since and do not intersect if r is small enough (Proof of Lemma 3), the curve needs to avoid the common intersection of b and . These two constraints force the angle θ to be close to π as r approaches zero. In other words, there is a fixed positive constant so that if , the weighted distance between b and becomes larger than .
Next, assume that b and have centers on different 1-faces. We need to consider the special case of vertex balls before we argue about this case. A vertex ball b can intersect a ball whose center lies on a different 1-face only if b’s radius is more than a fixed positive constant. This is true because we always refine the larger of the two such intersecting balls and there is a positive distance between a vertex and any 1-faces that do not contain it. This observation with the argument in the previous paragraph imply that a vertex ball is refined by Separate only if its size is more than a fixed positive constant. Since no vertex balls can be smaller than a fixed positive constant, two balls centered on two different 1-faces intersect only if the larger ball has a radius more than a fixed positive constant .
It follows that the lemma holds with .
| RefineBall(b) |
| If b covers , let be the minimum of the radii of balls adjacent to b on σ and b itself. |
|
Lemma 6 (i) RefineBall terminates and (ii) maintains C1, C2, C3.a, and C3.b.
(i) : Observe that RefineBall makes recursive calls to itself and through Separate. Consider the trees of ball refinements made by these recursive calls. An internal node b in the trees represents a ball b that is refined into smaller balls (children).
We observe that every internal node except the roots is refined by Separate. The only way RefineBall can call itself is when a ball is to be refined in step 1. But, then becomes a root. All other calls to RefineBall are generated by Separate.
By Lemma 5, Separate calls RefineBall on a ball b only if the size of b is larger than a fixed positive constant . The children of a node b are created by Cover which, by construction, creates only finitely many balls with radius at most th the radius of b. The height of any refinement tree is finite since any path from the root to a leaf has internal nodes with radius larger than and each level decreases the radius by a factor or less. Also, each node has finitely many children. Therefore, each refinement tree is finite. Now we argue that the number of roots and hence the entire set of refinement trees is finite implying that RefineBall terminates.
Except for the first ball b, RefineBall(b) creates a root for each in step 1. If such a root is created, the ball b must be a vertex ball. Later in recursion, a call to RefineBall on a vertex ball can only be given by Separate. Therefore, each root except b can be associated with a call to RefineBall by Separate on a vertex ball. Observe the following: only a fixed number of roots are created per vertex ball; a vertex ball is shrunk by a factor of two between two successive calls to refine it; Separate calls for refining a vertex ball only if its size is larger than a fixed positive constant (Lemma 5). These observations mean that only finitely many roots are created.
(ii): Almost immediate: assume that C1, C2, and C3.a hold before calling RefineBall. It creates new balls by calling Cover which satisfies C1, C2, and C3.a (Lemma 4). If a ball does not satisfy C3.b (may happen only after a vertex ball is refined), it refines it by calling Separate. The claim follows.
3. Meshing Algorithm
The algorithm for meshing D first protects the 1-faces with Protect(D,λ) where λ is a user defined parameter. It acts as an input scale parameter which becomes an upper limit for the radii of the protecting balls.
| Protect(D,λ) |
|
Lemma 7 Protect terminates with balls satisfying C1, C2, C3.a, and C3.b.
Observe that at the end of step 2, Protect creates a set of finitely many balls (most likely quite large). Each call to RefineBall on a ball b creates only finitely many balls as output (Lemma 6). Since a ball is refined only if its radius is more than , and since each refine shrinks the radii by at least a factor of 2, there are only finitely many balls created in step 3.
Termination of step 4 follows from Lemma 5. Hence Protect terminates. At termination it must satisfy C1, C2, C3.a, and C3.b since it refines balls with Cover and calls Separate to enforce C3.b.
After the initial protection of , refinement of begins. In this phase Delaunay refinement is run with a disk condition which can be seen as a generalization of a similar condition used in [3, 4]. See Figure 4 for more explanations. Let p be a point on a 2-face σ and let be the set of triangles in that are incident to p.
DiskCondition(p) : (D1) For each containing p, the underlying space of is a 2-disk, (D2) point p is in the interior of this 2-disk if and only if , (D3) in , p is not connected to any other point on which is not adjacent to it, (D4) all vertices of are in σ.
Once the restricted Delaunay triangles are collected, the above checks are only combinatorial. One may notice that D1 and D2 are dual to R1 and R2 of Lemma 2. We assume that as we insert points, weighted or unweighted, and get updated appropriately.
Figure 4.
Disk condition: (left) Triangles incident to point are assumed to be restricted to σ; they do not form a disk since they form two disks pinched at p violating condition D1. (middle) The point has a topological disk but some of its vertices (lightly shaded) belong to τ violating condition D4. (right) Points p and q satisfy the disk condition. Point p, an interior point in σ, lies in the interior of its disk in σ. The point q, a boundary point, has three disks for each of the three 2-faces.
| DelPSC |
|
Notice that in step 2(a) we refine either a ball or a triangle if either D1 or D2 is violated. However, for D3 or D4 violations in step 2(b), we only refine a triangle. This is important because D3 and D4 are not covered by Lemma 2 and may be violated no matter how small the balls are. We argue separately for D3 and D4 in the termination proof. In step 2(c) we refine triangles to reach the refinement level of the input scale.
We observe that DelPSC never inserts unweighted points inside any protecting ball. If the inserted point x in step 2(a) lies in a protecting ball , its weighted distance to q would be non-positive. Its weighted distance to its nearest Voronoi neighbor in S would even be smaller. Since the largest ball has a positive radius, x would not be inserted (we would call RefineBall(b) instead). If x is inserted in step 2(b), the point p is connected to a point q where either or p and q are non-adjacent weighted points on a 1-face. In both cases p and q have a positive weighted distance ensured by C3.b. Therefore, a restricted triangle t incident to has positive. It follows that the point x which realizes the maximum of over all t and σ has a positive weighted distance to its nearest Voronoi neighbor in S. Hence x cannot lie in a protecting ball. Finally, since , any point x inserted in step 2(c) has a positive distance to its Voronoi neighbors, and thus outside of every protecting ball. Therefore, point x has a positive weighted distance from p and hence cannot be inside a ball.
Guarantees: The analysis of the algorithm establishes two main facts: (i) the algorithm terminates, and (ii) at termination the output mesh has guarantees G1 and G2:
- (G1)
- For each , is a 2-manifold with vertices only in σ. Further, is homeomorphic to with vertices only in .
- (G2)
- There exists a so that if , the output mesh of DelPSC(D,λ) is homeomorphic to . Further, this homeomorphism respects stratification with vertex restrictions, that is, for , is homeomorphic to where and vertices of lie in σ.
Theorem 1 DelPSC terminates.
First, we argue that if the algorithm refines a ball, its radius is larger than a fixed positive constant. Assume that and have been defined as in the algorithm.
Consider a vertex p on a 2-face σ. The conclusion of Lemma 2 implies disk conditions D1 and D2. Therefore, if it does not hold for p, at least one of the premises of Lemma 2 does not hold. (H1) S does not satisfy the -property for some . (H2) Protecting balls do not satisfy C1-C3. But, when the disk condition is checked, the protecting balls satisfy condition C1, C2, C3.a, and C3.b due to Lemma 6(ii). Therefore, if H2 has failed, at least one ball has a radius more than where satisfies Lemma 3. The argument implies . Therefore, if a ball is refined its radius is more than δ.
The entire ball refinement can be represented with trees as in the proof of Lemma 7 where a ball is refined only if its radius is at least a fixed positive constant. The argument for Lemma 7 still holds to claim that only finitely many balls are refined altogether. Therefore, the algorithm cannot refine balls forever. This also implies that the minimum size of the balls remains larger than a fixed positive constant, say .
Now we argue that each point inserted by the algorithm maintains a lower bound on its distance to all other points. Then, a standard packing argument implies termination. In step 2(a), each inserted point x maintains a weighted distance at least if it is inserted because of violation of either D1 or D2. If D3 or D4 is violated in step 2(b), the weighted distance of x from p is at least half the weighted distance between p and a point q where either p and q are non-adjacent points in or q lies on a different 2-face. Since protecting balls have a minimum size and any two intersecting non-adjacent balls maintain a weighted distance larger than the of the radius of the smaller ball, the weighted distance between p and q is larger than a fixed positive constant. Hence, x has a distance more than a fixed positive constant from all other points. The only remaining case is step 2(c) where a point is inserted only if its weighted distance is at least from all other points.
4. Proof of Guarantees
Let M denote the output mesh of DelPSC.
Theorem 2 M has guarantee G1.
At the end of Mesh2Complex the disk condition ensures that is a simplicial complex where each vertex v belongs to σ and has a 2-disk as its star. It follows from a result in PL topology that is a 2-manifold when DelPSC terminates.
The boundary of has all weighted vertices in . Each such point p is connected to its adjacent vertices in by the disk condition. Therefore, the boundary of consists of edges that connect adjacent vertices in and hence this boundary is homeomorphic to .
To prove G2 we use a result of Edelsbrunner and Shah [17] about the extended topological ball property (TBP). It can be shown that the following two properties P1 and P2 imply the extended TBP [8]. Therefore, according to the Edelsbrunner-Shah [17] result, the underlying space of is homeomorphic to the if P1 and P2 hold. Let F be a k-face of where S is the output vertex set.
- (P1)
- If F intersects an element , the intersection is a closed -ball.
- (P2)
- There is a unique lowest dimensional element so that F intersects and only elements that are incident to .
Lemma 2 almost provides condition P1 except for the case that may intersect a patch τ where (Figure 7 (middle, right)). Lemma 8 establishes that this is not possible. Lemma 9 gives P2. Proofs of both of them appear in the appendix.
Lemma 8 There exists a constant so that following holds. Let S be the point set output by DelPSC for some . Then for each point , .
Lemma 9 Let S be the point set as defined in Lemma 8. Let F be a k-face in . There is an element so that F intersects and only elements in D that have on their boundary.
Theorem 3 M satisfies G2.
For a sufficiently small , DelPSC satisfies the conditions of Lemma 8 and Lemma 9. This means that properties P1 and P2 are satisfied when λ is sufficiently small. Also when P1 and P2 are satisfied . It follows that the Edelsbrunner-Shah conditions are satisfied for the output M of DelPSC. Thus, M has an underlying space homeomorphic to . The homeomorphism constructed by Edelsbrunner and Shah actually respects the stratification, that is, for each , is homeomorphic to σ. Also, consists of only edges that connect adjacent vertices on σ. Furthermore, property G1 holds for any output of DelPSC. This means, . Because of the vertex balls, we also have trivially. Therefore, for , and has vertices only in σ.
5. Experimental Results
The input to our software is a polygonal model which we assume approximates a PSC. A user specified threshold for dihedral angles is used to select edges of the input as sharp features (elements of ) which we protect. Non-manifold and boundary edges are also included as elements of . In Figure 5 we show how our protection algorithm works on four different sets of curves.
Figure 5.
Protection: (left) A 2d example of curve protection. (middle) 2 different 3d examples of curve complexes where we have run Protect. (right) The final set of protecting balls returned by Mesh2Complex on the Wedge model.
In Table 1 we show both the time to protect curves as well as the time to generate the surface mesh for twelve different datasets. All experiments were run on a PC with a 2.8 GHz CPU and 2 GB RAM. We set the parameter λ to 5% of the minimum dimension of the bounding box for each model. Those datasets which took no time for protection had no sharp features in their input; the PSC they approximate was assumed to be a single smooth patch. The majority of the datasets were meshed in under one minute, only those with complicated topologies took longer.
Table 1.
Protection and Meshing times for our datasets.
| Dataset | Protection Time | Meshing Time | # of vertices |
|---|---|---|---|
| 9 Holes | 0.0 s | 105.6 s | 8725 |
| Arm | 52.6 s | 339.7 s | 20692 |
| Cog | 1.4 s | 56.2 s | 7697 |
| Guide | 2.6 s | 22.9 s | 4414 |
| Horn | 0.0 s | 21.5 s | 3192 |
| Lock | 10.6 s | 26.6 s | 5314 |
| Octo | 0.0 s | 7.3 s | 1410 |
| Part | 0.2 s | 23.2 s | 4261 |
| Plate | 17.9 s | 83.9 s | 9773 |
| Pump | 19.1 s | 319.6 s | 20301 |
| Swirl | 0.0 s | 61.1 s | 6880 |
| Wedge | 0.2 s | 13.2 s | 3080 |
In Figure 6 we show output meshes for various input shapes. These meshes include four smooth shapes (9 Holes, Horn, Octo, and Swirl), two non-manifolds (Horn and Wedge), and eight piecewise-smooth shapes (Part, Guide, Wedge, Cog, Arm, Lock, Pump, and Plate). DelPSC has been used to mesh dozens of other models; further experimentation was presented in a recent multimedia presentation [16].
Figure 6.
DelPSC output meshes. Left to right, top to bottom: Part, Guide, Wedge, 9 Holes, Cog, Horn, Arm, Octo, Lock, Swirl, Pump, and Plate, models.
6. Conclusions
We have presented a new practical algorithm to mesh a wide variety of geometric domains with the Delaunay refinement technique. Unlike previous approaches, this algorithm computes the protecting balls on the fly and thus gets rid of expensive computations to fix them a priori. The only domain dependent numerical computations are: (i) computing intersection points of the input curves with spheres (to determine the end points of ) and (ii) computing intersection of Voronoi edges with surface patches (to determine restricted triangles and their sizes; these computations are always necessary for the restricted Delaunay mesh [3, 8]). These computations are much easier than normal variation and gap size computations as proposed in [8].
The output mesh maintains a manifold property and with increasing level of refinement captures the topology of the input. In practice, most of the time this level is achieved fast with only the disk condition. An interesting aspect of the algorithm is that the input ‘non-smooth features’ are preserved in the output. However, one requirement is that an explicit representation of these features must be available so that we can sample them as a bootstrap step. For polygonal inputs, it is relatively easy to partition the space into a PSC using the thresholding approach described for the experiments, but for implicitly represented PSCs this may be more challenging.
Our experimental results, implemented in CGAL [18], further validate our claims of practicality and implementability. Some additional implementation details were reported a recent video presentation [16]. We note that this implementation of the algorithm uses a variation on the disk condition. Condition D3 has been changed to only require that each point p sampled from a curve is not connected to any non-adjacent points on σ (as opposed to requiring global disconnection from all non-adjacent samples in ).
In applications, sometimes it is desired that the mesh elements have good aspect ratios and their size adapts to the input feature size. Our algorithm can be easily extended to guarantee bounded aspect ratio for most triangles except for the ones near non-smooth regions. However, it cannot produce meshes with true adaptive sizing. Insertions to satisfy the disk condition can cause some varied sizing in the output meshes creating a non-uniform appearance. Many of our output meshes exhibit this property; it is caused by λ (which controls only the maximum triangle size) having a value larger than the triangle size needed to fulfill the disk condition. We note that since adaptive meshing ultimately requires an estimate of the input feature size, it may not be possible to produce such meshes without expensive computations. We also note that it should be possible to extend our algorithm to volumes using an approach similar to [19].
7. Proofs of lemmas in Section 2
For proving Lemma 2 we need some standard results from sampling theory [20, 21]. Recall that we have assumed each 2-face in the domain to be a compact subset of a smooth () 2-manifold without boundary. This helps us to carry forward a result on normal variation from smooth surfaces straightforwardly to the surface patches with boundaries. If surface elements are not assumed to be a subset of smooth surfaces without boundary, normal variation proof becomes more complicated with a worse error bound.
Let σ be any 2-face which by assumption is a subset of a smooth 2-manifold without boundary. The surface normal to σ at x is the surface normal of at x. Let M denote the medial axis of , that is, M is the closure of all points in which have two or more closest points in . Borrowing from [20], we define the local feature size . In the analysis, we use a global lower bound on the function. We define:
Recall that denotes the weighted distance between two weighted points x and y, that is, where and are the weights of x and y respectively. For a triangle t, consider the disk whose weighted distance to all of t’s vertices (possibly weighted) is zero. The radius of this disk is called the orthoradius of t.
Lemma 10 Let be some constant.
- (i)
- For any two points x and y in σ such that ,
- (a)
- the angle between the surface normals at x and at y is at most ;
- (b)
- the angle between and the surface normal at x is at least .
- (ii)
- Let be a triangle with vertices on σ which are possibly weighted with a weight for . Furthermore, let the orthoradius of be no more than . Then, .
(i.a) Follows from the normal variation result in [22].
(i.b) Follows from the Edge Normal Lemma in [21].
(ii) Let R and be the circumradius and orthoradius of respectively. For a sufficiently small ω, the circumcenter x lies inside the orthocircle of . Then, minimum weighted distance of x to any of three vertices of , is a lower bound on , that is,
Without loss of generality, assume that p subtends the largest angle in . Plugging and using in the Triangle Normal Lemma (Lemma 3.5 in [21]), we get that
Consider a weighted vertex on a 2-face σ. For any facet F of , we use to denote the plane of F. Let . Let . By the Feature Ball Lemma in [21] is a 2-disk.
Lemma 11 For any facet F of , if intersects , then and both and contain no closed curve.
Let be the dual Delaunay edge of F where intersects at x. We have from which we can derive that . It follows that
which is less than . By Lemma 10(ib), . There is no closed curve in because such a closed curve would bound a 2-disk in , which would contain a point x such that . This is a contradiction because by Lemma 10(i.a). Since contains no closed curve, neither does . This proves the claim.
Lemma 12 For any facet F of , if and conditions C1-C3 hold, then is either empty or a single open curve.
We assume that intersects since otherwise is empty and there is nothing to prove. First, we show that if is within a distance of λ from p, is a single open curve. Consider the disk . Let be the projection of onto . Let be the line through the center of orthogonal to . Let x be any point in . The angle between and the tangent plane at p is at most by Lemma 10(i.b). We already proved that . We are interested in an upper bound on the distance . Let be the orthogonal projection of x onto L. Consider the triangle . Observe that is the angle between and the tangent plane at p and is at least . We obtain
Let be the strip of points at distance or less from L. Since the radius of B is and is at most λ distance from p, the radius of is at least . It follows that the boundary of intersects in two disjoint circular arcs, say A and .
We already proved that there is no closed curve in (Lemma 11). Now we show that cannot contain two open curves. First, we eliminate the case where are two open curves each having an end point on . For this to happen, F has to intersect in more than one point, which is impossible by Lemma 1 if the protecting balls satisfy condition C1-C3. Therefore, we can assume that if has two open curves, at least one, say C, has both end points on the circular arcs A and/or . Consider the case where C has end points both in A and . The other curve, say , in must have an end point in at least one of A and . It follows that either A or should have an end point of both C and . Without loss of generality, assume that A has end points of both C and and let s and t be these end points. We observe that the line segment cannot make an angle with L less than the least angle made between L and a tangent to A. This least angle is made by the tangent to A at any of its end points. Since the width of is and the radius of is at least , this least angle is more than . Therefore, makes an angle of at least with L, or equivalently of at most with . Since , makes an angle of at most radians with . The line of intersects σ at two points, namely at s and t, where . Here we can use the Long Distance Lemma in [21] to obtain which contradicts .
Next, consider the case where C has both endpoints on a single arc, say A. Taking these end points as s and t we can argue as in the previous paragraph to reach a contradiction.
Third, we claim that for any facet F of , if F intersects , is a single open curve with endpoints in or in . We already proved that there is no closed curve in . Since F does not have any tangential contact with σ, is a set of open curves and the endpoints of any open curve in thus lie in or in . Assume to the contrary that contains two open curves, say ξ and . By our assumption, is within a distance of λ from p. We have shown before that is a single open curve. Follow from ξ to . When we leave ξ, we must leave F at a Voronoi edge . Afterwards, we stay in the plane and we must cross the support line of e again in order to reach . Therefore, some tangent to is parallel to e. However, the angle between the surface normal at some point on and would then be at least by Lemma 10(ii) since . This contradicts Lemma 10(i.a) proving the claim.
Recall that denote the components of that intersect a Voronoi edge of . We show that intersect and its faces in topological balls if S has the λ-size property for a sufficiently small λ. We need the following result which says that when λ is sufficiently small, each Voronoi cell contains at least one Voronoi edge intersecting σ if .
Lemma 13 There exists a so that if S satisfies the λ-size property, then is non-empty for any
Suppose that is empty, that is, no Voronoi edge of intersects σ. By our assumption is non-empty and let be a weighted point in . Because of Lemma 1, an edge of has to intersect σ. Consider walking on a path in σ from p to q. Let be sequence of vertices whose Voronoi cells are encountered along this walk. Since no edge of intersects σ and some edge of intersects σ, there exists two consecutive vertices and in this sequence so that no edge of intersects σ whereas some edge of does intersect σ. By Lemma 2 we can claim that is a disk. A boundary cycle of overlaps with the boundary of . This is impossible as the curves on the boundary of intersect Voronoi edges whereas those on the boundary of do not.
Now we are ready to prove the main claim of Lemma 2. Figure 7 explains more about its implications.
Figure 7.
(left) A 2-face σ has intersected where is not topological disk, this is not possible by R1. (middle) is a disk but another face τ where intersects some edge of . It does not violate R1 but violates Lemma 8. (right) Within B, σ intersects in a topological disk. There is a different component (τ) which does not intersect any Voronoi edge and hence does not contribute any dual restricted triangle incident to p. R1 does not prevent it though Lemma 8 does.
Lemma 14 There is a so that if H1 and H2 of Lemma 2 are satisfied, then is a topological disk. Furthermore, each Voronoi edge and facet that intersects does so in a single point and single open curve respectively.
Recall . Consider an edge of that intersects . By Lemma 10(ii), . Then, by Lemma 10(i.a), is monotonic in the direction of e when λ is sufficiently small. Therefore, e intersects and hence at most once. Each facet of that intersects intersects it in a single open curve by Lemma 12. This completes the proof of the second part of the lemma.
We show that the argument of Lemma 4.12 in [4] can be used here to establish that is a topological disk. Following the notation in the proof of this lemma, let us call a cycle in that intersects a Voronoi edge a type 1 cycle. Let X denote the set of type 1 cycles. Each Voronoi facet containing a point in X has a Voronoi edge intersecting . By H1, this intersection point is within λ distance of p. Therefore, B intersects all Voronoi facets that contain a point in X. These Voronoi facets intersect in a single open curve which is in B. Also, if intersects , the entire curve segment is contained in the protecting ball of p. This means each point of X is within λ distance of p. Since each cycle in X is a piecewise smooth closed curve where each piece is either an open curve contained in a Voronoi facet or a segment of , it is contained completely in B. Therefore, each boundary of which intersects a Voronoi edge lies in B.
Consider the arrangement of closed curves in X on which is a topological disk according to the Feature Ball Lemma [21]. Let be a closed curve which does not contain any other curve of X inside. At least one such curve exists since X is not empty by Lemma 13. The closed curve C must bound a disk, say D in σ. At this point we can invoke the proof of Lemma 4.12 in [4] to prove that establishing our first claim. The boundary lies in X which has at most a single interval in any Voronoi facet as we argued above. This establishes our second claim.
[Proof of Lemma 2.]
Proof of R1: Follows from Lemma 14.
Proof of R2: Since conditions C1-C3 hold, Lemma 1 can be applied. The conclusion of this lemma implies R2.
[Proof of Lemma 4.] Cover affects only the sequence of balls as referred in its description. By construction the new balls cover entire curve segment and vertex balls are not changed. So, C1 and the first part of C2 are satisfied. To prove the second part consider a ball . We have following cases:
Case 1 (): We need to examine the effect of the new ball onto . First notice that cannot contain by construction. Therefore, C3.a holds trivially. If is not created with the end game, the radius of is α and where by construction. This satisfies C2. If is created with the end game, then two cases occur. If is the enlarged aiding ball , its radius is . Then, . This satisfies C2. In the case where is not the enlarged aiding ball, its radius is . We can similarly argue that . So, satisfies C2.
Case 2 (): In this case the center of cannot lie in by construction. So, C3.a holds trivially. The ball is necessarily created with the end game. If is enlarged , satisfying C2. In the case where is not the enlarged aiding ball, its radius is . Then, satisfying C2.
Case 3 (): If is adjacent to and , it satisfies C2 by arguments in previous two cases. Also, is not large enough to contain or . Hence C3.a also holds. Now consider the case where is adjacent to another ball b where and . If neither nor b is created by end game, we have satisfying C2. Also, in this case which satisfies C3.a. We are left with the case when either of b and is created with the end game. With similar arguments, one can check that C2 and C3.a hold in these cases too.
8. Proofs of lemmas in Section 4
[Proof of Lemma 8.] Recall that denotes the set of connected components in intersecting a Voronoi edge. We are required to prove that . Assume to the contrary that . Let C be any connected component in . and where . Voronoi cells partition . A path on from to a sample point passes through the connected components of this partition. We must encounter two adjacent components along this path, say and , where for and for some . This holds because the first and last components satisfy this property. Then, by PSC Lemma (Lemma 2), is a topological disk intersecting Voronoi edges of . Since and are adjacent, there is a Voronoi edge e incident to both and which is intersected by . This means has a triangle with a vertex s which is not in , a condition forbidden by DiskCondition. Since we are considering the point set output by DelPSC, the DiskCondition must have been satisfied.
[Proof of Lemma 9.] Case 1: F is a Voronoi cell . Let be the lowest dimensional element containing p. We claim all elements in D intersecting F have in their boundaries and thus is unique. If not, let there be another where . Notice that since otherwise is either an element of D whose dimension is lower than or both of which are impossible. It follows that . But we already argued above that intersects only elements in D that contain p.
Case 2: F is a Voronoi facet . Let be a lowest dimensional element that F intersects. Assume there is another intersecting F where . We go over different dimensions of each time reaching a contradiction.
Assume ; intersects F and does not contain on its boundary. Two cases can arise. Either (i) and are disjoint within or , or (ii) and have a common boundary in and . Case (i) cannot happen due to the claim in Case 1. For (ii) to happen, both p and q have to be on the common boundaries of and , which means that p and q have to be on some element in . Observe that p and q are non-adjacent since otherwise has to intersect the common boundary of and whose dimension is lower than that of . But this would contradict the disk condition that no two non-adjacent vertices in are connected by a restricted edge.
The above argument implies that all elements intersecting F have as a subset.
Case 3: F is a Voronoi edge. Certainly F cannot intersect a 2-face more than once due to Lemma 2 (R1). The other possibility is that , , and F intersects . But then a Voronoi cell adjacent to F would intersect two 2-faces and and t is in both and violating the disk condition.
Acknowledgments
We acknowledge discussions with Siu-Wing Cheng which helped carrying out this research. Research supported by NSF, USA (CCF-0430735 and CCF-0635008).
References
- Chew, L.P. Guaranteed-quality triangular meshes. Technical Report TR-89-983, Comp. Science Department, Cornell University: Ithaca, NY, USA, 1989. [Google Scholar]
- Chew, L.P. Guaranteed-quality mesh generation for curved surfaces. In Proceedings of the 9th Symposium on Computational Geometry, San Diego, CA, USA, May 19-21, 1993; pp. 274–280.
- Boissonnat, J.D.; Oudot, S. Provably good sampling and meshing of surfaces. Graph. Models 2005, 67, 405–451. [Google Scholar] [CrossRef]
- Cheng, S.W.; Dey, T.K.; Ramos, E.A.; Ray, T. Sampling and meshing a surface with guaranteed topology and geometry. SIAM J. Comput. 2007, 37, 1199–1227. [Google Scholar] [CrossRef]
- Shewchuk, J.R. Mesh generation for domains with small angles. In Proceedings of the 16th Symposium on Computational Geometry, Hong Kong, China, June 12-14, 2000; pp. 1–10.
- Boissonnat, J.D.; Oudot, S. Provably good sampling and meshing of Lipschitz surfaces. In Proceedings of the 22nd Symposium on Computational geometry, Sedona, AZ, USA, June 5-7, 2006; pp. 337–346.
- Rineau, L.; Yvinec, M. Meshing 3D Domains Bounded by Piecewise Smooth Surfaces. In Proceedings of the 16th International Meshing Roundtable, Seattle, WA, USA, October 14-17, 2007; pp. 443–460.
- Cheng, S.W.; Dey, T.K.; Ramos, E.A. Delaunay refinement for piecewise smooth complexes. In Proceedings of the 18th ACM-SIAM Symposium on Discrete Algorithms, New Orleans, LA, USA, January 7-9, 2007; pp. 1096–1105.
- Cheng, S.W.; Poon, S.H. Three-Dimensional Delaunay Mesh Generation. Disc. Comput. Geom. 2006, 36, 419–456. [Google Scholar] [CrossRef]
- Cohen-Steiner, D.; de Verdière, É.C.; Yvinec, M. Conforming Delaunay triangulations in 3D. Comput. Geom. 2004, 28, 217–233. [Google Scholar] [CrossRef]
- Murphy, M.; Mount, D.M.; Gable, C.W. A Point-Placement Strategy for Conforming Delaunay Tetrahedralization. Int. J. Comput. Geom. Appl. 2001, 11, 669–682. [Google Scholar] [CrossRef]
- Aurenhammer, F. Power Diagrams: Properties, Algorithms and Applications. SIAM J. Comput. 1987, 16, 78–96. [Google Scholar] [CrossRef]
- Edelsbrunner, H. Geometry and Topology for Mesh Generation; Cambridge University: Cambridge, UK, 2001. [Google Scholar]
- Ruppert, J. A Delaunay Refinement Algorithm for Quality 2-Dimensional Mesh Generation. J. Algorithms 1995, 18, 548–585. [Google Scholar] [CrossRef]
- Cheng, S.W.; Dey, T.K.; Levine, J.A. A practical Delaunay meshing algorithm for a large class of domains. In Proceedings of the 16th International Meshing Roundtable, Seattle, Washington, USA, October 14-17, 2007; pp. 477–494.
- Dey, T.K.; Levine, J.A. DelPSC: a Delaunay mesher for piecewise smooth complexes (multimedia submission). In Proceedings of the 24th ACM Symposium on Computational Geometry, College Park, MD, USA, June 9-11, 2008; pp. 220–221.
- Edelsbrunner, H.; Shah, N.R. Triangulating Topological Spaces. Int. J. Comput. Geometry Appl. 1997, 7, 365–378. [Google Scholar] [CrossRef]
- Cgal. Computational Geometry Algorithms Library. Available online: http://www.cgal.org (accessed September 25, 2009).
- Oudot, S.; Rineau, L.; Yvinec, M. Meshing volumes bounded by smooth surfaces. In Proceedings of the 14th International Meshing Roundtable, San Diego, CA, USA, September 11-14, 2005; pp. 203–219.
- Amenta, N.; Bern, M. Surface reconstruction by Voronoi filtering. Disc. Comput. Geom. 1999, 22, 481–504. [Google Scholar] [CrossRef]
- Dey, T.K. Curve and Surface Reconstruction: Algorithms with Mathematical Analysis; Cambridge University: New York, NY, USA, 2007. [Google Scholar]
- Amenta, N.; Dey, T. Normal variation with adaptive feature size. Available online: http://www.cse.ohio-state.edu/ tamaldey/paper/norvar/norvar.pdf (accessed September 25, 2009).
© 2009 by the authors; licensee Molecular Diversity Preservation International, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license http://creativecommons.org/licenses/by/3.0/.