1 Introduction

Manifold reconstruction consists of computing a piecewise linear approximation of an unknown manifold \(\mathcal{M}\subset \mathbb{R}^{d}\) from a finite sample of unorganized points \(\mathcal {P}\) lying on \(\mathcal{M}\) or close to \(\mathcal{M}\). When the manifold is a two-dimensional surface embedded in \(\mathbb{R}^{3}\), the problem is known as the surface reconstruction problem. Surface reconstruction is a problem of major practical interest which has been extensively studied in the fields of Computational Geometry, Computer Graphics and Computer Vision. In the last decade, solid foundations have been established and the problem is now pretty well understood. Refer to Dey’s book [25], and the survey by Cazals and Giesen in [16] for recent results. The output of those methods is a triangulated surface that approximates \(\mathcal{M}\). This triangulated surface is usually extracted from a three-dimensional subdivision of the ambient space (typically a grid or a triangulation). Although rather inoffensive in three-dimensional space, such data structures depend exponentially on the dimension of the ambient space, and all attempts to extend those geometric approaches to more general manifolds have led to algorithms whose complexities depend exponentially on d [7, 15, 19, 40].

The problem in higher dimensions is also of great practical interest in data analysis and machine learning. In those fields, the general assumption is that, even if the data are represented as points in a very high-dimensional space \(\mathbb{R}^{d}\), they in fact live on a manifold of much smaller intrinsic dimension [44]. If the manifold is linear, well-known global techniques like principal component analysis (PCA) or multi-dimensional scaling (MDS) can be efficiently applied. When the manifold is highly nonlinear, several more local techniques have attracted much attention in visual perception and many other areas of science. Among the prominent algorithms are Isomap [45], LLE [42], Laplacian eigenmaps [8], Hessian eigenmaps [26], diffusion maps [37, 39], principal manifolds [48]. Most of those methods reduce to computing an eigendecomposition of some connection matrix. In all cases, the output is a map** of the original data points into \(\mathbb{R}^{k}\) where k is the estimated intrinsic dimension of \(\mathcal{M}\). Those methods come with no or very limited guarantees. For example, Isomap provides a correct embedding only if \(\mathcal{M}\) is isometric to a convex open set of \(\mathbb{R}^{k}\) and LLE can only reconstruct topological balls. To be able to better approximate the sampled manifold, another route is to extend the work on surface reconstruction and to construct a piecewise linear approximation of \(\mathcal{M}\) from the sample in such a way that, under appropriate sampling conditions, the quality of the approximation can be guaranteed. First breakthrough, along this line, was the work of Cheng, Dey and Ramos [15] and this was followed by the work of Boissonnat, Guibas and Oudot [7]. In both cases, however, the complexity of the algorithms is exponential in the ambient dimension d, which highly reduces their practical relevance.

In this paper, we extend the geometric techniques developed in small dimensions and propose an algorithm that can reconstruct smooth manifolds of arbitrary topology while avoiding the computation of data structures in the ambient space. We assume that \(\mathcal{M}\) is a smooth manifold of known dimension k and that we can compute the tangent space to \(\mathcal{M}\) at any sample point. Under those conditions, we propose a provably correct algorithm that construct a simplicial complex of dimension k that approximates \(\mathcal{M}\). The complexity of the algorithm is linear in d, quadratic in the size n of the sample, and exponential in k. Our work builds on [7] and [15] but dramatically reduces the dependence on d. To the best of our knowledge, this is the first certified algorithm for manifold reconstruction whose complexity depends only linearly on the ambient dimension. In the same spirit, Chazal and Oudot [20] have devised an algorithm of intrinsic complexity to solve the easier problem of computing the homology of a manifold from a sample.

Our approach is based on two main ideas: the notion of tangential Delaunay complex introduced in [6, 29, 31], and the technique of sliver removal by weighting the sample points [14]. The tangential complex is obtained by gluing local (Delaunay) triangulations around each sample point. The tangential complex is a subcomplex of the d-dimensional Delaunay triangulation of the sample points but it can be computed using mostly operations in the k-dimensional tangent spaces at the sample points. Hence the dependence on k rather than d in the complexity. However, due to the presence of so-called inconsistencies, the local triangulations may not form a triangulated manifold. Although this problem has already been reported [31], no solution was known except for the case of curves (k=1) [29]. The idea of removing inconsistencies among local triangulations that have been computed independently has already been used for maintaining dynamic meshes [43] and generating anisotropic meshes [12]. Our approach is close in spirit to the one in [12]. We show that, under appropriate sample conditions, we can remove inconsistencies by weighting the sample points. We can then prove that the approximation returned by our algorithm is ambient isotopic to \(\mathcal{M}\), and a close geometric approximation of \(\mathcal{M}\).

Our algorithm can be seen as a local version of the cocone algorithm of Cheng et al. [15]. By local, we mean that we do not compute any d-dimensional data structure like a grid or a triangulation of the ambient space. Still, the tangential complex is a subcomplex of the weighted d-dimensional Delaunay triangulation of the (weighted) data points and therefore implicitly relies on a global partition of the ambient space. This is a key to our analysis and distinguishes our method from the other local algorithms that have been proposed in the surface reconstruction literature [22, 34].

Organization of the Paper

In Sect. 2, we introduce the basic concepts used in this paper. We recall the notion of weighted Voronoi (or power) diagrams and Delaunay triangulations in Sect. 2.1 and define sampling conditions in Sect. 2.2. We introduce various quantities to measure the shape of simplices in Sect. 2.3 and, in particular, the central notion of fatness. In Sect. 2.4, we define the two main notions of this paper: the tangential complex and inconsistent configurations.

The algorithmic part of the paper is given in Sect. 3.

The main structural results are given in Sect. 4. Under some sampling condition, we bound the shape measure of the simplices of the tangential complex in Sect. 4.2 and of inconsistent configurations in Sect. 4.3. A crucial fact is that inconsistent configurations cannot be fat. We also bound the number of simplices and inconsistent configurations that can be incident on a point in Sect. 4.4. In Sects. 4.5 and 4.6, we prove the correctness of the algorithm, and space and time complexity, respectively. In Sect. 5, we prove that the simplicial complex output by the algorithm is indeed a good approximation of the sampled manifold. Finally, in Sect. 6, we conclude with some possible extensions.

The list of main notations has been added at the end of the paper as a reference for the readers.

2 Definitions and Preliminaries

The standard Euclidean distance between two points \(x, y \in \mathbb{R}^{d}\) will be denoted by ∥xy∥. Distance between a point \(x \in \mathbb{R}^{d}\) and a set \(X \subset \mathbb{R}^{d}\), is defined as

$${\rm dist}(x, X) = \inf_{x \in X} \|x -p \| . $$

We will denote the topological boundary and interior of a set \(X \subseteq \mathbb{R}^{d}\) by ∂X and \({\rm int} X\), respectively.

For a map f:XY and X 1X, \(f\mid_{X_{1}}\) denotes the restriction of map f to the subset X 1.

A j-simplex is the convex hull of j+1 affinely independent points. If τ is a j-simples with vertices {x 0,…,x j }, we will also denote τ as [x 0,…,x j ]. For convenience, we often identify a simplex and the set of its vertices. Hence, if τ is a simplex, pτ means that p is a vertex of τ. If τ is a j-simplex, \({\rm aff}(\tau)\) denotes the j-dimensional affine hull of τ and N τ denotes the (dj)-dimensional normal space of \({\rm aff}(\tau)\).

For a given simplicial complex \(\mathcal {K}\) and a simplex σ in \(\mathcal {K}\), the star and link of a simplex σ in \(\mathcal {K}\) \(\sigma\in \mathcal {K}\) denotes the subcomplexes

$${\rm st}(\sigma, \mathcal {K})= \{ \tau: \mbox{for some}~\tau_{1} \in \mathcal {K}, \sigma, \tau\subseteq \tau_{1} \} $$

and

$${\rm lk}(\sigma, \mathcal {K}) = \bigl\{ \tau\in{\rm st}(\sigma, \mathcal {K}) : \tau\cap\sigma= \emptyset\bigr\} , $$

respectively. The open star of σ in \(\mathcal {K}\), \(\mathring{{\rm st}}(\sigma, \mathcal {K}) = {\rm st}(\sigma, \mathcal {K}) \setminus{\rm lk}(\sigma, \mathcal {K})\).

For all x,y in \(\mathbb{R}^{d}\), [xy] denotes the line segment joining the points x and y.

In this paper, \(\mathcal{M}\) denotes a differentiable manifold of dimension k embedded in \(\mathbb{R}^{d}\) and \(\mathcal {P}= \{ p_{1},\ldots,p_{n}\}\) a finite sample of points from \(\mathcal{M}\). We will further assume that \(\mathcal{M}\) has positive reach (see Sect. 2.2). We denote by T p and N p the k-dimensional tangent space and (dk)-dimensional normal space at point \(p\in \mathcal{M}\), respectively.

For a given \(p \in \mathbb{R}^{d}\) and r≥0, B(p,r) (\(\bar{B}(p,r)\)) denotes the d-dimensional Euclidean open (close) ball centered at p of radius r, and \(B_{\mathcal{M}}(p, r)\) (\(\bar{B}_{\mathcal{M}}(p,r)\)) denotes \(B(p, r) \cap \mathcal{M}\) (\(\bar{B}(p,r) \cap \mathcal{M}\)).

For a given \(p \in \mathcal {P}\), \({\rm n\! n}(p)\) denotes the distance of p to its nearest neighbor in \(\mathcal {P}\setminus\{ p\}\), i.e.,

$${\rm n\! n}(p) = \min_{x \in \mathcal {P}, x\neq p} \|x-p\|. $$

If U and V are vector subspaces of \(\mathbb{R}^{d}\), with dim(U)≤dim(V), the angle between them is defined by

$$ \angle(U,V) = \max_{u\in U} \min_{v\in V} \angle(u,v), $$

where u and v are vectors in U and V, respectively. This is the largest principal angle between U and V. In case of affine spaces, the angle between two of them is defined as the angle between the corresponding parallel vector subspaces.

The following lemma is a direct consequence of the above definition. We have included the proof for completeness.

Lemma 2.1

Let U and V be affine spaces of \(\mathbb{R}^{d}\) with dim(U)≤dim(V), and let U and V are affine spaces of \(\mathbb{R}^{d}\) with dim(U )=d−dim(U) and dim(V )=d−dim(V).

  1. 1.

    If U and V are the orthogonal complements of U and V in \(\mathbb{R}^{d}\), then ∠(U,V)=∠(V ,U ).

  2. 2.

    If dim(U)=dim(V) then ∠(U,V)=∠(V,U).

Proof

Without loss of generality we assume that the affine spaces U,V,U and V are vector subspaces of \(\mathbb{R}^{d}\), i.e. they all passes through the origin.

1. Suppose ∠(U,V)=α. Let v V be a unit vector. There are unit vectors uU, and u U such that v =au+bu . We will show that ∠(v ,u )≤α. First note that this angle is complementary to ∠(v ,u), i.e.,

$$ \angle({v_*}, {u_*}) = \frac{\pi}{2} - \angle( {v_*}, {u}). $$
(1)

There is a unit vector vV such that ∠(u,v)=α 0α. Viewing angles between unit vectors as distances on the unit sphere, we exploit the triangle inequality: ∠(v ,v)≤∠(v ,u)+∠(u,v), from whence

$$ \angle({v_*}, {u}) \geq\frac{\pi}{2} - \alpha_0. $$

Using this expression in Eq. (1), we find

$$ \angle({v_*}, {u_*}) \leq\alpha_0 \leq\alpha, $$

which implies, since v was chosen arbitrarily, that ∠(V ,U )≤∠(U,V).

Since dimV ≤dimU , and the orthogonal complement is a symmetric relation on subspaces, the same argument yields the reverse inequality.

2. Let ∠(U,V)=α, and let P:UV denotes the projection map of the vector space U on V.

Case a. απ/2. Since απ/2 and dim(U)=dim(V), the projection map P is an isomorphism between vector spaces U and V. Therefore, for any unit vector vV there exists a vector uU such that P(u)=v. From the definition of angle between affine space and the linear map P, we have ∠(u,v) (=∠(v,u)). This implies, ∠(V,U)≤∠(U,V)=α. Using the same arguments, we can show that ∠(U,V)≤∠(V,U) hence ∠(U,V)=∠(V,U).

Case b. α=π/2. We have ∠(V,U)=π/2, otherwise using the same arguments as in Case 1 we can show that α=∠(U,V)≤∠(V,U)<π/2. □

2.1 Weighted Delaunay Triangulation

2.1.1 Weighted Points

A weighted point is a pair consisting of a point p of \(\mathbb{R}^{d}\), called the center of the weighted point, and a non-negative real number ω(p), called the weight of the weighted point. It might be convenient to identify a weighted point (p,ω(p)) and the hypersphere (we will simply say sphere in the sequel) centered at p of radius ω(p).

Two weighted points (or spheres) (p,ω(p)) and (q,ω(q)) are called orthogonal when ∥pq2=ω(p)2+ω(q)2, further than orthogonal when ∥pq2>ω(p)2+ω(q)2, and closer than orthogonal when ∥pq2<ω(p)2+ω(q)2.

Given a point set \(\mathcal {P}= \{ p_{1},\ldots ,p_{n}\} \subseteq \mathbb{R}^{d}\), a weight function on \(\mathcal {P}\) is a function ω that assigns to each point \(p_{i}\in \mathcal {P}\) a non-negative real weight ω(p i ): \(\omega(\mathcal {P}) = (\omega(p_{1}), \ldots, \omega(p_{n}))\). We write \(p_{i}^{\omega}= (p_{i},\omega(p_{i}))\) and \(\mathcal {P}^{\omega} = \{ p^{\omega}_{1},\ldots,p^{\omega}_{n}\}\).

We define the relative amplitude of ω as

$$\begin{aligned} \tilde{\omega} = \max_{p\in \mathcal {P}, q\in \mathcal {P}\setminus\{p\}}\frac {\omega(p)}{\|p-q\|} . \end{aligned}$$
(2)

In the paper, we will assume that \(\tilde{\omega}\leq\omega_{0}\), for some constant ω 0∈[0,1/2) (see Hypothesis 3.2). Under this hypothesis, all the balls bounded by weighted spheres are disjoint.

Given a subset τ of d+1 weighted points whose centers are affinely independent, there exists a unique sphere orthogonal to the weighted points of τ. The sphere is called the orthosphere of τ and its center o τ and radius Φ τ are called the orthocenter and the orthoradius of τ. If the weights of the vertices of τ are 0 (or all equal), then the orthosphere is simply the circumscribing sphere of τ whose center and radius are, respectively, called circumcenter and circumradius. If τ is a j-simplex, j<d, the orthosphere of τ is the smallest sphere that is orthogonal to the (weighted) vertices of τ. Its center o τ lies in \({\rm aff}(\tau)\). Note that a simplex τ may have an orthoradius which is imaginary, i.e. \(\varPhi_{\tau}^{2} < 0\). This situation, however, cannot happen if the relative amplitude of the weight function is <1/2.

A finite set of weighted points \(\mathcal {P}^{\omega}\) is said to be in general position if there exists no sphere orthogonal to d+2 weighted points of \(\mathcal {P}^{\omega}\).

2.1.2 Weighted Voronoi Diagram and Delaunay Triangulation

Let ω be a weight function defined on \(\mathcal {P}\). We define the weighted Voronoi cell of \(p \in \mathcal {P}\) as

$$\begin{aligned} {\rm Vor}^{\omega}(p)=\bigl\{ x\in \mathbb{R}^d : \|p-x\|^2- \omega(p)^{2} \leq\|q-x\|^2- \omega(q)^{2},~ \forall q \in \mathcal {P}\bigr\} . \end{aligned}$$
(3)

The weighted Voronoi cells and their k-dimensional faces, 0≤kd, form a cell complex that decomposes \(\mathbb{R}^{d}\) into convex polyhedral cells. This cell complex is called the weighted Voronoi diagram or power diagram of \(\mathcal {P}\) [4].

Let τ be a subset of points of \(\mathcal {P}\) and write

$${\rm Vor}^{\omega}(\tau) = \bigcap_{x \in \tau} {\rm Vor}^{\omega}(x). $$

We say \(\mathcal {P}^{\omega}\) is in general position Footnote 1 if \({\rm Vor}^{\omega}(\tau )=\emptyset\) when |τ|>d+1. The collection of all simplices \({\rm conv}(\tau)\) such that \({\rm Vor}^{\omega}(\tau)\neq\emptyset\) constitutes a triangulation of \({\rm conv}(\mathcal {P})\) if \(\dim {\rm aff}(\mathcal {P}) = d\), and this triangulation is called the weighted Delaunay triangulation \({\rm Del}^{\omega}(\mathcal {P})\). The map** that associates to the face \({\rm Vor}^{\omega}(\tau)\) of \({\rm Vor}^{\omega} (\mathcal {P})\) the face \({\rm conv}(\tau)\) of \({\rm Del}^{\omega}(\mathcal {P})\) is a duality, i.e. a bijection that reverses the inclusion relation. See [4, 5, 24].

Alternatively, a d-simplex τ is in \({\rm Del}^{\omega}(\mathcal {P})\) if the orthosphere o τ of τ is further than orthogonal from all weighted points in \(\mathcal {P}^{\omega}\setminus\tau\).

Observe that the definition of weighted Voronoi diagrams makes sense if, for some \(p\in \mathcal {P}\), ω(p)2<0, i.e. some of the weights are imaginary. In fact, since adding a same positive quantity to all ω(p)2 does not change the diagram, handling imaginary weights is as easy as handling real weights. In the sequel, we will only consider positive weight functions with relative amplitude <1/2.

