Voronoi diagrams have been among the most studied constructions in computational geometry since their inception [14, 9, 4, 15], due to their numerous applications, including motion planning and collision detection, communication networks, graphics, and growth of microorganisms in biology.
Despite being a central topic in research for many years, generalized Voronoi diagrams, and especially the Voronoi diagram of spheres (also known as the 3D Apollonius diagram) have not been explored sufficiently ; this is also pointed out by Aurenhammer et al. . Moreover, due to recent scientific discoveries in biology and chemistry, 3D Apollonius diagrams are becoming increasingly important for representing and analysing the molecular 3D structure and surface  or the structure of the protein .
The methods used to calculate the Apollonius diagram usually rely on the construction of a different diagram altogether. Some methods include the intersection of cones  with the lifted power diagram and lower envelope calculations [28, 27, 16]. Boissonnat et al. use the convex hull to describe its construction [8, 7]. Aurenhammer’s lifting method has also been implemented for two dimensions . Karavelas and Yvinec  create the 2d Apollonius diagram from its dual, using the predicates developed in . In , it is also reported that the Apollonius diagram can be obtained as a concrete case of the abstract Voronoi diagrams of Klein et al. .
Kim et al. made a major research contribution in the domain of the Voronoi diagrams of spheres including one patent  for the computation of 3D Voronoi diagrams. Their work provides many new algorithms related to the Voronoi diagrams including the computation of three-dimensional Voronoi diagrams , Euclidean Voronoi diagram of 3D balls and its computation via tracing edges  and the Euclidean Voronoi diagrams of 3D spheres and applications to protein structure analysis .
Hanniel and Elber  provide an algorithm for computation of the Voronoi diagrams for planes, spheres and cylinders in . Their algorithm relies on computing the lower envelope of the bisector surfaces similar to the algorithm of Will . However, none of the current research efforts provide the exact method for computing the Apollonius diagram (or its dual Delaunay graph) of spheres.
In this paper, we are inspired by the the approach presented by Emiris and Karavelas in  for the evaluation of the 2D Apollonius diagram. In order to extend their work towards an algorithm that would incrementally construct the Apollonius diagram for 3D spheres, we develop equivalent predicates as the ones presented in their paper for the 2D case. Our main goal is to implement the most degree demanding predicate, called the EdgeConflict predicate: given five sites that define a finite edge in the 3D Apollonius diagram, and a sixth query site , the predicate determines the portion of that will disappear in the Apollonius diagram of the six sites due to the insertion of .
In order to accomplish this task, we developed various subpredicates and primitives. The creation of these tools was made taking into consideration the modern shift of predicate design towards lower level algorithmic issues. Specifically, a critical factor that influenced our designs was our goal to minimize the algebraic degree of the tested quantities (in terms of the input parameters) during a predicate evaluation. Such a minimization problem has become a main concern that influences algorithm design especially in geometric predicates, where zero tolerance in all intermediate computations is needed to obtain an accurate result [10, 13, 6, 26, 29] .
Our main contribution in the research area is the development of a list of subpredicates that where not implemented, either explicitly or implicitly, in the current bibliography and can be used within the scope of an incremental algorithm that constructs the 3D Apollonius diagram of a set of spheres. Our most outstanding result is the fact that all subpredicates presented in this paper along with the EdgeConflict predicate require at most 10-fold degree demanding operation (with respect to the input quantities). This is quite an unexpected result since the equivalent EdgeConflict predicate in the 2D Apollonius diagram required 16-fold operations [12, 24]. Our approach of resolving the “master” predicate and especially the observations made in the inverted plane, could also be implemented in the 2D case to yield lower algebraic degrees.
This paper is organised as follows. In Section 2, we review the preliminaries of the Apollonius diagram of 3D spheres and the orientation of hyperbolic trisectors in such a diagram. An introduction to the inversion technique is also made along with useful remarks regarding the correlation between the original and the inverted space. In Section 3, we present in detail the EdgeConflict predicate along with the assumptions made in the scope of this paper. An outline of the subpredicates developed is then provided along with the geometric properties that derive from each one. Finally, we provide the main algorithm that ultimately combines all the aforementioned tools to answer the EdgeConflict predicate. Section 4 is devoted to the implementation and algebraic analysis for each subpredicate. Finally, in Section 5, we conclude the paper.
2. Preliminaries and Definitions
Let be a set of closed spheres (also referred as sites) in , with centers and radii . In this paper, we will assume that no one of these sites is contained inside another. Define the Euclidean distance between a point and a sphere as , where stands for the Euclidean norm. The Apollonius diagram is then defined as the subdivision of the plane induced by assigning each point to its nearest neighbor with respect to the distance function .
For each , let . Then the (closed) Apollonius cell of is defined to be . The set of points that belong to exactly two Apollonius cells are called the Apollonius faces, whereas the connected set of points that belong to exactly three Apollonius cells are called Apollonius edges. Points that belong to more than three Apollonius cells are called Apollonius vertices; the Apollonius diagram of is defined as the collection of the Apollonius cells, faces, edges and vertices.
An Apollonius vertex is a point that belongs to 4 or more Apollonius cells. Without loss of generality we may assume that an Apollonius vertex is tangent to exactly 4 sites , since otherwise we may apply a pertrubation scheme to resolve the degeneracy. The sphere centered at and tangent to is either externally tangent to them, or is contained inside all 4 four sites; in the former case it is called an external Apollonius sphere, while in the latter an internal Apollonius sphere. Let , , be the point of tangency of the Apollonius sphere and . The tetrahedron can either be positively or negatively oriented, or even flat . We assume below that is not flat; otherwise we may employ the perturbation scheme described in  and, thus, consider it as non-flat. The Apollonius vertex corresponding to a positively (resp., negatively) oriented tetrahedrom will be denoted (resp., ). Observe that a cyclic permutation of the indices does not affect our choice of Apollonius vertex.
The trisector of three different sites and is the locus of points that are equidistant from the the three sites. In the absense of degeneracies its Hausdorff dimension is 1, and it is either (a branch of) a hyperbola, a line, an ellipse, a circle, or a parabola ; in this paper, due to space limitations, we focus on the cases where the trisector is an open curve, and more specifically hyperbolic or linear. An Apollonius edge is a connected subset of the trisector of three different sites and is defined by five sites and . The first three sites define the supporting trisector of the edge, whereas the last two define its endpoints and .
The 3-dimensional inversion transformation is a mapping from to that maps a point to the point . The point is called the pole of inversion. Inversion maps spheres that do not pass through the pole to spheres, and spheres that pass through the pole to planes.
In the Apollonius diagram context we call -space the space where the sites live. Since the Apollonius diagram does not change when we add to the radii of all spheres the same quantity, we will, most of the times, reduce the radii of the spheres by the radius of one of them, the sphere . The new spheres have obviously the same centers, whereas their radii become spheres become , . For convience, we call the image space of this radius-reducing transformation the -space. We may then apply inversion, with as the pole, to get a new set of spheres or planes; we call -space the space where the radius-reduced, inverted sites live.
Since the sites are not contained inside each is tangent to another, the image of the sphere in -space is a sphere , centered at with radius , where
and . Note that is positive due to the non-inclusion assumption. We also define the quantities
for , and it holds that
for and .
2.2. Orientation of a hyperbolic or linear trisector
Under the assumption that the trisector of the sites is a line or a hyperbola, the three centers cannot be collinear . A natural way of orienting is accomplished via the well-known “right-hand rule”; if we fold our right hand to follow the centers and (in that order), our thumb will be showing the positive “end” of (see Figure 1).
By orienting , we clearly define an ordering on the points of , which we denote by . Let be the intersection of and the plane going through the centers and . We can now parametrize as follows: if then ; otherwise . The function is a 1-1 and onto mapping from to . Moreover, we define , where is an external tangent sphere to the sites and , to be , where is the center of .
We also use (resp. ) to denote the positive (resp. negative) semi-trisector i.e., the set of points such that (resp. ).
3. Non-Degenerate Case Analysis for Hyperbolic Trisectors
3.1. Voronoi Edges on Hyperbolic Trisectors
In order to better understand our initial problem, more insight regarding the properties of a Voronoi diagram is required. Let us look closer at an edge (we drop the subscript for convenience) of , where is a set of given sites that includes for and does not include . This edge lies on the trisector , the locus of points that are equidistant to the sites and . In the scope of this paper, we assume that is of Hausdorff dimension 1 and is either (a branch of) a hyperbola or a line. To ensure that the spheres and meet this criteria, the predicate Trisector , described in Section 3.3.2 and analyzed in Section 4.2, must return “hyperbolic”.
We now focus on the edge , i.e. the open continuous subset of whose closure is bounded by the Voronoi vertices and . If denotes the external Apollonius sphere of the sites and that is centered at , the most crucial property of a point is that does not intersect with any other site of . We call this the Empty Sphere Principle since it is a property that derives from the empty circle principle of a generic Voronoi diagram and its basic properties.
Using this property, we can show that the left and right endpoint of are the Apollonius vertices and respectively. To prove that the left endpoint is indeed and not , consider a point such that and move it infinitesimally on the trisector towards its positive direction. The initial Apollonius sphere was tangent to , and assuming was the left endpoint of , the sphere should not longer be tangent nor intersect since and the Empty Sphere Principle must hold. However, due to the negative orientation of the tetrahedron , where is the tangency point of the sphere and for , and the orientation of , the sphere contains and therefore intersects , yielding a contradiction. Therefore, we have proven that the left point of is necessarily and we can prove that the right endpoint is (and not ) in a similar way.
3.2. Problem Outline and Assertions
For clarity reasons, we restate the EdgeConflict predicate, highlighting its input, output as well as the assertions we are making for the rest of this paper.
The EdgeConflict predicate, one of the fundamental predicates required for the construction of the 3D Apollonius diagram (also known as the 3D Additively Weighted Voronoi diagram), takes as input five sites and that define an edge in the 3D Apollonius diagram as well as a sixth query site . The predicate determines the portion of (we drop the subscript for convenience) that will disappear in the Apollonius diagram of the six sites due to the insertion of and therefore its output is one of the following
NoConflict: no portion of is destroyed by the insertion of in the Apollonius diagram of the five sites.
EntireEdge: the entire edge is destroyed by the addition of in the Apollonius diagram of the five sites.
LeftVertex: a subsegment of adjacent to its origin vertex () disappears in the Apollonius diagram of the six sites.
RightVertex: is the symmetric case of the LeftVertex case; a subsegment of adjacent to the vertex disappears in the Apollonius diagram of the six sites.
BothVertices: subsegments of adjacent to its two vertices disappear in the Apollonius diagram of the five sites.
Interior: a subsegment in the interior of disappears in the Apollonius diagram of the five sites.
In Section 3.4, we prove that these are indeed the only possible answers to the studied predicate, under the assumption that no degeneracies occur. Specifically, all analysis presented in this paper is done under the following two major assertions:
The trisector of the sites and is “hyperbolic” i.e., it is either a branch of a hyperbola or a straight line. Therefore, the spheres must lie in convex position; in other words, there must exist two distinct planes commonly tangent to all three spheres.
None of the subpredicates called during the algorithm presented in Section 3.4 returns a degenerate answer. Mainly, this is equivalent to the statement: All of the existing Apollonius vertices defined by the sites and , for , are distinct and the respective Apollonius spheres are all finite i.e., they are not centered at infinity. Such assertion dictates that the edge is finite as none of its bounding vertices and can lie at infinity.
3.3. SubPredicates and Primitives
In this section, we describe the various subpredicates used throughout the evaluation of the EdgeConflict predicate via the main algorithm presented in Section 3.4. For convenience, only the input, output and specific geometric observations is provided in this section, whereas a detailed implementation along with a algebraic degree analysis of each subpredicate is found in Section 4.
3.3.1. The InSphere predicate
The predicate returns or if and only if the sphere intersects, does not intersect or is tangent to the external Apollonius sphere of the sites and , centered at . It is assumed that exists and none of the first four inputed sites are contained inside one another. In , it is shown that the evaluation of the InSphere predicate requires operations of maximum algebraic degree 10, whereas in  an implicit InSphere predicate could be evaluated via the Delaunay graph, using 6-fold degree operations (although it is not clear if we could easily distinguish if we are testing against the Apollonius sphere centered at or ).
Since degenerate configurations are beyond the scope of this paper, the InSphere tests evaluated during the main algorithm (see Section 3.4) will always return or . We should also remark that, in bibliography, the InSphere predicate is also referred to as the VertexConflict predicate to reflect the fact that a negative (resp. positive) outcome of amounts to the Apollonius vertex in vanishing (resp. remaining) in , where contains and but not .
The InSphere predicate can be evaluated by determining the sign of quantities of algebraic degree at most 10 (in the input quantities).
3.3.2. The InCone and Trisector predicates
Given three spheres and , such that and are not contained one inside the other, we want to determine the relative geometric position of with respect to the uniquely defined closed semi-cone that is tangent to both and and includes their centers (see Figure 2). We shall call this the predicate.
In case the radii of and are equal, (we drop the parenthesis for convenience) degenerates into a cylinder without this having an impact to the predicate. If is used to denote the open sphere that corresponds to , then all possible answers of the predicate are
Outside , if at least one point of is outside ,
Inside, if lies inside and ,
OnePointTouch, if lies inside and is a point,
CircleTouch, if lies inside and is a circle.
The last two answers are considered “degenerate” and therefore, we may consider that whenever InCone is called during the algorithm presented in Section 3.4, it will either return Outside or Inside.
This predicate is basic tool used in various other sub-predicates such as the Trisector, which returns the trisector type of a set of three spheres. It is known () that if the trisector of has Hausdorff dimension 1, it can either be a branch of a“hyperbola”, a “line”, an “ellipse”, a “circle” or a “parabola”; these are the possible answers of the predicate. However, since the “line” and the “circle” type are sub-case of the “hyperbolic” and “elliptic” trisector types respectively, we can characterize a trisector as either “hyperbolic”, “elliptic” or “parabolic”.
During the execution of the main algorithm of Section 3.4, the has to be evaluated. Being able to distinguish the type of the trisector is essential since all the analysis presented in this paper assumes that is hyperbolic.
The InCone and Trisector predicates can be evaluated by determining the sign of quantities of algebraic degree at most 4 (in the input quantities).
3.3.3. The Distance predicate
When the trisector is a hyperbola or a line, there exist two distinct planes, denoted by and , such that each one is commonly tangent to the sites and leave their centers on the same halfspace.
Observe that and correspond to the two Apollonius spheres at infinity, in the sense that they are centered at infinity and are cotangent to the spheres and . These planes are considered as oriented, and subdivide into a positive and a negative halfspace, the positive being the halfspace containing the centers of the spheres.
Given a point on , we denote by the tritangent Apollonius sphere of and centered at . If we move on such that goes towards or , the sphere becomes the corresponding Apollonius sphere at infinity i.e., the plane or (see Figure 3).
Given the sites and , the Distance predicate determines whether intersects, is tangent to, or does not intersect the (closed) negative halfspaces delimited by the two planes and . The “tangency” case is considered as degenerate and is beyond the scope of this paper. This predicate is used in the evaluation of the Shadow predicate. and is equal to , where , and denotes the signed Euclidean of from the plane and is a sphere of radius , centered at . As for the Existence predicate, we reduce it to the computation of the signs of the two roots of a quadratic equation and prove the following lemma (see Section 4.4 for this analysis).
The Distance predicate can be evaluated by determining the sign of quantities of algebraic degree at most 6 (in the input quantities).
3.3.4. The Existence predicate
The next primitive operation we need for answering the EdgeConflict predicate is what we call the Existence predicate: given four sites and , we would like to determine the number of Apollonius spheres of the quadruple . In general, given four sites there can be “0”, “1”, “2” or “infinite” Apollonius spheres (cf. ) including the Apollonius sphere(s) at infinity. The predicate only counts the Apollonius spheres that are not centered at infinity and since degenerate configurations of the input sites are beyond the scope of this paper, it is safe to assume that the outcome will always be “0”,“1” or “2”. It is also clear that in case of a “1” outcome, the corresponding Apollonius center will either be or but not both; the case where is ruled out by our initial no-degeneracies assumption.
The analysis of the Existence predicate can be found in Section 4.3 where we prove the following lemma.
The Existence predicate can be evaluated by determining the sign of quantities of algebraic degree at most 8 (in the input quantities).
3.3.5. The Shadow predicate
We now come to the second major subpredicate used by the EdgeConflict predicate: the Shadow predicate.
Given three sites and , we define the shadow region of a site , with respect to the trisector , to be the locus of points on such that . The shadow region of the sites and play an important role when answering (see Figure 4 and Section 3.4).
The predicate returns the type of seen as an interval, or union of intervals, in . More precisely, the Shadow predicate returns the topological structure of the set , which we denote by .
Clearly, the boundary points of are the points on for which . These points are nothing but the centers of the Apollonius spheres of the four sites and , and, as such, there can only be 0, 1 or 2 (assuming no degeneracies). This immediately suggests that can have one of the following 6 types: , , , , , or , where .
For convenience, we will use the notation instead of ; for example, the statement “” will be often used instead of “’s type is ” or “” (see Figure 5 for an example). This notation change further highlights the fact that we are only interested in the topological structure of rather than the actual set itself.
In Section 4.5, we prove that the evaluation of the Shadow predicate only requires the call of the respective Distance and Existence predicate, yielding the following lemma.
The Shadow predicate can be evaluated by determining the sign of quantities of algebraic degree at most 8 (in the input quantities).
3.3.6. The Order predicate
The most important sub-predicate used to evaluate the EdgeConflict predicate is what we call the Order predicate. When is called, it returns the order of appearance of any of the existing Apollonius vertices and on the oriented trisector .
This sub-predicate is called during the main algorithm that answers the , for , only in the case that either , or both exist. Let us also recall that, in this paper, the trisector is “hyperbolic” and that is a valid finite Apollonius edge; the Apollonius vertices and both exist on (the oriented) and .
In order to answer the Order predicate, we first call the predicate, for , to obtain the type of and . From the shadow region types, two pieces of information is easily obtained; firstly, we determine which of the Apollonius vertices and actually exist and secondarily, if both and exist for some , then their ordering on the oriented trisector is also retrieved. Such deductions derive from the study of the shadow region, as shown in Section 4.6.3 (see Lemma 15). For example, if , then both and exist and appear on the oriented trisector in this order: .
Now that the existence and partial ordering of the Apollonius vertices and ( resp. and ) is known, we must provide a way of “merging” them into a complete ordering. For this reason, we examine all possible complete orderings of the Apollonius vertices on the oriented trisector . The study of these orderings is seen in the inverted plane -space. In Section 4.6.2, we present the strong geometric relationship that holds between the spheres of the original -space and their images in the inverted plane. The observations we make regarding the connection of the two spaces allow us to interpret geometric configurations on one space to equivalent ones on the other. A full analysis of how we tackle all possible configurations is presented in Section 4.6.
In our analysis, we prove that the Order predicate, in the worst case, amounts to evaluate up to 4 InSphere predicates plus some auxiliary tests of lesser algebraic cost. We have therefore proven the following lemma.
The Order predicate can be evaluated by determining the sign of quantities of algebraic degree at most 10 (in the input quantities).
3.4. The main algorithm
In this section, we describe in detail how the predicate EdgeConflict is resolved with the use of the subpredicates InCone, Trisector, Existence, Shadow and Order.
We begin by determining the type of the trisector ; this is done via the call of the Trisector predicate. Recall that in the scope of this paper, it is assumed that the is a hyperbola (or a line) and that none of the subpredicates called return a degenerate answer.
To answer the EdgeConflict predicate, one must determine which “part” of the edge remains in the Voronoi diagram after the insertion of the site . This is plausible by identifying the set of points of that still remain in the updated Voronoi Diagram; each of these points must satisfy the “empty-sphere property”: a sphere, centered at that point and tangent to the spheres , must not intersect any other sites of the Voronoi Diagram. As an immediate result, a point of the edge in remains in if and only if does not intersect . Since the shadow region of the sphere with respect to the trisector consists of all points such that intersects , it must hold that the part of the edge that no longer remains in is actually (see Figure 4) . In conclusion, the result of the EdgeConflict predicate is exactly the set seen as an interval or union of intervals of .
To determine the intersection type of , we first take into account that the finite edge consists of all points on the oriented trisector bounded by the points and from left and right respectively (see Section 3.1). Next, we consider the type of which can be evaluated as shown in Section 4.5 and is one of the following: , , , , or .
If the edge is seen as the interval , evidently the intersection type of must be one of the following 6 types, each corresponding to a different answers of the EdgeConflict predicate.
If is of type , the predicate returns NoConflict.
If is of type , the predicate returns EntireEdge.
If is of type , the predicate returns LeftVertex.
If is of type , the predicate returns RightVertex.
If is of type , the predicate returns BothVertices.
If is of type , the predicate returns Interior.
This observation suggests that, if we provide a way to identify the type of , we can answer the EdgeConflict predicate. Taking into consideration that
and correspond to and respectively as shown in Section 3.1, and
it becomes apparent that if we order all Apollonius vertices and any of the existing among , bearing in mind the type of , we can deduce the type of .
For example, let us assume that type is . If on the oriented trisector , or equivalently , we can conclude that is of type and the EdgeConflict predicate would return LeftVertex.
Therefore, it is essential that we are able to provide an ordering of the Apollonius vertices and any of the existing among . Such a task is accomplished via the call of the Order predicate and . The outcomes of these predicates consist of the orderings of all possible Apollonius vertices of the sites and , , , on the trisector . These partial orderings can then be merged into a complete ordering, which contains the desired one. The results’ combination principle is identical to the one used when we have to order a set of numbers but we can only compare two at a time.
A detailed algorithm that summarizes the analysis of this Section and can be followed to answer the is described in the following steps.
- Step 1:
The Trisector is called to determine the type of the trisector . In this Section, we assume that return “hyperbolic”.
- Step 2:
We evaluate . If or , we return NoConflict or EntireEdge respectively. Otherwise, we know that has one of the forms , , or , where and correspond to the Apollonius vertices and respectively.
- Step 3:
We evaluate Order and break down our analysis depending on how many of the vertices and exist; if only one vertex exist (which is equivalent to being or ), denote it by and go to Step 3a. Otherwise, if both exist, go to Step 3b.
- Step 3a:
If only or exist, then , which was evaluated in Step 2, is of the form or respectively. From the outcome of Order , we know whether or . If , and therefore , the EdgeConflict predicate returns NoConflict if or EntireEdge if .
If , we evaluate and determine whether or . In the first case, we conclude that and the EdgeConflict predicate returns LeftVertex if or RightVertex if . In the second case, we get that and the predicate returns EntireEdge if or NoConflict if .
- Step 3b:
If both and exist, then is of the form or , where and correspond to and respectively. We now call the predicate. If it returns that , the EdgeConflict predicate immediately returns NoConflict if , otherwise it returns EntireEdge.
If this is not the case, we have to call the predicate to acquire the ordering of and . If , the EdgeConflict predicate immediately returns NoConflict if , otherwise it returns EntireEdge.
In any other case, we must combine the information from the two Order predicates with the fact that , to obtain the complete ordering of , , and . The list of possible EdgeConflict predicate answers for the cases that have not been already handled is found in this list.
If , and
and , or ,
If and , or , and .