Add 'Isosurfacing' to some concept names

This commit is contained in:
Mael Rouxel-Labbé 2024-02-29 10:52:55 +01:00
parent 2b8bb720c7
commit 33c0079e85
17 changed files with 60 additions and 62 deletions

View File

@ -3,7 +3,7 @@
\cgalConcept \cgalConcept
The concept `EdgeIntersectionOracle_3` describes the requirements for the edge-isosurface The concept `IsosurfacingEdgeIntersectionOracle_3` describes the requirements for the edge-isosurface
intersection oracle template parameter of the domain classes intersection oracle template parameter of the domain classes
`CGAL::Isosurfacing::Marching_cubes_domain_3` and `CGAL::Isosurfacing::Marching_cubes_domain_3` and
`CGAL::Isosurfacing::Dual_contouring_domain_3`. `CGAL::Isosurfacing::Dual_contouring_domain_3`.
@ -13,7 +13,7 @@ intersection oracle template parameter of the domain classes
\cgalHasModels{CGAL::Isosurfacing::Linear_interpolation_edge_intersection} \cgalHasModels{CGAL::Isosurfacing::Linear_interpolation_edge_intersection}
\cgalHasModelsEnd \cgalHasModelsEnd
*/ */
class EdgeIntersectionOracle_3 class IsosurfacingEdgeIntersectionOracle_3
{ {
public: public:
/*! /*!

View File

@ -3,7 +3,7 @@
\cgalConcept \cgalConcept
The concept `GradientField_3` describes the set of requirements to be fulfilled The concept `IsosurfacingGradientField_3` describes the set of requirements to be fulfilled
by the gradient field template parameter of the domain class `CGAL::Isosurfacing::Dual_contouring_domain_3`. by the gradient field template parameter of the domain class `CGAL::Isosurfacing::Dual_contouring_domain_3`.
Gradient fields must be continuous and defined over the geometric span of the Gradient fields must be continuous and defined over the geometric span of the
@ -16,9 +16,9 @@ space partitioning data structure (also known as "partition") being used.
\cgalHasModelsEnd \cgalHasModelsEnd
\sa `IsosurfacingTraits_3` \sa `IsosurfacingTraits_3`
\sa `ValueField_3` \sa `IsosurfacingValueField_3`
*/ */
class GradientField_3 class IsosurfacingGradientField_3
{ {
public: public:
/*! /*!

View File

@ -5,14 +5,14 @@
\cgalRefines{DefaultConstructible, CopyConstructible, Assignable} \cgalRefines{DefaultConstructible, CopyConstructible, Assignable}
The concept `InterpolationScheme_3` describes the set of requirements to be fulfilled The concept `IsosurfacingInterpolationScheme_3` describes the set of requirements to be fulfilled
by the interpolation scheme template parameter of the domain classes `CGAL::Isosurfacing::Interpolated_discrete_values_3` and `CGAL::Isosurfacing::Interpolated_discrete_gradients_3`. by the interpolation scheme template parameter of the domain classes `CGAL::Isosurfacing::Interpolated_discrete_values_3` and `CGAL::Isosurfacing::Interpolated_discrete_gradients_3`.
\cgalHasModelsBegin \cgalHasModelsBegin
\cgalHasModels{CGAL::Isosurfacing::Trilinear_interpolation} \cgalHasModels{CGAL::Isosurfacing::Trilinear_interpolation}
\cgalHasModelsEnd \cgalHasModelsEnd
*/ */
class InterpolationScheme_3 class IsosurfacingInterpolationScheme_3
{ {
public: public:
/*! /*!

View File

@ -3,7 +3,7 @@
\cgalConcept \cgalConcept
The concept `Partition_3` describes the set of requirements to be fulfilled The concept `IsosurfacingPartition_3` describes the set of requirements to be fulfilled
by the partition template parameter of the domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3` by the partition template parameter of the domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3`
and `CGAL::Isosurfacing::Dual_contouring_domain_3`. and `CGAL::Isosurfacing::Dual_contouring_domain_3`.
@ -17,7 +17,7 @@ This is similar to graph traits in \ref PkgBGL.
\cgalHasModels{`CGAL::Isosurfacing::Cartesian_grid_3`} \cgalHasModels{`CGAL::Isosurfacing::Cartesian_grid_3`}
\cgalHasModelsEnd \cgalHasModelsEnd
*/ */
class Partition_3 class IsosurfacingPartition_3
{ {
public: public:
/*! /*!

View File

@ -3,7 +3,7 @@
\cgalConcept \cgalConcept
The concept `ValueField_3` describes the set of requirements to be fulfilled The concept `IsosurfacingValueField_3` describes the set of requirements to be fulfilled
by the value field template parameter of the domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3` and `CGAL::Isosurfacing::Dual_contouring_domain_3`. by the value field template parameter of the domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3` and `CGAL::Isosurfacing::Dual_contouring_domain_3`.
Value fields must be continuous and defined over the geometric span of the Value fields must be continuous and defined over the geometric span of the
@ -15,9 +15,9 @@ space partitioning data structure (also known as "partition") being used.
\cgalHasModelsEnd \cgalHasModelsEnd
\sa `IsosurfacingTraits_3` \sa `IsosurfacingTraits_3`
\sa `GradientField_3` \sa `IsosurfacingGradientField_3`
*/ */
class ValueField_3 class IsosurfacingValueField_3
{ {
public: public:
/*! /*!
@ -31,7 +31,7 @@ public:
typedef unspecified_type Point_3; typedef unspecified_type Point_3;
/*! /*!
* A descriptor that uniquely identifies a vertex (see `Partition_3`). * A descriptor that uniquely identifies a vertex (see `IsosurfacingPartition_3`).
*/ */
typedef unspecified_type Vertex_descriptor; typedef unspecified_type Vertex_descriptor;

View File

@ -4,19 +4,17 @@ namespace Isosurfacing {
/*! /*!
* \ingroup PkgIsosurfacing3Concepts * \ingroup PkgIsosurfacing3Concepts
* *
* \cgalConcept * \relates IsosurfacingPartition_3
* *
* \relates Partition_3 * The class `partition_traits` is the API compatibility layer between a model of `IsosurfacingPartition_3`
*
* The class `partition_traits` is the API compatibility layer between a model of `Partition_3`
* and the isosurfacing domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3` and * and the isosurfacing domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3` and
* `CGAL::Isosurfacing::Dual_contouring_domain_3`. * `CGAL::Isosurfacing::Dual_contouring_domain_3`.
* *
* For each model of `Partition_3`, a partial specialization of `partition_traits` must be provided, * For each model of `IsosurfacingPartition_3`, a partial specialization of `partition_traits` must be provided,
* providing the types and functions listed below. Such a partial specialization is provided * providing the types and functions listed below. Such a partial specialization is provided
* for `CGAL::Isosurfacing::Cartesian_grid_3`. * for `CGAL::Isosurfacing::Cartesian_grid_3`.
*/ */
template <typename Partition_3> template <typename IsosurfacingPartition_3>
class partition_traits class partition_traits
{ {
public: public:
@ -62,27 +60,27 @@ public:
/*! /*!
* \returns the 3D position of the vertex `v`. * \returns the 3D position of the vertex `v`.
*/ */
static Point_3 point(const Vertex_descriptor& v, const Partition_3& partition); static Point_3 point(const Vertex_descriptor& v, const IsosurfacingPartition_3& partition);
/*! /*!
* \returns the two vertices incident to the edge `e`. * \returns the two vertices incident to the edge `e`.
*/ */
static Vertices_incident_to_edge incident_vertices(const Edge_descriptor& e, const Partition_3& partition); static Vertices_incident_to_edge incident_vertices(const Edge_descriptor& e, const IsosurfacingPartition_3& partition);
/*! /*!
* \returns all the cells incident to the edge `e`, in a geometrically ordered manner around the edge. * \returns all the cells incident to the edge `e`, in a geometrically ordered manner around the edge.
*/ */
static Cells_incident_to_edge incident_cells(const Edge_descriptor& e, const Partition_3& partition); static Cells_incident_to_edge incident_cells(const Edge_descriptor& e, const IsosurfacingPartition_3& partition);
/*! /*!
* \returns all the vertices of the cell `c`. * \returns all the vertices of the cell `c`.
*/ */
static Cell_vertices cell_vertices(const Cell_descriptor& c, const Partition_3& partition); static Cell_vertices cell_vertices(const Cell_descriptor& c, const IsosurfacingPartition_3& partition);
/*! /*!
* \returns all the edges of the cell `c`. * \returns all the edges of the cell `c`.
*/ */
static Cell_edges cell_edges(const Cell_descriptor& c, const Partition_3& partition); static Cell_edges cell_edges(const Cell_descriptor& c, const IsosurfacingPartition_3& partition);
/*! /*!
* iterates over all vertices, and calls the functor `f` on each one. * iterates over all vertices, and calls the functor `f` on each one.
@ -95,7 +93,7 @@ public:
* \param partition the partition whose vertices are being iterated * \param partition the partition whose vertices are being iterated
*/ */
template <typename ConcurrencyTag, typename Functor> template <typename ConcurrencyTag, typename Functor>
static void for_each_vertex(Functor& f, const Partition_3& partition); static void for_each_vertex(Functor& f, const IsosurfacingPartition_3& partition);
/*! /*!
* iterates over all edges, and calls the functor `f` on each one. * iterates over all edges, and calls the functor `f` on each one.
@ -108,7 +106,7 @@ public:
* \param partition the partition whose edges are being iterated * \param partition the partition whose edges are being iterated
*/ */
template <typename ConcurrencyTag, typename Functor> template <typename ConcurrencyTag, typename Functor>
static void for_each_edge(Functor& f, const Partition_3& partition); static void for_each_edge(Functor& f, const IsosurfacingPartition_3& partition);
/*! /*!
* iterates over all cells, and calls the functor `f` on each one. * iterates over all cells, and calls the functor `f` on each one.
@ -121,7 +119,7 @@ public:
* \param partition the partition whose cells are being iterated * \param partition the partition whose cells are being iterated
*/ */
template <typename ConcurrencyTag, typename Functor> template <typename ConcurrencyTag, typename Functor>
static void for_each_cell(Functor& f, const Partition_3& partition); static void for_each_cell(Functor& f, const IsosurfacingPartition_3& partition);
}; };
} // namespace Isosurfacing } // namespace Isosurfacing

View File

@ -55,11 +55,11 @@ The output is a polygon soup (i.e., a container of point coordinates and indexed
\cgalCRPSection{Concepts} \cgalCRPSection{Concepts}
- `IsosurfacingTraits_3` - `IsosurfacingTraits_3`
- `Partition_3` - `IsosurfacingPartition_3`
- `ValueField_3` - `IsosurfacingValueField_3`
- `GradientField_3` - `IsosurfacingGradientField_3`
- `InterpolationScheme_3` - `IsosurfacingInterpolationScheme_3`
- `EdgeIntersectionOracle_3` - `IsosurfacingEdgeIntersectionOracle_3`
- `IsosurfacingDomain_3` - `IsosurfacingDomain_3`
- `IsosurfacingDomainWithGradient_3` - `IsosurfacingDomainWithGradient_3`

View File

@ -127,7 +127,7 @@ struct Cartesian_grid_position<GeomTraits, Cache_positions>
/** /**
* \ingroup IS_Partitions_grp * \ingroup IS_Partitions_grp
* *
* \cgalModels{Partition_3} * \cgalModels{IsosurfacingPartition_3}
* *
* \brief The class `Cartesian_grid_3` represents a 3D %Cartesian grid, that is the partition of * \brief The class `Cartesian_grid_3` represents a 3D %Cartesian grid, that is the partition of
* an iso-cuboid into identical iso-cuboidal cells. * an iso-cuboid into identical iso-cuboidal cells.

View File

@ -33,10 +33,10 @@ namespace Isosurfacing {
* the values and gradients that define the isosurface. The optional template parameter * the values and gradients that define the isosurface. The optional template parameter
* `EdgeIntersectionOracle` gives control over the method used to computate edge-isosurface intersection points. * `EdgeIntersectionOracle` gives control over the method used to computate edge-isosurface intersection points.
* *
* \tparam Partition must be a model of `Partition_3` * \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `ValueField_3` * \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam GradientField must be a model of `GradientField_3` * \tparam GradientField must be a model of `IsosurfacingGradientField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3` * \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
* *
* \sa `CGAL::Isosurfacing::dual_contouring()` * \sa `CGAL::Isosurfacing::dual_contouring()`
* \sa `CGAL::Isosurfacing::Marching_cubes_domain_3()` * \sa `CGAL::Isosurfacing::Marching_cubes_domain_3()`
@ -78,10 +78,10 @@ public:
* *
* \brief creates a new instance of a domain that can be used with the %Dual Contouring algorithm. * \brief creates a new instance of a domain that can be used with the %Dual Contouring algorithm.
* *
* \tparam Partition must be a model of `Partition_3` * \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `ValueField_3` * \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam GradientField must be a model of `GradientField_3` * \tparam GradientField must be a model of `IsosurfacingGradientField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3` * \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
* *
* \param partition the space partitioning data structure * \param partition the space partitioning data structure
* \param values a continuous field of scalar values, defined over the geometric span of `partition` * \param values a continuous field of scalar values, defined over the geometric span of `partition`

View File

@ -25,7 +25,7 @@ namespace Isosurfacing {
/** /**
* \ingroup IS_Fields_grp * \ingroup IS_Fields_grp
* *
* \cgalModels{GradientField_3} * \cgalModels{IsosurfacingGradientField_3}
* *
* \brief Class template for a gradient that is calculated using finite differences. * \brief Class template for a gradient that is calculated using finite differences.
* *

View File

@ -25,12 +25,12 @@ namespace Isosurfacing {
/** /**
* \ingroup IS_Fields_grp * \ingroup IS_Fields_grp
* *
* \cgalModels{GradientField_3} * \cgalModels{IsosurfacingGradientField_3}
* *
* \brief The class `Gradient_function_3` represents a field of vectors computed * \brief The class `Gradient_function_3` represents a field of vectors computed
* using a user-provided unary function. * using a user-provided unary function.
* *
* \tparam Partition must be a model of `Partition_3` * \tparam Partition must be a model of `IsosurfacingPartition_3`
* *
* \sa `CGAL::Isosurfacing::Dual_contouring_domain_3` * \sa `CGAL::Isosurfacing::Dual_contouring_domain_3`
*/ */

View File

@ -28,12 +28,12 @@ namespace Isosurfacing {
/** /**
* \ingroup IS_Domain_helpers_grp * \ingroup IS_Domain_helpers_grp
* *
* \cgalModels{ValueField_3} * \cgalModels{IsosurfacingValueField_3}
* *
* \brief Class template for a gradient that is calculated using discrete values and trilinear interpolation. * \brief Class template for a gradient that is calculated using discrete values and trilinear interpolation.
* *
* \tparam Grid must be `CGAL::Isosurfacing::Cartesian_grid_3<GeomTraits>`, with `GeomTraits` a model of `IsosurfacingTraits_3` * \tparam Grid must be `CGAL::Isosurfacing::Cartesian_grid_3<GeomTraits>`, with `GeomTraits` a model of `IsosurfacingTraits_3`
* \tparam InterpolationScheme must be a model of `InterpolationScheme_3` * \tparam InterpolationScheme must be a model of `IsosurfacingInterpolationScheme_3`
*/ */
template <typename Grid, template <typename Grid,
typename InterpolationScheme = Trilinear_interpolation<Grid> > typename InterpolationScheme = Trilinear_interpolation<Grid> >
@ -64,7 +64,7 @@ public:
} }
// computes and stores gradients at the vertices of the grid // computes and stores gradients at the vertices of the grid
// \tparam must be ValueField a model of `ValueField_3` // \tparam must be ValueField a model of `IsosurfacingValueField_3`
// \param values a field of values whose gradient are being computed // \param values a field of values whose gradient are being computed
template <typename ValueField> template <typename ValueField>
void compute_discrete_gradients(const ValueField& values) void compute_discrete_gradients(const ValueField& values)

View File

@ -28,12 +28,12 @@ namespace Isosurfacing {
/** /**
* \ingroup IS_Domain_helpers_grp * \ingroup IS_Domain_helpers_grp
* *
* \cgalModels{ValueField_3} * \cgalModels{IsosurfacingValueField_3}
* *
* \brief Class template for a field of values that are calculated using discrete values and interpolation. * \brief Class template for a field of values that are calculated using discrete values and interpolation.
* *
* \tparam Grid must be `CGAL::Isosurfacing::Cartesian_grid_3<GeomTraits>`, with `GeomTraits` a model of `IsosurfacingTraits_3` * \tparam Grid must be `CGAL::Isosurfacing::Cartesian_grid_3<GeomTraits>`, with `GeomTraits` a model of `IsosurfacingTraits_3`
* \tparam InterpolationScheme must be a model of `InterpolationScheme_3` * \tparam InterpolationScheme must be a model of `IsosurfacingInterpolationScheme_3`
*/ */
template <typename Grid, template <typename Grid,
typename InterpolationScheme = Trilinear_interpolation<Grid> > typename InterpolationScheme = Trilinear_interpolation<Grid> >

View File

@ -33,9 +33,9 @@ namespace Isosurfacing {
* the values that define the isosurface. The optional template parameter * the values that define the isosurface. The optional template parameter
* `EdgeIntersectionOracle` gives control over the method used to computate edge-isosurface intersection points. * `EdgeIntersectionOracle` gives control over the method used to computate edge-isosurface intersection points.
* *
* \tparam Partition must be a model of `Partition_3` * \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `ValueField_3` * \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3` * \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
* *
* \sa `CGAL::Isosurfacing::marching_cubes_3()` * \sa `CGAL::Isosurfacing::marching_cubes_3()`
* \sa `CGAL::Isosurfacing::Dual_contouring_domain_3` * \sa `CGAL::Isosurfacing::Dual_contouring_domain_3`
@ -74,9 +74,9 @@ public:
* *
* \brief creates a new instance of a domain that can be used with the Marching Cubes algorithm. * \brief creates a new instance of a domain that can be used with the Marching Cubes algorithm.
* *
* \tparam Partition must be a model of `Partition_3` * \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `ValueField_3` * \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3` * \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
* *
* \param partition the space partitioning data structure * \param partition the space partitioning data structure
* \param values a continuous field of scalar values, defined over the geometric span of `partition` * \param values a continuous field of scalar values, defined over the geometric span of `partition`

View File

@ -25,12 +25,12 @@ namespace Isosurfacing {
/** /**
* \ingroup IS_Domain_helpers_grp * \ingroup IS_Domain_helpers_grp
* *
* \cgalModels{ValueField_3} * \cgalModels{IsosurfacingValueField_3}
* *
* \brief The class `Value_function_3` represents a field of scalars computed * \brief The class `Value_function_3` represents a field of scalars computed
* using a user-provided unary function. * using a user-provided unary function.
* *
* \tparam Partition must be a model of `Partition_3` * \tparam Partition must be a model of `IsosurfacingPartition_3`
* *
* \sa `CGAL::Isosurfacing::Marching_cubes_domain_3` * \sa `CGAL::Isosurfacing::Marching_cubes_domain_3`
* \sa `CGAL::Isosurfacing::Dual_contouring_domain_3` * \sa `CGAL::Isosurfacing::Dual_contouring_domain_3`

View File

@ -23,7 +23,7 @@ namespace Isosurfacing {
/** /**
* \ingroup IS_Domain_helpers_grp * \ingroup IS_Domain_helpers_grp
* *
* \cgalModels{EdgeIntersectionOracle_3} * \cgalModels{IsosurfacingEdgeIntersectionOracle_3}
* *
* \brief The class `Dichotomy_edge_intersection` uses a dichotomy to find the intersection point * \brief The class `Dichotomy_edge_intersection` uses a dichotomy to find the intersection point
* between an edge and the isosurface. * between an edge and the isosurface.
@ -116,7 +116,7 @@ struct Dichotomy_edge_intersection
/** /**
* \ingroup IS_Domain_helpers_grp * \ingroup IS_Domain_helpers_grp
* *
* \cgalModels{EdgeIntersectionOracle_3} * \cgalModels{IsosurfacingEdgeIntersectionOracle_3}
* *
* \brief The class `Linear_interpolation_edge_intersection` uses linear interpolation * \brief The class `Linear_interpolation_edge_intersection` uses linear interpolation
* to find the intersection point between an edge and the isosurface. * to find the intersection point between an edge and the isosurface.
@ -178,7 +178,7 @@ struct Linear_interpolation_edge_intersection
/* /*
* \ingroup IS_Domain_helpers_grp * \ingroup IS_Domain_helpers_grp
* *
* \cgalModels{EdgeIntersectionOracle_3} * \cgalModels{IsosurfacingEdgeIntersectionOracle_3}
* *
* \brief The class `Ray_marching_edge_intersection` uses ray marching to find the intersection point * \brief The class `Ray_marching_edge_intersection` uses ray marching to find the intersection point
* between an edge and the isosurface. * between an edge and the isosurface.

View File

@ -25,7 +25,7 @@ namespace Isosurfacing {
/*! /*!
* \ingroup IS_Fields_helpers_grp * \ingroup IS_Fields_helpers_grp
* *
* \cgalModels{InterpolationScheme_3} * \cgalModels{IsosurfacingInterpolationScheme_3}
* *
* The class `Trilinear_interpolation` is the standard interpolation scheme to extrapolate * The class `Trilinear_interpolation` is the standard interpolation scheme to extrapolate
* data defined only at vertices of a %Cartesian grid. * data defined only at vertices of a %Cartesian grid.