The weighted Delaunay triangulation of a set of weighted points can be computed efficiently in small dimensions and has found many applications, see e.g. [4]. In this paper, we use weighted Delaunay triangulations for two main reasons. The first one is that the restriction of a d-dimensional weighted Voronoi diagram to an affine space of dimension k is a k-dimensional weighted Voronoi diagram that can be computed without computing the d-dimensional diagram (see Lemma 2.2). The other main reason is that some flat simplices named slivers can be removed from a Delaunay triangulation by weighting the vertices (see [7, 14, 15] and Sect. 3).

Lemma 2.2

Let H be a k-dimensional affine space of \(\mathbb{R}^{d}\). The restriction of the weighted Voronoi diagram of \(\mathcal {P}= \{p_{0}, \dots, p_{m}\}\) to H is identical to the k-dimensional weighted Voronoi diagram of \(\mathcal {P}' = \{p_{0}', \dots , p_{m}'\}\) in H, where \(p_{i}' \) denotes the orthogonal projection of p i onto H and the squared weight of \(p'_{i}\) is

$$\omega(p_i)^{2} -\bigl\| p_i-p'_i \bigr\| ^2 + \lambda^{2} $$

where \(\lambda= \max_{p_{j} \in \mathcal {P}} \| p_{j} - p_{j}' \|\) is used to have all weights non-negative. In other words,

$${\rm Vor}^{\omega}(p_{i})\cap H = {\rm Vor}^{\xi} \bigl(p_{i}'\bigr) $$

where \({\rm Vor}^{\xi}(p_{i}') = \{ x \in H : \|x-p_{i}'\|^{2} - \xi(p_{i}')^{2} \leq\|x - p_{j}'\|^{2} - \xi(p_{j}')^{2}, \forall p_{j}' \in \mathcal {P}' \}\).

Proof

By Pythagoras theorem, we have \(\forall x \in H \cap {\rm Vor}^{\omega}(p_{i})\), ∥xp i 2ω(p i )2≤∥xp j 2ω(p j )2\(\| x-p'_{i}\| ^{2} + \| p_{i}-p'_{i}\| ^{2} -\omega (p_{i})^{2}\leq\| x-p'_{j}\| ^{2} + \| p_{j}-p'_{j}\|^{2}-\omega(p_{j})^{2}\), where \(p_{i}'\) denotes the orthogonal projection of \(p_{i} \in \mathcal {P}\) onto H. See Fig. 1. Hence the restriction of \({\rm Vor}^{\omega}(\mathcal {P})\) to H is the weighted Voronoi diagram \({\rm Vor}^{\xi}(\mathcal {P}')\) of the points \(\mathcal {P}'\) with the weight function: \(\xi: \mathcal {P}' \rightarrow[0, \infty),~\mbox{with}~\xi(p_{i}')^{2}= -\|p_{i}-p_{i}'\|^{2}+\omega(p_{i})^{2} + \lambda^{2}\) where \(\lambda= \max_{p_{j} \in \mathcal {P}} \|p_{j}-p_{j}'\|\).

Fig. 1
figure 1

Refer to Lemma 2.2. The gray line denotes the k-dimensional plane H and the black line denotes \({\rm Vor}^{\omega}(p_{i}p_{j})\)

 □

2.2 Sampling Conditions

2.2.1 Local Feature Size

The medial axis of \(\mathcal{M}\) is the closure of the set of points of \(\mathbb{R}^{d}\) that have more than one nearest neighbor on \(\mathcal{M}\). The local feature size of \(x\in \mathcal{M}\), \({\rm lfs}(x)\), is the distance of x to the medial axis of \(\mathcal{M}\) [1]. As is well known and can be easily proved, \({\rm lfs}\) is 1-Lipschitz, i.e.,

$${\rm lfs}(x) \leq {\rm lfs}(y)+\| x-y\|. $$

The infimum of \({\rm lfs}\) over \(\mathcal{M}\) is called the reach of \(\mathcal{M}\). In this paper, we assume that \(\mathcal{M}\) is a compact submanifold of \(\mathbb{R}^{d}\) of (strictly) positive reach. Note that the class of submanifolds with positive reach includes C 2-smooth submanifolds [27].

2.2.2 Sampling Parameters

The point sample \(\mathcal {P}\) is said to be an (ε,δ)-sample (where 0<δ<ε<1) if (1) for any point \(x \in \mathcal{M}\), there exists a point \(p \in \mathcal {P}\) such that \(\|x-p\|\leq \varepsilon \,{\rm lfs}(x)\), and (2) for any two distinct points \(p,q \in \mathcal {P}\), \(\|p-q\|\geq\delta \,{\rm lfs}(p)\). The parameter ε is called the sampling rate, δ the sparsity, and ε/δ the sampling ratio of the sample \(\mathcal {P}\).

The following lemma, proved in [35], states basic properties of manifold samples. As before, we write \({\rm n\! n}(p)\) for the distance between \(p \in \mathcal {P}\) and its nearest neighbor in \(\mathcal {P}\setminus\{p\}\).

Lemma 2.3

Given an (ε,δ)-sample \(\mathcal {P}\) of \(\mathcal{M}\), we have

  1. 1.

    For all \(p \in \mathcal {P}\), we have

    $$\delta \,{\rm lfs}(p) \leq {\rm n\! n}(p) \leq\frac{2\varepsilon }{1-\varepsilon }\,{\rm lfs}(p) . $$
  2. 2.

    For any two points p,q\(\mathcal{M}\) such that \(\|p-q\| = t \,{\rm lfs}(p)\), 0<t<1,

    $$\sin\angle(pq, T_p) \leq t/2. $$
  3. 3.

    Let p be a point in \(\mathcal{M}\). Let x be a point in T p such that \(\|p-x\| \leq t \,{\rm lfs}(p)\) for some 0<t≤1/4. Let xbe the point on \(\mathcal{M}\) closest to x. Then

    $$\bigl\| x-x'\bigr\| \leq2t^2 \,{\rm lfs}(p). $$

2.3 Fat Simplices

Consider a j-simplex τ, where 1≤jk+1. We denote by R τ ,Δ τ ,L τ ,V τ and Γ τ =Δ τ /L τ the circumradius, the longest edge length, the shortest-edge length, the j-dimensional volume, and spread i.e. the longest edge to shortest-edge ratio of τ, respectively.

We define the fatness of a j-dimensional simplex τ as

$$\begin{aligned} \varTheta_{\tau} = \left \{ \begin{array}{l@{\quad}l} 1 & \text{if }j=0\\ V_{\tau}^{1/j} / \varDelta_{\tau} & \text{if }j>0.\\ \end{array} \right . \end{aligned}$$
(4)

The following important lemma is due to Whitney [46, Chap. II].

Lemma 2.4

Let τ=[p 0,…,p j ] be a j-dimensional simplex and let H be an affine flat such that τ is contained in the offset of H by η (i.e. any point of τ is at distance at most η from H). If u is a unit vector in \({\rm aff}(\tau)\), then there exists a unit vector u H in H such that

$$\sin\angle(u,u_{H}) \leq\frac{2\eta}{(j-1)! \varTheta^{j}_{\tau} L_{\tau}}. $$

We deduce from the above lemma the following corollary. See also Lemma 1 in [32] and Lemma 16 in [15].

Corollary 2.5

(Tangent space approximation)

Let τ be a j-simplex, jk, with vertices on \(\mathcal{M}\), and let p be vertex of τ. Assuming that \(\varDelta_{\tau} < {\rm lfs}(p)\), we have

$$\sin\angle\bigl({\rm aff}(\tau), T_{p}\bigr) \leq \frac{\varDelta^{2}_{\tau}}{\varTheta^{k}_{\tau} L_{\tau} \,{\rm lfs}(p)} = \frac{\varGamma_{\tau}\varDelta_{\tau}}{\varTheta^{k}_{\tau} \,{\rm lfs}(p)} . $$

Proof

It suffices to take H=T p and to use \(\eta= \varDelta^{2}_{\tau} / 2 \,{\rm lfs}(p)\) (from Lemma 2.3 (2)) and Γ τ =Δ τ /L τ . Hence

$$\begin{aligned} \sin\angle\bigl({\rm aff}(\tau), T_{p}\bigr) \leq \frac{2\eta}{(j-1)! \varTheta^{j}_{\tau} L_{\tau}} \leq \frac{2\eta}{\varTheta^{j}_{\tau} L_{\tau}} \leq\frac{\varDelta^{2}_{\tau}}{\varTheta^{j}_{\tau}L_{\tau} \,{\rm lfs}(p)} = \frac{\varGamma_{\tau} \varDelta_{\tau}}{\varTheta^{j}_{\tau} \,{\rm lfs}(p)}. \end{aligned}$$

 □

A sliver is a special type of flat simplex. The property of being a sliver is defined in terms of a parameter Θ 0, to be fixed later in Sect. 4.

The following definition is a variant of a definition given in [36].

Definition 2.6

(Θ 0-fat simplices and Θ 0-slivers)

Given a positive parameter Θ 0, a simplex τ is said to be Θ 0-fat if the fatness of τ and of all its subsimplices is at least Θ 0.

A simplex of dimension at least 2 which is not Θ 0-fat but whose subsimplices are all Θ 0-fat is called a Θ 0-sliver.

2.4 Tangential Delaunay Complex and Inconsistent Configurations

Let \(\mathcal {P}\) be a point sample of \(\mathcal{M}\) and u be a point of \(\mathcal {P}\). We denote by \({\rm Del}^{\omega}_{u}(\mathcal {P})\) the weighted Delaunay triangulation of \(\mathcal {P}\) restricted to the tangent space T u . Equivalently, the simplices of \({\rm Del}^{\omega}_{u} (\mathcal {P})\) are the simplices of \({\rm Del}^{\omega} (\mathcal {P})\) whose Voronoi dual faces intersect T u , i.e., \(\tau\in {\rm Del}^{\omega}_{u} (\mathcal {P})\) iff \({\rm Vor}^{\omega}(\tau )\cap T_{u} \neq \emptyset\). Observe that, from Lemma 2.2, \({\rm Del}^{\omega}_{u} (\mathcal {P})\) is in general isomorphic to a weighted Delaunay triangulation of a k-dimensional convex hull. Since this situation can always be ensured by applying some infinitesimal perturbation on \(\mathcal {P}\) or of the weights, in addition to the general position assumption of \(\mathcal {P}^{\omega}\) we will also assume, in the rest of the paper, that all \({\rm Del}^{\omega}_{u}(\mathcal {P})\) are isomorphic to a weighted Delaunay triangulation of a k-dimensional convex hull. We will discuss this in more detail at the beginning of Sect. 5. Finally, write \({\rm st}({u})\) for the star of u in \({\rm Del}^{\omega}_{u} (\mathcal {P})\), i.e., \({\rm st}(u) = {\rm st}(u, {\rm Del}^{\omega}_{u}(\mathcal {P}))\) (see Fig. 2).

Fig. 2
figure 2

\(\mathcal{M}\) is the black curve. The sample \(\mathcal {P}\) is the set of small circles. The tangent space at u is denoted by T u . The Voronoi diagram of the sample is in gray. The edges of the Delaunay triangulation \({\rm Del}(\mathcal {P})\) are the line segments between small circles. In bold, \({\rm st}(u) = \{ uv, uw\}\)

We denote by tangential Delaunay complex or tangential complex for short, the simplicial complex \(\{ \tau : \tau\in {\rm st}(u), u\in \mathcal {P}\}\). We denote it by \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\). By our assumption above, \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) is a k-dimensional subcomplex of \({\rm Del}^{\omega}(\mathcal {P})\). Note that \({\rm st}(u) = {\rm st}(u, {\rm Del}^{\omega}_{u}(\mathcal {P}))\) and \({\rm st}(u, {\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P}))\), the star of u in the complex \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\), are in general different.

By duality, computing \({\rm st}(u)\) is equivalent to computing the restriction to T u of the (weighted) Voronoi cell of u, which, by Lemma 2.2, reduces to computing a cell in a k-dimensional weighted Voronoi diagram embedded in T u . To compute such a cell, we need to compute the intersection of \(|\mathcal {P}|-1\) halfspaces of T u where \(|\mathcal {P}|\) is the cardinality of \(\mathcal {P}\). Each halfspace is bounded by the bisector consisting of the points of T u that are at equal weighted distance from u ω and some other point in \(\mathcal {P}^{\omega}\). This can be done in optimal time [17, 21]. It follows that the tangential complex can be computed without constructing any data structure of dimension higher than k, the intrinsic dimension of \(\mathcal{M}\).

The tangential Delaunay complex is not in general a triangulated manifold and therefore not a good approximation of \(\mathcal{M}\). This is due to the presence of so-called inconsistencies. Consider a k-simplex τ of \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) with two vertices u and v such that τ is in \({\rm st}(u)\) but not in \({\rm st}(v)\) (refer to Fig. 3). We write B u (τ) (and B v (τ)) for the open ball centered on T u (and T v ) that is orthogonal to the (weighted) vertices of τ, and denote by m u (τ) (and m v (τ)), or m u (m v ) for short, its center. According to our definition, τ is inconsistent iff B u (τ) is further than orthogonal from all weighted points in \(\mathcal {P}^{\omega}\setminus\tau\) while there exists a weighted point in \(\mathcal {P}^{\omega}\setminus\tau\) that is closer than orthogonal from B v (τ). We deduce from the above discussion that the line segment [m u m v ] has to penetrate the interior of \({\rm Vor}^{\omega}(w)\), where w ω is a weighted point in \(\mathcal {P}^{\omega} \setminus\tau\).

Fig. 3
figure 3

An inconsistent configuration in the unweighted case. Edge [uv] is in \({\rm Del}_{u}(\mathcal {P})\) but not in \({\rm Del}_{v}(\mathcal {P})\) since \({\rm Vor}(uv)\) intersects T u but not T v . This happens because [m u m v ] penetrates (at i ϕ ) the Voronoi cell of a point wu,v, therefore creating an inconsistent configuration ϕ=[u,v,w]. Also note that i ϕ is the center of an empty sphere circumscribing simplex ϕ

We now formally define an inconsistent configuration as follows.

Definition 2.7

(Inconsistent configuration)

Let ϕ=[p 0,…,p k+1] be a (k+1)-simplex, and let u, v, and w be three vertices of ϕ. We say that ϕ is a Θ 0-inconsistent (or inconsistent for short) configuration of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) witnessed by the triplet (u,v,w) if

  • The k-simplex τ=ϕ∖{w} is in \({\rm st}(u)\) but not in \({\rm st}(v)\).

  • \({\rm Vor}^{\omega}(w)\) is one of the first weighted Voronoi cells of \({\rm Vor}^{\omega}(\mathcal {P})\), other than the weighted Voronoi cells of the vertices of τ, that is intersected by the line segment [m u m v ] oriented from m u to m v . Here \(m_{u} = T_{u} \cap {\rm Vor}^{\omega}(\tau)\) and \(m_{v} = T_{v}\cap {\rm aff}({\rm Vor}^{\omega}(\tau ))\). Let i ϕ denote the point where the oriented segment [m u m v ] first intersects \({\rm Vor}^{\omega}(w)\).

  • τ is a Θ 0-fat simplex.

Note that i ϕ is the center of a sphere that is orthogonal to the weighted vertices of τ and also to w ω, and further than orthogonal from all the other weighted points of \(\mathcal {P}^{\omega}\). Equivalently, i ϕ is the point on [m u m v ] that belongs to \({\rm Vor}^{\omega}(\phi)\).

An inconsistent configuration is therefore a (k+1)-simplex of \({\rm Del}^{\omega} (\mathcal {P})\). However, an inconsistent configuration does not belong to \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) since \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) has no (k+1)-simplex under our general position assumption. Moreover, the lower dimensional faces of an inconsistent configuration do not necessarily belong to \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\).

Since the inconsistent configurations are k+1-dimensional simplices, we will use the same notations for inconsistent configurations as for simplices, e.g. R ϕ and c ϕ for the circumradius and the circumcenter of ϕ, ρ ϕ and Θ ϕ for its radius-edge ratio and fatness, respectively.

We write \({\rm Inc}^{\omega}(\mathcal {P})\) for the subcomplex of \({\rm Del}^{\omega }(\mathcal {P})\) consisting of all the Θ 0-inconsistent configurations of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) and their subfaces. We also define the completed complex \(C^{\omega}(\mathcal {P})\) as

