Skip to main content
Log in

Overview of Shelling for 2-Manifold Surface Reconstruction Based on 3D Delaunay Triangulation

  • Published:
Journal of Mathematical Imaging and Vision Aims and scope Submit manuscript

Abstract

Recently, methods have been proposed to reconstruct a 2-manifold surface from a sparse cloud of points estimated from an image sequence. Once a 3D Delaunay triangulation is computed from the points, the surface is searched by growing a set of tetrahedra whose boundary is maintained 2-manifold. Shelling is a step that adds one tetrahedron at once to the growing set. This paper surveys properties that helps to understand the shelling performances: shelling provides most tetrahedra enclosed by the final surface, but it can “get stuck” or block in unexpected cases.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  1. Boissonnat, J.D.: Geometric structures for three-dimensional shape representation. ACM Trans. Graph. 3(4), 266–286 (1984)

  2. Boissonnat, J.D., Devillers, O., Pion, S., Teillaud, M., Yvinec, M.: Triangulations in CGAL. Comput. Geom. Theory Appl. 22, 5–19 (2002)

  3. Bruggesser, H., Mani, P.: Shellable decomposition of cells and spheres. Math. Scand. 29, 197–205 (1971)

    Article  MathSciNet  MATH  Google Scholar 

  4. Danaraj, G., Klee, V.: A representation of 2-dimensional pseudomanifolds and its use in the design of a linear-time shelling algorithm. Algorithmic aspects of combinatorics. Ann. Discrete Math. 2, 53–63 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  5. DeRose, T., Duchamp, T., Hoppe, H., McDonald, J.A., Stuetzle, W: Reconstructing two-dimensional manifolds from scattered data: motivations and background. Technical report 215, University of Washington (1991)

  6. Diestel, R.: Graph Theory. Graduated Texts in Mathematics. Springer, Heidelberg (2010)

    Google Scholar 

  7. Edelsbrunner, H.: An acyclicity theorem for cell complexes in d dimensions. Combinatorica 10(3), 251–260 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  8. Edelsbrunner, H.: Geometry and Topology for Mesh Generation. Cambridge University Press, Cambridge (2001)

    Book  MATH  Google Scholar 

  9. Gallier, J.: Notes on convex sets, polytopes, polyhedra, combinatorial topology, voronoi diagrams and Delaunay triangulation. Research report RR-6379, INRIA (2007)

  10. Gezahegne, A.: Surface reconstruction with constrained sculpting. Master of science thesis, University of California (2005)

  11. Giblin, P.: Graphs, Surfaces and Homology, 3rd edn. Cambridge University Press, Cambridge (2010)

    Book  MATH  Google Scholar 

  12. Hachimori, M.: Combinatorics of constructible complexes. PhD. Thesis, University of Tokyo (2000)

  13. Lhuillier, M., Yu, S.: Manifold surface reconstruction of an environment from sparse structure-from-motion data. CVIU 117(11), 1628–1644 (2013)

    Google Scholar 

  14. Lhuillier, M.: 2-manifold tests for 3D Delaunay triangulation-based surface reconstruction. J. Math. Imaging Vis. 51(1), 98–105 (2015)

  15. Litvinov, V., Lhuillier, M.: Incremental solid modeling from sparse and omnidirectional structure-from-motion data. British Machine Vision Conference, Bristol (2013)

  16. Litvinov, V., Lhuillier, M.: Incremental solid modeling from sparse structure-from-motion data with improved visual artifacts removal. International Conference on Pattern Recognition, Stockholm (2014)

  17. Lutz, F.H.: Combinatorial 3-manifold with 10 vertices. Beitrage zur Algebra und Geometrie 49(1), 97–106 (2008)

    MathSciNet  MATH  Google Scholar 

  18. Romanoni A., Matteucci M.: Incremental reconstruction of urban environments by edge-point Delaunay triangulation. International Conference on Intelligent Robots and Systems, Hamburg (2015)

  19. Sakai, K.: Simplicial Homology: A Short Course. Institute of Mathematics, University of Tsukuba, Tsukuba (2010)

    Google Scholar 

  20. Varadhan G., Krishnan S., Sriram TVN., Manocha D.: Topology preserving surface extraction using adaptive subdivision. In: Eurographics Symposium on Geometry Processing (2004)

  21. Vegter, G.: Computational topology. In: GoodMan, J., Rourke, J.O. (eds.) Handbook of Discrete and Computational Geometry. CRS Press, Boca Raton (2004)

    Google Scholar 

  22. Xia, J., He, Y., Han, S., Fu, C.W., Luo, F., Gu, X.: Parameterization of a star-shaped volumes using green’s functions. Lect. Notes Comput. Sci. 6130, 219–235 (2010)

    Article  Google Scholar 

  23. Yu S., Lhuillier M.: Incremental reconstruction of a manifold surface from sparse visual mapping. Joint 3DIM/3DPVT conference: 3D Imaging-Modeling-Processing-Visualization-Transmission, Zurich (2012)

  24. Ziegler, G.M.: Shelling polyhedral 3-balls and 4-polytopes. Discrete Comput. Geom. 19, 159–174 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  25. Ziegler, G.M.: Lectures on Polytope. Graduate Texts in Mathematics. Springer, Berlin (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Maxime Lhuillier.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (pdf 143 KB)

Appendices

Appendix 1: Proofs for Prerequisites of Star-Shape Shelling

1.1 Proof of Lemma 6

First we show that there are points \(\mathbf {x}'\in \mathring{\Delta }_x\) and \(\mathbf {y}'\in \mathbf {cx}'{\setminus } |A|\). Since |A| is a closed set in \(\mathbb {R}^3\), there is \(\epsilon > 0\) such that \(B(\mathbf {y},\epsilon )\cap |A|=\emptyset \). Let \(\tau \in \mathbb {R}\) be such that \(\mathbf {x}-\mathbf {c}= \tau (\mathbf {y}-\mathbf {c})\). We have \(\tau > 1\) since \(\mathbf {y}\) is between \(\mathbf {x}\) and \(\mathbf {c}\). If \(\mathbf {x}\in |\partial \Delta _x|\), there is a point \(\mathbf {x}'\) very close to \(\mathbf {x}\) such that \(\mathbf {x}'\in \mathring{\Delta }_x\) and \(\mathbf {y}'= \mathbf {c}+(\mathbf {x}'-\mathbf {c})/\tau \in B(\mathbf {y},\epsilon )\). If \(\mathbf {x}\notin |\partial \Delta _x|\), we set \(\mathbf {x}'=\mathbf {x}\) and \(\mathbf {y}'=\mathbf {y}\).

Second we show that there are tetrahedron \(\Delta _y\in T{\setminus } A\) and \(\mathbf {x}''\in \mathring{\Delta }_x\) such that \(\mathbf {y}''= \mathbf {c}+(\mathbf {x}''-\mathbf {c})/\tau \in \mathring{\Delta }_y\). Since |T| is convex and includes \(\{\mathbf {c},\mathbf {x'}\}\), \(\mathbf {y'}\in |T|\). Since \(\mathbf {y'}\notin |A|\), there is a tetrahedron \(\Delta _y\in T{\setminus } A\) such that \(\mathbf {y}'\in \Delta _y\). If \(\mathbf {y}'\in |\partial \Delta _y|\), there is a point \(\mathbf {y}''\) very close to \(\mathbf {y}'\) such that \(\mathbf {y}''\in \mathring{\Delta }_y\) and \(\mathbf {x}''= \mathbf {c}+\tau (\mathbf {y}''-\mathbf {c})\in \mathring{\Delta }_x\).

Last we find \(\tilde{\mathbf {x}}\) and \(\tilde{\mathbf {y}}\). Since \(\mathring{\Delta }_x\) and \(\mathring{\Delta }_y\) are open, we define \(B'_x= B(\mathbf {x}'',\tau \epsilon ')\) and \(B'_y= B(\mathbf {y}'',\epsilon ')\) such that \(B'_x\subset \mathring{\Delta }_x\) and \(B'_y\subset \mathring{\Delta }_y\). Let V be the union for every edge \(e\in c(T)\) of the plane(s) that include(s) both e and \(\mathbf {c}\). Since we are in a non-degenerate case, e and \(\mathbf {c}\) are not collinear. Thus V is a finite union of planes and we cannot have \(B'_x\subseteq V\). There is \(\tilde{\mathbf {x}}\in B'_x{\setminus } V\subseteq \mathring{\Delta }_x\). This implies that \(\mathbf {c}\tilde{\mathbf {x}}\) does not intersect the edges in c(T) and \(\tilde{\mathbf {y}}= \mathbf {c}+(\tilde{\mathbf {x}}-\mathbf {c})/\tau \in B'_y\subseteq \mathring{\Delta }_y\).

1.2 Proof of Lemma 7

First we show that the set of the triangles \(t_i\in c(T)\) intersected by \((\mathbf {xy})\) are such that \(\mathbf {x}_{\lambda _i}= (\mathbf {xy})\cap t_i\) and the \(\lambda _i\) are distinct. If \(\mathbf {x}_\lambda \) is in a triangle \(t_\lambda \in c(T)\), \(t_\lambda \cap (\mathbf {cx})\) is a line segment \(\mathbf {x}_{\lambda '_0}\mathbf {x}_{\lambda '_1}\) (indeed the intersection of two closed convexes is a closed convex). Furthermore, \(\lambda '_0=\lambda '_1\) (otherwise, \((\mathbf {xy})\) is in the plane of \(t_\lambda \) and intersects an edge of \(t_\lambda \)) and we obtain \(\mathbf {x}_\lambda = (\mathbf {xy})\cap t_\lambda \). Let \(\lambda _i\in \mathbb {R}\) such that \(\mathbf {x}_{\lambda _i}\in t_i\). Now we show that \(\lambda _i=\lambda _j\) implies \(i=j\). Since \((\mathbf {xy})\) does not intersect the edges of \(t_i\), \(\mathbf {x}_{\lambda _i}\in \mathring{t}_i\). Thus \(t_i= t_j\) (Lemma 5), i.e. \(i= j\).

Second we note that there are at least two triangles \(t_i\), i.e. \(k\ge 1\). Indeed, \(\mathbf {x}\in \mathring{\Delta }_x\) and \(\Delta _x\in T\) imply that \((\mathbf {xy})\) intersects at least two triangles in \(\partial \Delta _x\subset c(T)\).

Third the \(\lambda _i\) are ordered such that \(\lambda _i< \lambda _{i+1}\) and we show that there is a tetrahedron \(\Delta _i\in T\) such that \(t_i\in \partial \Delta _i\), \(t_{i+1}\in \partial \Delta _i\) and \(\mathbf {x}_\lambda \in \Delta _i\) iff \(\lambda \in [\lambda _i,\lambda _{i+1}]\). Let \(\mathbf {m}_i= \mathbf {x}_{({\lambda _i}+{\lambda _{i+1}})/2}\). Since |T| is convex, there is a tetrahedron \(\Delta _i\in T\) such that \(\mathbf {m}_i\in \Delta _i\). Since \(\mathbf {m}_i\) is not in a triangle of c(T), \(\mathbf {m}_i\in \mathring{\Delta }_i\). Therefore \(\Delta _i\cap (\mathbf {xy})\) is a line segment \(\mathbf {x}_{\lambda '_0}\mathbf {x}_{\lambda '_1}\) such that \(\lambda '_0\ne \lambda '_1\). This implies that \(\mathbf {x}_\lambda \in \Delta _i\) iff \(\lambda \in [\lambda '_0,\lambda '_1]\). Furthermore \(\mathbf {x}_{\lambda '_\epsilon }\in |\partial \Delta _i|\) (indeed \(\mathbf {x}_{\lambda '_\epsilon }\notin \mathring{\Delta }_i\) which is open). Thus there are distinct triangles \(t_j\) and \(t_l\) in \(\partial \Delta _i\) such that \(\mathbf {x}_{\lambda '_0}\in t_j\) and \(\mathbf {x}_{\lambda '_1}\in t_l\) and \(\lambda '_0= \lambda _j\) and \(\lambda '_1= \lambda _l\). Since \(\lambda _j< \lambda < \lambda _l\) implies \(\mathbf {x}_\lambda \in \mathring{\Delta }_i\), which in turn implies \(\mathbf {x}_\lambda \notin t_m\) (Lemma 5), we have \(j+1=l\). Since \(\mathbf {m}_i\in \mathbf {x}_{\lambda _j}\mathbf {x}_{\lambda _{j+1}}\), we have \(j= i\). Thus \(t_i\in \partial \Delta _i\), \(t_{i+1}\in \partial \Delta _i\), \(\lambda '_0= \lambda _i\) and \(\lambda '_1= \lambda _{i+1}\).

Last we assume that a tetrahedron \(\Delta \in T\) meets \((\mathbf {xy})\cap \Delta \ne \emptyset \) and show that \(\Delta \) is a \(\Delta _i\). The proof is similar as in the third step above. We have \((\mathbf {xy})\cap \Delta = \mathbf {x}_{\tilde{\lambda }_0}\mathbf {x}_{\tilde{\lambda }_1}\) such that \(\tilde{\lambda }_0\le \tilde{\lambda }_1\) and \(\mathbf {x}_{\tilde{\lambda }_\epsilon }\) is in a triangle \(\tilde{t_\epsilon }\in \partial \Delta \). Since \((\mathbf {xy})\) does not intersect the \(\Delta \) edges, \((\mathbf {xy})\) intersects \(\mathring{\tilde{t_\epsilon }}\), which in turn implies that \(\tilde{\lambda }_0\ne \tilde{\lambda }_1\). Now there are distinct triangles \(t_j\) and \(t_l\) such that \(\tilde{t_0}= t_j\), \(\tilde{t_1}= t_l\), \(\tilde{\lambda }_0= \lambda _j\) and \(\tilde{\lambda }_1= \lambda _l\). Since \(\tilde{\lambda }_0< \lambda < \tilde{\lambda }_1\) implies \(\mathbf {x}_\lambda \in \mathring{\Delta }\), which in turn implies \(\mathbf {x}_\lambda \notin t_m\) (Lemma 5), we have \(l=j+1\).

1.3 Proof of Theorem 7

Let \(O\subseteq T\) be \(\mathbf {c}\)-star-shaped, a triangle \(t\in \partial O\), a tetrahedron \(\Delta \in O\) such that \(t\in \partial \Delta \), and show that \(\Delta \) and \(\mathbf {c}\) are in the same t half-space. If \(t\in \partial T\), both \(\Delta \) and \(\mathbf {c}\) are in the convex set T (indeed T is Delaunay) and thus there are in the same half-space of t. If \(t\notin \partial T\), there is a tetrahedron \(\Delta '\in T{\setminus } O\) such that \(t=\Delta \cap \Delta '\). Let \(\mathbf {b}\) be the barycentre of t. Since \(\mathbf {c}\) is not in the t plane, \(\mathring{\Delta }\cap \mathbf {bc}\ne \emptyset \) or \(\mathring{\Delta '}\cap \mathbf {bc}\ne \emptyset \). Assume (reductio ad absurdum) that \(\mathring{\Delta '}\cap \mathbf {bc}\ne \emptyset \). Since O is \(\mathbf {c}\)-star-shaped, \(\mathbf {bc}\subseteq |O|\). Therefore there is \(\Delta ''\in O\) such that \(\mathring{\Delta '}\cap \Delta ''\ne \emptyset \). Lemma 5 implies that \(\Delta '= \Delta ''\in O\), which contradicts \(\Delta '\in T{\setminus } O\).

Assume that \(O\subseteq T\) is not \(\mathbf {c}\)-star-shaped and show that there is a tetrahedron \(\Delta \in O\) and a triangle \(t\in \partial O\cap \partial \Delta \) such that \(\Delta \) and \(\mathbf {c}\) are not in the same t half-space. Since O is not \(\mathbf {c}\)-star-shaped, there is a point \(\mathbf {x}'\in |O|{\setminus }\{\mathbf {c}\}\) such that \(\mathbf {cx}'\) is not included in |O|. Thus there is a point \(\mathbf {y}'\in \mathbf {cx}'{\setminus } |O|\). Now we use Lemma 6 with \(A= O\). Let \(\Delta _x\in O\) be a tetrahedron such that \(\mathbf {x}'\in \Delta _x\). Thus there are tetrahedron \(\Delta _y\in T{\setminus } O\) and points \(\mathbf {x}\in \mathring{\Delta _x}\) and \(\mathbf {y}\in \mathring{\Delta _y}\cap \mathbf {cx}\) such that \((\mathbf {cx})\) does not intersect the edges in c(T). Then we obtain a tetrahedron series \(\Delta _i\) covering \(\mathbf {xy}\) as described by Lemma 7. There are j and m such that \(\Delta _j= \Delta _x\in O\) and \(\Delta _m= \Delta _y\in T{\setminus } O\). Since \(\mathbf {x}_0= \mathbf {x}\in \Delta _j\) and \(\mathbf {x}_1= \mathbf {y}\in \Delta _m \), \(j\le m\) and \(\lambda _m\le 1\). Therefore there is l such that \(j\le l< m\), \(\Delta _l\in O\), \(\Delta _{l+1}\in T{\setminus } O\) and \(\lambda _{l+1}\le \lambda _m\). Let \(\Delta = \Delta _l\) and the triangle \(t= \Delta _l\cap \Delta _{l+1}\). Note that \(\mathbf {x}_\lambda \in \Delta \) iff \(\lambda \in [\lambda _l,\lambda _{l+1}]\), \(\mathbf {x}_\lambda \in t\) iff \(\lambda =\lambda _{l+1}\), \(\lambda _{l+1}\le 1\), \(\mathbf {c}= \mathbf {x}_\mu \) with \(\mu > 1\) (\(\mathbf {x}_1\) is between \(\mathbf {x}_0\) and \(\mathbf {c}\)). Thus \(\Delta \) and \(\mathbf {c}\) are in different half-spaces of t.

Appendix 2: Proofs for Star-Shape Shelling

1.1 Proof of Lemma 12

We change the coordinate basis such that \(\mathbf {v}_1^T= \begin{pmatrix} 0&0&0\end{pmatrix}\), \(\mathbf {v}_2^T= \begin{pmatrix} 1&0&0\end{pmatrix}\), \(\mathbf {v}_3^T= \begin{pmatrix} 0&1&0\end{pmatrix}\), \(\mathbf {v}_4^T= \begin{pmatrix} 0&0&1\end{pmatrix}\). Thus

$$\begin{aligned} H'_1= & {} \{ (x_2,x_3,x_4)^T\in \mathbb {R}^3, x_2+x_3+x_4\ge 1\} \nonumber \\ H'_2= & {} \{ (x_2,x_3,x_4)^T\in \mathbb {R}^3, x_2\le 0\} \nonumber \\ H'_3= & {} \{ (x_2,x_3,x_4)^T\in \mathbb {R}^3, x_3\le 0\} \nonumber \\ H'_4= & {} \{ (x_2,x_3,x_4)^T\in \mathbb {R}^3, x_4\le 0\}. \end{aligned}$$
(29)

Now we see that \((x_2,x_3,x_4)\in H'_1\cap H'_2\cap H'_3\cap H'_4\) is impossible.

Assume that \(\mathbf {c}\in H'_1\cap H_2\cap H_3\cap H_4\). We have \(\mathbf {v}_1\in H_2\cap H_3\cap H_4\) (indeed \(\Delta = H_1\cap H_2\cap H_3\cap H_4\)). Since \(H_2\cap H_3\cap H_4\) is convex and includes both \(\mathbf {c}\) and \(\mathbf {v}_1\), \(\mathbf {cv}_1\subset H_2\cap H_3\cap H_4\). Let plane \(\pi _1= H_1\cap H'_1\). Thus \(\mathbf {cv}_1\cap \pi _1\subseteq H_1\cap H_2\cap H_3\cap H_4\cap H'_1= \Delta \cap \pi _1= t_1\). We obtain \(\mathbf {cv}_1\cap \pi _1\subseteq \mathbf {cv}_1\cap t_1\). Since \(\mathbf {c}\) and \(\mathbf {v}_1\) are in different \(t_1\) half-spaces, \(\mathbf {cv}_1\cap \pi _1\ne \emptyset \) and we obtain \(\mathbf {cv}_1\cap t_1\ne \emptyset \).

Assume that \(\mathbf {c}\in H'_1\cap H'_2\cap H_3\cap H_4\). The tetrahedron \(\Delta = \mathbf {v}_1\mathbf {v}_2\mathbf {v}_3\mathbf {v}_4\) is split in two tetrahedra \(\Delta _1= \mathbf {v}_1\tilde{\mathbf {v}}_2\mathbf {v}_3\mathbf {v}_4\) and \(\Delta _2= \tilde{\mathbf {v}}_1\mathbf {v}_2\mathbf {v}_3\mathbf {v}_4\) using \(\tilde{\mathbf {v}}_2= \tilde{\mathbf {v}}_1= \mathbf {v}= (\mathbf {v}_1+\mathbf {v}_2)/2\). Let \(\tilde{H_1}\) and \(\tilde{H_2}\) be the half-spaces of the triangle \(\mathbf {v}\mathbf {v}_3\mathbf {v}_4\) such that \(\mathbf {v}_1\in \tilde{H_1}\) and \(\mathbf {v}_2\in \tilde{H_2}\). Note that \(\Delta _2\) is like \(\Delta \) except that the vertex \(\mathbf {v}_1\) is replaced by \(\tilde{\mathbf {v}}_1\) and the half-space \(H_2\) is replaced by \(\tilde{H_2}\): \(\Delta _2= H_1\cap \tilde{H_2}\cap H_3\cap H_4\) (\(t_1\) does not change, the half-spaces \(H_3\) and \(H_4\) do not change since their boundary planes include \(\tilde{\mathbf {v}}_1\), \(\mathbf {v}_1\) and \(\mathbf {v}_2\) that are collinear). Assume \(\mathbf {c}\in \tilde{H_2}\) (the other case \(\mathbf {c}\in \tilde{H_1}\) is similar). We have \(\mathbf {c}\in H'_1\cap \tilde{H_2}\cap H_3\cap H_4\) (indeed, \(\mathbf {c}\in H'_1\cap H_3\cap H_4\) and \(\mathbf {c}\in \tilde{H_2}\)). According to the second assertion of the lemma applied to \(\Delta _2\), \(\mathbf {c}\tilde{\mathbf {v}}_1\cap t_1\ne \emptyset \). Thus \(\mathbf {cv}\cap (t_1\cup t_2)\ne \emptyset \).

Appendix 3: Non-Shellable Star Shapes in Degenerate Cases

Here we show that there are star shapes O that are non-shellable in degenerate cases. More precisely, we find \(\mathbf {h}\)-star shapes O such that \(\partial O\) has a singular vertex and \(\mathbf {h}\) is in a plane of a triangle in \(\partial O\). Since \(\partial O\) is a 2-manifold if O is shellable (Theorem 4), we see that such an O is non-shellable.

For example, \(O= \{ \mathbf {habc}, \mathbf {hdef} \}\) is a \(\mathbf {h}\)-star shape such that \(\partial O\) has a singular vertex \(\mathbf {h}\). Figure 18 shows another example O that is star-shaped with respect to a point \(\mathbf {h}\notin |\partial O|\):

$$\begin{aligned} O= S_1\cup \{ \mathbf {bcef}, \mathbf {bcgd}\}\hbox { where } S_1= \mathbf {ab}\times \mathbf {d}\hbox {-}\mathbf {e}\hbox {-}\mathbf {f}\hbox {-} \mathbf {g}\hbox {-}\mathbf {d}.\nonumber \\ \end{aligned}$$
(30)

Note that \(\mathbf {h}\) is in the plane of the triangle \(\mathbf {bcg}\in \partial O\) and \(\mathbf {b}\) is a singular vertex of \(\partial O\). Now we show that O can be star-shaped.

Fig. 18
figure 18

A non-shellable star shape O with respect to \(\mathbf {h}\) such that \(\mathbf {h}\notin |\partial O|\) (right): O is the union of \(\mathbf {ab}\times \mathbf {d}\hbox {-}\mathbf {e}\hbox {-} \mathbf {f}\hbox {-}\mathbf {g}\hbox {-}\mathbf {d}\) (left) and \(\{ \mathbf {bcef}, \mathbf {bcgd} \}\) (middle)

Property 2

Let \(S_2= \mathbf {bc}\times \mathbf {d}\hbox {-}\mathbf {e}\hbox {-} \mathbf {f}\hbox {-}\mathbf {g}\hbox {-}\mathbf {d}\) and \(\mathbf {h}\in |S_1|\cap (\mathbf {bc})\). If both \(S_1\) and \(S_1\cup S_2\) are convex, O is \(\mathbf {h}\)-star-shaped.

Proof

Let \(\mathbf {x}\in |O|\) and show that \(\mathbf {xh}\subseteq |O|\). We have \(\mathbf {x}\in |S_1|\) or \(\mathbf {x}\in \mathbf {bcef}\) (or similarly \(\mathbf {x}\in \mathbf {bcgd}\)). Since \(S_1\) is convex and \(\mathbf {h}\in |S_1|\), \(\mathbf {x}\in |S_1|\) implies \(\mathbf {xh}\subseteq |S_1|\subseteq |O|\).

Now we assume \(\mathbf {x}\in \mathbf {bcef}\) and show \(\mathbf {xh}\cap \mathbf {bcde}= \mathbf {xh}\cap \mathbf {bce}\). Since \(\mathbf {h}\in (\mathbf {bc})\) and \(\mathbf {x}\in \mathbf {bcef}\), \(\mathbf {hx}\) and \(\mathbf {bcef}\) are in the same half-space of \(\mathbf {bce}\). Since \(\mathbf {bcde}\) is in the other half-space of \(\mathbf {bce}\), \(\mathbf {hx}\cap \mathbf {bcde}\) is included in the plane of \(\mathbf {bce}\). We obtain \(\mathbf {xh}\cap \mathbf {bcde}= \mathbf {xh}\cap \mathbf {bce}\) and similarly \(\mathbf {xh}\cap \mathbf {bcfg}= \mathbf {xh}\cap \mathbf {bcf}\).

Since \(S_1\cup S_2\) is convex and \(\mathbf {h}\in |S_1\cup S_2|\), \(\mathbf {xh}\subseteq |S_1\cup S_2|= |O\cup \{\mathbf {bcde},\mathbf {bcfg} \}|\). Thus

$$\begin{aligned} \mathbf {xh}= \mathbf {xh}\cap |O\cup \{ \mathbf {bcde}, \mathbf {bcfg} \}|= \mathbf {xh}\cap (|O|\cup \mathbf {bce}\cup \mathbf {bcf}).\nonumber \\ \end{aligned}$$
(31)

Since \(\mathbf {bce}\subseteq |O|\) and \(\mathbf {bcf}\subseteq |O|\), we obtain \(\mathbf {xh}\subseteq |O|\). \(\square \)

Appendix 4: Proof of Theorem 10

Lemma 18

Assume that \(A\subseteq T^\infty \) and \(B\subseteq T{\setminus } A\). Then \(c(A)\cap c(B)\) is a simplicial complex in \(\mathbb {R}^3\). Furthermore, \(c(A)\cap c(B)= c(\partial A)\cap c(\partial B)\).

Proof

This is Lemma 1 in [14] by replacing the set B by a single tetrahedron. The proof is very similar as the proof in Appendix A.1 of [14]. \(\square \)

We show that every vertex \(\mathbf {v}\in c(\partial (A\cup B))\) meets \((\partial (A\cup B))_\mathbf {v}= \mathbf {v}\times \mathbf {x}_*\) where \(\mathbf {x}_*\) is a cycle. Thanks to Lemma 15, \(\partial (A\cup B)= (\partial A{\setminus }\partial B)\cup (\partial B{\setminus }\partial A)\). Thus \(\mathbf {v}\in c(\partial A)\) or \(\mathbf {v}\in c(\partial B)\). We also have

$$\begin{aligned} (\partial (A\cup B))_\mathbf {v}= ((\partial A)_\mathbf {v}{\setminus } (\partial B)_\mathbf {v})\cup ((\partial B)_\mathbf {v}{\setminus } (\partial A)_\mathbf {v}). \end{aligned}$$
(32)

There are three cases. If \(\mathbf {v}\in c(\partial A){\setminus } c(\partial B)\), \((\partial B)_\mathbf {v}=\emptyset \). Thanks to Eq. 32, \((\partial (A\cup B))_\mathbf {v}= (\partial A)_\mathbf {v}\). Since \(\partial A\) is a 2-manifold, there is a cycle \(\mathbf {x}_*\) such that \((\partial (A\cup B))_\mathbf {v}= (\partial A)_\mathbf {v}= \mathbf {v}\times \mathbf {x}_*\). The proof is the same if \(\mathbf {v}\in c(\partial B){\setminus } c(\partial A)\).

Now we consider the last case \(\mathbf {v}\in c(\partial A)\cap c(\partial B)\). Since \(\partial A\) is a 2-manifold,

$$\begin{aligned} \exists \mathbf {a}_i\in c(\partial A), (\partial A)_\mathbf {v}= \mathbf {v}\times \mathbf {a}_*, \mathbf {a}_*= \mathbf {a}_1\hbox {-}\cdots \mathbf {a}_m\hbox {-}\mathbf {a}_1, \end{aligned}$$
(33)

and \(\mathbf {a}_*\) is a cycle. Since \(\partial B\) is a 2-manifold,

$$\begin{aligned} \exists \mathbf {b}_i\in c(\partial B), (\partial B)_\mathbf {v}= \mathbf {v}\times \mathbf {b}_*, \mathbf {b}_*= \mathbf {b}_1\hbox {-}\cdots \mathbf {b}_n\hbox {-}\mathbf {b}_1, \end{aligned}$$
(34)

and \(\mathbf {b}_*\) is a cycle. Since \(c(\partial A)\cap c(\partial B)= c(A)\cap c(B)\) (Lemma 18) and \(c(A)\cap c(B)\) is a 2-manifold with boundary, there are \(\mathbf {c}_i\in c(\partial A)\cap c(\partial B)\) such that

$$\begin{aligned} (\partial A\cap \partial B)_\mathbf {v}= \mathbf {v}\times \mathbf {c}_*, \mathbf {c}_*=\mathbf {c}_1\hbox {-}\cdots \mathbf {c}_k, \end{aligned}$$
(35)

and there are two cases: \(\mathbf {c}_*\) is a cycle and \(k\ge 3\), or all \(\mathbf {c}_i\) are distinct and \(k\ge 2\). Since \((\partial A\cap \partial B)_\mathbf {v}\subseteq (\partial A)_\mathbf {v}\) and \((\partial A\cap \partial B)_\mathbf {v}\subseteq (\partial B)_\mathbf {v}\), we have \(\mathbf {c}_*\subseteq \mathbf {a}_*\) and \(\mathbf {c}_*\subseteq \mathbf {b}_*\). Assume (reductio ad absurdum) that \(\mathbf {c}_*\) is a cycle. Since \(\mathbf {c}_*\) is included in \(\mathbf {a}_*\) and \(\mathbf {b}_*\) that are also cycles, \(\mathbf {a}_*= \mathbf {c}_*= \mathbf {b}_*\). This implies \((\partial A)_\mathbf {v}= (\partial B)_\mathbf {v}\). Thanks to Eq. 32, \((\partial (A\cup B))_\mathbf {v}=\emptyset \). This contradicts \(\mathbf {v}\in c(\partial (A\cup B))\).

Now the \(\mathbf {c}_i\) are distinct and \(k\ge 2\). Since the \(\mathbf {c}_i\) are distinct and \(\mathbf {c}_*\subseteq \mathbf {a}_*\), \(k\le m\). We shift the \(\mathbf {a}_i\) such that \(\mathbf {a}_i= \mathbf {c}_i\) if \(1\le i\le k\). Similarly \(k\le n\) and \(\mathbf {b}_i= \mathbf {c}_i\) if \(1\le i\le k\). Thanks to Eq. 32, \((\partial (A\cup B))_\mathbf {v}= \mathbf {v}\times \mathbf {x}_*\) where

$$\begin{aligned} \mathbf {x}_*= \mathbf {a}_k\hbox {-}\cdots \mathbf {a}_m\hbox {-}\mathbf {a}_1 \cup \mathbf {b}_k\hbox {-}\cdots \mathbf {b}_n\hbox {-}\mathbf {b}_1. \end{aligned}$$
(36)

Since \(\mathbf {a}_1= \mathbf {b}_1= \mathbf {c}_1\) and \(\mathbf {a}_k= \mathbf {b}_k= \mathbf {c}_k\),

$$\begin{aligned} \mathbf {x}_*= \mathbf {c}_k\hbox {-}\mathbf {a}_{k+1}\hbox {-}\mathbf {a}_{k+2} \hbox {-}\cdots \mathbf {a}_m\hbox {-}\mathbf {c}_1\hbox {-}\mathbf {b}_n\hbox {-} \mathbf {b}_{n-1}\hbox {-}\cdots \mathbf {b}_{k+1}\hbox {-}\mathbf {c}_k. \end{aligned}$$
(37)

Then we show that \(c(\mathbf {x}_*)\) has at least 3 distinct vertices. It has \(\mathbf {c}_k\) and \(\mathbf {c}_1\). Furthermore, \(\mathbf {c}_1\ne \mathbf {c}_k\) since \(k\ge 2\). Assume (reduction ad absurdum) that it has no other vertex. Thus \(m=k=n\). This implies \((\partial A)_\mathbf {v}= (\partial B)_\mathbf {v}\), which is impossible (see above).

Last we show that the vertices in the vertex sequence \(\mathbf {x}_*\) are distinct. We have \(\mathbf {c}_1\ne \mathbf {c}_k\) since \(k\ge 2\). We also have \(\mathbf {c}_1\ne \mathbf {a}_i\) if \(i>k\), since \(\mathbf {c}_1= \mathbf {a}_1\) and the \(\mathbf {a}_i\) are distinct (indeed, \(\mathbf {a}_*\) is a cycle). Similarly, \(\mathbf {c}_1\ne \mathbf {b}_i\) if \(i>k\), \(\mathbf {c}_k\ne \mathbf {a}_i\) and \(\mathbf {c}_k\ne \mathbf {b}_i\) if \(i> k\). Assume (reductio ad absurdum) that \(\mathbf {a}_i=\mathbf {b}_j\) if \(i> k\) and \(j> k\). Thus \(\mathbf {va}_i\in c(\partial A)\cap c(\partial B)\). Since \(c(\partial A)\cap c(\partial B)\) is 2D pure (indeed, \(c(\partial A)\cap c(\partial B)\) is a 2-manifold with boundary), there is a triangle \(t\in (\partial A\cap \partial B)_\mathbf {v}\) such that \(\mathbf {a}_i\in t\). This implies that \(\mathbf {a}_i=\mathbf {a}_j\) with \(i> k\) and \(j\le k\) (impossible).

Appendix 5: Proof of Theorem 12

First Theorem 17 details the splitting of a 2-sphere in c(T) by a cycle. Then we show Theorem 12 (splitting of \(\partial S\) by the annulus N) by applying Theorem 17 to every cycle in \(\partial N\).

Theorem 17

Let \(L\subseteq T\) be a 3-ball and \(\mathbf {b}_*\in c(\partial L)\) be a cycle. There are \(B_i\) such that \(B_1\cup B_2=\partial L\), \(\partial B_1= \partial B_2= \mathbf {b}_*\), \(c(B_1)\cap c(B_2)= c(\mathbf {b}_*)\), every \(B_i\) is strongly connected.

Intuitively, the closed curve \(\mathbf {b}_*\) splits the 2-sphere \(\partial L\) in two disjoint and connected sets (2-balls) of triangles \(B_1\) and \(B_2\) that have the common boundary \(\mathbf {b}_*\). This is a discrete version of the Jordan Theorem for a 2-sphere encoded by a simplicial complex.

Proof

Since the 3-ball \(L\subseteq T\), \(\partial L\) is a 2-sphere (Theorem 5). Let \(\mathbf {m}\in |\partial L|\) that is neither a vertex nor in an edge of \(c(\partial L)\). Let \(\varphi \) be a homeomorphism such that \(\varphi (|\partial L|{\setminus }\{\mathbf {m}\} )= \mathbb {R}^2\).

Let \(G=(V,E)\) be the graph of the vertices and edges in \(c(\partial L)\). Let \(G^*= (V^*,E^*)\) be the adjacency graph of the triangles in \(\partial L\), i.e. \(V^*=\{ v(t), t\in \partial L \}\) and \(E^*= \{ e(t_1,t_2), t_i\in \partial L, t_1\cap t_2\hbox { is an edge } \}\). Both G and \(G^*\) have drawings (mappings) in \(\mathbb {R}^2\) by \(\varphi \). The drawing of G is \((\varphi (V), \varphi (E))\). The drawing of \(v(t)\in V^*\) is the drawing of the barycentre of \(t\in \partial L\). The drawing of \(e(t_1,t_2)\in E^*\) is the drawing of a polygonal curve linking the barycentres of adjacent triangles \(t_1\) and \(t_2\) (the polygonal curve is included in \(t_1\cup t_2\) and intersects the edge \(t_1\cap t_2\)). Let \(F= \mathbf {b}_*\) and \(F^*\) be the dual edges of F, i.e. \(F^*= \{ e(t_1,t_2)\in E^*, t_1\cap t_2\in F\}\). Thanks to Proposition 4.6.1 in [6] (the plane duality theorem) and since G is connected and the drawings of G and \(G^*\) are dual and F is a cycle, \(F^*\) is a minimal cut of \(G^*\).

Word “cut” means that the graph \((V^*,E^*{\setminus } F^*)\) is disconnected. Word “minimal” means that \((V^*,E^*{\setminus } F^*)\) becomes connected if we remove any edge from \(F^*\). If we don’t remove an edge from \(F^*\), \((V^*,E^*{\setminus } F^*)\) has exactly two connected components \(\{ v(t), t\in B_1\}\) and \(\{ v(t), t\in B_2\}\): \(B_1\cup B_2= \partial L\), \(B_1\cap B_2= \emptyset \), and every \(B_i\) is non-empty strongly connected using the edges in \(E^*{\setminus } F^*\).

Let edge \(e\in \partial B_i\) and show \(e\in \mathbf {b}_*\). Since \(\partial L\) is a 2-manifold and the \(B_i\) partition \(\partial L\), there are triangles \(t_i\in B_i\) such that \(e= t_1\cap t_2\). If \(e(t_1,t_2)\in E^*{\setminus } F^*\), \(v(t_1)\) and \(v(t_2)\) are in the same connected component of \((V^*,E^*{\setminus } F^*)\) (impossible). Thus \(e(t_1,t_2)\in F^*\) and \(e\in F= \mathbf {b}_*\).

Let edge \(e\in \mathbf {b}_*\) and show \(e\in \partial B_i\). We have distinct triangles \(t_i\in \partial L\) such that \(e= t_1\cap t_2\). Since \(F=\mathbf {b}_*\), \(e(t_1,t_2)\in F^*\). If \(t_1\in B_1\) and \(t_2\in B_1\) (reductio ad absurdum), we remove the edge \(e(t_1,t_2)\) from \(F^*\) and add it to \(E^*{\setminus } F^*\) without connecting \(B_1\) and \(B_2\), i.e. F is not a minimal cut (impossible). Thus \(t_1\in B_1\) and \(t_2\in B_2\); we obtain \(e\in \partial B_i\).

Since \(\partial B_i= \mathbf {b}_*\), \(c(\mathbf {b}_*)\subseteq c(B_1)\cap c(B_2)\). Now we show \(c(B_1)\cap c(B_2)\subseteq c(\mathbf {b}_*)\). Since \(B_1\cap B_2=\emptyset \), there are not triangles in \(c(B_1)\cap c(B_2)\). Let edge \(e\in c(B_1)\cap c(B_2)\); e is included in a triangle in \(B_1\) and another in \(B_2\) and thus \(e\in \mathbf {b}_*\). Let vertex \(\mathbf {v}\in c(B_1)\cap c(B_2)\). Since \(\partial L\) is a 2-manifold, there is a triangle series \(t_i\in (\partial L)_\mathbf {v}\) such that every \(t_i\cap t_{i+1}\) is an edge. There is a \(t_j\in B_1\) and \(t_k\in B_2\). Therefore there is i such that \(t_i\in B_1\) and \(t_{i+1}\in B_2\). We see that the edge \(e=t_i\cap t_{i+1}\) meets \(e\in c(B_1)\cap c(B_2)\). Since \(e\in \mathbf {b}_*\) (see above), \(\mathbf {v}\in c(\mathbf {b}_*)\). \(\square \)

Now we do the proof of Theorem 12.

First we introduce notations by applying Theorem 17 to cycles \(\mathbf {b}_*\) and \(\mathbf {c}_*\). There are \(B_i\) such that \(B_1\cup B_2=\partial L\), \(\partial B_1= \partial B_2= \mathbf {b}_*\), \(c(B_1)\cap c(B_2)= c(\mathbf {b}_*)\) and every \(B_i\) is strongly connected. There are \(C_i\) such that \(C_1\cup C_2=\partial L\), \(\partial C_1= \partial C_2= \mathbf {c}_*\), \(c(C_1)\cap c(C_2)= c(\mathbf {c}_*)\) and every \(C_i\) is strongly connected.

Second we show that \(N\subseteq B_2\) (similarly, \(N\subseteq C_2\)). Assume (reductio ad absurdum) that there are triangles \(t_1\in N\cap B_1\) and \(t_2\in N\cap B_2\). Since N is strongly connected and \(N\subseteq B_1\cup B_2\), we can choose \(t_1\) and \(t_2\) such that \(t_1\cap t_2\) is an edge. Therefore \(t_1\cap t_2\in \partial B_i= \mathbf {b}_*\). However, an edge between two distinct triangles in N is \(\mathbf {b}_i\mathbf {c}_i\) or \(\mathbf {b}_{i+1}\mathbf {c}_i\) or \(\mathbf {c}_{i+1}\mathbf {b}_i\) (contradiction). We obtain \(N\subseteq B_2\).

Third we show that \(c(N)\cap c(B_1)= c(\mathbf {b}_*)\) (similarly, \(c(N)\cap c(C_1)= c(\mathbf {c}_*)\)). Since \(c(\mathbf {b}_*)\subseteq c(B_1)\) and \(c(\mathbf {b}_*)\subseteq c(N)\subseteq c(B_2)\) and \(c(B_1)\cap c(B_2)= c(\mathbf {b}_*)\), we have

$$\begin{aligned} c(\mathbf {b}_*)\subseteq c(N)\cap c(B_1)\subseteq c(B_1)\cap c(B_2)\subseteq c(\mathbf {b}_*). \end{aligned}$$
(38)

Thus \(c(N)\cap c(B_1)= c(\mathbf {b}_*)\).

Fourth we show that \(B_1\cap C_1=\emptyset \). Since \(\partial B_1= \mathbf {b}_*\), there is a triangle \(\tilde{t}= \mathbf {d}\mathbf {b}_0\mathbf {b}_1\in B_1\). Assume (reductio ad absurdum) that \(\tilde{t}\in C_1\). Thus \(\mathbf {b}_0\in c(C_1)\). Since \(\mathbf {b}_0\in c(N)\), we have \(\mathbf {b}_0\in c(C_1)\cap c(N)= c(\mathbf {c}_*)\), i.e. \(\mathbf {b}_0\) is equal to a \(\mathbf {c}_j\) (impossible). We see that every triangle \(\tilde{t}= \mathbf {d}\mathbf {b}_0\mathbf {b}_1\in B_1{\setminus } C_1\). Assume (reductio ad absurdum) that there is a triangle \(t\in C_1\cap B_1\). Since \(B_1\) is strongly connected and \(\tilde{t}\in B_1{\setminus } C_1\) and \(t\in B_1\cap C_1\), we can find triangles \(t'\in B_1{\setminus } C_1\) and \(t''\in B_1\cap C_1\) such that \(t'\cap t''\) is an edge. Therefore \(t'\cap t''\in \partial C_1= \mathbf {c}_*\subseteq \partial N\). This implies that \(t'\in N\) or \(t''\in N\), which is impossible since \(B_1\cap N\subseteq B_1\cap B_2= \emptyset \).

Fifth we show that \(N\cup C_1= B_2\). Since \(B_1\cap C_1=\emptyset \) and \(C_1\subseteq B_1\cup B_2\), \(C_1\subseteq B_2\). Thus \(N\cup C_1\subseteq B_2\) and we only need to show that \(t'''\in B_2\) implies \(t'''\in N\cup C_1\). Since \(B_2\) is strongly connected and \(\emptyset \ne N\cup C_1\subseteq B_2\), there is a triangle series \(t_i\in B_2\) such that \(t_0\in N\cup C_1\) and \(t_n=t'''\) and every \(t_i\cap t_{i+1}\) is an edge that is not in \(\partial B_2\). Since \(N\cap C_1=\emptyset \),

$$\begin{aligned} \partial (N\cup C_1)= & {} (\partial N{\setminus }\partial C_1)\cup (\partial C_1{\setminus }\partial N) \nonumber \\= & {} ((\mathbf {b}_*\cup \mathbf {c}_*){\setminus }\mathbf {c}_*) \cup (\mathbf {c}_*{\setminus } (\mathbf {b}_*\cup \mathbf {c}_*)) \nonumber \\= & {} \mathbf {b}_*=\partial B_2. \end{aligned}$$
(39)

Therefore every \(t_i\cap t_{i+1}\) is not in \(\partial (N\cup C_1)\). Now we have \(t_{i+1}\in N\cup C_1\) if \(t_i\in N\cup C_1\). Since \(t_0\in N\cup C_1\), we obtain \(t'''= t_n\in N\cup C_1\).

Last we show \(c(B_1)\cap c(C_1)=\emptyset \) and conclude using \(B=B_1\) and \(C= C_1\). Since \(C_1\subseteq B_2\) (see above), \(c(B_1)\cap c(C_1)\subseteq c(B_1)\cap c(B_2)= c(\mathbf {b}_*)\). Furthermore \(B_1\subseteq C_2\) (indeed, \(B_1\cap C_1=\emptyset \) and \(B_1\subseteq C_1\cup C_2\) imply \(B_1\subseteq C_2\)). Thus \(c(B_1)\cap c(C_1)\subseteq c(C_2)\cap c(C_1)= c(\mathbf {c}_*)\). We obtain \(c(B_1)\cap c(C_1)\subseteq c(\mathbf {b}_*)\cap c(\mathbf {c}_*)=\emptyset \).

Appendix 6: Proof of Theorem 14

We show that \(\partial (A\cup B)\) is a connected 2-manifold that has the same genus as \(\partial A\) (therefore they are homeomorphic). The principle of the proof is the following. Theorem 10 implies that \(\partial (A\cup B)\) is a 2-manifold. The set \(D= \partial A\cap \partial B\) is a 2-ball. Then we show that \(\partial (A\cup B)\) is connected by studying the connectivity of \(\partial A{\setminus } D\) and \(\partial B{\setminus } D\) and since their closures include the 1-sphere \(\partial D\). Last we use properties of Euler’s characteristic \(\chi (X)\) of \(X\subseteq c(T)\) to show that both \(\partial (A\cup B)\) and \(\partial A\) have the same genus. We remind that \(\chi (X)\) is the number of the vertices plus number of the triangles minus the number of the edges in X, and thus, it is closely related to the genus of X (Sect. 2.6).

We start by the two following lemmas, which are useful to show that \(\partial A{\setminus } D\) and \(\partial B{\setminus } D\) are connected.

Lemma 19

Let \(M\subseteq c(T)\) be a 2-manifold. Let \(D\subset M\). Then \(\partial (M{\setminus } D)=\partial D\) and \(c(M{\setminus } D)\cap c(D)= c(\partial D)\).

Proof

First we show \(\partial D= \partial (M{\setminus } D)\). Let \(e\in c(M)\) be an edge. Since M is a 2-manifold, there are exactly two triangles \(t_1\) and \(t_2\) in M that includes e and \(e= t_1\cap t_2\). Since \(D\subseteq M\), \(e\in \partial D\) iff \(t_1\in D\) and \(t_2\in M{\setminus } D\) iff \(e\in \partial (M{\setminus } D)\).

If a simplex \(\sigma \in c(\partial D)\), \(\sigma \in c(D)\) and \(\sigma \in c(\partial (M{\setminus } D))\subseteq c(M{\setminus } D)\). Therefore \(\sigma \in c(M{\setminus } D)\cap c(D)\). Conversely, let \(\sigma \in c(M{\setminus } D)\cap c(D)\) and show \(\sigma \in c(\partial D)\). This means that there are triangles \(t_1\in D\) and \(t_2\in M{\setminus } D\) such that \(\sigma \subseteq t_1\cap t_2\). Assume that \(\sigma \) is an edge (case 1). Thus \(\sigma = t_1\cap t_2\). Since \(D\subseteq M\) and M is a 2-manifold, the only triangles in M that includes \(\sigma \) are \(t_1\) and \(t_2\). Therefore there is only one triangle in D that includes \(\sigma \) and we obtain \(\sigma \in c(\partial D)\). Assume that \(\sigma \) is a vertex (case 2). Since M is a 2-manifold, \(M_\mathbf {v}\) is a triangle series \(t'_i\in M\) such that every \(t'_i\cap t'_{i+1}\) is an edge including \(\mathbf {v}\). There is j and k such that \(t'_j=t_1\in D\) and \(t'_k=t_2\in M{\setminus } D\). Thus we can find i such that \(t'_i\in D\) and \(t'_{i+1}\in M{\setminus } D\) (or vice versa). Now vertex \(\sigma \) is a face of the edge \(e= t'_i\cap t'_{i+1}\) such that \(e\in c(M{\setminus } D)\cap c(D)\) and we just showed (case 1) that \(e\in c(\partial D)\). Therefore \(\sigma \in c(\partial D)\). \(\square \)

Lemma 20

Assume that \(M\subseteq c(T^\infty )\) is a connected 2-manifold. If a 2-ball \(D\subseteq M\), \(M{\setminus } D\) is connected.

Proof

Let vertices \(\mathbf {v}\) and \(\mathbf {v}'\) in \(c(M{\setminus } D)\). Since they are in c(M) and M is connected, there is a path \(\mathbf {v}_0\hbox {-}\mathbf {v}_1\hbox {-}\cdots \mathbf {v}_n\subseteq c(M)\) such that \(\mathbf {v}_0=\mathbf {v}\) and \(\mathbf {v}_n=\mathbf {v}'\). If this path has an edge which is not in \(c(M{\setminus } D)\), we modify it to obtain another path such that all its edges are in \(c(M{\setminus } D)\) (thus \(M{\setminus } D\) is connected).

Let j be the smallest index i such that \(\mathbf {v}_i\mathbf {v}_{i+1}\notin c(M{\setminus } D)\). We show that \(\mathbf {v}_j\in c(\partial D)\). Since \(\mathbf {v}_j\mathbf {v}_{j+1}\in c(M)= c(M{\setminus } D)\cup c(D)\), \(\mathbf {v}_j\mathbf {v}_{j+1}\in c(D)\). If \(j=0\), we have \(\mathbf {v}_j\in c(M{\setminus } D)\cap c(D)= c(\partial D)\) (Lemma 19). If \(j> 0\), \(\mathbf {v}_{j-1}\mathbf {v}_j\in c(M{\setminus } D)\) and we have \(\mathbf {v}_j\in c(M{\setminus } D)\cap c(D)= c(\partial D)\).

Let k be the greatest index i such that \(\mathbf {v}_i\mathbf {v}_{i+1}\notin c(M{\setminus } D)\). Similarly, \(\mathbf {v}_{k+1}\in c(\partial D)\).

Since D is a 2-ball, \(\partial D\) is a cycle of edges \(\mathbf {d}_i\mathbf {d}_{i+1}\). There are integers l and m such that the path \(\mathbf {d}_l\hbox {-}\mathbf {d}_{l+1}\hbox {-}\cdots \mathbf {d}_m\subset \partial D\) meets \(\mathbf {d}_l= \mathbf {v}_j\) and \(\mathbf {d}_m= \mathbf {v}_{k+1}\). Thanks to Lemma 19, every edge \(\mathbf {d}_i\mathbf {d}_{i+1}\in c(M{\setminus } D)\). Last we concatenate \(\mathbf {v}_0\hbox {-}\cdots \mathbf {v}_j\) and \(\mathbf {d}_l\hbox {-}\cdots \mathbf {d}_m\) and \(\mathbf {v}_{k+1}\hbox {-}\cdots \mathbf {v}_n\) to obtain a path \(\mathbf {v}_0\hbox {-}\cdots \mathbf {v}_n\subseteq c(M{\setminus } D)\) such that \(\mathbf {v}_0=\mathbf {v}\) and \(\mathbf {v}_n=\mathbf {v}'\). \(\square \)

Now we show Theorem 14.

First we show that \(\partial (A\cup B)\) is a connected 2-manifold. Thanks to Theorem 10, \(\partial (A\cup B)\) is a 2-manifold. Furthermore \(\partial A{\setminus } D\) is connected and \(\partial B{\setminus } D\) is connected (Lemma 20) and \(\emptyset \ne c(\partial D)\subseteq c(\partial A{\setminus } D)\cap c(\partial B{\setminus } D)\) (thanks to Lemma 19). Thus \(\partial (A\cup B)= (\partial A{\setminus } D)\cup (\partial B{\setminus } D)\) is connected.

Second we show that \(c(D)\cap c(\partial (A\cup B))= c(\partial D)\). Lemma 19 using \(M\in \{ \partial A, \partial B \}\) implies \(c(D)\cap c(\partial A{\setminus } D)= c(\partial D)= c(D)\cap c(\partial B{\setminus } D)\). Therefore

$$\begin{aligned} c(D)\cap (c(\partial A{\setminus } D)\cup c(\partial B{\setminus } D))= c(\partial D). \end{aligned}$$
(40)

We obtain the result using Lemma 15.

Third we show that \(\chi (c(\partial (A\cup B)))= \chi (c(\partial A))\). Thanks to Lemma 15, \(D\cup \partial (A\cup B)=\partial A\cup \partial B\). Since \(\chi (X\cup Y)= \chi (X)+\chi (Y)-\chi (X\cap Y)\),

$$\begin{aligned}&\chi (c(D))+\chi (c(\partial (A\cup B)))-\chi (c(D)\cap c(\partial (A\cup B))) \nonumber \\&\quad = \chi (c(\partial A))+\chi (c(\partial B))-\chi (c(\partial A)\cap c(\partial B)). \end{aligned}$$
(41)

Furthermore, \(\chi \) is known for 2-balls, cycles and 2-spheres:

$$\begin{aligned}&\chi (c(D))= \chi (c(\partial A)\cap c(\partial B))= 1, \end{aligned}$$
(42)
$$\begin{aligned}&\chi (c(D)\cap c(\partial (A\cup B)))= \chi (c(\partial D))=0, \end{aligned}$$
(43)
$$\begin{aligned}&\chi (c(\partial B))=2. \end{aligned}$$
(44)

Thus

$$\begin{aligned} 1+\chi (c(\partial (A\cup B)))-0=\chi (c(\partial A))+2-1. \end{aligned}$$
(45)

Now we see that \(\partial A\) and \(\partial (A\cup B)\) have the same genus.

Appendix 7: An Example for Theorem 15

First we remind how Z is constructed in [24] using shortened notations: a vertex is an integer between 1 and 12, the tetrahedron with vertices \(\{ 1,2,3,4 \}\) is written 1.2.3.4, the edge with vertices \(\{ 1,2 \}\) is written 1.2, \(1.2\times 3\hbox {-}4\hbox {-}5\hbox {-}6\) is the tetrahedron set \(\{1.2.3.4, 1.2.4.5, 1.2.5.6\}\), etc. Let V be the set of the vertices \(1,2\cdots 12\). The 3D coordinates of the vertices in V are given in Table 1.

Table 1 3D coordinates of the 12 vertices in V

Then Z is defined as the disjoint union of three subsets of tetrahedra (Fig. 19). The center subset is

$$\begin{aligned} Z_0= \{ 1.2.3.4, 1.2.5.6, 2.3.6.7, 3.4.7.8, 4.1.8.5 \}. \end{aligned}$$
(46)

The top subset is the union of the tetrahedron cycles \(Z_{2.10}\) and \(Z_{4.12}\):

$$\begin{aligned} Z_{2.10}=2.10\times \hbox {5-6-7-3-1-5}, Z_{4.12}= \hbox {4.12}\times \hbox {7-8-5-1-3-7}.\nonumber \\ \end{aligned}$$
(47)

The bottom subset is the union of the tetrahedron cycles \(Z_{1.9}\) and \(Z_{3.11}\):

$$\begin{aligned} Z_{1.9}=1.9\times \hbox {5-6-2-4-8-5}, Z_{3.11}=\hbox {3.11}\times \hbox {7-8-4-2-6-7}.\nonumber \\ \end{aligned}$$
(48)
Fig. 19
figure 19

Top views of the three subsets of Z. Left the top subset is the union of the tetrahedra cycles \(Z_{2.10}\) and \(Z_{4.12}\). Middle the center subset has five internal tetrahedra. Right the bottom subset is the union of the tetrahedra cycles \(Z_{1.9}\) and \(Z_{3.11}\). Note that vertices are sometimes duplicated

We obtain

$$\begin{aligned} Z= Z_0\cup Z_{1.9}\cup Z_{2.10}\cup Z_{3.11}\cup Z_{4.12}. \end{aligned}$$
(49)

Second we check that Z is included in a set of tetrahedra T such that c(T) is a 3D Delaunay triangulation.

Lemma 21

Thanks to Table 1, Z is included in a 3D Delaunay triangulation whose vertex set is V.

Proof

Let \(\mathbf {c}_\Delta \) and \(r_\Delta \) be the center and radius of the circumscribing sphere of the tetrahedron \(\Delta \). Let

$$\begin{aligned} e= \min _{\Delta \in Z, \mathbf {u}\in V{\setminus } c(\Delta )} d^2(\mathbf {u}, \mathbf {c}_\Delta )-r^2_\Delta , \end{aligned}$$
(50)

where d is the Euclidean distance between two 3D points. We have \(e= 0.5> 0\). Thus, for every \(\Delta \in Z\), there is no \(V{\setminus } c(\Delta )\) vertex in the (interior of the) sphere that includes the four \(\Delta \) vertices. Therefore Z is included in a 3D Delaunay triangulation of V. \(\square \)

Third we show that Z is the union of four pipes and a 3-ball.

Lemma 22

We have \(Z= P\cup S\) where

$$\begin{aligned} P=&p(5.9.1, 6.2.10)\cup p(7.11.3, 6.2.10) \nonumber \\&\cup \,p(5.9.1, 8.4.12)\cup p(7.11.3, 8.4.12), \end{aligned}$$
(51)
$$\begin{aligned} S=&\{ 1.2.3.4, 1.9.2.4, 2.10.1.3, 3.11.2.4,4.12.1.3 \} \end{aligned}$$
(52)

and S is a 3-ball.

Proof

Equation 15 is rewritten as

$$\begin{aligned} p(\mathbf {a}_0\mathbf {b}_0\mathbf {c}_0,\mathbf {a}_1\mathbf {b}_1\mathbf {c}_1) =&\mathbf {b}_0\mathbf {c}_0\times \mathbf {a}_0\hbox {-}\mathbf {a}_1\hbox {-}\mathbf {b}_1 \cup \{ \mathbf {a}_0\mathbf {a}_1\mathbf {b}_1\mathbf {c}_0 \} \nonumber \\&\cup \,\mathbf {b}_1\mathbf {c}_1\times \mathbf {c}_0\hbox {-}\mathbf {a}_0\hbox {-}\mathbf {a}_1. \end{aligned}$$
(53)

Thanks to Eq. 53,

$$\begin{aligned}&p(5.9.1, 6.2.10)= 9.1\times 5\hbox {-}6\hbox {-}2\cup \{ 5.6.2.1\}\cup 2.10\times 1\hbox {-}5\hbox {-}6 \nonumber \\&p(7.11.3, 6.2.10)= 11.3\times 7\hbox {-}6\hbox {-}2\cup \{7.6.2.3\}\cup 2.10\times 3\hbox {-}7\hbox {-}6 \nonumber \\&p(5.9.1, 8.4.12)= 9.1\times 5\hbox {-}8\hbox {-}4\cup \{ 5.8.4.1\}\cup 4.12\times 1\hbox {-}5\hbox {-}8 \nonumber \\&p(7.11.3, 8.4.12)= 11.3\times 7\hbox {-}8\hbox {-}4\cup \{ 7.8.4.3\}\cup 4.12\times 3\hbox {-}7\hbox {-}8. \end{aligned}$$

Now we see that

$$\begin{aligned} P= & {} (Z_0{\setminus }\{ 1.2.3.4\}) \nonumber \\&\cup \, 9.1\times 2\hbox {-}6\hbox {-}5\hbox {-}8\hbox {-}4\cup 2.10\times 1\hbox {-}5\hbox {-}6\hbox {-}7\hbox {-}3 \nonumber \\&\cup \, 11.3\times 2\hbox {-}6\hbox {-}7\hbox {-}8\hbox {-}4\cup 4.12\times 1\hbox {-}5\hbox {-}8\hbox {-}7\hbox {-}3 \nonumber \\= & {} (Z_0{\setminus }\{ 1.2.3.4\})\cup (Z_{1.9}{\setminus }\{ 1.9.2.4\}) \nonumber \\&\cup \,(Z_{2.10}{\setminus }\{ 2.10.1.3\})\cup (Z_{3.11}{\setminus }\{ 3.11.2.4\}) \nonumber \\&\cup \,(Z_{4.12}{\setminus }\{ 4.12.1.3\}) \nonumber \\= & {} Z{\setminus } S. \end{aligned}$$
(54)

and \(S\subset Z\). Note that S is a 3-ball since it has a shelling started by the central tetrahedron 1.2.3.4 and the four other tetrahedra \(\Delta _i\) are added to \(O_i\) such that \(c(\Delta _i)\cap c(O_i)= c(t_i)\) where \(t_i\in \partial 1.2.3.4\). \(\square \)

Fourth, we show that \(c(S)\cap c(P)\) is an annulus.

Lemma 23

We have \(c(S)\cap c(P)= c(N)\) where

$$\begin{aligned} N= & {} \{\mathbf {9.2}.1,2.\mathbf {1.10}\}\cup \{3.\mathbf {2.11},\mathbf {10.3}.2\} \nonumber \\&\cup \, \{\mathbf {11.4}.3,4.\mathbf {3.12}\}\cup \{1.\mathbf {4.9},\mathbf {12.1}.4 \}. \end{aligned}$$
(55)

The vertices in bold fonts form edges in \(\partial N\):

$$\begin{aligned} \partial N= 9\hbox {-}2\hbox {-}11\hbox {-}4\hbox {-}9\cup 1\hbox {-}10\hbox {-}3\hbox {-}12\hbox {-}1. \end{aligned}$$
(56)

Proof

Let \(\sigma \in c(S)\cap c(P)\) be a simplex. Since vertices 5,6,7,8 are not in c(S), \(\sigma \) does not have a vertex in \(\{ 5,6,7,8\}\). According to Eq. 16, the only triangles in \(\partial p(\mathbf {a}_0\mathbf {b}_0\mathbf {c}_0,\mathbf {a}_1\mathbf {b}_1\mathbf {c}_1)\) that does not have vertices \(\mathbf {a}_0\) and \(\mathbf {a}_1\) are \(\{\mathbf {b}_0\mathbf {b}_1\mathbf {c}_0, \mathbf {b}_1\mathbf {c}_0\mathbf {c}_1\}\). Using Eq. 51 and \(\mathbf {a}_0\in \{5,7\}\) and \(\mathbf {a}_1\in \{6,8\}\), \(\sigma \) is included is one of the triangles in \(\tilde{N}\) where

$$\begin{aligned} \tilde{N}= & {} \{ 9.2.1,2.1.10 \}\cup \{ 11.2.3,2.3.10\} \nonumber \\&\cup \, \{ 9.4.1,4.1.12 \}\cup \{ 11.4.3,4.3.12\}. \end{aligned}$$
(57)

Therefore \(c(S)\cap c(P)\subseteq c(\tilde{N})\). Conversely, \(\tilde{N}\subseteq c(P)\) and \(\tilde{N}\subseteq c(S)\) imply \(c(\tilde{N})\subseteq c(S)\cap c(P)\). Last we check that \(N= \tilde{N}\). \(\square \)

Thus \(Z= P\cup S\) with \(n= 4\) and \(P= \cup _i P_i\) as in Theorem 15. Since Z is strongly non-shellable [24], \(Z= P\cup S'\) and \(S= S'\).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lhuillier, M. Overview of Shelling for 2-Manifold Surface Reconstruction Based on 3D Delaunay Triangulation. J Math Imaging Vis 59, 318–340 (2017). https://doi.org/10.1007/s10851-017-0734-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10851-017-0734-4

Keywords

Navigation