two figures added to user manual

This commit is contained in:
Pierre Alliez 2017-11-19 20:09:41 +01:00
parent 8a4525ea05
commit a146ab46cb
1 changed files with 17 additions and 5 deletions

View File

@ -89,18 +89,29 @@ As depicted in Figure \cgalFigureRef{operations}, teleportation provides a means
\subsection sma_meshing Meshing
This package implements the meshing algorithm described in \cgalCite{cgal:cad-vsa-04} by generating a triangle mesh approximation of the clustering partition. The triangulation is generated by computing a discrete analog of a constrained 2D Delaunay triangulation, where distances are measured on the graph of the input triangulation.
This package implements the meshing algorithm described in \cgalCite{cgal:cad-vsa-04} by generating a triangle mesh approximation of the clustering partition. Intuitively, the triangulation is generated by computing a discrete analog of a constrained 2D Delaunay triangulation, where distances are measured on the graph of the input triangulation.
\cgalFigureBegin{triangulation, triangulation.png}
Discrete constrained triangulation. The triangulation process first constructs constrained edges between anchor vertices, by 'flooding' along the interface edges (black arrows). It then floods the inner vertices. Triangles are formed by connecting the sources of the flooding process.
\cgalFigureEnd
More specifically, it first generates a set of so-called anchor vertices as follows: an anchor vertex is generated for each corner vertex of the clustering partition. A corner vertex of the input mesh exhibits adjacency to three regions for inner vertices, or two regions for boundary vertices.
In order to approximate the complex boundaries of the clustering partition, additional anchor vertices are generated by recursive chord-length subdivision (Figure \cgalFigureRef{meshing}). More specifically, an anchor vertex is added when the furthest vertex of distance \f$ d \f$ on the boundary arc \f$ (\mathbf{a}, \mathbf{b}) \f$ is too far away. The subdivision criterion is defined as: \f[ d\cdot sin(\mathbf{N}_i,\mathbf{N}_j)/\Vert(\mathbf{a}, \mathbf{b})\Vert, \f] where \f$ \mathbf{N}_i,\mathbf{N}_j \f$ is the normal of the proxies separated by the boundary arc \f$ (\mathbf{a}, \mathbf{b}) \f$. If the angle between proxy \f$ P_i \f$ and \f$ P_j \f$ is rather small, even a coarse approximation will do as it does not add geometric information on the shape.
In order to approximate the complex boundaries of the clustering partition, additional anchor vertices are generated by recursive chord-length subdivision (Figure \cgalFigureRef{chord}). More specifically, an anchor vertex is added when the furthest vertex of distance \f$ d \f$ on the boundary arc \f$ (\mathbf{a}, \mathbf{b}) \f$ is too far away. The subdivision criterion is defined as: \f[ d\cdot sin(\mathbf{N}_i,\mathbf{N}_j)/\Vert(\mathbf{a}, \mathbf{b})\Vert, \f] where \f$ \mathbf{N}_i,\mathbf{N}_j \f$ is the normal of the proxies separated by the boundary arc \f$ (\mathbf{a}, \mathbf{b}) \f$. If the angle between proxy \f$ P_i \f$ and \f$ P_j \f$ is rather small, even a coarse approximation will do as it does not add geometric information on the shape.
On the contrary, when there is a large angle in between the two proxies, a more accurate discretization is desirable.
% explain how the user can control such an error: is it absolute error, or relative?
\cgalFigureBegin{chord, chord.png}
Varying the chord error. From left to right: clustering partition, and meshing with decreasing chord error. The boundaries of the partition are approximated with increasing accuracy.
\cgalFigureEnd
Each clustering region delineated by anchor vertices boundary is then triangulated and the final anchor locations (not necessarily coinciding with the anchor vertices) are computed by averaging the projection of the anchor vertices on their respective proxies.
% a future more generic implementation will offer possibility to write a customized functor.
As there is no guarantee that the output mesh is 2-manifold and oriented, the main input is an indexed triangle set. Additional output is possible in the form of a polyhedral surface mesh when the indexed triangle set represents a 2-manifold, oriented mesh.
In \cgalFigureRef{meshing}, the bear model is approximated through \f$ \mathcal{L}^{2,1} \f$ metric and the final number of proxies is determined by monitoring the error drop.
The anchor points (black) are attached to the corresponding vertex on the mesh (white). The red lines connecting the anchor points approximate the boundary of each region.
\cgalFigureBegin{meshing, meshing.png}
Meshing the bear model with decreasing target error drop.
@ -108,8 +119,9 @@ From left to right, the target error drop are 6\%, 4\% and 2\% to the initial er
Notice the boundary subdivision in the black rectangle area.
\cgalFigureEnd
In \cgalFigureRef{meshing}, the bear model is approximated through \f$ \mathcal{L}^{2,1} \f$ metric and the final number of proxies is determined by monitoring the error drop.
The anchor points (black) are attached to the corresponding vertex on the mesh (white). The red lines connecting the anchor points approximate the boundary of each region.
As there is no guarantee that the output mesh is 2-manifold and oriented, the main input is an indexed triangle set. Additional output is possible in the form of a polyhedral surface mesh when the indexed triangle set represents a 2-manifold, oriented mesh.
\subsection sma_api API