@@ -37,11 +37,11 @@ The Delaunay Triangulation process is illustrated on the right. (a) shows the in
In practice, we derive the connectivity from the Voronoi regions by iterating over the faces of $\mathcal{B}$. Since $\mathcal{B}$ is a triangle mesh, there has to be one unique face in $\mathcal{B}$ for which the Voronoi regions of each of its three vertices differ, per face in $V_\mathcal{M}$. Thus we derive the edges $E_\mathcal{M}$ of $\mathcal{M}$.
Lastly, these edges $E_\mathcal{M}$ still need to be traced. Given a very fine mesh $\mathcal{M}$, or thin features on $\mathcal{M}$, it can happen that a Voronoi region borders with the same Voronoi region twice. In such a case it is necessary to ensure that edges are traced through the correct border (eg. from two sides around a handle rather than twice around the same side). This is easily done by restricting edge traces during the initial triangulation by disallowing them from crossing any Voronoi borders \textit{except} the one corresponding to its edge.
These edges $E_\mathcal{M}$ still need to be traced on $\mathcal{B}$ to complete the embedding $\Phi(\mathcal{M})$. Given a very fine mesh $\mathcal{M}$, or thin features on $\mathcal{M}$, it can happen that a Voronoi region borders with the same Voronoi region twice. In such a case it is necessary to ensure that edges are traced through the correct border (eg. from two sides around a handle rather than twice around the same side). This is easily done by restricting edge traces during the initial triangulation by disallowing them from crossing any Voronoi borders \textit{except} the one corresponding to its edge.
For the case where a Voronoi region borders with itself, we stop our triangulation and ask the user for a new input - or randomize with a new seed if the initial feature points were randomly chosen. We do the same when a Voronoi region has non-disc topology, in order to keep the initialization stable and regular.
This type of triangulation always results in a triangle mesh $\mathcal{M}$, and produces a fairly regular mesh with nice properties. For instance, the minimum angle between two edges is maximized when using Delaunay triangulation, since an edge is always shorter or equal in length to the flipped edge. With that, any flip can only result in a smaller minimum angle, not a larger one.
This type of triangulation always results in a triangle mesh $\mathcal{M}$, and produces a regular mesh with nice properties. For instance, the minimum angle between two edges is maximized when using Delaunay triangulation, since an edge is always shorter or equal in length to the flipped edge. With that, any flip can only result in a smaller minimum angle, not a larger one.
Due to the ease with which a Delaunay triangulation can be computed, and the regularity of it, we believe that this is a very stable method for initialization when starting with random vertices $V_\mathcal{M}$. If the positions of $V_\mathcal{M}$ should also be optimized another approach is starting with $\mathcal{M}=\mathcal{B}$ and then iteratively refining $\mathcal{M}$; more on that in Chapter \ref{ch:EmbeddedIsotropicRemeshing}.