From a140a6b810df5335b334fce26dfdd8a7b64d2751 Mon Sep 17 00:00:00 2001 From: Pierre Alliez Date: Thu, 19 Jan 2023 13:05:18 +0100 Subject: [PATCH] user manual: leave comments into [] --- .../doc/Isosurfacing_3/Isosurfacing_3.txt | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Isosurfacing_3/doc/Isosurfacing_3/Isosurfacing_3.txt b/Isosurfacing_3/doc/Isosurfacing_3/Isosurfacing_3.txt index 40f1d927bf9e..a17b3a895911 100644 --- a/Isosurfacing_3/doc/Isosurfacing_3/Isosurfacing_3.txt +++ b/Isosurfacing_3/doc/Isosurfacing_3/Isosurfacing_3.txt @@ -20,10 +20,10 @@ Isosurfacing with different isovalues for the bunny model. \section secmyintroduction Introduction -% TODO: add a context and motivation: when do you need MC or dual contouring? what can represent -% the input scalar field ? illustrate this from eg density fields in medical imaging, or distance fields, etc. -% TODO: Introduce the terms and stick to them - do not interchange with others throughout the documentation. -% TODO: Make sure you you clearly state that the input field is sampled. +[TODO: add a context and motivation: when do you need MC or dual contouring? what can represent +the input scalar field ? illustrate this from eg density fields in medical imaging, or distance fields, etc.] +[TODO: Introduce the terms and stick to them - do not interchange with others throughout the documentation.] +[TODO: Make sure you you clearly state that the input field is sampled.] This package provides isosurfacing algorithms that compute a surface mesh approximating an isosurface of a scalar field defined over an input 3D domain. @@ -48,9 +48,8 @@ More specifically, the vertex position is computed via linear interpolation of t evaluated at the cell corners forming the edge. Depending on the configuration of signs at the cell corners, the resulting vertices are connected to form triangles within the cell. The figure below illustrates the configurations in 2D. -% [it would be better to show a subset of 3D cases, too, even if the figure -% is taken from a paper - it is probably possible to contact the authors and -% add a statement - figure courtesy from xxx] +[ it would be better to show a subset of 3D cases, too, even if the figure is taken from a paper - it + is probably possible to contact the authors and add a statement - figure courtesy from xxx] \cgalFigureAnchor{isosurfacing_mc_cases}
@@ -63,19 +62,19 @@ Different configurations of Marching Cubes in 2D. The proposed implementation is generic in that it can process any grid-based data structure that consists of hexahedral cells. In case of a conforming grid, MC generates as output a surface triangle mesh that is 2-manifold in most scenarios. -% [TODO: reformulate, as it is either strict or not - precise in which cases it is not, and say -% whether you talk about just combinatorially 2-manifold, or truly 2-manifold with 3D embedding taken into account] -% If the mesh is 2-manifold and the isosurface does not intersect the domain boundaries, then the output mesh -% is also watertight. [add a figure showing the two cases] +[TODO: reformulate, as it is either strict or not - precise in which cases it is not, and say + whether you talk about just combinatorially 2-manifold, or truly 2-manifold with 3D embedding taken into account] + If the mesh is 2-manifold and the isosurface does not intersect the domain boundaries, then the output mesh + is also watertight. [add a figure showing the two cases] As MC only proceeds by linear interpolation of the sampled scalar field along the grid edges, it can miss details or components that are not captured by the said sampling and interpolation. Compared to other approaches such as Delaunay refinement, and depending on the parameters, the MC algorithm often generates more triangles, and more skinny triangles with small or large angles. -% [The statement is too strong - I would largely reformulate it as this depends too much on the parameters. -% I recommend to add instead a figure with different parameters and methods, -% depicting the mesh edges in black in addition to the shaded facets] -MC does not preserve the sharp features present in the isovalue of the input scalar field % [add a figure]. +[The statement is too strong - I would largely reformulate it as this depends too much on the parameters. +I recommend to add instead a figure with different parameters and methods, +depicting the mesh edges in black in addition to the shaded facets] +MC does not preserve the sharp features present in the isovalue of the input scalar field [TODO add a figure]. \subsection subsectmc Topologically Correct Marching Cubes (TMC) @@ -85,10 +84,10 @@ This means that the output mesh can accurately represent small complex features. For example, a tunnel of the isosurface within a single cell is topologically resolved. Furthermore, the mesh is guaranteed to be 2-manifold and watertight, as long as the isosurface does not intersect the domain boundaries. -% [add a figure comparing without and with the option activated] +[add a figure comparing without and with the option activated] -% [TODO: add following to CGAL list of references] -% Roberto Grosso: Construction of Topologically Correct and Manifold Isosurfaces. Computer Graphics Forum 35(5):187-196 - 2016. +[TODO: add following to CGAL list of references] +Roberto Grosso: Construction of Topologically Correct and Manifold Isosurfaces. Computer Graphics Forum 35(5):187-196 - 2016. \subsection subsecdc Dual Contouring (DC) DC creates one vertex for each cell that is intersected by the isosurface. @@ -109,7 +108,8 @@ Some variants do not require the gradient and therefore run successfully even wh Dual Contouring can deal with any domain but guarantees neither a 2-manifold nor a watertight mesh. It generates fewer faces than Marching Cubes, in general. Its advantage over MC is its ability to recover sharp creases and corners. -% [what about tips, darts, cusps and corners? respectively adjacent to 0, 1, 2 and 3+ creases] TODO: add a figure. +[TODO: add a figure.] +[what about tips, darts, cusps and corners? respectively adjacent to 0, 1, 2 and 3+ creases] \cgalFigureAnchor{isosurfacing_iwp_dc}
@@ -153,7 +153,7 @@ The input is provided in the form of a `domain` (see \ref secmydomains). The `isovalue` scalar parameter denotes the value used for sampling the input scalar field for generating the isosurface. -% [why using the term collection below ? how about containers? ] +[why using the term collection below ? how about containers? ] The output surface mesh is provided in the form of a indexed face set, which is written to the two collections `points` and `polygons`. The vertex positions are stored as `Point_3` in `points`. Each face in `polygons` is a list of indices pointing into the `points` collection. @@ -166,8 +166,8 @@ When the parallel version is not available due to unsuccessful link with the TBB \section secmydomains Domains A domain is an object that provides functions to access the input data, its geometry, topology, and optionally its gradient. -% [I fail to understand how you specify the topology - for me the domain is the support of the scalar field, whose -% sampling/interpolation will yield the output mesh topology] +[I fail to understand how you specify the topology - for me the domain is the support of the scalar field, whose +sampling/interpolation will yield the output mesh topology] For common representations, we offer a set of predefined domain classes that wrap the input data and provide a generalized interface for the algorithm. Users can also define new domains by implementing the `IsosurfacingDomain_3` or `IsosurfacingDomainWithGradient_3` concepts.