diff --git a/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomainWithGradient_3.h b/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomainWithGradient_3.h index 542301a1dd7..107a3e564f7 100644 --- a/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomainWithGradient_3.h +++ b/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomainWithGradient_3.h @@ -12,8 +12,10 @@ at a 3D query point (not necessarily a vertex) in space. \cgalRefines `IsosurfacingDomain_3` -\cgalHasModel `CGAL::Isosurfacing::Explicit_Cartesian_grid_domain_3` -\cgalHasModel `CGAL::Isosurfacing::Implicit_Cartesian_grid_domain_3` +\cgalHasModelsBegin +\cgalHasModels{CGAL::Isosurfacing::Explicit_Cartesian_grid_domain_3} +\cgalHasModels{CGAL::Isosurfacing::Implicit_Cartesian_grid_domain_3} +\cgalHasModelsEnd */ class IsosurfacingDomainWithGradient_3 { diff --git a/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomain_3.h b/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomain_3.h index 01009ceea82..6e5be9e73de 100644 --- a/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomain_3.h +++ b/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingDomain_3.h @@ -39,19 +39,19 @@ public: typedef Geom_traits::Point_3 Point_3; /*! - A descriptor to uniquely identify a vertex. + A descriptor that uniquely identifies a vertex. Must be a model of the concepts `DefaultConstructible`, `CopyConstructible`, and `Assignable`. */ typedef unspecified_type Vertex_descriptor; /*! - A descriptor to uniquely identify an edge. + A descriptor that uniquely identifies an edge. Must be a model of the concepts `DefaultConstructible`, `CopyConstructible`, and `Assignable`. */ typedef unspecified_type Edge_descriptor; /*! - A descriptor to uniquely identify a cell. + A descriptor that uniquely identifies a cell. Must be a model of the concepts `DefaultConstructible`, `CopyConstructible`, and `Assignable`. */ typedef unspecified_type Cell_descriptor; @@ -88,42 +88,42 @@ public: /// @{ /*! - gets the geometric traits + returns the geometric traits. */ Geom_traits geom_traits(); /*! - gets the 3D position of the vertex `v` + returns the 3D position of the vertex `v`. */ Point_3 point(const Vertex_descriptor& v) const; /*! - gets the value of the implicit field at the vertex `v` + returns the value of the implicit field at the vertex `v`. */ FT value(const Vertex_descriptor& v) const; /*! - gets the two vertices incident to the edge `e` + returns the two vertices incident to the edge `e`. */ Vertices_incident_to_edge incident_vertices(const Edge_descriptor& e) const; /*! - gets all cells incident to the edge `e` + returns all the cells incident to the edge `e`. */ Cells_incident_to_edge incident_cells(const Edge_descriptor& e) const; /*! - gets all vertices of the cell `c` + returns all the vertices of the cell `c`. */ Cell_vertices cell_vertices(const Cell_descriptor& c) const; /*! - gets all edges of the cell `c` + returns all the edges of the cell `c`. */ Cell_edges cell_edges(const Cell_descriptor& c) const; /*! - iterates over all vertices and calls the functor `f` on each one + iterates over all vertices, and calls the functor `f` on each one. \tparam ConcurrencyTag decides if the vertices are iterated sequentially or in parallel. Can be either `CGAL::Sequential_tag`, `CGAL::Parallel_if_available_tag`, or `CGAL::Parallel_tag`. @@ -135,7 +135,7 @@ public: void iterate_vertices(Functor& f) const; /*! - iterates over all edges and calls the functor `f` on each one + iterates over all edges, and calls the functor `f` on each one. \tparam ConcurrencyTag decides if the edges are iterated sequentially or in parallel. Can be either `CGAL::Sequential_tag`, `CGAL::Parallel_if_available_tag`, or `CGAL::Parallel_tag`. @@ -147,7 +147,7 @@ public: void iterate_edges(Functor& f) const; /*! - iterates over all cells and calls the functor `f` on each one + iterates over all cells, and calls the functor `f` on each one. \tparam ConcurrencyTag decides if the cells are iterated sequentially or in parallel. Can be either `CGAL::Sequential_tag`, `CGAL::Parallel_if_available_tag`, or `CGAL::Parallel_tag`. diff --git a/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingTraits_3.h b/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingTraits_3.h index e35be76357d..cc2ada5d01b 100644 --- a/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingTraits_3.h +++ b/Isosurfacing_3/doc/Isosurfacing_3/Concepts/IsosurfacingTraits_3.h @@ -6,7 +6,9 @@ The concept `IsosurfacingTraits_3` describes the set of requirements to be fulfilled by the traits class of a model of `IsosurfacingDomain_3`. -\cgalHasModel All models of `Kernel`. +\cgalHasModelsBegin +\cgalHasModelsBare{All models of the concept `Kernel`} +\cgalHasModelsEnd */ class IsosurfacingTraits_3 { diff --git a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp index 88c5ea5416c..5bd54657d86 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp @@ -76,7 +76,7 @@ int main(int, char**) Refine_one_eighth split_predicate(3, 5); octree_wrap.refine(split_predicate); - auto sphere_function = [&](const Point& p) -> FT + auto sphere_function = [](const Point& p) -> FT { return std::sqrt(p.x() * p.x() + p.y() * p.y() + p.z() * p.z()); }; diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp index 550ae26524f..2c651ad808c 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp @@ -30,7 +30,7 @@ int main(int, char**) auto domain = CGAL::Isosurfacing::create_implicit_Cartesian_grid_domain (bbox, vec_spacing, sphere_function); - // points and triangles for the output indexed mesh + // points and triangles for the output indexed soup Point_range points; Triangle_range triangles; diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp index f99bc4c2b1e..06019af1732 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp @@ -38,7 +38,7 @@ int main(int argc, char* argv[]) // create a domain from the grid auto domain = CGAL::Isosurfacing::create_explicit_Cartesian_grid_domain(grid); - // prepare collections for the output indexed mesh + // prepare collections for the output indexed soup Point_range points; Polygon_range polygons; diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp index 4c4cf978757..553ccc92be9 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp @@ -31,7 +31,7 @@ int main(int, char**) auto domain = CGAL::Isosurfacing::create_implicit_Cartesian_grid_domain (bbox, vec_spacing, sphere_function); - // points and triangles for the output indexed mesh + // points and triangles for the output indexed soup Point_range points; Triangle_range triangles; diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Explicit_Cartesian_grid_domain_3.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Explicit_Cartesian_grid_domain_3.h index d1e31989cca..cda35f493a6 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Explicit_Cartesian_grid_domain_3.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Explicit_Cartesian_grid_domain_3.h @@ -59,7 +59,7 @@ using Explicit_Cartesian_grid_domain_3 = * * \brief Creates a domain that can be used as input for isosurfacing algorithms. * - * \warning As the domain will keep a pointer to the `grid` object, users must ensure that + * \warning The domain keeps a pointer to the `grid` object, hence users must ensure that * the lifetime of the `grid` object exceeds that of the object returned by this function. * * \tparam GeomTraits must be a model of `IsosurfacingTraits_3`. @@ -67,7 +67,7 @@ using Explicit_Cartesian_grid_domain_3 = * `GeomTraits::Vector_3 operator()(const GeomTraits::Point_3& point) const`. * * \param grid the %Cartesian grid containing input data - * \param grad a function giving the value of the gradient of the implicit function at each discretization point + * \param gradient a function giving the value of the gradient of the implicit function at each discretization point * * \return a new `CGAL::Explicit_Cartesian_grid_domain_3` */ @@ -76,14 +76,14 @@ template Explicit_Cartesian_grid_domain_3 create_explicit_Cartesian_grid_domain(const CGAL::Isosurfacing::Cartesian_grid_3& grid, - const Gradient& grad = Gradient()) + const Gradient& gradient = Gradient()) #else // Actual code enables passing more than just a Cartesian_grid_3 template Explicit_Cartesian_grid_domain_3 create_explicit_Cartesian_grid_domain(const Grid& grid, - const Gradient& grad = Gradient()) + const Gradient& gradient = Gradient()) #endif { using Domain = Explicit_Cartesian_grid_domain_3; @@ -100,7 +100,7 @@ create_explicit_Cartesian_grid_domain(const Grid& grid, const Geometry geom { grid }; const Function func { grid }; - return Domain{ topo, geom, func, grad, grid.geom_traits() }; + return Domain{ topo, geom, func, gradient, grid.geom_traits() }; } } // namespace Isosurfacing diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Finite_difference_gradient_3.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Finite_difference_gradient_3.h index 922b72f33d6..bb6f899792f 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Finite_difference_gradient_3.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Finite_difference_gradient_3.h @@ -23,7 +23,7 @@ namespace Isosurfacing { * \brief Class template for a gradient that is calculated using finite differences. * * \details This gradient function evaluates an implicit value function at six points - * that are a given distance `delta` away from the queried point along the cartesian axes. + * that are a given distance `delta` away from the queried point along the Cartesian axes. * * \tparam GeomTraits must be a model of `Kernel`. * \tparam PointFunction the type of the implicit function. It must be a model of `CopyConstructible` and implement diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_Cartesian_grid_domain_3.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_Cartesian_grid_domain_3.h index 8d1e1d7d9d4..f77f97ed65d 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_Cartesian_grid_domain_3.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_Cartesian_grid_domain_3.h @@ -71,15 +71,15 @@ using Implicit_Cartesian_grid_domain_3 = * less overall memory is required in comparison to an `Explicit_Cartesian_grid_domain_3`. * * \tparam GeomTraits must be a model of `IsosurfacingTraits_3`. - * \tparam ImplicitFunction the type of the implicit function. It must be a model of `CopyConstructible` and implement - * `GeomTraits::FT operator()(const GeomTraits::Point_3& point) const`. + * \tparam ImplicitFunction the type of the implicit function. It must be a model of `CopyConstructible` + * and implement `GeomTraits::FT operator()(const GeomTraits::Point_3& point) const`. * \tparam Gradient the type of the gradient functor. It must be a model of `CopyConstructible` and implement * `GeomTraits::Vector_3 operator()(const GeomTraits::Point_3& point) const`. * * \param bbox a bounding box that specifies the dimensions of the implicit function's domain * \param spacing the distance between discretization points * \param point_function the implicit function giving the value of the implicit function at each discretization point - * \param grad a function giving the value of the gradient of the implicit function at each discretization point + * \param gradient a function giving the value of the gradient of the implicit function at each discretization point * \param gt an instance of geometric traits * * \return a new object of type `CGAL::Implicit_Cartesian_grid_domain_3` @@ -93,7 +93,7 @@ Implicit_Cartesian_grid_domain_3 create_implicit_Cartesian_grid_domain(const Bbox_3& bbox, const typename GeomTraits::Vector_3& spacing, const ImplicitFunction& point_function, - const Gradient& grad = Gradient(), + const Gradient& gradient = Gradient(), const GeomTraits& gt = GeomTraits()) { using Domain = Implicit_Cartesian_grid_domain_3; @@ -121,7 +121,7 @@ create_implicit_Cartesian_grid_domain(const Bbox_3& bbox, const Geometry geom { offset, spacing }; const Function func { geom, point_function }; - return Domain{ topo, geom, func, grad, gt }; + return Domain{ topo, geom, func, gradient, gt }; } // @todo add an undocumented convenience overload with Vector_3 to match CGAL kernels diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_octree_domain.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_octree_domain.h index d6020e72cc0..8f506ffede8 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_octree_domain.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Implicit_octree_domain.h @@ -27,7 +27,7 @@ namespace Isosurfacing { /* * \ingroup IS_Domains_grp * - * \cgalModels `IsosurfacingDomainWithGradient_3` + * \cgalModels{IsosurfacingDomainWithGradient_3} * * \brief A domain that represents an octree that discretizes an implicit function. * @@ -83,7 +83,7 @@ template auto create_implicit_octree_domain(const Octree& octree, const ImplicitFunction& point_func, - const Gradient& grad = Gradient()) + const Gradient& gradient = Gradient()) { #endif using Domain = Implicit_octree_domain; @@ -97,7 +97,7 @@ auto create_implicit_octree_domain(const Octree& octree, const Function func { geom, point_func }; // @fixme Octree_wrapper's geom_traits() isn't octree's geom_traits()... - return Domain{ topo, geom, func, grad, octree.geom_traits() }; + return Domain{ topo, geom, func, gradient, octree.geom_traits() }; } } // namespace Isosurfacing diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Zero_gradient.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Zero_gradient.h index 69267bce65a..bf69508f39f 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/Zero_gradient.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/Zero_gradient.h @@ -26,7 +26,7 @@ namespace Isosurfacing { * * \tparam P the point type * - * \details This gradient function can be used for Marching Cubes that does not require a gradient. + * \details This gradient function can be useful when using Marching Cubes, which does not require the domain to have a gradient. */ struct Zero_gradient { diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/dual_contouring_3.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/dual_contouring_3.h index d56b1a6f35c..f4739bc5ca0 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/dual_contouring_3.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/dual_contouring_3.h @@ -89,7 +89,7 @@ void dual_contouring(const Domain& domain, vertex_ids.push_back(pos_func.map_voxel_to_point_id[v_id]); } - // ignore degenerated faces + // ignore degenerate faces if(vertex_ids.size() > 2) polygons.push_back(vertex_ids); } diff --git a/Isosurfacing_3/include/CGAL/Isosurfacing_3/internal/Implicit_function_with_geometry.h b/Isosurfacing_3/include/CGAL/Isosurfacing_3/internal/Implicit_function_with_geometry.h index 675cce6335d..7493e168a69 100644 --- a/Isosurfacing_3/include/CGAL/Isosurfacing_3/internal/Implicit_function_with_geometry.h +++ b/Isosurfacing_3/include/CGAL/Isosurfacing_3/internal/Implicit_function_with_geometry.h @@ -20,7 +20,6 @@ namespace internal { // Wrapper for an implicit function that can only be evaluated at a position and not at a vertex. // Evaluates the geometry to get the vertex position and passes that to the function. -// Works for all VertexDescriptor types. template class Implicit_function_with_geometry