$$C^{\omega}(\mathcal {P}) ={\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\cup {\rm Inc}^{\omega}(\mathcal {P}). $$

Refer to Fig. 4.

Fig. 4
figure 4

In figure (a), \(\mathcal{M}\) is the black curve, the sample \(\mathcal {P}\) is the set of small circles, the tangent space at a point \(x \in \mathcal {P}\) is denoted by T x and the Voronoi diagram of the sample is in gray and \({\rm Del}_{T\mathcal{M}}(\mathcal {P})\) is the line segments between the sample points. In dashed lines, are the inconsistent simplices in \({\rm Del}_{T\mathcal{M}}(\mathcal {P})\). In figure (b), the gray triangles denote the inconsistent configurations corresponding to the inconsistent simplices in figure (a)

An important observation, stated as Lemma 4.9 in Sect. 4.3, is that, if ε is sufficiently small with respect to Θ 0, then the fatness of ϕ is less than Θ 0. Hence, if the subfaces of ϕ are Θ 0-fat simplices, ϕ will be a Θ 0-sliver. This observation is at the core of our reconstruction algorithm.

3 Manifold Reconstruction

The algorithm removes all Θ 0-slivers from \(C^{\omega}(\mathcal {P})\) by weighting the points of \(\mathcal {P}\). By the observation mentioned above, all inconsistencies in the tangential complex will then also be removed. All simplices being consistent, the resulting weighted tangential Delaunay complex \(\hat{\mathcal{M}}\) output by the algorithm will be a simplicial k-manifold that approximates \(\mathcal{M}\) well, as will be shown in Sect. 5.

In this section, we describe the algorithm. Its analysis is deferred to Sect. 4.

We will make the two following hypotheses.

Hypothesis 3.1

\(\mathcal{M}\) is a compact smooth submanifold of \(\mathbb{R}^{d}\) without boundary, and \(\mathcal {P}\) is an (ε,δ)-sample of \(\mathcal{M}\) of sampling ratio ε/δη 0 for some positive constant η 0.

As shown in [23, 35], we can estimate the tangent space T p at each sample point p and also the dimension k of the manifold from \(\mathcal {P}\) and η 0. We assume now that T p , for any point \(p\in \mathcal {P}\), k and η 0 are known.

The algorithm fixes a bound ω 0 on the relative amplitude of the weight assignment:

Hypothesis 3.2

\(\tilde{\omega}\leq\omega_{0}\), for some constant ω 0∈[0,1/2).

Observe that, under this hypothesis, all the balls bounded by weighted spheres are disjoint.

The algorithm also fixes Θ 0 to a constant defined in Theorem 4.15, which depends on k, ω 0 and η 0.

We define the local neighborhood of \(p \in \mathcal {P}\) as

$$ LN(p) = \bigl\{ q\in \mathcal {P}: \big|B\bigl(p, \|p-q\|\bigr)\cap \mathcal {P}\big| \leq N \bigr\} , $$
(5)

where N is a constant that depends on k, ω 0 and η 0 to be defined in Sect. 4.4. We will show in Lemma 4.12 that LN(p) includes all the points of \(\mathcal {P}\) that can form an edge with p in \(C^{\omega}(\mathcal {P})\). In fact, the algorithm can use instead of LN(p) any subset of \(\mathcal {P}\) that contains LN(p). This will only affect the complexity of the algorithm, not the output.

Outline of the Algorithm

Initially, all the sample points in \(\mathcal {P}\) are assigned zero weights, and the completed complex \(C^{\omega}(\mathcal {P})\) is built for this zero weight assignment. Then the algorithm processes each point \(p_{i} \in \mathcal {P}= \{p_{1}, \dots, p_{n}\}\) in turn, and assigns a new weight to p i . The new weight is chosen so that all the simplices of all dimensions in \(C^{\omega}(\mathcal {P})\) are Θ 0-fat. See Algorithm 1.

Algorithm 1
figure 5

Manifold_reconstruction \((\mathcal {P}= \{ p_{0}, \dots, p_{n} \}, \eta_{0})\)

We now give the details of the functions used in the manifold-reconstruction algorithm. The function update_completed_complex(Q,ω) is described as Algorithm 2. It makes use of two functions, build_star(p) and build_inconsistent_configurations(p,τ).

Algorithm 2
figure 6

Function update_completed_complex(Q,ω)

The function build_star(p) calculates the weighted Voronoi cell of p, which reduces to computing the intersection of the halfspaces of T p bounded by the (weighted) bisectors between p and other points in LN(p).

The function build_inconsistent_configurations(u,τ) adds to \(C^{\omega}(\mathcal {P})\) all the inconsistent configurations of the form ϕ=τ∪{w} where τ is an inconsistent simplex of \({\rm st}(u)\). More precisely, for each vertex vu of τ such that \(\tau \not\in {\rm st}(v)\), we calculate the points wLN(p), such that (u,v,w) witnesses the inconsistent configuration ϕ=τ∪{w}. Specifically, we compute the restriction of the Voronoi diagram of the points in LN(u) to the line segment [m u m v ], where \(m_{u} = T_{u} \cap {\rm aff}({\rm Vor}^{\omega}(\tau))\) and \(m_{v} = T_{v} \cap {\rm aff}({\rm Vor}^{\omega}(\tau))\). According to the definition of an inconsistent configuration, w is one of the sites whose (restricted) Voronoi cell is the first to be intersected by the line segment [m u m v ], oriented from m u to m v . We add inconsistent configuration ϕ=τ∪{w} to the completed complex.

We now give the details of function weight(p,ω) that computes ω(p), kee** the other weights fixed (see Algorithm 3). This function extends a similar subroutine introduced in [14] for removing slivers in \(\mathbb{R}^{3}\). We need first to define candidate simplices. A candidate simplex of p is defined as a simplex of \(C^{\omega}(\mathcal {P})\) that becomes incident to p when the weight of p is varied from 0 to \(\omega_{0} {\rm n\! n}(p)\), kee** the weights of all the points in \(\mathcal {P}\setminus\{p\}\) fixed. Note that a candidate simplex of p is incident to p for some weight ω(p) but does not necessarily belong to \({\rm st}(p)\).

Algorithm 3
figure 7

Function weight(p,ω)

Let τ be a candidate simplex of p that is a Θ 0-sliver. We associate to τ a forbidden interval W(p,τ) that consists of all squared weights ω(p)2 for which τ appears as a simplex in \(C^{\omega}(\mathcal {P})\) (the weights of the other points remaining fixed).

The function candidate_slivers(p,ω) varies the weight of p and computes all the candidate slivers of p and their corresponding weight intervals W(p,τ). More precisely, this function follows the following steps.

1. We first detect all candidate j-simplices for all 2≤jk+1. This is done in the following way. We vary the weight of p from 0 to \(\omega_{0} {\rm n\! n}(p)\), kee** the weights of the other points fixed. For each new weight assignment to p, we modify the stars and inconsistent configurations of the points in LN(p) and detect the new j-simplices incident to p that have not been detected so far. The weight of point p changes only in a finite number of instances \(0= P_{0} < P_{1} < \dots< P_{n-1} < P_{n} = \omega _{0} {\rm n\! n}(p)\).

2. We determine the next weight assignment of p in the following way. For each new simplex τ currently incident to p, we keep it in a priority queue ordered by the weight of p at which τ will disappear for the first time. Hence the minimum weight in the priority queue gives the next weight assignment for p. Since the number of points in LN(p) is bounded, the number of simplices incident to p is also bounded, as well as the number of times we have to change the weight of p.

3. For each candidate sliver τ of p which is detected, we compute W(p,τ) on the fly. The candidate slivers are stored in a list with their corresponding forbidden intervals.

4 Analysis of the Algorithm

The analysis of the algorithm relies on structural results that will be proved in Sects. 4.2, 4.3 and 4.4. We will then prove that the algorithm is correct and analyze its complexity in Sects. 4.5 and 4.6. In Sect. 5, we will show that the output \(\hat{\mathcal{M}}\) of the reconstruction algorithm is a good approximation of \(\mathcal{M}\).

The bounds to be given in the lemmas of this section will depend on the dimension k of \(\mathcal{M}\), the bound η 0 on the sampling ratio, and on a positive scalar Θ 0 that bounds the fatness and will be used to define slivers, fat simplices and inconsistent configurations.

4.1 First Lemmas

4.1.1 Circumradius and Orthoradius

The following lemma states some basic facts about weighted Voronoi diagrams when the relative amplitude of the weighting function is bounded. Similar results were proved in [14].

Lemma 4.1

Assume that Hypothesis 3.2 is satisfied. If τ is a simplex of \({\rm Del}^{\omega}(\mathcal {P})\) and p and q are any two vertices of τ, then

  1. 1.

    \(\forall z \in {\rm aff}({\rm Vor}^{\omega}(\tau))\), \(\|q-z\| \leq\frac{\|p-z\|}{\sqrt{1-4\omega_{0}^{2}}}\).

  2. 2.

    \(\forall z \in {\rm aff}({\rm Vor}^{\omega}(\tau))\), \(\sqrt{\|z-p\|^{2}-\omega^{2}(p)}\)Φ τ .

  3. 3.

    στ, Φ σ Φ τ .

Proof

Refer to Fig. 5.

Fig. 5
figure 8

For the proofs of Lemma 4.1

1. If ∥zq∥≤∥zp∥, then the lemma is proved since \(0 < \sqrt{1-4 \omega^{2}_{0}} \leq1\). Hence assume that ∥zq∥>∥zp∥. Since \(z\in {\rm aff}({\rm Vor}^{\omega}(\tau))\)

$$\begin{aligned} \|z-p\|^2 =& \|z-q\|^2+\omega(p)^{2}- \omega(q)^{2} \\ \geq& \|z-q\|^2-\omega(q)^{2} \\ \geq& \|z-q\|^2-\omega_0^2 \|p-q \|^2 \\ \geq& \|z-q\|^2-\omega_0^2 \bigl(\|z-p\|+ \|z-q\|\bigr)^2 \\ >& \|z-q\|^2-4\omega_0^2 \|z-q \|^2 = \bigl(1-4\omega_0^2\bigr) \|z-q\| ^2. \end{aligned}$$

2. We know that \(o_{\tau}= {\rm aff}({\rm Vor}^{\omega}(\tau))\cap {\rm aff}(\tau)\). Therefore, using Pythagoras theorem,

$$\begin{aligned} \|z-p\|^2-\omega(p)^{2} =& \|p-o_{\tau} \|^2+\|o_\tau-z\|^2-\omega(p)^{2}\\ =& \varPhi_{\tau}^2+\|o_\tau-z\|^2 \geq\varPhi_{\tau}^2. \end{aligned}$$

3. The result directly follows from part 2 and the fact that \({\rm aff}({\rm Vor}^{\omega}(\tau)) \subseteq {\rm aff}({\rm Vor}^{\omega}(\sigma))\) (since στ). □

4.1.2 Altitude and Fatness

If pτ, we define τ p =τ∖{p} to be the (j−1)-face of τ opposite to p. We also write D τ (p) for the distance from p to the affine hull of τ p . D τ (p) will be called the altitude of p in τ.

From the definition of fatness, we easily derive the following lemma.

Lemma 4.2

Let τ=[p 0,…,p j ] be a j-dimensional simplex and p be a vertex of τ.

  1. 1.

    \(\varTheta^{j}_{\tau} \leq\frac{1}{j!}\).

  2. 2.

    \(j! \varTheta^{j}_{\tau} \leq\frac{D_{\tau}(p)}{\varDelta_{\tau}} \leq j \varGamma^{j-1}_{\tau} \times \frac{\varTheta^{j}_{\tau}}{\varTheta^{j-1}_{\tau_{p}}}\).

Proof

1. Without loss of generality we assume that τ=[p 0,…,p j ] is embedded in \(\mathbb{R}^{j}\). From the definition of fatness, we have

$$ \varDelta^{j}_{\tau} \varTheta^{j}_{\tau} = V_{\tau} = \frac{|\det (p_1-p_0 \dots p_{j}-p_{0} )|}{j!} \leq\frac{\varDelta^{j}_{\tau}}{j!} . $$

2. Using the above inequality and the definition of fatness, we get

$$ D_{\tau}(p) = \frac{j V_{\tau}}{V_{\tau_p}} \geq \frac{j \varTheta^{j}_{\tau} \varDelta^{j}_{\tau}}{\frac{\varDelta ^{j-1}_{\tau}}{(j-1)!}} \geq j! \varTheta^{j}_{\tau} \varDelta_{\tau}. $$

Moreover, using \(\varDelta_{\tau_{p}} \geq L_{\tau_{p}} \geq L_{\tau}\) and \(\varGamma_{\tau} = \frac{\varDelta_{\tau}}{L_{\tau}}\),

$$ \frac{D_{\tau}(p)}{\varDelta_{\tau}} = \frac{j V_{\tau}}{\varDelta _{\tau} V_{\tau_p}}= j \frac{\varTheta^{j}_{\tau} \varDelta^{j-1}_{\tau}}{\varTheta ^{j-1}_{\tau_p} \varDelta^{j-1}_{\tau_p}} \leq j \frac{\varTheta^{j}_{\tau}\varDelta^{j-1}_{\tau}}{\varTheta ^{j-1}_{\tau_p}L^{j-1}_{\tau}} = j\varGamma_{\tau}^{j-1} \times\frac{\varTheta^{j}_{\tau}}{\varTheta ^{j-1}_{\tau_p}} . $$

 □

4.1.3 Eccentricity

Let τ be a simplex and p be a vertex of τ. We define the eccentricity H τ (p,ω(p)) of τ with respect to p as the signed distance from o τ to \({\rm aff}(\tau_{p})\). Hence, H τ (p,ω(p)) is positive if o τ and p lie on the same side of \({\rm aff}(\tau_{p})\) and negative if they lie on different sides of \({\rm aff}(\tau_{p})\).

The following lemma is a generalization of Claim 13 from [14]. It bounds the eccentricity of a simplex τ as a function of ω(p) where p is a vertex of τ. The proof is included for completeness even though it is exactly the same as the one given in [14].

Lemma 4.3

Let τ be a simplex of \({\rm Del}^{\omega}(\mathcal {P})\) and let p be any vertex of τ. We have

$$H_{\tau}\bigl(p,\omega(p)\bigr) = H_{\tau}(p,0) - \frac{\omega(p)^2}{2 D_{\tau}(p)} . $$

Proof

Refer to Fig. 6. For convenience, we write R=Φ τ for the orthoradius of τ and \(r= \varPhi_{\tau_{p}}\) for the orthoradius of τ p . The orthocenter \(o_{\tau_{p}}\) of τ p is the projection of o τ onto τ p . When the weight ω(p) varies while the weights of other points remain fixed, o τ moves on a (fixed) line L that passes through \(o_{\tau_{p}}\). Now, let p′ and p″ be the projections of p onto L and \({\rm aff}(\tau_{p})\), respectively. Write δ=∥pp′∥ for the distance from p to L. Since p and L (as well as all the objects of interest in this proof) belong to \({\rm aff}(\tau)\), \(\|p' - o_{\tau_{p}}\| = \|p-p'' \| = D_{\tau}(p)\).

Fig. 6
figure 9

For the proof of Lemma 4.3

We have R 2+ω(p)2=(H τ (p,ω(p))−D τ (p))2+δ 2. We also have R 2=H τ (p,ω(p))2+r 2 and therefore H τ (p,ω(p))2=(H τ (p,ω(p))−D τ (p))2+δ 2ω(p)2r 2. We deduce that

$$ H_{\tau}\bigl(p,\omega(p)\bigr) = \frac{D_{\tau}(p)^2 +\delta^{2} - r^{2}}{2D_{\tau}(p)} - \frac{\omega(p)^{2}}{2D_{\tau}(p)} . $$

The first term on the right side is H τ (p,0) and the second is the displacement of o τ when we change the weight of p to ω 2(p). □

4.2 Properties of the Tangential Delaunay Complex

The following two lemmas are slight variants of results of [15]. The first lemma states that the restriction of a (weighted) Voronoi cell to a tangent space is small.

Lemma 4.4

Assume that Hypotheses 3.1 and 3.2 are satisfied. There exists a positive constant C 1 such that for all \(T_{p} \cap {\rm Vor}^{\omega}(p)\), \(\|x-p\| \leq C_{1} \varepsilon \,{\rm lfs}(p)\).

Proof

Assume for a contradiction that there exists a point \(x \in {\rm Vor}^{\omega}(p)\cap T_{p}\) s.t. \(\|x-p\| > C_{1}\varepsilon \,{\rm lfs}(p)\) with

$$ C_1 (1-C_1\varepsilon ) > 2+C_1 \varepsilon (1+C_1\varepsilon ). $$
(6)

Let q be a point on the line segment [px] such that \(\|p-q\|= C_{1}\varepsilon \,{\rm lfs}(p)/2\). Let q′ be the point closest to q on \(\mathcal{M}\). From Lemma 2.3, we have \(\|q-q'\|\leq C_{1}^{2}\varepsilon ^{2} \,{\rm lfs}(p)/2\).

Hence,

$$\begin{aligned} \bigl\| p-q'\bigr\| \leq\|p-q\|+\bigl\| q-q'\bigr\| < & \frac{C_1}{2} \varepsilon (1+C_1\varepsilon ) \,{\rm lfs}(p) \end{aligned}$$

Since \(\mathcal {P}\) is an ε-sample, there exists a point \(t \in \mathcal {P}\) s.t. \(\|q'-t\|\leq \varepsilon \,{\rm lfs}(q')\). Using the fact that \({\rm lfs}\) is 1-Lipschitz and Eq. (6),

$$\begin{aligned} {\rm lfs}\bigl(q'\bigr) \leq {\rm lfs}(p)+ \bigl\| p-q'\bigr\| < \biggl(1+ \frac{C_1}{2} \varepsilon (1+C_1\varepsilon )\biggr) \,{\rm lfs}(p) < \frac{C_1}{2}(1-C_1\varepsilon ) \,{\rm lfs}(p), \end{aligned}$$

which yields \(\|q'-t\| < \frac{C_{1}}{2}\varepsilon (1-C_{1}\varepsilon ) \,{\rm lfs}(p)\). We thus have

$$\|q-t\|\leq\bigl\| q-q'\bigr\| +\bigl\| q'-t\bigr\| < \frac{C_1}{2} \varepsilon \,{\rm lfs}(p) . $$

It follows (see Fig. 7) that ∠ptx>π/2, which implies that

$$\|x-p\|^2-\|x-t\|^2-\|p-t\|^2 > 0. $$

Hence,

$$\begin{aligned} \|x-p\|^2- \|x-t\|^2-\omega^2(p)+ \omega^2(t) \geq& \|p-t\|^2-\omega^2(p) \\ \geq& \|p-t\|^2-\omega_{0}^{2} \|p-t\|^2 \\ >& 0\ \ \biggl(\mbox{since }\omega_0 < \frac{1}{2}\biggr). \end{aligned}$$

This implies \(x \not\in {\rm Vor}^{\omega}(p)\), which contradicts our initial assumption. We conclude that \({\rm Vor}^{\omega}(p)\cap T_{p} \subseteq B(p,C_{1}\varepsilon \,{\rm lfs}(p))\) if Eq. (6) is satisfied, which is true for \(C_{1} \stackrel{{\rm def}}{=} 3+\sqrt{2}\approx4.41\) and εε 0<0.09.

Fig. 7
figure 10

Refer to Lemma 4.4. x′ is a point on the line segment such that \(\|p-x'\|= C_{1}\varepsilon \,{\rm lfs}(p)\), \(L= C_{1}\varepsilon \,{\rm lfs}(p)\), ∠pax′=π/2 and ∠ptx≥∠ptx′>π/2

 □

The following lemma states that, under Hypotheses 3.2 and 3.1, the simplices of \({\rm Del}_{p}^{\omega}(\mathcal {P})\) are small, have a good radius-edge ratio and a small eccentricity.

Lemma 4.5

Assume that Hypotheses 3.1 and 3.2 are satisfied. There exist positive constants C 2, C 3 and C 4 that depend on ω 0 and η 0 such that, if \(\varepsilon < \frac{1}{2C_{2}}\), the following holds.

  1. 1.

    If pq is an edge of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\), then \(\|p-q\| < C_{2}\varepsilon \,{\rm lfs}(p)\).

  2. 2.

    If τ is a simplex of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\), then Φ τ C 3 L τ and Γ τ =Δ τ /L τ C 3.

  3. 3.

    If τ is a simplex of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) and p a vertex of τ, the eccentricity |H τ (p,ω(p))| is at most \(C_{4}\varepsilon \,{\rm lfs}(p)\).

Proof

1. We will consider the following two cases:

  1. (a)

    Consider first the case where pq is an edge of \({\rm Del}_{p}^{\omega}(\mathcal {P})\). Then \(T_{p} \cap {\rm Vor}^{\omega}(pq) \neq\emptyset\). Let \(x\in T_{p} \cap {\rm Vor}^{\omega}(pq)\). From Lemma 4.4, we have \(\|p-x\| \leq C_{1}\varepsilon \,{\rm lfs}(p)\). By Lemma 4.1,

    $$\|q-x\| \leq\frac{\|p-x\|}{\sqrt{1-4\omega_0^2}} \leq \frac{C_1\varepsilon \,{\rm lfs}(p)}{\sqrt{1-4\omega_0^2}}. $$

    Hence, \(\| p-q\| \leq C_{1}' \varepsilon \,{\rm lfs}(p)\) where \(C_{1}'\stackrel{{\rm def}}{=}C_{1}(1+1/\sqrt{1-4\omega_{0}^{2}})\).

  2. (b)

    From the definition of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\), there exists a vertex r of τ such that \([pq] \in {\rm st}(r)\). From (a), ∥rp∥ and ∥rq∥ are at most \(C_{1}'\varepsilon \,{\rm lfs}(r)\). Using the fact that \({\rm lfs}\) is 1-Lipschitz, \({\rm lfs}(p) \geq {\rm lfs}(r) - \|p-r\| \geq(1-C_{1}' \varepsilon ) \,{\rm lfs}(r)\) (from part 1 (a)), which yields \({\rm lfs}(r) \leq\frac{{\rm lfs}(p)}{1-C'_{1}\varepsilon }\). It follows that

    $$\| p-q\| \leq\| p-r\| + \| r-q\| \leq\frac{2C_1'\varepsilon \,{\rm lfs}(p)}{1-C_1'\varepsilon }. $$

    The first part of the lemma is proved by taking \(C_{2}\stackrel{{\rm def}}{=} \frac{5C_{1}' }{2}\) and using 2C 2 ε<1.

2. Without loss of generality, let \(\tau_{1} \in {\rm st}(p)\) be a simplex incident to p and ττ 1. Let \(z \in {\rm Vor}^{\omega}(\tau_{1})\cap T_{p}\), and \(r_{z} = \sqrt{\|z-p\|^{2}-\omega^{2}(p)}\). The ball centered at z with radius r z is orthogonal to the weighted vertices of τ 1. From Lemma 4.1 (2) and (3), we have \(r_{z} \geq \varPhi_{\tau_{1}}\) and \(\varPhi_{\tau} \leq\varPhi_{\tau_{1}}\). Hence it suffices to prove that there exists a constant C 3 such that r z C 3 L τ . Since \(z \in {\rm Vor}^{\omega}(\tau)\cap T_{p}\), we deduce from Lemma 4.4 that \(\|z-p\|\leq C_{1}\varepsilon \,{\rm lfs}(p)\). Therefore

$$r_z = \sqrt{\|z-p\|^2-\omega^2(p)} \leq\|z-p\| \leq C_1\varepsilon \,{\rm lfs}(p).$$

For any vertex q of τ, we have \(\|p-q\| \leq C_{2}\varepsilon \,{\rm lfs}(p)\) (by part 1). Using 2C 2 ε<1 and the fact that \({\rm lfs}\) is 1-Lipschitz, \({\rm lfs}(p)\leq2\,{\rm lfs}(q)\). Therefore, taking for q a vertex of the shortest edge of τ, we have, using Lemma 2.3 and Hypothesis 1,

$$r_z \leq C_1 \varepsilon \,{\rm lfs}(p) \leq C_1 \biggl(\frac{\varepsilon }{\delta}\times\delta \biggr) \times 2\,{\rm lfs}(q) \leq2C_1\eta_0 L_\tau . $$

From part (1) of the lemma we have \(\varDelta_{\tau_{1}} \leq2 C_{2}\varepsilon \,{\rm lfs}(p)\). Therefore

$$\varGamma_{\tau} = \frac{\varDelta_{\tau}}{L_{\tau}} \leq\frac{\varDelta _{\tau_{1}}}{L_{\tau}} \leq \frac{2C_{2}\varepsilon \,{\rm lfs}(p)}{\delta\,{\rm lfs}(q)} \leq4C_{2}\eta_{0} \stackrel{{\rm def}}{=}C_3 . $$

The last inequality follows from the fact that \({\rm lfs}(p) \leq2 \,{\rm lfs}(q)\) and ε/δη 0.

3. From the definition of H τ (p,ω(p)), we have for all vertices qτ p

$$\begin{aligned} \bigl|H_{\tau}\bigl(p, \omega(p)\bigr)\bigr| = {\rm dist}\bigl(o_{\tau}, {\rm aff}( \tau_{p})\bigr) = \| o_{\tau} - o_{\tau_{p}}\| \leq \|o_{\tau} - q\|. \end{aligned}$$

Using the facts that Φ τ C 3 L τ (from part 2), L τ ≤∥pq∥, ω(q)≤ω 0pq∥, and \(\|p-q\| \leq C_{2}\varepsilon \,{\rm lfs}(p)\) (from part 1), we have

$$\begin{aligned} \|o_{\tau} - q\| =& \sqrt{\varPhi_{\tau}^{2} + \omega(q)^{2}} \\ \leq& \sqrt{ C_{3}^{2} L_{\tau}^{2} + \omega_{0}^{2} \|p-q\|^{2}} \\ \leq& \|p-q\| \sqrt{ C_{3}^{2} + \omega_{0}^{2}} \\ \leq& C_{2} \sqrt{C^{2}_{3} + \omega_{0}^{2}}\times \varepsilon \,{\rm lfs}(p) \\ \stackrel{{\rm def}}{=}& C_{4} \varepsilon \,{\rm lfs}(p). \end{aligned}$$

 □

4.3 Properties of Inconsistent Configurations

We now give lemmas on inconsistent configurations which are central to the proof of correctness of the reconstruction algorithm given later in the paper. The first lemma is the analog of Lemma 4.5 applied to inconsistent configurations. Differently from Lemma 4.5, we need to use Corollary 2.5 to control the orientation of the facets of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) and require the following additional hypothesis relating the sampling rate ε and the fatness bound Θ 0.

Hypothesis 4.6

2<1 where \(A \stackrel{{\rm def}}{=} 2C_{2} C_{3}/\varTheta^{k}_{0}\), and C 2 and C 3 are the constants defined in Lemma 4.5.

Lemma 4.7

(Tangent approximation)

Let τ be a k-simplex of \({\rm Del}_{T\mathcal{M}}^{\omega}(\mathcal {P})\) that is Θ 0-fat. For all vertices p of τ, we have \(\sin\angle({\rm aff}(\tau), T_{p}) = \sin\angle(T_{p}, {\rm aff}(\tau)) \leq A\varepsilon \). The constant A, defined in Hypothesis 4.6, depends on k, ω 0, η 0 and Θ 0.

Proof

Since dim(τ)=dim(T p ) (=k), we have from Lemma 2.1, \(\angle({\rm aff}(\tau), T_{p}) = \angle(T_{p}, {\rm aff}(\tau))\). From Lemma 4.5 (1) and the Triangle inequality, we get \(\varDelta_{\tau} \leq2C_{2}\varepsilon \,{\rm lfs}(p)\), and, from Lemma 4.5 (2), we get Γ τ C 3. Using Corollary 2.5, we obtain

$$ \sin\angle\bigl({\rm aff}(\tau), T_{p}\bigr) \leq\frac{\varGamma_{\tau} \varDelta_{\tau}}{ \varTheta^{k}_{\tau} \,{\rm lfs}(p)} \leq\frac{2C_{2}C_{3}\varepsilon }{\varTheta^{k}_{0}} = A \varepsilon . $$

 □

Lemma 4.8

Assume that Hypotheses 3.1, 3.2 and 4.6 are satisfied. Let \(\phi\in {\rm Inc}^{\omega}(\mathcal {P})\) be an inconsistent configuration witnessed by (u,v,w). There exist positive constants \(C_{2}'> C_{2}\), \(C_{3}' >C_{3}\) and \(C_{4}'>C_{4}\) that depend on ω 0 and η 0 s.t., if \(\varepsilon < 1/C_{2}'\), then

  1. 1.

    \(\|p-i_{\phi}\| \leq\frac{C_{2}'}{2} \varepsilon \,{\rm lfs}(p)\) for all vertices p of ϕ.

  2. 2.

    If pq is an edge of ϕ then \(\|p-q\| \leq C_{2}'\varepsilon \,{\rm lfs}(p)\).

  3. 3.

    If σϕ, then \(\varPhi_{\sigma} \leq C_{3}' L_{\sigma}\) and \(\varGamma_{\sigma} = {\varDelta_{\sigma}} / {L_{\sigma}} \leq C_{3}'\).

  4. 4.

    If σϕ and p is any vertex of σ, |H σ (p,ω(p))| of σ is at most \(C_{4}'\varepsilon \,{\rm lfs}(p)\).

Proof

From the definition of inconsistent configurations, the k-dimensional simplex τ=ϕ∖{w} belongs to \({\rm Del}^{\omega}_{u}(\mathcal {P})\). We first bound \({{\rm dist}}(i_{\phi},{\rm aff}(\tau))= \| o_{\tau}-i_{\phi}\|\) where o τ is the orthocenter of τ. Let m u (\(\in {\rm Vor}^{\omega}(\tau)\cap T_{u}\)) denote, as in Sect. 2.4, the point of T u that is the center of the ball orthogonal to the weighted vertices of τ. By definition, m u is further than orthogonal to all other weighted points of \(\mathcal {P}\setminus\tau\). Observe that ∥uo τ ∥≤∥um u ∥, since o τ belongs to \({\rm aff}(\tau)\) and therefore is the closest point to u in \({\rm aff}({\rm Vor}^{\omega}(\tau))\). Moreover, by Lemma 4.4, \(\|u-m_{u}\| \leq C_{1}\varepsilon \,{\rm lfs}(u)\). Then, by Lemma 4.1, we have for all vertices pτ

$$ \|p-o_{\tau}\|\leq\frac{\| u-o_{\tau}\|}{\sqrt{1-4\omega_0^2}} \leq \frac{\| u-m_u\|}{\sqrt{1-4\omega_0^2}} \leq \frac{C_1\varepsilon \,{\rm lfs}(u)}{\sqrt{1-4\omega_0^2}} . $$
(7)

Since τ is a Θ 0-fat simplex (by definition of an inconsistent configuration), we get from Lemma 4.7 that

$$ \sin\angle\bigl({\rm aff}(\tau), T_{p}\bigr) \leq A \varepsilon $$
(8)

for all vertices p of τ. This implies, together with 2<1 (Hypothesis 4.6),

$$ \tan^2 \angle\bigl({\rm aff}(\tau), T_{u} \bigr) \leq\frac{A^2 \varepsilon ^2}{1-A^2\varepsilon ^2}< 4A^2\varepsilon ^2. $$
(9)

Observing again that \(\|u-m_{u}\| \leq C_{1}\varepsilon \,{\rm lfs}(u)\) (from Lemma 4.4) and Eq. (8), we deduce

$$ \|m_u - o_\tau\| \leq\|m_u - u\| \sin\angle \bigl({\rm aff}(\tau), T_{u}\bigr) \leq A C_1 \varepsilon ^2 \,{\rm lfs}(u). $$
(10)

We also have, ∥vo τ ∥≤∥vm u ∥ as o τ is the closest point to v in \({\rm aff}({\rm Vor}^{\omega}(\tau))\). Hence we have, using Eqs. (7) and (9),

$$\begin{aligned} \|m_v-o_\tau\| \leq\|v-o_\tau\| \tan\angle \bigl({\rm aff}(\tau), T_{v} \bigr) < \frac{2 A C_1 \varepsilon ^2}{\sqrt{1-4\omega_0^2}} \,{\rm lfs}(u). \end{aligned}$$
(11)

Let i ϕ denote, as in Sect. 2.4, the first point of the line segment [m u m v ] that is in \({\rm Vor}^{\omega}(\phi)\). We get from Eqs. (10) and (11) that

$$\|o_\tau-i_{\phi}\| \leq \frac{2A C_1 \varepsilon ^2}{\sqrt{1-4\omega_0^2}} \,{\rm lfs}(u). $$

1. Using Lemma 4.4, and the facts that 2<1 and ∥uo τ ∥≤∥um u ∥, we get

$$\begin{aligned} \|u-i_{\phi}\| \leq& \|u-o_{\tau}\| +\|o_\tau-i_{\phi} \| \\ \leq& \|u-m_{u}\| +\|o_\tau-i_{\phi}\| \\ \leq& \biggl( C_1\varepsilon + \frac{2A C_1\varepsilon ^2}{\sqrt{1-4\omega _0^2}} \biggr) \,{\rm lfs}(u) \\ \leq& \biggl( C_1\varepsilon + \frac{C_1\varepsilon }{\sqrt{1-4\omega_0^2}} \biggr) \,{\rm lfs}(u) \\ \leq& \frac{C_2}{4} \varepsilon \,{\rm lfs}(u) \end{aligned}$$
(12)

where C 2 is the constant introduced in Lemma 4.5. Equation (12), together with Lemma 4.1 and \(C_{2}'\stackrel{\rm{def}}{=} C_{2}/\sqrt{1-4\omega_{0}^{2}}> C_{2}\), yields

$$\begin{aligned} \|p-i_{\phi}\| \leq \frac{\|u-i_{\phi}\|}{\sqrt{1-4\omega_0^2}} \leq \frac{C_2'}{4} \varepsilon \,{\rm lfs}(u) \end{aligned}$$
(13)

for all vertices p of ϕ. We deduce \(\| p-u\| \leq \|p-i_{\phi}\| +\|u-i_{\phi}\| \leq \frac{C_{2}'}{2} \varepsilon \,{\rm lfs}(u) \).

We now express \({\rm lfs}(u)\) in terms of \({\rm lfs}(p)\) using the fact that \({\rm lfs}\) is 1-Lipschitz and using \(C_{2}'\varepsilon <1\):

$$\begin{aligned} \bigl|{\rm lfs}(p) -{\rm lfs}(u)\bigr| \leq \| p-u\| \leq \frac{C_2'}{2} \varepsilon \,{\rm lfs}(u) \leq \frac{1}{2} \,{\rm lfs}(u) . \end{aligned}$$
(14)

We deduce that \({\rm lfs}(u) \leq2 \,{\rm lfs}(p)\) and \(\|p-i_{\phi}\| \leq \frac{C_{2}'}{2}\varepsilon \,{\rm lfs}(p)\).

2. Using Eqs. (13) and (14), from part 1 of this lemma, we have

$$\|p-q\| \leq\|p-i_{\phi}\| +\|q-i_{\phi}\| \leq \frac{C_2'}{2} \varepsilon \,{\rm lfs}(u) \leq C_2' \varepsilon \,{\rm lfs}(p). $$

3. If σ belongs to \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\), the result has been proved in Lemma 4.5(3) with \(C_{3}'=C_{3}\). Let \(r_{\phi} = \sqrt{\|i_{\phi} - u\|^{2}-\omega(u)^{2}}\). Since \(i_{\phi} \in {\rm Vor}^{\omega}(\sigma)\), the sphere centered at i ϕ with radius r ϕ is orthogonal to the weighted vertices of σ. From Lemma 4.1(2) and (3), we have r ϕ Φ ϕ and Φ ϕ Φ σ , respectively. Hence it suffices to show that there exists a constant \(C_{3}'\) such that \(r_{\phi} \leq C_{3}' L_{\sigma}\). Using Eq. (12), we get

$$ r_{\phi} =\sqrt{\|i_{\phi}-u\|-\omega(u)^{2}} \leq \|i_{\phi}-u\| \leq \frac{C_2}{4} \varepsilon \,{\rm lfs}(u). $$

Let q be a vertex of a shortest edge of σ. We have, from part 2, of this lemma, \(\|u-q\| \leq C_{2}' \varepsilon \,{\rm lfs}(q)< {\rm lfs}(q)\). From which we deduce that \({\rm lfs}(u) \leq2 \,{\rm lfs}(q)\). Therefore, using Hypothesis 3.1,

$$\varPhi_{\sigma} \leq r_{\phi} \leq\frac{C_2}{2} \varepsilon \,{\rm lfs}(q) = \frac{C_2}{2} \biggl(\frac{\varepsilon }{\delta}\times\delta \biggr)\times {\rm lfs}(q) \leq\frac{C_2}{2} \eta_0 L_{\sigma} . $$

From part 2 of the lemma, we have \(\varDelta_{\phi} \leq2C_{2}' \varepsilon \,{\rm lfs}(q)\), and using the facts that \(L_{\sigma} \geq\delta\,{\rm lfs}(q)\) and ε/δη 0, this implies

$$\begin{aligned} \varGamma_{\sigma} = \frac{\varDelta_{\sigma}}{L_{\sigma}} \leq\frac {\varDelta_{\phi}}{L_{\sigma}} \leq2C_{2}'\eta_{0}. \end{aligned}$$

We get the result by taking \(C_{3}'\stackrel{{\rm def}}{=} \max\{ 4C_{2}\eta_{0}, 2C_{2}'\eta _{0}\}\).

4. Using the same arguments as in the proof of Lemma 4.5 (3) we have for all vertices q of σ p

$$\bigl|H_{\sigma}\bigl(p, \omega(p)\bigr)\bigr| \leq\| o_{\sigma} - p \|. $$

Using the facts that \(\varPhi_{\sigma} \leq C_{3}' L_{\sigma}\) (from part 3), L σ ≤∥pq∥, ω(q)≤ω 0pq∥, and \(\|p-q\| \leq2C_{2}'\varepsilon \,{\rm lfs}(p)\) (from part 2), we have

$$\begin{aligned} \|o_{\sigma} - q\| =& \sqrt{\varPhi_{\sigma}^{2} + \omega(q)^{2}} \\ \leq& \sqrt{ {C_{3}'}^{2} L_{\sigma}^{2} + \omega_{0}^{2} \|p-q\| ^{2}} \\ \leq& \|p-q\| \sqrt{ {C_{3}'}^{2} + \omega_{0}^{2}} \\ \leq& C_{2}' \sqrt{{C_{3}'}^{2} + \omega_{0}^{2}}\times \varepsilon \,{\rm lfs}(p) \\ \stackrel{{\rm def}}{=}& C'_{4} \varepsilon \,{\rm lfs}(p). \end{aligned}$$

 □

The next crucial lemma bounds the fatness of inconsistent configurations.

Lemma 4.9

Assume Hypotheses 3.1, 3.2 and 4.6, and \(\varepsilon < 1/2C_{2}'\). The fatness Θ ϕ of an inconsistent configuration ϕ is at most

$$\biggl( \frac{C_2' \varepsilon }{(k+1)!} \biggl( 1+\frac{2C_3}{\varTheta ^{k}_{0}} \biggr) \biggr)^{\frac{1}{k+1}}. $$

Proof

Let ϕ be witnessed by (u,v,w). From the definition of inconsistent configurations, the k-dimensional simplex τ=ϕ∖{w} belongs to \({\rm st}(u)\) and τ is a Θ 0-fat simplex. Using Lemma 4.8 (2), we have \(\varDelta_{\phi} \leq2C'_{2}\varepsilon \,{\rm lfs}(u)\). As in the proof of Lemma 4.8, we have \(\sin\angle(T_{u}, {\rm aff}(\tau)) \leq\frac{\varGamma_{\tau}\varDelta _{\tau} }{\varTheta^{k}_{\tau} \,{\rm lfs}(u)}\) (refer to Eq. (8)) by Corollary 2.5 and the fact that \(\varDelta _{\phi} < {\rm lfs}(u)\). Also, using the fact that \(\|u-w\|< C_{2}'\varepsilon \,{\rm lfs}(u) < {\rm lfs}(u)\) (from Lemma 4.5 (2) and \(\varepsilon < 1/2C'_{2}\)) and Lemma 2.3 (2), we have

$$\sin\angle(uw,T_{u}) \leq\frac{\|u-w\|}{2 \,{\rm lfs}(u)} \leq\frac {\varDelta_{\phi}}{2 \,{\rm lfs}(u)}. $$

We can bound the altitude D ϕ (w) of w in ϕ

$$\begin{aligned} D_{\phi}(w) =& {{\rm dist}}\bigl(w, {\rm aff}(\tau)\bigr) \\ =& \sin\angle\bigl(uw, {\rm aff}(\tau)\bigr) \times\|u-w\| \\ \leq& \bigl(\sin\angle(uw, T_{u})+\sin\angle\bigl({\rm aff}(\tau), T_{u}\bigr) \bigr) \times\varDelta_{\phi} \\ \leq& \biggl( \frac{\varDelta_{\phi}}{2 \,{\rm lfs}(u)}+\frac{\varGamma _{\tau}\varDelta_{\tau} }{\varTheta^{k}_{\tau} \,{\rm lfs}(u)} \biggr) \varDelta_{\phi} \\ \leq&\frac{\varDelta^{2}_{\phi}}{2\,{\rm lfs}(u)} \biggl( 1+ \frac{2\varGamma _{\tau}}{\varTheta^{k}_{\tau}} \biggr) . \end{aligned}$$
(15)

From the definition of fatness of a simplex and Lemma 4.2 (1), we get

$$ V_{\tau} = \varTheta^{k}_{\tau} \varDelta^{k}_{\tau} \leq \frac{\varDelta^{k}_{\tau}}{k!} . $$
(16)

We deduce

$$\begin{aligned} \varTheta_{\phi} ^{k+1} & = \frac{V_{\phi}}{\varDelta^{k+1}_{\phi}} \\ & = \frac{D_{\phi}(w ) V_{\tau}}{(k+1)}\times\frac{1}{\varDelta ^{k+1}_{\phi}} \\ &\leq\frac{\varDelta^{2}_{\phi}}{2 \,{\rm lfs}(u)} \biggl( 1+ \frac {2\varGamma_{\tau}}{\varTheta^{k}_{\tau}} \biggr) \times \frac{\varDelta^{k}_{\tau}}{(k+1)! \varDelta^{k+1}_{\phi}}\quad \mbox{using Eqs.~(15) and (16)} \\ &\leq \frac{C_2' \varepsilon }{(k+1)!} \biggl( 1+\frac{2C_3}{\varTheta ^{k}_{0}} \biggr). \end{aligned}$$

The last inequality comes from the facts that σ is Θ 0-fat, \(\varDelta_{\phi} \leq 2C_{2}'\varepsilon \,{\rm lfs}(u)\) (from Lemma 4.8 (2)) and Γ τ C 3 (from Lemma 4.5 (3)). □

A consequence of the lemma is that, if the subfaces of ϕ are Θ 0-fat simplices and if

Hypothesis 4.10

\(\frac{C_{2}' \varepsilon }{(k+1)!} ( 1+\frac{2C_{3}}{\varTheta^{k}_{0}} ) < \varTheta_{0}^{k+1}\)

is satisfied, then ϕ is a Θ 0-sliver. Hence, techniques to remove slivers can be used to remove inconsistent configurations.

In the above lemmas, we assumed that ε is small enough. Specifically in addition to Hypotheses 3.1, 3.2 and 4.6, we assumed that 2C 2 ε<1 in Lemma 4.5, \(C_{2}'\varepsilon <1\) in Lemma 4.8 and \(2C_{2}'\varepsilon < 1\) in Lemma 4.9. We will make another hypothesis that subsumes these two previous conditions.

Hypothesis 4.11

\(C_{2}'(1+C_{2}' \eta_{0}) \varepsilon <1/2\).

Observe that this hypothesis implies \(C_{2}'(1+C_{2}') \varepsilon <1/2\) since η 0>1. Observe also that Hypotheses 4.6, 4.10 and 4.11 are satisfied for fixed ω 0, η 0, Θ 0 and a sufficiently small ε.

4.4 Number of Local Neighbors

We will use the result from this section for the analysis of the algorithm, and also for calculating its time and space complexity.

Let \(N \stackrel{{\rm def}}{=} (4C'_{2}\eta_{0}+6)^{k}\), where the constant \(C'_{2}\) is defined in Lemma 4.8.

Lemma 4.12

Assume Hypotheses 3.1, 3.2, 4.6 and 4.11. The set

$$\mathit{LN}(p) = \bigl\{ q \in \mathcal {P}: \bigl|B\bigl(p, \|p-q\|\bigr) \cap \mathcal {P}\bigr| \leq N \bigr\} , $$

where N=2O(k) and the constant in big-O depends on ω 0 and η 0, includes all the points of \(\mathcal {P}\) that can form an edge with p in \(C^{\omega}(\mathcal {P})\).

Proof

Lemmas 4.5 and 4.8 show that, in order to construct \({\rm st}(p)\) and search for inconsistencies involving p, it is enough to consider the points of \(\mathcal {P}\) that lie in ball \(B_{p}= B(p, C_{2}'\varepsilon \,{\rm lfs}(p))\). Therefore it is enough to count the number of points in \(B_{p} \cap \mathcal {P}\).

Let x and y be two points of \(B_{p} \cap \mathcal {P}\). Since \({\rm lfs}()\) is a 1-Lipschitz function, we have

$$ {\rm lfs}(p) \bigl(1-C_2'\varepsilon \bigr) \leq {\rm lfs}(x), \qquad {\rm lfs}(y) \leq {\rm lfs}(p) \bigl(1+C_2'\varepsilon \bigr). $$
(17)

By definition of an (ε,δ)-sample of \(\mathcal{M}\), the two balls B x =B(x,r x ) and B y =B(y,r y ), where \(r_{x}= \delta \,{\rm lfs}(x)/2\) and \(r_{y}=\delta \,{\rm lfs}(y)/2\), are disjoint. Moreover, both balls are contained in the ball \(B^{+}_{p}= B(p, r^{+})\), where

$$r^+ \stackrel{{\rm def}}{=} C_2'\varepsilon \,{\rm lfs}(p) + \bigl(1+C_2'\varepsilon \bigr)\delta \,{\rm lfs}(p) . $$

Let \(\overline{B}_{x} = B_{x}\cap T_{p}\), \(\overline{B}_{y} = B_{y}\cap T_{p}\) and \(\overline{B}^{+}_{p}= B^{+}_{p}\cap T_{p}\). From Lemma 2.3(2), the distance from x to T p is

$$ {\rm dist}(x, T_p) = \|p-x\|\times\sin(px, T_p) \leq C^{\prime 2}_2\varepsilon ^2 \,{\rm lfs}(p)/2. $$
(18)

Using Eqs. (17), (18) and the fact that ε/δη 0, we see that \(\overline {B}_{x}\) is a k-dimensional ball of squared radius

$$\begin{aligned} \delta^2 \,{\rm lfs}^2(x)/4 - {\rm dist}(x, T_p)^2 \geq& \delta^2\,{\rm lfs}^2(p) \bigl(1-C_2' \varepsilon \bigr)^2/4 -C_2^{'4}\varepsilon ^4 \,{\rm lfs}(p)/4 \\ \geq& \delta^2\,{\rm lfs}^2(p)/4\times \bigl( \bigl(1-C_2' \varepsilon \bigr)^2-C_2^{'4} \eta_0^2 \varepsilon ^2 \bigr) \\ \stackrel{{\rm def}}{=}& \bigl(r^{-}\bigr)^2. \end{aligned}$$

We can now use a packing argument. Since the balls \(\overline{B}_{x}\), x in \(B_{p}\cap \mathcal {P}\), are disjoint and all contained in \(B^{+}_{p}\), the number of points of \(B_{p} \cap \mathcal {P}\) is at most

$$\begin{aligned} \biggl(\frac{r^{+}}{r^{-}} \biggr)^{k} =& \biggl( \frac{(C_2'\varepsilon +(1+C_2'\varepsilon )\delta)^2}{ \delta^2/4\times ( (1-C_2' \varepsilon )^2-C_2^{'4} \eta_0^2 \varepsilon ^2 )} \biggr)^{k/2} \\ \leq& \biggl( \frac{4 ( C_2'\eta_0+(1+C_2'\varepsilon ) )^2}{ (1-C_2' \varepsilon )^2-C_2^{'4} \eta_0^2 \varepsilon ^2} \biggr)^{k/2} \\ =& \biggl( \frac{4 ( C_2'\eta_0+(1+C_2'\varepsilon ) )^2}{ (1-C'_{2}\varepsilon - {C'_{2}}^{2}\eta_{0}\varepsilon )(1-C'_{2}\varepsilon + {C'_{2}}^{2}\eta _{0}\varepsilon )} \biggr)^{k/2} \\ \leq& \bigl( 4 C_2'\eta_0+6 \bigr)^{k} \stackrel{{\rm def}}{=} N\quad { \mbox{(using Hypothesis~4.11})} \end{aligned}$$

And the result follows. □

4.5 Correctness of the Algorithm

Definition 4.13

(Sliverity range)

Let ω be a weight assignment satisfying Hypothesis 3.2. The weight of all the points in \(\mathcal {P}\setminus\{p\}\) are fixed and the weight ω(p) of p is varying. The sliverity range Σ(p) of a point \(p\in \mathcal {P}\) is the measure of the set of all squared weights ω(p)2 for which p is a vertex of a Θ 0-sliver in \(C^{\omega}(\mathcal {P})\).

Lemma 4.14

Under Hypotheses 3.1, 3.2, 4.6, 4.10 and 4.11, the sliverity range satisfies

$$ \varSigma(p) < 2N^{k+1} C_{5} \varTheta_{0} {\rm n\! n}(p)^{2} $$

for some constant C 5 that depends on k, ω 0 and η 0 but not on Θ 0.

Proof

Let τ be a j-dimensional simplex of \(C^{\omega}(\mathcal {P})\) incident on p (with 2≤jk+1). assume that τ is a Θ 0-sliver. If ω(p) is the weight of p, we write H τ (p,ω(p)) for the eccentricity of τ with respect to p and parameterized by ω(p). From Lemma 4.8(4), we have

$$ \bigl|H_{\tau}\bigl(p, \omega(p)\bigr)\bigr| \leq C'_4\varepsilon \,{\rm lfs}(p) \stackrel{{\rm def}}{=} D. $$
(19)

Using Lemma 4.2 (2), we have

$$ D_{p}(\tau) \leq j \varGamma^{j-1}_{\tau} \varDelta_{\tau}\times\frac {\varTheta^{j}_{\tau}}{\varTheta^{j-1}_{\tau_p}} \leq(k+1) C_3^{\prime k} \varTheta_{0} \varDelta_{\tau} \stackrel{{\rm def}}{=} E. $$
(20)

The last inequality follows from the facts that jk+1, \(\varGamma _{\tau} \leq C'_{3} \) (from Lemmas 4.5 (2) and 4.8 (3)) and τ is a Θ 0-sliver. Moreover, from Lemma 4.3,

$$ H_{\tau}\bigl(p, \omega(p)\bigr)= H_{\tau}(p, 0) - \frac{\omega (p)^{2}}{2D_p(\tau)} . $$
(21)

It then follows from Eqs. (19), (20) and (21) that the set of squared weights of p for which τ belongs to \(C^{\omega}(\mathcal {P})\) is a subset of the following interval

$$\bigl[2D_{p}(\tau)H_{\tau}(p, 0) -\beta, 2D_{p}( \tau)H_{\tau}(p, 0) + \beta\bigr], $$

where β=2DE. Therefore, from Eq. (20) and (21), the measure of the set of weights for which τ belongs to \(C^{\omega}(\mathcal {P})\) is at most

$$2\beta= 4DE= 4(k+1)C_{3}^{\prime k} \varTheta_0\varDelta_{\tau}{C'_{4}} \varepsilon \,{\rm lfs}(p). $$

Let q 1 and q 2 be two vertices of τ such that Δ τ =∥q 1q 2∥. Using Lemmas 4.5 (1) and 4.8 (2), we get

$$ \varDelta_{\tau} \leq\|p-q_{1}\| + \|p-q_{2}\| \leq2{C'_{2}} \varepsilon \,{\rm lfs}(p) . $$

Using this inequality, \({\rm lfs}(p) \leq {\rm n\! n}(p)/\delta\) (Lemma 2.3) and ε/δη 0 (Hypothesis 3.1), the sliverity range of τ is at most \(8(k+1){C'_{3}}^{k} C'_{2} C'_{4}\varTheta_{0} \eta^{2}_{0} {\rm n\! n}(p)^{2} = C_{5} \varTheta_{0} {\rm n\! n}(p)^{2} \) with \(C_{5} \stackrel{\rm def}{=} 8(k+1){C'_{3}}^{k} C'_{2} C'_{4} \eta^{2}_{0}\). By Lemma 4.12, the number of j-simplices that are incident to p is at most N j. Hence, the sliverity range of p is at most

$$\begin{aligned} \varSigma(p) \leq\sum_{j=3}^{k+1} N^{j} C_{5} \varTheta_{0} {\rm n\! n}(p)^2 < 2N^{k+1} C_{5} \varTheta_{0} {\rm n\! n}(p)^2 . \end{aligned}$$

The last inequality follows from the fact that \(\sum_{j=3}^{k+1} N^{j} < 2 N^{k+1}\) (as \(N = (4C'_{2}\eta_{0} +6)^{k} >2\)). □

Theorem 4.15

Take \(\varTheta_{0} =\frac{\omega^{2}_{0}}{2 N^{k+1} C_{5}}\) and assume that Hypotheses 3.1, 3.2, 4.6, 4.10 and 4.11 are satisfied. Then, the simplicial complex \(\hat{\mathcal{M}}\) output by Algorithm  1 has no inconsistencies and its simplices are all Θ 0-fat.

Proof

The sliverity range Σ(p) of p is at most \(2N^{k+1}C_{5} \varTheta_{0} {\rm n\! n}(p)^{2}\) from Lemma 4.14. Since \(\varTheta_{0} = \frac{\omega_{0}^{2}}{2N^{k+1} C_{5}}\), Σ(p) is less than the total range of possible squared weights \(\omega_{0}^{2} {\rm n\! n}(p)^{2}\). Hence, function weight (p,ω) will always find a weight for any point \(p\in \mathcal {P}\) and any weight assignment of relative amplitude at most ω 0 for the points of \(\mathcal {P}\setminus \{p\}\).

Since the algorithm removes all the simplices of \(C^{\omega}(\mathcal {P})\) that are not Θ 0-fat, all the simplices of \(\hat{\mathcal{M}}\) are Θ 0-fat.

By Lemma 4.9 and Hypothesis 4.10, all the inconsistent configurations in \(C^{\omega}(\mathcal {P})\) are either Θ 0-slivers or contain subfaces which are Θ 0-slivers. It follows that \(\hat{\mathcal{M}}\) has no inconsistency since, when the algorithm terminates, all simplices of \(C^{\omega}(\mathcal {P})\) are Θ 0-fat. □

4.6 Time and Space Complexity

Theorem 4.16

Assume that Hypotheses 3.1, 3.2, 4.6, 4.10 and 4.11 are satisfied. Then the space complexity of the algorithm is

$$\bigl(O(d) + 2^{O(k^{2})}\bigr)|\mathcal {P}| $$

and the time complexity is

$$O(d) |\mathcal {P}|^{2} + d 2^{O(k^2)} |\mathcal {P}|, $$

where \(|\mathcal {P}|\) denotes the cardinality of \(\mathcal {P}\).

Proof

Space Complexity: For each point \(p \in \mathcal {P}\) we maintain LN(p). The total space complexity for storing LN(p) for each point \(p \in \mathcal {P}\) is thus \(O(N|\mathcal {P}|)\) by definition of LN(p).

Rather than maintaining \(C^{\omega}(\mathcal {P})\) as one data structure, for all \(p \in \mathcal {P}\), we maintain \({\rm st}(p)\) and \({\rm cosph}(p)\), where

$$\begin{aligned} {\rm cosph}(p) =& \bigl\{ \mbox{inconsistent configuration}~\phi\ \big| \\ &\hphantom{\bigl\{ }\quad \phi~\mbox{is witnessed by}~(p, q, r),~\mbox{for some}~q, r \in \mathcal {P}\setminus p \bigr\} . \end{aligned}$$

Note that

$$C^{\omega}(\mathcal {P}) = \bigcup_{p \in \mathcal {P}} \bigl( {\rm st}(p) \cup {\rm cosph}(p) \bigr) . $$

By Lemma 2.2, each \({\rm st}(p)\), \(p \in \mathcal {P}\), has the same combinatorial complexity as a Voronoi cell in the k-dimensional flat T p . Since the sites needed to compute this Voronoi cell all belong to LN(p), there number is at most N by Lemma 4.12. From the Upper Bound Theorem of convex geometry, see e.g. [13], the combinatorial complexity of each star is therefore O(N k/2⌋). Hence the total space complexity of the tangential Delaunay complex is \(O(kN^{\lfloor k/2 \rfloor}) |\mathcal {P}|\).

For a given inconsistent Θ 0-fat k-simplex in \({\rm st}(p)\), we can have from Lemmas 4.8 (2) and 4.12, at most k|LN(p)|≤kN different inconsistent configurations. Hence, the number of inconsistent configurations to be stored in the completed complex \(C^{\omega}(\mathcal {P})\) is at most \(O(k^{2}N^{\lfloor k/2 \rfloor+1}) |\mathcal {P}|\).

The main loop of the algorithm processes each point \(p \in \mathcal {P}\) in turn, and finds a weight assignment ω(p) using the function weight( , ). In the function weight, we maintain a list of candidate simplices of p with their corresponding forbidden intervals and a priority queue of candidate simplices of p. By Lemmas 4.5 (1), 4.8 (2) and 4.12, the space complexities of both these data structures are bounded by O(kN k+1).

With N=2O(k) (refer to Lemma 4.12), we conclude that the total space complexity of the algorithm is

$$O\bigl(k^{2} N^{\lfloor k/2 \rfloor+ 1}|\mathcal {P}| + d|\mathcal {P}| + k N^{k+1} \bigr) = \bigl(O(d) + 2^{O(k^{2})}\bigr)|\mathcal {P}|. $$

Time complexity: In the initialization phase, the algorithm computes LN(p) for all \(p \in \mathcal {P}\) and initializes the weights to 0. This can easily be done in time \(O(d) |\mathcal {P}|^{2} \).

Then the algorithm builds \(C^{\omega}(\mathcal {P})\) for the zero weight assignment. The time to compute \({\rm st}(p)\) is dominated by the time to compute the cell of p in the weighted k-dimensional Voronoi diagram of the projected points of LN(p) onto T p . Since, by definition, |LN(p)|≤N, the time for building the star of p is the same as the time to compute the intersection of N halfspaces in \(\mathbb{R}^{k}\),

$$O\bigl(kdN+k^{3}\bigl(N\log N + N^{ \lfloor k/2 \rfloor}\bigr)\bigr), $$

see e.g. [13, 17]. The factor O(kd) appears in the first term because calculating the projection of a point in \(\mathbb{R}^{d}\) on a k-flat requires to compute k inner products. The O(k 3) factor comes from the fact that the basic operation we need to perform is to decide whether a point lies in the ball orthogonal to a k-simplex. This operation reduces to the evaluation of the sign of the determinant of a (k+2)×(k+2) matrix. The N k/2⌋ term bounds the combinatorial complexity of a cell in the Voronoi diagram of N sites in a k-flat. Therefore the time needed to build the stars of all the points p in \(\mathcal {P}\) is

$$O\bigl(kd N+k^{3}\bigl(N\log N + N^{ \lfloor k/2 \rfloor}\bigr)\bigr) |\mathcal {P}| . $$

Let τ=[p 0,…,p k ] be a Θ 0-fat k-simplex in \({\rm st}(u)\). For each vertex v (≠u) of τ with \(\tau\not\in {\rm st}(v)\), we need to compute the inconsistent configurations of the form ϕ=[p 0,…,p k ,w] witnessed by (u,v,w) where wLN(p)∖τ. The number of such inconsistent configurations is therefore less than |LN(p)|≤N. The time complexity to compute all the inconsistent configurations of the form ϕ=[p 0,…,p k ,w] witnessed by the triplet (u,v,w) is O(dN). Since the number of choices of v is at most k, hence the time complexity for building all the inconsistent configurations of the form ϕ=[p 0,…,p k ,w] witnessed by (u,v,w) with v (≠u) being a vertex of τ and w a point in LN(u)∖τ is

$$\begin{aligned} O(dk N). \end{aligned}$$
(22)

The time complexity to build all the inconsistent configurations corresponding to \({\rm st}(u)\) is O(dkN k/2⌋+1) since the number of k-simplices in the star of a point p is O(N k/2⌋).

Hence, the time complexity for building the inconsistent configurations of \(C^{\omega}(\mathcal {P})\) is \(O(dN+kN^{ \lfloor k/ 2 \rfloor+1 }) |\mathcal {P}|\). Therefore the total time complexity of the initialization phase is

$$O\bigl(dk N + k^{3}N\log N+ \bigl(dk +k^{3} \bigr)N^{ \lfloor k/2 \rfloor+ 1} \bigr) |\mathcal {P}|. $$

Consider now the main loop of the algorithm. The time complexity of function weight(p,ω) is O((d+k 3)N k+1) since we need to sweep over at most all (k+1)-simplices incident on p with vertices in LN(p). The number of such simplices is at most N k+1. We easily deduce from the above discussion that the time complexity of Function update_complete_complex(LN(p),ω) is

$$O\bigl(dk N + k^{3} N \log N + \bigl(dk + k^{3}\bigr) N^{ \lfloor k/2 \rfloor+ 1} \bigr) N. $$

Since functions weight(p,Θ 0,ω) and update_complete_complex \((C^{\omega}(\mathcal {P}), p, \omega)\) are called \(|\mathcal {P}|\) times, we conclude that the time complexity of the main loop of the algorithm is \(O(dk N^{2} + (k^{3}+dk )N^{k+1} ) |\mathcal {P}|\).

Combining the time complexities for all the steps of the algorithm and using N=O2O(k) (refer to Lemma 4.12), we get the total time complexity of the algorithm

$$ O(d)|\mathcal {P}|^{2} +O\bigl(dk N^{2}+\bigl(dk+k^{3} \bigr)N^{k+1}\bigr) | \mathcal {P}|= O(d) |\mathcal {P}|^{2} + d 2^{O(k^2)} |\mathcal {P}|. $$

 □

Observe that, since \(\mathcal {P}\) is an (ε,δ)-sample of \(\mathcal{M}\) with ε/δη 0, \(|\mathcal {P}| = O(\varepsilon ^{k})\).

5 Topological and Geometric Guarantees

In this section we give conditions under which \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) is isotopic to and a close geometric approximation of the manifold \(\mathcal{M}\). The results in this section will be used to prove the theoretical guarantees on the quality of the simplicial complex \(\hat{\mathcal{M}}\) output by Algorithm 1 in Sect. 3.

5.1 General Position Assumption

We assume that the weighted points in \(\mathcal {P}^{\omega}\) are in general position in \(\mathbb{R}^{d}\) and this will imply \({\rm Del}^{\omega}(\mathcal {P})\) is a simplicial complex, see Sect. 2.1.2. Therefore \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) is a simplicial complex.

We know from Lemma 2.2 that \({\rm Vor}^{\omega}(\mathcal {P})\cap T_{p}\) is identical to the weighted Voronoi diagram \({\rm Vor}^{\xi_{p}}(\mathcal {P}_{p})\) of \(\mathcal {P}^{\xi_{p}}\) in T p , where \(\mathcal {P}_{p}\) is obtained by projecting \(\mathcal {P}\) orthogonally onto T p and ξ p is the weight assignment defined in Lemma 2.2.

Under Hypotheses 3.1 and 3.2, \({\rm Vor}^{\xi_{p}}(p)\) is bounded (Lemma 4.4) and therefore \(\dim {\rm aff}(\mathcal {P}_{p}) = k\). In addition to the general position assumption of \(\mathcal {P}^{\omega}\), we will also assume that the weighted points \(\mathcal {P}^{\xi_{p}}_{p}\) are in general position on T p , meaning that there exists no orthosphere centered on T p that is orthogonal to k+2 weighted points of \(\mathcal {P}_{p}^{\xi_{p}}\). See Sects. 2.1.1 and 2.1.2. As we have already mentioned in Sect. 2.4, the general position assumption can be fulfilled by applying an infinitesimal perturbation to the point sample or to the weight assignment ω.

Under the general position assumption above, \({\rm Del}^{\xi_{p}}(\mathcal {P}_{p})\) is a triangulation of \({\rm conv}(\mathcal {P}_{p})\) [35]. Moreover, since \({\rm Vor}^{\xi_{p}}(p)\) is bounded (from Lemma 4.4), p is an interior vertex of \({\rm Del}^{\xi_{p}}(\mathcal {P}_{p})\). This implies the following result.

Lemma 5.1

For all \(p \in \mathcal {P}\), \({\rm st}(p)\) is isomorphic to the star of an interior vertex of a compact triangulated k-dimensional polytope.

5.2 Medial Axis and the Projection Map

Let \(\mathcal{O}\) denote the medial axis of \(\mathcal{M}\), and let

$$\pi : \mathbb{R}^{d} \setminus\mathcal{O} \longrightarrow \mathcal{M}$$

denote the projection map that maps each point of \(\mathbb{R}^{d}\setminus \mathcal{O}\) to its closest point on \(\mathcal{M}\). The following lemma is a standard result from Federer [28].

Lemma 5.2

Let \(\mathcal{M}\) be a smooth submanifold of \(\mathbb{R}^{d}\) without boundary. Then, the projection map \(\pi: \mathbb{R}^{d} \setminus{\mathcal{O}} \rightarrow \mathcal{M}\) is a C 1-function in \(\mathbb{R}^{d} \setminus{\mathcal{O}}\).

  1. 1.

    The map π is a C 1-function.

  2. 2.

    For all \(x \in \mathbb{R}^{d} \setminus\mathcal{O}\), the kernel of the linear map \(d\pi(x) : \mathbb{R}^{d} \rightarrow T_{\pi(x)}\), where (x) denotes the derivative of π at x, is parallel to N π(x) and has dimension dk.

5.3 Main Result

The main result of this section is the following theorem.

Theorem 5.3

Assume that Hypotheses 3.1 and 3.2 are satisfied as well as the following conditions:

C1.:

\({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) has no k-dimensional inconsistent simplices.

C2.:

All the simplices in \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) are Θ 0-fat.

Then there exists ε 0 that depends only on k, ω 0, η 0, and Θ 0 such that for all εε 0, the simplicial complex \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\), also noted \(\hat{\mathcal{M}}\) for convenience, and the map \(\pi|_{\hat{\mathcal{M}}}\) satisfy the following properties:

P1.:

Tangent space approximation: Let τ be a k-simplex in \(\hat{\mathcal{M}}\). For all vertices p of τ, we have \(\sin\angle(T_{p}, {\rm aff}(\tau)) = \sin\angle({\rm aff}(\tau), T_{p}) = O(\varepsilon )\). Note that this property directly follows from Lemma 4.7.

P2.:

PL k-manifold without boundary: \(\hat{\mathcal{M}}\) is a piecewise linear k-manifold without boundary;

P3.:

Homeomorphism: The map \(\pi|_{\hat{\mathcal{M}}}\) provides a homeomorphism between \(\hat{\mathcal{M}}\) and  \(\mathcal{M}\);

P4.:

Pointwise approximation: \(\forall x \in \mathcal{M}\), \({\rm dist}(x, \pi|_{\hat{\mathcal{M}}}^{-1}(x)) = O(\varepsilon ^{2}\,{\rm lfs}(x))\);

P5.:

Isotopy: There exists an isotopy \(F : \mathbb{R}^{d} \times[0, 1] \rightarrow \mathbb{R}^{d}\) such that the map F(⋅,0) restricted to \(\hat{\mathcal{M}}\) is the identity map on \(\hat{\mathcal{M}}\) and \(F(\hat{\mathcal{M}}, 1) = \mathcal{M}\).

The constants in the big-O notations depend on k, ω 0, η 0 and Θ 0.

Since Conditions C1 and C2 are satisfied when the conditions of Theorem 4.15 are satisfied, it follows that the simplicial complex \(\hat{\mathcal{M}}\) output by Algorithm 1 satisfies the above Properties P1–P5 provided that the additional condition on ε in the above theorem is satisfied.

The rest of the section will be devoted to the proof of Theorem 5.3.

5.4 Piecewise Linear k-Manifold

The following lemma is a direct consequence of Condition C1.

Lemma 5.4

Under Condition C1 of Theorem 5.3 and for a sufficiently small ε, \({\rm st}(p) = {\rm st}(p, \hat{\mathcal{M}})\) for all  \(p \in \mathcal {P}\).

We can now prove that \(\hat{\mathcal{M}}\) is a PL k-manifold without boundary (Property P2).

Lemma 5.5

(PL k-manifold without boundary)

Assume Condition C1 of Theorem 5.3. If ε is sufficiently small, then \(\hat{\mathcal{M}}\) is a PL k-manifold without boundary.

Proof

Since \({\rm Del}^{\xi_{p}}(\mathcal {P}_{p})\) is a triangulation of a k-dimensional polytope, \({\rm Del}^{\xi_{p}}(\mathcal {P}_{p})\) is a PL k-manifold [47, Lem. 8 of Chap. 3] and, since p is an interior vertex of \({\rm Del}^{\xi_{p}}(\mathcal {P}_{p})\), \({\rm lk}(p, {\rm Del}^{\xi_{p}}(\mathcal {P}_{p}))\) is a PL (k−1)-sphere [47, Proof of Lem. 9 of Chap. 3].

From Lemma 5.4, we have \({\rm st}(p) = {\rm st}(p, \hat{\mathcal{M}})\). By Lemma 5.1, \({\rm st}(p, \hat{\mathcal{M}})\) is isomorphic to the star of an interior vertex of a k-dimensional triangulated convex domain. Hence, \({\rm lk}(p, \hat{\mathcal{M}})\) is a PL (k−1)-sphere. This directly implies that \(\hat{\mathcal{M}}\) is a PL k-manifold with no boundaries. □

Property P2 follows since the output \(\hat{\mathcal{M}}\) of the Algorithm 1 has no inconsistency and therefore satisfies Condition C1.

5.5 Homeomorphism

Following lemma establishes Property P3 of Theorem 5.3, and the rest of the section is devoted to its proof.

Lemma 5.6

(Homeomorphism)

Assume Conditions C1 and C2 of Theorem 5.3. For ε sufficiently small, the map π restricted to \(\hat{\mathcal{M}}\) gives a homeomorphism between \(\hat{\mathcal{M}}\) and \(\mathcal{M}\).

In the broad outline, the proof of Lemma 5.6 is similar to the proof of homeomorphism given in [2] but the technical details are quite different in most places. The difficulties that arose in getting results analogous to the ones in [2] were handled using ideas from [46, Chap. II].

In the rest of this paper, we assume that ω 0,η 0,Θ 0 are fixed constants, and that ε is small enough. We use the asymptotic notations O() and Ω() hiding the constants.

Remark 5.7

For the details of the missing proofs of Lemmas 5.8, 5.9, 5.10, and 5.11 refer to [33, Chap. 4].

5.5.1 Basic Lemmas

For a point \(p \in \mathcal {P}\), let

$$\pi_{p} : \mathbb{R}^{d} \rightarrow T_{p} $$

denotes the orthogonal projection of \(\mathbb{R}^{d}\) onto T p , and

$$\widetilde{\pi}_{p} : T_{p}\setminus{\mathcal{O}} \rightarrow \mathcal{M}$$

denotes the restriction of π to \(T_{p}\setminus{\mathcal{O}}\).

We define in addition

$$\pi^{*}_{p} : \mathbb{R}^{d} \setminus\mathcal{O} \longrightarrow T_{p} $$

as the map that maps each point \(x \in \mathbb{R}^{d} \setminus\mathcal{O}\) to the point of intersection of T p and N π(x), the normal space of \(\mathcal{M}\) at π(x).

The following lemma is a generalization of Proposition 6.2 in [40] which bounds the variation of the angle between tangent spaces between two points on the manifold \(\mathcal{M}\).

Lemma 5.8

(Tangent variation)

Let \(p, q \in \mathcal{M}\) and \(\|p-q\| = t \,{\rm lfs}(p)\) with t≤1. Then,

$$\sin\angle(T_{q}, T_{p}) = \sin\angle(T_{p}, T_{q}) < O(t). $$

Using Lemma 5.8, we can show that the derivative of the restriction \(\widetilde{\pi}_{p}\) of π p to a neighborhood of p is non-singular and that \(\widetilde{\pi}_{p}\) is injective. Using the Inverse function theorem this implies that \(\widetilde{\pi}_{p}\) is a diffeomorphism.

Lemma 5.9

(\(\widetilde{\pi}_{p}\) is a C 1-diffeomorphism)

There exist absolute constants r 1 and r 2 such that \(\widetilde{\pi}_{p}\) restricted to \(\widetilde{T}_{p} \stackrel{\rm def}{=} B(p, r_{1}\,{\rm lfs}(p))\cap T_{p}\) is a diffeomorphism onto \(\widetilde{\pi}_{p}(\widetilde{T}_{p})\) and \(\widetilde{\pi}_{p}(\widetilde{T}_{p}) \supseteq\widetilde{\mathcal{M}}_{p} \stackrel{{\rm def}}{=} B_{\mathcal{M}}(p, r_{2}\,{\rm lfs}(p))\).

Note that \(\widetilde{\mathcal{M}}_{p} \subseteq\widetilde{\pi }_{p}(\widetilde{T}_{p})\) follows from Lemma 2.3(3).

The next lemma follows directly from Lemmas 2.3, 4.7, 5.8 and 5.9.

Lemma 5.10

Under Conditions C1 and C2 of Theorem 5.3, for any \(x \in{\rm st}(p, \hat{\mathcal{M}})\).

$$\begin{aligned} \max\bigl\{ \bigl\| \pi_{p}(x) -x \bigr\| , \bigl\| \pi(x)-x \bigr\| , \bigl\| \pi^{*}_{p}(x)-x \bigr\| \bigr\} = O\bigl(\varepsilon ^{2} \bigr) \,{\rm lfs}(p). \end{aligned}$$

We will need the following technical lemma bounding the fatness of a perturbed simplex. A similar inequality can be found in the proof of Lemma 14c in [46, Chap. 4].

Lemma 5.11

Let σ=[p 0,…,p j ] be a j-dimensional simplex of \(\mathbb{R}^{d}\), and let \(\sigma' = [ p_{0}', \dots, p_{j}']\) where \(\|p_{i} - p_{i}'\| \leq\rho\varDelta_{\sigma}\) with ρ<1/2, for 0≤ij. Then,

$$\varTheta^{2j}_{\sigma'} \geq \frac{\varTheta_{\sigma}^{2j}}{(1+2\rho)^{2j}} - \frac{2j\rho }{1+2\rho} $$

This directly implies that, if \(\rho\leq\frac{\varTheta_{\sigma}^{2j}}{j 2^{j+1}} ( 1 - \frac {1}{2^{j}} )\), then Θ σΘ σ /2.

We will also need the following standard lemma from convex geometry which bounds the distance between an interior point and a point on the boundary of a simplex. The proof can be found in [46, Lem. 14b of Chap. 4].

Lemma 5.12

Let σ=[p 0,…,p j ] be a j-simplex and let p be a point of σ. Writing \(p = \sum_{i=0}^{j} \mu_{i} p_{i}\) with \(\sum_{i=0}^{j}\mu_{i}=1\) and μ i ≥0, we have

$${\rm dist}(p, \partial\sigma) \geq j! \varTheta_{\sigma}^{j} \varDelta _{\sigma} \times \min\{ \mu_{0}, \dots, \mu_{j} \}. $$

We will use the standard notion of oriented simplices, positively oriented simplices and oriented PL manifolds (see [41, 47] or [46, Appendix II]).

Recall that the restriction of π p to \({\rm st}(p)\) provides a simplicial isomorphism between \({\rm st}(p)\) and \({\rm st}(p, {\rm Del}^{\xi_{p}}(\mathcal {P}_{p}))\) (Lemma 2.2), and that \({\rm st}(p) = {\rm st}(p, \hat{\mathcal{M}})\) (by Lemma 5.4). We orient T p and orient positively the k-dimensional simplices of \({\rm st}(p, {\rm Del}^{\xi_{p}}(\mathcal {P}_{p}) )\). We then orient the k-dimensional simplices of \({\rm st}(p, \hat{\mathcal{M}})\) isomorphically, using the orientation of the corresponding k-dimensional simplices of \({\rm st}(p, {\rm Del}^{\xi_{p}}(\mathcal {P}_{p}))\).

Since \({\rm lk}(p, \hat{\mathcal{M}})\) is a PL (j−1)-sphere (see the proof of Lemma 5.5), we immediately see that \({\rm st}(p, \hat{\mathcal{M}})\) is an oriented PL k-ball.

Definition 5.13

(Simplexwise positive map)

Let σ be a positively oriented i-simplex of \(\mathbb{R}^{i}\), and let \(f: \sigma\rightarrow \mathbb{R}^{i}\) be a C 1-function. The map f is called simplexwise positive if det(J(f))>0 for all xσ, where J(f) and det(J(f)) denote the Jacobian and the determinant of the Jacobian of the map f, respectively.

The following result is a special case of a standard result from PL topology (see, e.g., Appendix II of [46, Lemma 15a]).

Lemma 5.14

Let \(\mathcal{K}\) be a j-dimensional PL manifold whose j-simplices are oriented, and let the continuous map \(f: \mathcal{K}\rightarrow \mathbb{R}^{j}\) be a simplexwise positive map. Then, for any connected open subset W of \(\mathbb{R}^{j}\setminus f(\partial\mathcal{K})\), any two points of W not in \(f(\mathcal{K}^{-1})\) are covered the same number of times. If this number is 1, then f, restricted to the open subset W′=f −1(W) of \(\mathcal{K}\), is injective.

5.5.2 Properties of \(\pi^{*}_{p}\)

Let σ=[p,p 1,…,p k ] be a k-simplex of \({\rm st}(p, \hat{\mathcal{M}})\). Now, for all points qσ, let π p,t (q)=(1−t)q+ p (q), and σ t =π p,t (σ). Since π p is affine on each simplex, π p,t is also affine. Therefore σ t is a simplex with vertices p,p 1t ,…,p kt with p jt =π p,t (p j ), j∈{1,…,k}.

It directly follows from Lemma 5.10 that

$$ \forall j \in\{ 1, \dots, k \} , \| p_{j} - p_{jt} \| = O\bigl(\varepsilon ^{2}\bigr) \,{\rm lfs}(p). $$
(23)

Let τ be an i-simplex, and let \(f : \tau\rightarrow \mathcal{M}\) be a C 1-function. The simplex τ is said to be C 1 -embedded by f in \(\mathcal{M}\) if f is an injective map** and for all xτ, the rank of the linear map \(d f(x) : \mathbb{R}^{i} \rightarrow T_{f(x)}\) is i, where T f(x) is the tangent space to \(\mathcal{M}\) at f(x).

Lemma 5.15

(π C 1-embeds σ t )

Assume Condition C1 and C2 of Theorem 5.3. If ε is sufficiently small, then the map π C 1-embeds σ t in \(\mathcal{M}\), for all t∈[0,1].

Proof

By Lemma 4.5 (1) and the definition of σ t , we have \(\sigma_{t} \subset B(p, O(\varepsilon ) \,{\rm lfs}(p))\). Therefore, for a sufficiently small ε, σ t cannot intersect the medial axis of \(\mathcal{M}\), which implies, from Lemma 5.2 (1), that the restriction of the map π to σ t is a C 1-function. The rest of the proof is devoted to showing that the restriction of π to σ t is injective and that is non-singular.

Let \(\rho\stackrel{{\rm def}}{=} \max_{i\in\{1, \dots, k\}} ( \|q_{i} - p_{i}\| ) / \varDelta_{\sigma} \). Since \(\varDelta_{\sigma} \geq\delta\,{\rm lfs}(p)\) and ε/δη 0, \(\rho=O(\varepsilon ^{2}) \,{\rm lfs}(p)/\varDelta_{\sigma}= O(\epsilon)\). It then follows from Lemma 5.11 and the fact that Θ σ Θ 0 that \(\varTheta _{\sigma_{t}}\geq\varTheta_{0}/2\) for ε sufficiently small. Using Γ σ C 3 (Lemma 4.5 (2)), we get for sufficiently small ε

$$\begin{aligned} L_{\sigma_t} \geq& L_{\sigma} - 2\rho\varDelta_{\sigma} \\ =& L_{\sigma}(1-2\rho\varGamma_{\sigma}) \\ \geq& C_{3}\delta\,{\rm lfs}(p) \bigl(1-O(\varepsilon )\bigr) \\ \geq& C_{3}\delta\,{\rm lfs}(p)/2. \end{aligned}$$

We then deduce from Corollary 2.5 and the bounds on \(\varTheta_{\sigma_{t}}\) and \(L_{\sigma_{t}}\)

$$\sin\angle\bigl({\rm aff}(\sigma), {\rm aff}(\sigma_t)\bigr) = \frac{O(\varepsilon ^2) \,{\rm lfs}(p)}{\varTheta^{k}_{\sigma_t}L_{\sigma_t}} = O(\varepsilon ) $$

and from Lemma 4.7

$$ \sin\angle\bigl(T_{p}, {\rm aff}(\sigma_t) \bigr) \leq\sin\angle\bigl(T_{p}, {\rm aff}(\sigma)\bigr) + \sin\angle \bigl({\rm aff}(\sigma), {\rm aff}(\sigma_t)\bigr) = O(\varepsilon ). $$
(24)

Let x be a point of σ. We have, from Lemmas 4.5 (1) and 5.10, \(\|p-\pi(x)\| = O(\varepsilon ) \,{\rm lfs}(p)\). Therefore, from Lemma 5.8 and Eq. (24),

$$ \sin\angle\bigl(T_{\pi(x)}, {\rm aff}(\sigma_t) \bigr) \leq\sin\angle(T_{\pi (x)}, T_{p}) + \sin\angle \bigl(T_{p}, {\rm aff}(\sigma_t)\bigr) = O(\varepsilon ). $$
(25)

Equation (25) implies that π restricted to σ t is injective for ε sufficiently small. Indeed otherwise, there would exist x 1,x 2σ t such that π(x 1)=π(x 2), and the line segment in \({\rm aff}(\sigma_{t})\) joining the points x 1 and x 2 would be parallel to \(N_{\pi(x_{1})}\), contradicting Eq. (25).

We deduce also from Eq. (25) and Lemma 5.2 (2) that the derivative is non-singular when π is restricted to σ t . This completes the proof of the lemma. □

Lemma 5.16

(π C 1-embeds σ t )

For ε sufficiently small, \(\pi^{*}_{p}\) C 1-embeds σ t in T p for all t∈[0,1].

Proof

From the definition of σ t , for all xσ t , we have \({\rm dist}(x, \sigma) = O(\varepsilon ^{2})\,{\rm lfs}(p)\). From Lemma 5.10, we have \(\|x - \pi(x)\| = O(\varepsilon ^{2})\,{\rm lfs}(p)\) for all xσ. Combining these facts we get \(\|x - \pi(x)\| = O(\varepsilon ^{2})\,{\rm lfs}(p)\) for all xσ t . This implies, from Lemma 4.5 (1),

$$\pi(\sigma_{t}) \subset B_{\mathcal{M}}\bigl(p, O(\varepsilon ) \,{\rm lfs}(p) \bigr) \subset\widetilde{\mathcal{M}}_{p}. $$

From Lemma 5.8 and the fact that \(\pi(\sigma_{t}) \subset B_{\mathcal{M}}(p, O(\varepsilon )\,{\rm lfs}(p))\), we have

$$ \sin\angle(T_{x}, T_{p}) < 1,\quad \forall x \in\pi(\sigma_{t}). $$
(26)

Since for all xπ(σ t ), sin∠(T x ,T p )<1, we get from Lemma 5.9,

$$N_{x} \cap T_{p} = \widetilde{\pi}_{p}^{-1}(x), \quad \forall x \in\pi(\sigma_{t}). $$

Therefore, we deduce \(\pi^{*}_{p} |_{\sigma_{t}} = \widetilde{\pi}^{-1}_{p} \circ \pi\). Refer to Fig. 8.

Fig. 8
figure 11

Refer to the proof of the Lemma 5.16

Then, by Lemma 5.9, \(\widetilde{\pi }^{-1}_{p}\) is a diffeomorphism from \(\widetilde{\pi}_{p}(\widetilde{T}_{p}) \supseteq\widetilde{\mathcal{M}}_{p}\) to \(\widetilde{T}_{p}\), and, by Lemma 5.15, π C 1-embeds σ t into \(\mathcal{M}\). We conclude that \(\pi^{*}_{p} |_{\sigma_{t}} = \widetilde{\pi}^{-1}_{p} \circ\pi\) C 1-embeds σ t into T p . □

The proof of the following lemma is similar to Lemma 23a in Chap. 4 from [46] and it will be used for proving that \(\pi ^{*}_{p}\) restricted to open star \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\) is injective in Lemma 5.18. We give a proof for completeness.

The proof of the following lemma is similar to Lemma 23a in Chapter 4 from [46]. We give a proof for completeness.

Lemma 5.17

Assume Conditions C1 and C2 of Theorem 5.3. For ε sufficiently small, \(\pi^{*}_{p}\) is a simplexwise positive map** of \({\rm st}(p, \hat {\mathcal{M}})\) into T p .

Proof

We use the same notation σ t as in the beginning of this section. We first observe that, since the simplex σ 1 is in T p , \(\pi^{*}_{p}\) is the identity on σ 1. Therefore, \(\det(J(\pi^{*}_{p}))> 0\) on σ 1. Moreover, since from Lemma 5.16, \(\det (J(\pi^{*}_{p})) \neq0\) in σ t for all t∈[0,1], we also have \(\det(J(\pi^{*}_{p})) > 0\) in σ 0. Which proves the lemma. □

We are now ready to prove that \(\pi^{*}_{p}\) restricted to the open star \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\) is injective.

Lemma 5.18

(Injectivity of \(\pi^{*}_{p}\) restricted to \(\mathring {{\rm st}}(p, \hat{\mathcal{M}})\))

Assume conditions C1 and C2 of Theorem 5.3 and let ε be sufficiently small. For each point \(p \in \mathcal {P}\), the map \(\pi^{*}_{p}\) is injective on the open star \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\).

Proof

Note that, since \(\hat{\mathcal{M}}\) is a PL manifold without boundary (Lemma 5.5), \({\rm lk}(p, \hat{\mathcal{M}})\) is a PL (k−1)-sphere, \({\rm st}(p, \hat{\mathcal{M}})\) is a PL k-ball, and \(\partial {\rm st}(p, \hat{\mathcal{M}}) = {\rm lk}(p, \hat{\mathcal{M}})\).

For convenience, rewrite \(f=\pi^{*}_{p}\) and \(S={\rm st}(p, \hat{\mathcal{M}})\) and orient S as indicated in Sect. 5.5.1. S is thus an oriented PL k-ball, and, by Lemma 5.17, \(f=\pi^{*}_{p}\) is a simplexwise positive map** from S to T p . Let f(S k−1) be the image by f of the (k−1)-skeleton of S (i.e. the set of faces of S of dimension at most k−1) and let W be any connected open subset of T p f(∂S). From Lemma 5.14, any two points of Wf(S k−1) are covered the same number of times. If this number is 1, then f, restricted to the open subset f −1(W) of \({\rm st}(p)\), is injective onto W.

To prove the lemma, it is therefore sufficient to prove that there exists a point g in SS k−1 whose image f(g) is not covered by any other point x of SS k−1, i.e. f(g)≠f(x) for all xg and xSS k−1. Let σ be a k-simplex [q 0,…,q k ] of S and let

$$ g = \frac{1}{k+1} \sum_{i=0}^{k} q_{i} . $$

Using Lemma 5.12 and the facts that Θ σ Θ 0 (since the simplices of \(\hat{\mathcal{M}}\) are Θ 0-fat), \(\varDelta_{\sigma} \geq\delta \,{\rm lfs}(p)\), and ε/δη 0 (Hypothesis 3.1), we have

$$ {{\rm dist}}(g, \partial\sigma) \geq \frac{k! \varTheta_{\sigma}^{k} \varDelta_{\sigma}}{k+1} \geq \frac{k! \varTheta^{k}_{0}}{k+1} \times\delta \,{\rm lfs}(p) \geq \frac{k! \varTheta^{k}_{0}}{k+1} \times\frac{\varepsilon \,{\rm lfs}(p)}{\eta_{0}} = \varOmega(\varepsilon ) \,{\rm lfs}(p). $$

From the above equation and using the fact that \(\|\pi_{p}(x)-x\| = O(\varepsilon ^{2}) \,{\rm lfs}(p)\) for all xσ (Lemma 5.10), we have for ε sufficiently small

$$ {{\rm dist}} \bigl(\pi_{p}(g), \partial\pi_{p}( \sigma) \bigr) = \varOmega(\varepsilon ) \,{\rm lfs}(p) -O\bigl(\varepsilon ^{2}\bigr)\,{\rm lfs}(p) = \varOmega(\varepsilon )\,{\rm lfs}(p). $$
(27)

Since π p embeds S into T p (from Lemma 2.2) with \(\pi_{p}(S) = {\rm st}(p, {\rm Del}^{\xi_{p}}(\mathcal {P}_{p}))\) and since \({\rm Del}^{\xi_{p}}(\mathcal {P}_{p})\) is a triangulation of a k-dimensional convex hull (see the discussion of the general position assumption at the beginning of Sect. 5), Eq. (27) implies that, for all \(x \in S \setminus{\rm int}\, \sigma\)

$$ \bigl\| \pi_{p}(g) - \pi_{p}(x) \bigr\| = \varOmega( \varepsilon ) \,{\rm lfs}(p) - O\bigl(\varepsilon ^{2}\bigr) \,{\rm lfs}(p). $$
(28)

From Eq. (28), we have for all \(x \in S \setminus{\rm int}\, \sigma\)

$$\begin{aligned} \bigl\| \pi^{*}_{p}(x) -\pi^{*}_{p}(g) \bigr\| \geq& \bigl\| \pi_{p}(x) -\pi _{p}(g)\bigr\| - \bigl( \bigl\| \pi_{p}(x) - x \bigr\| + \bigl\| \pi^{*}_{p}(x)-x\bigr\| \bigr) \\ &{} - \bigl( \bigl\| \pi_{p}(g) - g \bigr\| + \bigl\| \pi^{*}_{p}(g)-g\bigr\| \bigr) \\ =& \varOmega(\varepsilon ) \,{\rm lfs}(p) - O\bigl(\varepsilon ^{2}\bigr) \,{\rm lfs}(p) \end{aligned}$$
(29)

which is positive for a sufficiently small ε.

Lemma 5.16 together with Eq. (29) shows that \(\pi^{*}_{p}(x) \neq\pi^{*}_{p}(g)\) for all xS∖{g}. Hence, g is not covered by any other point of S, and the lemma follows. □

5.5.3 Properties of π

Lemma 5.19

(Injectivity of the restriction of π to \(\mathring {{\rm st}}(p, \hat{\mathcal{M}})\))

Assume Conditions C1 and C2 of Theorem 5.3. Let ε be sufficiently small. For all p in \(\mathcal {P}\), the map π restricted to \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\) is injective.

Proof

To reach a contradiction, assume that there exist x 1,x 2(x 1x 2) in \({\rm st}(p) \setminus\partial {\rm st}(p)\) such that π(x 1)=π(x 2). Then \(\pi^{*}_{p}(x_{1}) = \pi^{*}_{p}(x_{2}) = N_{\pi(x_{1})}\cap T_{p}\). Which contradicts the fact that \(\pi^{*}_{p}\) is injective when restricted to \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\) (Lemma 5.18). □

Lemma 5.20

(Surjectivity of \(\pi|_{\hat{\mathcal{M}}}\))

Assume Conditions C1 and C2 of Theorem 5.3. If ε is sufficiently small, then \(\pi|_{\hat{\mathcal{M}}}\) is surjective on \(\mathcal{M}\).

Proof

Since \(\hat{\mathcal{M}}\) and \(\mathcal{M}\) are topological k-manifolds without boundaries, and \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\), which an open set in \(\hat{\mathcal{M}}\) with \(\hat{\mathcal{M}} = \bigcup_{p \in \mathcal {P}} \mathring{{\rm st}}(p, \hat{\mathcal{M}})\), is mapped injectively by π into \(\mathcal{M}\), we get from the Generalized Invariance of Domain Theorem, π is an open map and \(\pi(\hat{\mathcal{M}})\) is an open set in \(\mathcal{M}\). Also, note that since \(\hat{\mathcal{M}}\) is compact and π is a continuous function, \(\pi(\mathcal{M})\) is a compact subset of \(\mathcal{M}\) [10, Thm. 7.6 of Chap. 1]. As \(\mathcal{M}\) is a Hausdorff space, this implies that \(\pi(\hat{\mathcal{M}})\) is a closed set of \(\mathcal{M}\) [10, Thm. 7.5 of Chap. 1].

Now consider a connected component \(\mathcal{M}_{\alpha}\) of \(\mathcal{M}\) with \({\mathcal{V}}_{\alpha} = \pi(\hat{\mathcal{M}}) \cap \mathcal{M}_{\alpha} \neq \emptyset\). From the discussion in the previous paragraph we have \({\mathcal{V}}_{\alpha}\) is both open and closed in \(\mathcal{M}_{\alpha}\). Since \(\mathcal{M}_{\alpha}\) is connected, this implies \({\mathcal{V}}_{\alpha} = \mathcal{M}_{\alpha}\) [10, Def. 4.1 of Chap. 1]. To complete the proof of surjectivity, we only need to show that \(\mathcal {P}\) has non-empty intersection with each connected components of \(\mathcal{M}\), since π(p)=p for all \(\mathcal {P}\). By using the proof technique of Giesen and Wagner [35, Lem. 3], we can show that if \(\mathcal {P}\) is an (ε,δ)-sample of \(\mathcal{M}\) with ε<1, then \(\mathcal {P}\) intersects all the connected components of \(\mathcal{M}\). See, [33, Chap. 4] for details. This completes the proof. □

As discussed earlier, π is an open map \(\pi|_{\mathring{{\rm st}}(p, \hat{\mathcal{M}})}\) is injective (Lemma 5.19) and \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\) is an open set in \(\hat{\mathcal{M}}\). The restriction of π to \(\mathring{{\rm st}}(p, \hat{\mathcal{M}})\) is thus a homeomorphism onto its image. In addition, we know from Lemma 5.20 that \(\pi (\hat{\mathcal{M}}) = \mathcal{M}\). Therefore, for all \(x \in \mathcal{M}\), there exist open neighborhoods U x of x in \(\mathcal{M}\) such that π −1(U x ) is a disjoint union of open sets, each of which is contained in an open star of a vertex in \(\hat{\mathcal{M}}\) and mapped homeomorphically onto U x by π. In other words, \((\hat{\mathcal{M}}, \pi)\) is a covering space of \(\mathcal{M}\).

A standard result in topology [38, Lem. 3.4 of Chap. 5] asserts that π covers all the points of a connected component of its image \(\mathcal{M}\) the same number of times. Let us show that this number is exactly one. It cannot be zero by definition. Neither can it be more than one since, otherwise, some sample point p would be covered more than once, which would contradict Lemma A.1 from the Appendix. We have therefore proved that the restriction of π to \(\hat{\mathcal{M}}\) is injective.

Lemma 5.21

(Injectivity of \(\pi|_{\hat{\mathcal{M}}}\))

Under the same conditions as in Lemma 5.21, π restricted to \(\hat{\mathcal{M}}\) is injective.

Since \(\hat{\mathcal{M}}\) is compact and \(\mathcal{M}\) is a Hausdorff space, Lemmas 5.20 and 5.21, and a standard result from topology [10, Thm. 7.8 of Chap. 1] implies that \(\pi: \hat{\mathcal{M}} \rightarrow \mathcal{M}\) is a homeomorphism.

This completes the proof of Lemma 5.6.

5.6 Pointwise Approximation

Following lemma is a direct consequence is Lemmas 5.10 and 5.6, and the fact that \({\rm lfs}\) is 1-Lipschitz function. For the details of the proof, refer to [33, Chap. 4].

Lemma 5.22

(Pointwise approximation)

Under Conditions C1 and C2 of Theorem 5.3, and ε sufficiently, we have \({\rm dist}(x, \pi|_{\hat{\mathcal{M}}}^{-1}(x)) = O(\varepsilon ^{2})\,{\rm lfs}(x)\).

5.7 Isotopy

We need the following lemma to show the isotopy Property P5 of Theorem 5.3. The proof of the lemma follows directly from [35, Lem. 5] and one can check the details in [33, Chap. 4].

Lemma 5.23

Assume Conditions C1 and C2 of Theorem 5.3. If ε is sufficiently small, for all points x, y (≠p) in \(\hat{\mathcal{M}}\),

$$\bigl[x \pi(x)\bigr] \cap\bigl[y \pi(y)\bigr] = \emptyset. $$

Consider the following map:

$$\begin{aligned} F: \hat{\mathcal{M}} \times[0, 1] \rightarrow \mathbb{R}^{d},\quad \mbox{with}\quad F(x,t) = x +t \bigl( {\pi(x) -x} \bigr). \end{aligned}$$

We will denote by F t =F(⋅,t) and \(M_{t} = F_{t}(\hat{\mathcal{M}})\) for all t∈[0,1]. It is easy to see that F(x,t) (and F t ) is continuous, \(M_{0} = \hat{\mathcal{M}}\), and since π restricted to \(\hat{\mathcal{M}}\) gives a homeomorphism between \(\hat{\mathcal{M}}\) and \(\mathcal{M}\), \(M_{1} = \mathcal{M}\).

Using the facts that \(\hat{\mathcal{M}}\) is compact, M t is a Hausdorff space (as M t is a subspace with the subspace topology of \(\mathbb{R}^{d}\)), and F t is continuous, we get [10, Thm. 7.8 of Chap. 1], the following result:

Lemma 5.24

Assume Conditions C1 and C2 of Theorem 5.3. If ε is sufficiently small, then for all t∈[0,1], \(F_{t} : \hat{\mathcal{M}} \rightarrow M_{t}\) is a homeomorphism.

This implies:

Lemma 5.25

(Isotopy)

Assume Conditions C1 and C2 of Theorem 5.3. If ε is sufficiently small then

$$F: \hat{\mathcal{M}} \times[0, 1] \longrightarrow \mathbb{R}^{d} $$

is an isotopy.

6 Conclusion

We have given the first algorithm that is able to reconstruct a smooth closed manifold in a time that depends only linearly on the dimension of the ambient space. We believe that our algorithm is of practical interest when the dimension of the manifold is small, even if it is embedded in a space of high dimension. This situation is quite common in practical applications in machine learning. Unlike most surface reconstruction algorithms in \(\mathbb{R}^{3}\), our algorithm does not need to orient normals (a critical issue in practical applications) and, in fact, works for non-orientable manifolds.

The algorithm is simple. The basic ingredients we need are data structures for constructing weighted Delaunay triangulations in \(\mathbb{R}^{k}\). We have assumed that the dimension of \(\mathcal{M}\) is known. If not, we can use algorithms given in [23, 35] to estimate the dimension of \(\mathcal{M}\) and the tangent space at each sample point. Moreover, our algorithm is easy to parallelize. One interesting feature of our approach is that it is robust and still works if we only have approximate tangent spaces at the sample points. We will report on experimental results in a forthcoming paper.

We have assumed that we know an upper bound on the sampling ratio η 0 of the input sample \(\mathcal {P}\). Ideas from [7, 30] may be useful to convert a sample to a subsample with a bounded sampling ratio.

We foresee other applications of the tangential complex and of our construction each time computations in the tangent space of a manifold are required, e.g. for dimensionality reduction and approximating the Laplace Beltrami operator [11]. It easily follows from [9] that our reconstruction algorithm can also be used in Bregman spaces where the Euclidean distance is replaced by any Bregman divergence, e.g. Kullback–Leibler divergence. This is of particular interest when considering statistical manifolds like, for example, spaces of images [18].

7 Main Notations

B(c,r):

is \(\{ x \in \mathbb{R}^{d} | \|c-x\| < r \}\)

\(\bar{B}(c, r)\) :

is \(\{ x \in \mathbb{R}^{d} | \|c-x\| \leq r \}\)

dim(U):

dimension of the affine space U

\({\rm dist}(p,X)\) :

is min xX px

∂X :

topological boundary of X

\({\rm int}\, X\) :

topological interior of X

df(x):

derivative of the function f at x

\(f\mid_{X_{1}}\) :

map f restricted to the subset X 1

[xy]:

line segment connecting points x and y

xy∥:

standard Euclidean distance between the points x and y

∠(u,v):

angle between the vectors u and v

∠(U,V):

angle between the affine spaces U and V

\(B_{\mathcal{M}}(p,r)\) :

is \(B(p, r) \cap \mathcal{M}\)

\(\bar{B}_{\mathcal{M}}(p,r)\) :

is \(\bar{B}(p, r) \cap \mathcal{M}\)

d :

dimension of the ambient space

k :

intrinsic dimension of \(\mathcal{M}\)

\(\mathcal{M}\) :

manifold

\({\mathcal{O}}\) :

medial axis of \(\mathcal{M}\)

\(\mathcal {P}\) :

sample

\(|\mathcal {P}|\) :

cardinality of the sample \(\mathcal {P}\) (Theorem 4.16)

T x :

tangent space at x

N x :

normal space at x

p ω :

weighted point (p,ω(p))

ω :

weight assignment

\(\tilde{\omega}\) :

relative amplitude

ω 0 :

bound on the relative amplitude

ε :

sampling rate

ε/δ :

sampling ratio

η 0 :

bound on the sampling ratio

δ :

sparsity

\({\rm lfs}(p)\) :

local feature size at p

\({\rm n\! n}(p)\) :

distance of p to its nearest neighbor

N :

is \((4C_{2}'\eta_{0}+6)^{k}\) (Sect. 4.4)

LN(p):

local neighborhood of p (Sect. 3)

c τ :

circumcenter

D τ (p):

altitude (Sect. 4.1)

\({\rm aff}(\tau)\) :

affine hull of τ

m u (τ) or m u :

see Sect. 2.4

i ϕ :

see Sect. 2.4

N τ :

affine space orthogonal to \({\rm aff}(\tau)\)

Δ τ :

longest edge length (diameter)

H τ (p,ω(p)):

eccentricity (Sect. 4.1)

L τ :

shortest-edge length

o τ :

orthocenter

Φ τ :

orthoradius

R τ :

circumradius

\(\varGamma_{\tau} = \frac{\varDelta_{\tau}}{L_{\tau}}\) :

longest edge to shortest-edge ratio

τ p =τ∖{p}:

face of τ opposite to p (Sect. 4.1)

Θ τ :

fatness

Θ 0 :

fatness bound

V τ :

volume

\({\mathcal{K}}\) :

simplicial complex (Sect. 2)

\({\rm st}(\sigma, {\mathcal{K}})\) :

\(\{ \tau\in{\mathcal{K}} : \mbox{for some}~\tau_{1} \in \mathcal {K}, \sigma, \tau\subseteq \tau_{1} \}\) (Sect. 2)

\({\rm lk}(\sigma, {\mathcal{K}})\) :

\(\{ \tau\in{\rm st}(\sigma , \mathcal {K}) : \tau\cap\sigma= \emptyset\}\) (Sect. 2)

\(\mathring{{\rm st}}(\sigma, {\mathcal{K}})\) :

\({\rm st}(\sigma , {\mathcal{K}})\setminus {\rm lk}(\sigma, {\mathcal{K}})\) (Sect. 2)

\({\rm st}(p)\) :

\({\rm st}(p, {{\rm Del}^{\omega}(\mathcal {P}_{p})})\)

\(C^{\omega}(\mathcal {P})\) :

Complete complex

\({\rm Del}^{\omega}(\mathcal {P})\) :

Weighted Delaunay triangulation (Sect. 2.1.2)

\({\rm Del}^{\omega}_{p} (\mathcal {P})\) :

restriction of \({\rm Del}^{\omega}(\mathcal {P})\) to T p

\({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\) :

Tangential Delaunay complex

\({\rm Inc}^{\omega}(\mathcal {P})\) :

contains Θ 0-inconsistent configurations of \({\rm Del}^{\omega}_{T\mathcal{M}}(\mathcal {P})\)

π :

projection onto \(\mathcal{M}\) (Sect. 5)

\(\pi|_{\hat{\mathcal{M}}}\) :

restriction of π to \(\hat{M}\)

π p :

restriction of π to T p

\(\widetilde{\pi}{p}\) :

restriction of π to \(T_{p}\setminus {\mathcal{O}}\)

\(\pi^{*}_{p}\) :

map** onto T p