mirror of https://github.com/CGAL/cgal
parent
829120a1f6
commit
5d9e631357
|
|
@ -70,7 +70,6 @@ For example, a tunnel of the isosurface within a single cell is topologically re
|
|||
Furthermore, the mesh is guaranteed to be 2-manifold and watertight, as long as the isosurface does not intersect the domain boundaries.
|
||||
% PA: add a figure comparing without and with the option activated
|
||||
|
||||
% PA: 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)
|
||||
The DC algorithm generates one vertex for each cell that is intersected by the isosurface. Next, a face is created for each edge that intersects the isosurface, by connecting the vertices of the incident cells. For a uniform hexahedral grid, this results into a quadrilateral surface mesh.
|
||||
|
|
@ -90,14 +89,15 @@ Dual Contouring can deal with any domain but guarantees neither a 2-manifold nor
|
|||
It generates fewer faces than Marching Cubes, in general.
|
||||
Its advantage over MC is its ability to recover sharp creases and corners.
|
||||
% PA: add a figure.
|
||||
[what about tips, darts, cusps and corners? respectively adjacent to 0, 1, 2 and 3+ creases]
|
||||
% PA: what about tips, darts, cusps and corners? respectively adjacent to 0, 1, 2 and 3+ creases
|
||||
|
||||
\cgalFigureAnchor{isosurfacing_iwp_dc}
|
||||
<center>
|
||||
<img src="iwp_dc.png" style="max-width:40%;"/>
|
||||
</center>
|
||||
\cgalFigureCaptionBegin{isosurfacing_iwp_dc}
|
||||
Isosurface of the IWP scalar field generated by %Dual Contouring. [TODO: do not assume that the iwp scalar field is well known to the reader - explicit first what it means. in addition, the shape is too complex, adding confusion to the reader. try to pass only one message per figure and provide a caption to not let the reader guess. show mesh edges in black]
|
||||
Isosurface of the IWP scalar field generated by %Dual Contouring.
|
||||
% PA: do not assume that the iwp scalar field is well known to the reader - explicit first what it means. in addition, the shape is too complex, adding confusion to the reader. try to pass only one message per figure and provide a caption to not let the reader guess. show mesh edges in black
|
||||
\cgalFigureCaptionEnd
|
||||
|
||||
\subsection subseccomparison Comparisons
|
||||
|
|
@ -134,7 +134,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.
|
||||
|
||||
The output surface mesh is provided in the form of a indexed face set, which is written to the two containers of `points` and `polygons`.
|
||||
The output surface mesh is provided in the form of a indexed face set, which is stored into two containers of `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` container.
|
||||
Depending on the algorithm, the indexed face set may store either a polygon soup (unorganized polygons with no relationship whatsoever, i.e. no connectivity between them) or a mesh with connectivity.
|
||||
|
||||
|
|
@ -145,12 +145,11 @@ 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 - not more.
|
||||
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.
|
||||
|
||||
\subsection mysubsecimplicitdomain Implicit Crtesian Grid Domain
|
||||
\subsection mysubsecimplicitdomain Implicit Cartesian Grid Domain
|
||||
The class `CGAL::Isosurfacing::Implicit_Cartesian_grid_domain_3` represents the input scalar field in an implicit form without storing any values.
|
||||
It takes a function-object (functor) or lambda function that computes the value of the scalar field from the position of a vertex query.
|
||||
Additionally, the bounding box and spacing between the grid points must be provided.
|
||||
|
|
@ -197,8 +196,8 @@ The following example shows how to load data from an `Image_3`.
|
|||
|
||||
\subsection myExampleMeshOffset Offset Mesh
|
||||
|
||||
The following example shows how to compute a signed offset mesh.
|
||||
The input mesh is stored into an `AABB_tree` data structure to allow fast distance queries. Via the `Side_of_triangle_mesh` functor, the sign of the distance field is made negative inside the mesh.
|
||||
The following example illustrates how to generates a mesh approximating a signed offset to an input closed surface mesh.
|
||||
The input mesh is stored into an `AABB_tree` data structure to provides fast distance queries. Via the `Side_of_triangle_mesh` functor, the sign of the distance field is made negative inside the mesh.
|
||||
|
||||
\cgalExample{Isosurfacing_3/dual_contouring_mesh_offset.cpp}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
This package provides algorithms to extract isosurfaces from different inputs: Marching Cubes, topologically correct Marching Cubes and Dual Contouring.
|
||||
The input is represented as a 3D scalar field defined as an implicit function, a Cartesian grid or an octree.
|
||||
The output is a surface mesh represented as an indexed face set (point coordinate and face arrays).
|
||||
The output is a surface mesh represented as an indexed face set (container of point coordinates and indexed faces).
|
||||
The provided algorithms include Marching Cubes, topologically correct Marching Cubes and Dual Contouring.
|
||||
|
||||
\cgalClassifedRefPages
|
||||
|
|
|
|||
Loading…
Reference in New Issue