Recent years have witnessed an extensive research in topological based method to analyze and study data [carlsson2009topology, carlsson2008persistent]. The popularity of topological based techniques seem to be coming from the generality and the robustness of the these techniques and their applicability to a wide range of areas. The Reeb graph [Reeb1946] has been one of the most successful topological tools in the data analysis and data understanding. The Reeb graph is a data structure associated to a scalar function defined on a manifold. It gives an efficient topological summary for the manifold by encoding the evolution of the connectivity of its level sets. Reeb graphs, and their loop-less version, contour trees [boyell1963hybrid], are of fundamental importance in computational topology, geometric processing, image processing, computer graphics, and more recently, data analysis and visualization. Examples of Reeb graph applications include quadrangulation [hetroy2003topological], shape understanding [attene2003shape], surface understanding and data simplification [biasotti2000extended], parametrization [patane2004graph, zhang2005feature], segmentation [werghi2006functional], animation [kanongchaiyos2000articulated], feature detection [takahashi2004topological], data reduction and simplification [carr2004simplifying, rosen2017using], image processing [kweon1994extracting], visualization of isosurfaces [bajaj1997contour] and many others.
The past decade has witnessed an increase of large geometric data on which a scalar field is defined. This has yielded several challenges for the time efficiency computation of topological structures usually computed on such data. Parallelization of the utilized algorithms is a natural direction one usually takes in order to improve the computational-time efficiency. In this article we introduce an efficient shared memory parallel algorithm to compute the Reeb graph a scalar function defined on a triangulated surface with or without a boundary. In addition, our algorithm provides a fast method for retrieving the surface data from the constructed Reeb graph. Existing Reeb graph algorithms lack explicit description of manifold information from the Reeb graph. For this purpose we define an explicit map that associates the Reeb graph data to its corresponding data on the manifold. As an application we show how Reeb graph can be used to identify and calculate curves with certain homological properties on a surface. Finally, we show how the data retrieval aspect of our algorithm along with the curves that can be extracted from the Reeb graph structure can be used for mesh segmentation and mesh parametrization.
1.1. Prior work and contribution
Reeb graph literature has is vast and ranges from computational accuracy of the graph to its applications in data analysis and visualization. The first provably correct algorithm to compute a Reeb graph on a triangulated surface was presented by Shinagawa and Kunii in [shinagawa1991constructing]. Computing Reeb graph in times where in the number of triangles in the mesh. This time was improved to by Cole-McLaughlin et al. [cole2003loops].
Reeb graphs have also been studied for higher dimensional manifolds and simplicial complexes. An algorithm for computing Reeb graph for a -manifold embedded in is proposed in [tierny2009loop]. The first Reeb graph algorithm on an arbitrary simplicial complex is given in [chiang2005simple]. Pascucci et al. [cole2003loops], presented an online method that computes the graph by calculating the Reeb graph of the restriction of the input scalar field on the -skeleton of the input mesh. This algorithm can handle a non-manifold input, but its worse case time complexity is quadratic. Reeb graph for a varying scalar function is studied in [edelsbrunner2004time]. Other Reeb graphs algorithms can be found in [pascucci2007robust, doraiswamy2009efficient, Salman12, HWW10, doraiswamy2008efficient]. Approximating Reeb graphs algorithms can be found in [biasotti2000extended, hilaga2001topology]
. However, such algorithms may lead to inaccurate results. A loop-free Reeb graph, also called a contour tree, has been used extensively in data analysis and data visualization. Algorithms for computing such graphs can be found in[carr2003computing, raichel2014avoiding, chiang2005simple, van1997contour, tarasov1998construction]. Contour tree have been used for scientific visualization [pascucci2004multi], volume rendering [weber2002topology], terrain applications [besl1992method, gupta1995manufacturing]. For a thorough introduction to contour tree and its applications the reader is referred to [carr2004topological, raichel2014avoiding] and the references within.
Reeb graphs have been also used to study and analyze points cloud data. The applications are numerous including data skeletonization [ge2011data], retrieving topological information from point data such as homology group computation [dey2011, ch], locus cut [dey2009cut], data abstraction [natali2011graph], and recovering structural information of a scalar function on a point data [chazal2009analysis]. In the context of point cloud, a relatively recent constructed named Recently, Mapper [singh2007topological] has received a lot of attention, as it generalizes both the Reeb graph and contour tree. Mapper has found numerous applications [lum2013extracting, nicolau2011topology, robles2017shape, rosen2018using] and has been studied from multiple perspectives [carriere2015structure, dey2017topological, munch2015convergence, hajij2018mog].
There is rich literature in computer graphics regarding the use of the Reeb graph. Reeb Graph has been used in mesh segmentation [xiao2003discrete], shape similarity [tung2005augmented], shape matching [mohamed2012reeb]bajaj1997contour], surface reconstruction [biasotti2000surface], extracting tunnel and handle loops of a surface [dey2008computing], removing tiny handle in an iso-surface [wood2004removing] and shape matching [hilaga2001topology]. See also [biasotti2008reeb] for further applications of Reeb graph in computer graphics. Our algorithm relies on Morse theory to find a finite set of paths traced concurrently inside parts of the manifold where the topology of the manifold with respect to a given scalar function does not change. The sequential algorithm that we present here is essentially similar to Reeb graph algorithm given in [doraiswamy2008efficient], where tracing paths inside cylinders were used to construct the Reeb graph. We provide the sequential version of the parallel algorithm in this paper because it has some major differences from the algorithm given [doraiswamy2008efficient]. However our main contributions and focus, which are listed below, are not the sequential Reeb graph algorithm.
The demand to compute large data sets has increased in the last decade and hence the consideration of topological computations parallelization. Multiple attempts have been made in this direction, including multicore homology computation [lewis2014multicore] spectral sequence parallelization [lipsky2011spectral], distributed contour tree [morozov2012distributed], distributed merge tree [morozov2013distributed], and distributed Mapper [hajij2017distributed]. In this paper, we give a parallel Reeb graph algorithm on arbitrary triangulated mesh with and without a boundary. We prove the correctness of our method using fundamental theorems in Morse Theory. Moreover, we discuss the performance results that compare our approach to a reference sequential Reeb graph algorithm. We then show how we can use the Reeb graph to retrieve certain curves on the manifold. Finally, we utilize the data retrieval aspect of our algorithm and give an application to surface segmentation.
This article has the following contributions:
We give an efficient parallel algorithm that computes the Reeb graph of piece-wise linear function defined on a triangulated -manifold with and without a boundary.
Our method can be used to retrieve the manifold data from the Reeb graph. In other words, given a point in the Reeb graph, we give an efficient method to retrieve the manifold data that corresponds to that point.
We show how the homological properties of a Reeb graph can be used to extract certain curves on a surface and we utilize our algorithms to give a mesh segmentation algorithm.
The algorithms presented here are easy to implement and require minimal memory storage.
2. Morse theory and Reeb graphs
In this section, we review the basic background needed in this paper. We start by reviewing the basics of Morse theory and Reeb graphs on a smooth manifolds. Then we discuss the corresponding piece-wise linear version. For more details on Morse theory the reader is referred to [matsumoto2002introduction, banyaga2013lectures].
2.1. Morse theory
Morse Theory is a tool in differential topology that is concerned with the relations between the geometric and topological aspects of manifolds and the real-valued functions defined on them. One of the primary interest in this theory is the relationship between the topology of a smooth manifold and the critical points of a real-valued smooth function defined on . Intuitively, Morse theory studies the topological changes of the level sets of a real-valued smooth function as the height of varies. Morse theory was first introduced by Morse [morse1934calculus] for infinite dimensional spaces. A comprehensive introduction to Morse theory on finite-dimensional manifolds is given [milnor1963morse]. Also see [matsumoto2002introduction, banyaga2013lectures]. Morse theory has been proven to be a very useful tool in computer graphics, geometric data processing and understanding. The theory was extended to triangulated -manifolds by [critical1967]. Recently, Morse theory has found applications in global surface parameterization [guo2006meshless], finding a fundamental domain of a surface [fair2004], surface quadrangulation [dong2006spectral], topological matching [hilaga2001topology], implicit surfaces [stander1997guaranteeing], surface segmentation [yamazaki2006segmenting], spline construction [wang2009geometry] and many other applications.
Let be a compact and smooth -manifold and let , where , be a closed interval. Let be a smooth function defined on . A point is called a critical point of if the differential is zero. A value in is called a critical value of is contains a critical point of . A point in is called a regular point if it is not a critical point. Similarly, if a value is not a critical value then we call it a regular value. The inverse function theorem implies that for every regular value in the level set is a is a disjoint union of manifolds. In particular, when , then is a disjoint union of simple closed curves. A critical point is called non-degenerate if the matrix of the second partial derivatives of , called the Hessian matrix, is non-singular. A differentiable function is called Morse if all its critical points are non-degenerate and all critical values are distinct. If the manifold has boundary, i.e. , then we will also require two other conditions: (1) and (2) there are no critical points on . In other words, the boundary points in the interval , the values in , are regular values for the function . The index of a critical point of , denoted by
, is defined to be the number of negative eigenvalues of its Hessian matrix. For instance the Hessian of a scalar function on smooth surface is asymmetric matrix. Hence, the index of on a critical point takes the values or . In this case an index 0, 1 and 2 of a critical point of a function is nothing more than a local minimum, a saddle and a local maximum for , respectively.
If is a Morse function on a surface then, up to a change of coordinates, the surface around a critical point takes one of the three shapes illustrated in Figure 1. More formally we have the following important Lemma:
(Morse Lemma) Let be a smooth surface, be a smooth function and be a non-degenerate critical point of . We can choose a chart around such that takes exactly one of the following three forms:
Local minimum — .
Saddle — .
Local maximum — .
An analogous lemma holds for Morse functions on higher dimensional smooth manifolds. See [matsumoto2002introduction] for more details. Morse Lemma implies that a Morse function around a critical point looks simple, and it is exactly one of the forms given in the Lemma, above up to change of coordinates. Notice that the number of minus signs in the standard form of the function around is equal to the index of the critical point .
2.2. Reeb graphs
Let be a topological space and let be a scalar function defined on . The Reeb graph of the pair and gives a summary of the topological information encoded in by tracking changes occurring to the connected components of the level sets of . More precisely, the Reeb graph of and is the quotient space of defined as follows. We say the and are equivalent in , and write , if and only if they belong to the same connected component of for some . The quotient space with the quotient space topology induced by the quotient map is called the Reeb graph of and . Recall here that the map takes a point in to its equivalence class in . Given a point in , it is often important in practice to retrieve the the set of points in that map to via . In this article, we provide an efficient method to retrieve the data in associated to a point on a Reeb graph.
The map induces a continuous function , where if . This map is well defined since whenever .
When is a manifold, and is a Morse, then exhibits certain additional properties. For instance, in this case every vertex of arises from a critical point of or a boundary component. Furthermore, every maximum or minimum of gives rise to a degree -node of . Saddle points for a Morse function defined on a -manifold have degree -node. This is not guaranteed if the scalar function is not Morse. See Figure 2 for an example of a Reeb graph.
3. Reeb graphs on triangulated surfaces
3.1. Morse function in the piece-wise linear setting
In this paper we will be working with triangulated surfaces. We will denote to the vertices, edges and faces of a triangulated mesh by , and respectively. The extension of Morse theory to triangulated manifolds was by given Banchoff [critical1967]. Let be a triangulated -manifold and let be piece-wise linear function on . The star of , denoted by , is the set of simplices that intersect with the vertex . The closure of is the smallest simplicial complex of that contains . The link consists of the set of vertices of that belong but do not belong to . The upper link of is defined to be the set:
the lower link is defined similarly by:
and mixed link
Using the link definitions, we classify vertices ofas follows. A vertex in is PL regular if the cardinality of is equal to . If , then is a PL maximum vertex with index , and if , then is a PL minimum with index . If , then is a PL saddle with index and multiplicity . See Figure 3. A PL function is PL Morse function if each vertex is either PL regular or PL simple, and the function values of the vertices are distinct. Similar to the smooth case, when , we assume further that satisfies: (1) and (2)there are no critical points on .
There are other ways to define a Morse function of a manifold with a boundary. See for instance [cole2004loops]. Our choice here will be utilized the parallelization of the Reeb graph algorithm and the application section 8.
3.2. Reeb graphs of general simplicial complexes
Reeb graph can be defined naturally on arbitrary simplicial complexes. Let be a simplicial complex and be a simplicial map defined on the vertices of . The map can be extended linearly to all simplices of to PL function which we will denote also denote by . Using this function, the Reeb graph of can be defined as before.
4. Reeb graph sequential algorithm on triangulated surfaces
In this section we assume that we are given a PL function defined on a traingulated surface possibly with a non-empty boundary . This includes the case when is a Morse function. Then we discuss the degenerate case, when has non-simple saddles.
As mentioned, the sequential algorithm that we present here is similar to Reeb graph algorithm given in [doraiswamy2008efficient]. We provide the sequential version of the algorithm because it has some keys differences from the algorithm given [doraiswamy2008efficient] that will be utilized later in our parallel algorithm.
The main idea of the algorithm is the construction of a sub-simplicial complex of such that the Reeb graph of with respect to , the restriction of on , is identical to the Reeb graph . The constructed simplicial complex does not only provide us with a Reeb graph of but also implies immediately an algorithm to compute the map that allows us to extract the manifold data given the corresponding Reeb graph points. The main two ingredients of the algorithm are the critical sets and the ascending paths. We introduce these two concepts next.
4.1. Critical sets and ascending paths
We start by giving the definition of critical sets then we give the definition of ascending paths.
Critical sets. Let be a saddle point of , and let be its corresponding critical value. Consider the connected components of the set . The connected components of consist of a collection of simple closed curves embedded in , as well as a single component, which contains a singularity. This singular set consists of multiple circles that intersect at the critical point . We will denote this singular set by . See Figure 4 for an example. Note that for critical value might consist merely of the critical set ( with no other simple closed curves ).
Choose small enough such that the interval has only the critical value . As we move from to , the singular set becomes a non-singular one consisting of a disjoint union of simple closed curves , for . By convection we will consider the sets to be the connected components of the singular set , and we will refer to them as such for the rest of the paper. We talk more about about the components of a critical set and show exactly how to determine them in the piece-wise linear setting in Section 4.2.1. The following Lemma asserts that the number of connected components of of for a simple saddle point of a Morse function defined on surface is either or .
Let be a compact connected orientable surface with a Morse function . If has a unique saddle point then is homeomorphic to a pair of pants. See Figure 5.
For a regular value , we will denote to the number of simple closed curves of by . Lemma 4.1 implies that for a sufficiently small enough and for any saddle point on a Morse function , one has . In other words, as we are passing through a saddle point two circles merge or split. Figure 5 shows two types of saddles: a split saddle and a merge saddle. A saddle point is a split saddle if , and it is a merge saddle if .
The sequential version of the algorithm relies on Lemma 4.1 to handle the case when the function is Morse and has only simple saddle points. The case when has saddle points with higher multiplicities will be handled in Section 4.5.
If is a maximum and minimum point, then by definition, will be the set that consists of the point itself.
Ascending paths. The second main ingredient of the sequential Reeb graph algorithm is a collection of curves that we trace inside the manifold using the function values. more precisely, an ascending path from a non-maximum vertex , denoted by , is defined to be a finite sequence of consecutive edges on , such that is an edge on for , , and is a maximum, a boundary or a saddle vertex.
4.2. Outline of the sequential algorithm
We present now the outline of the sequential Reeb graph algorithm. We assume that we are given a triangulated PL Morse function defined on triangulated mesh without boundary. The case when the function is not Morse, or when the has a boundary, will be discussed in later sections.
The sequential Reeb graph algorithm is given in the following steps:
We start by sorting the critical points of by their critical values. Let be the set of the sorted critical points of in an ascending order.
Foe each critical point of the function we define a node in the in the Reeb graph . In other words, the node set of the graph corresponds precisely to the set of critical points of the function defined on .
For each critical point in we compute the critical set .
For each saddle or a minimum vertex in , we associated one or two ascending paths on the mesh: one ascending path if is a minimum or a merge saddle and two paths if is a split saddle. For each ascending path, we march with until this path intersects with the first critical set with a higher critical value than of . At this point we insert an edge for the Reeb graph between the vertex and the vertex .
Figure 6 illustrates the steps of the algorithm. It remains to describe two aspects of the previous algorithm : the construction of the critical sets mentioned in step (3) and the construction of an the ascending paths mentioned in step (4).
4.2.1. Construction of the critical sets
We now describe how to compute the critical set of a critical point in the piece-wise setting. As before we assume that a piece-wise linear function defined on a triangulated surface , and it takes distinct values on the vertices of . This assumption will guarantee that for a given value , the level curve intersects with at most one vertex of .
Now let . The cross simplices of the value is the union of all simplices of , which intersect with the level curve . This is the set of vertices, edges and faces in , which intersect with the level curve . If for a vertex in , then we also define to be .
When is the maximal or the minimal value, then consists of a single vertex . In this case is simply . When is a regular value, is a disjoint union of topological cylinders, that is appears as a ”thickened” band around the curve Note that when the value corresponding to a vertex in with for some in , then . When is critical value of a saddle point then the curve consists of a finite collection of simple close curves that meet at the saddle point and the the set can be seen as the thickened band of these curves. See Figure 7.
The lower level of the cross subsimplex of a value , denoted by , is the set of vertices and edges in which have values less than or equal to . Similarly, the higher level of the cross subsimplex of a value , denoted by , is the set of vertices and edges in which have values higher than or equal to . See Figure 7.
Recall the notion of the connected component of a critical set from Section 4.1. Specifically, for a critical vertex with a critical value , we talked about the connected components of the critical set . Using the definitions we introduced in this section we can computed the connected components of the critical set in the piece-wise linear setting by considering the connected components of .
4.2.2. Construction of the ascending paths
The ascending paths form a critical point are specified as follows:
If is a merge saddle or a minimum then we initiate a single ascending path specified as follows. Let be a vertex in such that . At the iteration consists of with for .
If is a split saddle, then we start two ascending paths and starting from the point specified as follows. Divide the set into two disconnected components and . Choose the vertex in , such that for all , and choose the vertex in a similar manner. At the iteration consists of with for (here we assume ). The path is constructed similarly.
4.2.3. Termination of an ascending path
The condition at which we terminate the ascending paths we initiated in step is specified as follows. Assume that at the iteration an ascending path starting from the vertex is . We continue this iteration until we arrive at an edge with where is the critical point with a critical value right after the critical value of the critical point . At this point we check the condition . If this condition is satisfied then we insert an edge for the Reeb graph between the vertex and the vertex . If then we keep marching until the critical point with the lowest critical value that satisfies the condition as well as . Note that can be either a saddle or a maximum vertex.
The check of intersection between the edge in an ascending path and a critical set , mentioned in step (4), can be done by checking if belongs with .
It is important to notice how an ascending path corresponds to an edge in the Reeb graph. The ascending path starts at a critical point with a critical value and terminates at a critical set that corresponds to a critical point with a critical value with . More precisely, an ascending path starts at one of the connected components of the upper link of a critical point and ends at the one of the connected components of the critical sets . If two ascending paths starts at two different connected components of the upper link of but still end up in the same connected component of then these two paths correspond to the exact same edge in the Reeb graph. Therefore only one of these ascending paths corresponds to an edge in the final Reeb graph. For this reason we say that each ascending path starting from a connected component of the upper star of a vertex gives rise to a potential edge in the Reeb graph. We give more details on this point in Section 4.5.
4.3. Surfaces with boundaries
In the case when the surface has a boundary we modify the previous algorithm as follows. In this case is not empty and consists of a finite collection of simply closed curves. We treat each connected component of as a minimal point, and we treat with the boundary as a maximum point. More precisely, the following modifications are added to the previous algorithm from Section 4.2.
In step , each connected component in is considered a vertex in the Reeb graph vertex set.
In step , for each boundary component in , we pick an arbitrary vertex on the boundary and initiate an ascending path starting.
In step , if an ascending path starting at a vertex reaches a boundary vertex in one of the connected components, say , of , then we insert an edge in the Reeb graph between the vertex and the vertex in that corresponds to .
We denote the subcomplex obtained from using the previous algorithm by . In other words, consists of the critical sets for all critical point , as well as the ascending paths we initiated at saddle, minimum or boundary vertices. When and are clear from the context, we will denote to simply by .
4.4. Correctness of the sequential algorithm
For a function and a define:
Note that we allow to be empty. Moreover, define :
The correctness of our algorithm relies on the following two facts :
The only topological changes to the level sets of occur when as pass a critical point. This is stated formally in Theorem 4.4.
The structure of the manifold around a critical point is completely determined by the index of that critical point. We give this in Theorem 4.5.
Let be a smooth function on a smooth surface M. For two reals , with , if has no critical values in the interval , then the surfaces and are homeomorphic.
Our algorithm relies on Theorem 4.4. Namely, as we trace an ascending paths, we assume that no topological change occur until we reach the next critical point. The ascending path may not terminate at the next critical point, provided the part of the manifold in which this path is traveling in has not changed its topology. This will more evident after we provide the next theorem, which shows the exact structure of around a critical point.
Let be a compact connected surface, possibly with boundary and let be a Morse function on . Let be a critical point, and let be its corresponding critical value. Let be small enough so that has only the critical value .
If is equal to 0 or 2, then is homeomorphic to a disjoint union of a disk and a finite number of topological cylinders (that is a genus zero surface with two boundary components).
If , then is homeomorphic to a pair of pants and finite number of topological cylinders.
The previous two theorems show that for a given Morse function on , we can arrange so that at each critical point only a single topological event occurs, and this topological event occurs around the critical point. Moreover, we know exactly what topological event occurs by the index of the critical point. This is illustrated in the Figure 8.
This shows that any 2-manifold can be built from the building blocks in Figure 9. Moreover, Theorem 4.5 shows that the restriction of Reeb graph of the restriction of on has the shapes given in Figure 10. In other words, this gives us the structure of the Reeb graph around an interval that contains a single critical value.
Moreover, subcomplex constructed in the algorithm has the same Reeb graph structure of around the critical points. More specifically, the algorithm creates an ascending path for each minimum and merge critical point and two such paths for a split saddle. Moreover, the algorithm terminates as ascending path when it passes from a critical set. See Figure 10.
Now let be an edge in a Reeb graph connecting between the two nodes and , which correspond to critical points of . For each such edge, we can find a preimage arc in that is mapped to via the map . The preimages of the points and under are the critical set and in , respectively. Hence each arc must start at a point in and end at a point in in . Each such an arc on characterizes the edge .
An ascending path constructed in the sequential algorithm essentially traces an arc in the way described above. Namely, for a critical point , with a critical value , an ascending path created at a point will terminate at a critical point point with . This termination occurs when we pass through the critical set of the point .
4.5. Dealing with the degenerate cases
It is possible in practice to obtain a scalar function with saddle points that have multiplicity . The algorithm that we present in Section 4.2 can be extended to handle such cases. We need to do the following modifications.
In step (3) we calculate the connected components of the critical set . Here it is not enough to calculate the critical set . We need to also to compute the connected components of this set. This was explained in Section 4.2.1.
When the multiplicity of a split saddle is greater than or equal to we create an ascending path for each connected component in .
In the non-degenerate case every ascending path corresponds to an edge in the Reeb graph. This is not the case anymore in the degenerate case. We describe next the sequential algorithm of the Reeb graph when has degenerate critical points.
Sort the critical points of an in ascending order. Let be this set. This represents the vertex set of the Reeb graph, as we did before.
For each in , compute the connected components of and include all these component in a single container . We will denote by to be the connected component of the critical set . In this way we index all elements in .
Declare each set of as not visited.
For each critical point in and for each component in , we initiate an ascending path as described in Section 4.2.2. For each such path, we determine the connected component in , which the path terminates at as described in Section 4.2.1. We have two cases:
If the connected component is not visited, then we insert an edge between and and mark the component as visited.
If the connected component is visited, then we do not make any changes to the Reeb graph and terminate the current ascending path. In this case the ascending path corresponds to an edge that already exists in the Reeb graph. See Remark 4.3.
Note that the above procedure can be used to determine an the edges originating from a simple saddle. Namely, we do not need to check the type of the simple saddle point (merge or split) in step (3) of the algorithm given in Section 4.2, and for any saddle point we use the above procedure instead.
5. Parallelization of the algorithm
In this section we give the details of our strategy to compute the Reeb graph in parallel. We describe the three stages of the parallel algorithm as follows.
The partition stage. In this stage we partition the manifold into submanifolds such that the vertices counts of each submanifold are approximately equal to each other.
Computing the Reeb graph for the submanifold stage. Computing the Reeb graphs for each submanifold obtained from stage one concurrently.
The gluing stage. In this step we glue the Reeb graphs obtained from the stage 2.
5.1. The partition stage
In this first stage of the parallel algorithm we sort the vertices of the manifold with respect to the function . This step can be done efficiently in parallel [tsigas2003simple, singler2007mcstl]. The critical sets for saddle points are then determined by assigning a thread to each saddle point. This computation is only necessarily to determine the number of ascending paths that we need to initiate from that saddle point. Next we partition the manifold to submanifolds along certain regular values of the scalar function . More precisely the partition stage is given as follows:
Compute the critical points of by assigning a thread to each vertex in . Let be the list critical points of , and let be their corresponding critical values.
We choose regular values of . These values will be utilized to slice the manifold into submanifolds ,…,, such that the vertex count of the submanifolds are approximately equal to each other. We also need to determine the connected components for in . The connected components of the regular value can be computed in linear time with respect to the number of edges in as follows. We visit all edges of and detect if an edge crosses one of the values . If such an edge is found at a level , then we keep rotating around to find all other edges crossing the value within the same connected component of . After visiting all edges, we also will have determined the connected components of for each . We will denote the set of all connected components of for by . We also call an edge in that crosses a crossing edge. See Figure 11 for an illustration.
Divide the surface into partitions along the level sets for all . We obtain a list of submanifolds ,…,. Here we set and . We will denote to by . The set will be denoted by .
Next we extend by adding other vertices in as follows. Let and be the edges in that intersect with and , respectively. The submanifold is obtained from by adding the vertices from and . We call the edges and the boundary edges of . Note that every two consecutive submanifolds from intersect with each other along their boundary edges. See Figure 12 for an illustration.
The purpose of extending the submanifolds to in step (3) will be justified in the gluing stage in Section 5.3.
5.2. Computing the Reeb graph of each submanifold
The manifold is in general homeomorphic to the manifold , since the former is obtained from the latter by extending its boundary slightly. However, in the piece-wise linear case the extension specified in the previous section may change the topology of the manifold. This will occur when a crossing edge in or contain a critical vertex of . When this case occurs, we exclude this vertex from in order to keep it homeomorphic to . Using this convention, we can assume that the Reeb graph of the restriction of on is identical to the Reeb graph of the restriction of the Reeb graph of on .
Computing the Reeb graphs for , for , now goes as follows. To each connected component in for , we assign a thread and the Reeb graph on the submanifold , which can be computed concurrently.
An ascending path that starts at a crossing edge or ends at an crossing edge will be treated specially. We call the Reeb graph edge that corresponds to such an ascending path a crossing arc. Furthermore if the starting or the ending edge of this ascending path is a crossing edge then we will call the corresponding node in the Reeb graph a crossing node. Every crossing node is determined by its crossing edge. In other words, given a crossing edge we can recover its crossing node in the graphs for . In practice we need to be able to do this in constant time, so we create a global map that takes as an input a crossing edge and returns its corresponding crossing node. In the case when a single crossing edge is associated with two crossing nodes from two consecutive submanifolds then the map associates that edge crossing edge to the two crossing nodes (this occur when is the ending edge of a crossing arc and the starting edge of the crossing arc in the consequent submanifold are the same). If the crossing edge is not associated with any crossing node, then this map returns a constant value indicating that this edge is not a starting or an ending crossing edge for any ascending path. Note that each connected component in has either two crossing edges that are associated with two crossing nodes or a single crossing edge that is associated with two crossing nodes. This map will be utilized in the gluing stage.
5.3. The gluing stage
For the gluing stage we need to glue the nodes of the Reeb graphs that occur in duplication . For this purpose we utilize the function that we constructed in Section 5.2. For each connected component in , we visit its crossing edges and check if two edges within that connected component have been flagged by . If this is the case, then we retrieve the crossing nodes that corresponds to these two edges via the function and glue them. In the case when connected component of has a single crossing edge, then we retrieve the two crossing nodes that corresponds associated with that edge and glue them. When we finish visiting all connected components of , all duplicate nodes will have been glued, and the final graph is . See Figure 12 for an illustration of this process.
6. Going from the Reeb graph to the manifold
In this section we give an algorithm that describes an explicit description of the map . This map associates to every vertex in the graph to the critical set associated to that critical point. More importantly, for each interior point of an edge in , we want to associate a simple closed curve in such that .
In the construction above, for our Reeb graph algorithm an edge of the graph is traced as a sequence of edges on the mesh running between two critical sets of the function . This gives an embedding of the edges of the Reeb graph on the surface. This embedding is used to get the circle the corresponding to any points on the graph. More preciously we have the following correspondence. Let be an edge of the graph . By the construction of our algorithm, every edge in is determined by two critical points and a sequence of oriented edges on the mesh. Let be the sequence of oriented edges on the mesh that corresponds to the edge . If then we will denote by to . Let be the summation where .
An interior point on the edge is specified by giving a value in the interval . To obtain the circle on the mesh that correspond to we do the following procedure:
Map the interval linearly to the interval .
Use the previous linear function to map to its corresponding value in .
Determine the edge in such that .
Now we need to find the value , in the range of , the range of , such that contains . We know that this value corresponds to , which lies in the interval . The required lies in interval . Hence, we map the interval linearly to and determine the value in that corresponds to .
The required circle is the connected component of that contains the edge .
Note that in the previous procedure we rely on the fundamental assumption that takes different values on the vertices of the mesh.
7. Run-time analysis and implementation
We tested the presented algorithm on meshes with various complexities. Our experiments were done on a AMD FX 6300 6-Core with 32 GB memory. The algorithm was implemented in C++ and Windows platform was used.
We test our test our parallel algorithm with the AIM@SHAPE Repository. This initial attempt did not give us an increase of performance over the sequential algorithm for most meshes available in the above dataset. In order to take advantage of the parallel implementation, we tested our algorithm on high resolution meshes. Specifically, we uniformly increase the resolution of the meshes available AIM@SHAPE library to . Our implementation on the described above data gave us a minimum speedup of 3.6, a maximum one of 4.3 and an average speedup of 3.8 on 6 cores. Using this we obtain a average parallel efficiency. The details are given in Figure 13. The -axis represents the number of processes and the -axis shows the speedup. The figure shows how the trends in the curves are increasing monotonically as the number of processes increase.
Reeb graphs on a surface encodes a rich amount of topological information from the original surface. In this section we show how the Reeb graph of a surface gives rise to a natural collection of simple closed curves on . The applications that we present can be described in terms of these curves. We first define these curves and show their relation with the Reeb graph. We then we give a procedure to extract them by utilizing the tools we described in Section 6. Finally, the curves are utilized to obtain two mesh segmentation algorithms.
While almost all Reeb graph-based segmentation algorithm focus on genus zero surfaces, see for instance [xiao2003discrete, xiao2003topological, tierny2007topology], we present here two mesh segmentation algorithms for surfaces with higher genus.
Let be a surface and a scalar function . The edges of the Reeb graph determine the following types of simple closed curves on :
Cutting system curves.
Pants decomposition curves.
We describe how a Reeb graph on a surface can be used to realize these curves next.
Cutting System Curves. Reeb graphs can also be used to determined the so called cutting system. A cutting system for a connected, closed, orientable surface of genus is a collection of unordered disjoint simple closed loops embedded in whose complement is a sphere with boundary components [hatcher1980presentation]. Segmenting a surface along a cutting system curve yield a genus zero surface with multiple boundary components. Hence this can be used to aid in mesh parametrization. See for intance [zeng2009generalized] and the references therein. We describe here a Reeb graph-based algorithm to obtain a cutting system. The algorithm goes as follows:
Let be a spanning tree of and consider the edges in .
Select an interior point in , for .
Each interior point selected in the previous step determines a loop which can be obtained using the Reeb graph algorithm we described here.
Figure 14 show multiple examples of cutting system curves on triangulated surfaces.
Pants Decomposition Curves. A Reeb graph naturally gives rise to a collection of curves that can be used to decompose a surface into a pair of pants. A pair of pant a is a genus zero surface with three boundary components. Beside surface segmentation [hajij2016segmenting], surface pants decomposition has found applications in mesh parametrization [kwok2012constructing], surface matching [li2009surface] and surface classification and indexing [jin2009computing]. The method to obtain a pants decomposition from the Reeb graph is illustrated in Figure 15 and is described as follows:
Let be the deformation retract of . This graph can be obtained by recursively deleting nodes with valency one from and the edge attached to them until no such indices exist. We exclude from this deletion the -valence nodes originating from the boundary of . We also delete all nodes with valency and combine the two edges that meet at that node to form a single edge. This step is illustrated in step Figure 16.
We select one interior point from each edge in , provided this edge does not have a node of valency one.
We use the our Reeb algorithm to determine the curves on the surface that correspond to the points that we selected on the graph in the previous step.
The results of the previous algorithm was tested on triangulated meshes with various topological complexities. We show some examples in Figure 16.
Branch Curves. A branch curve on a surface is a simple closed curve that bounds a topological disk on . Such a curve is also called null homotopic. A branch curve is determined by a Reeb graph edge which has a vertex of valence one. Note that cutting the surface along a branch curve increases the number of connected components of the surface. Cutting along such curves can be used for segmentation of a genus zero surfaces. There are many Reeb graph-based segmentation algorithms in the literature for segmentation of genus zero surfaces such as the surfaces obtained from a humanoid character. See for instance [xiao2003discrete, xiao2003topological, tierny2007topology]. Since this type of curves is essentially utilized elsewhere in the literature, we simply list it here for for completeness of our discussion. All these methods however lack the description of a method to extract the manifold data from the Reeb graph data.
9. Conclusion and Future Work
Parallelization of topological data analysis algorithms is still in its infancy. There are plenty of existing topological machineries such as Morse theory that offer a plethora of tools which can be utilized to obtain robust and efficient parallel algorithms. In this paper we presented a work that utilizes Morse theory to obtain a parallel algorithm for Reeb graph.
The parallel algorithm that we present here has the elements that makes it generalizable to a Reeb graph algorithm on a general simplicial complex. However, we thought that this would make the discussion more complicated in many parts of the algorithm. We plan to peruse this direction in a future work.
This work was supported in part by the National Science Foundation (IIS-1513616).