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
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
`CGAL::Isosurfacing::Marching_cubes_domain_3` and
`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}
\cgalHasModelsEnd
*/
class EdgeIntersectionOracle_3
class IsosurfacingEdgeIntersectionOracle_3
{
public:
/*!

View File

@ -3,7 +3,7 @@
\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`.
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
\sa `IsosurfacingTraits_3`
\sa `ValueField_3`
\sa `IsosurfacingValueField_3`
*/
class GradientField_3
class IsosurfacingGradientField_3
{
public:
/*!

View File

@ -5,14 +5,14 @@
\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`.
\cgalHasModelsBegin
\cgalHasModels{CGAL::Isosurfacing::Trilinear_interpolation}
\cgalHasModelsEnd
*/
class InterpolationScheme_3
class IsosurfacingInterpolationScheme_3
{
public:
/*!

View File

@ -3,7 +3,7 @@
\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`
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`}
\cgalHasModelsEnd
*/
class Partition_3
class IsosurfacingPartition_3
{
public:
/*!

View File

@ -3,7 +3,7 @@
\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`.
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
\sa `IsosurfacingTraits_3`
\sa `GradientField_3`
\sa `IsosurfacingGradientField_3`
*/
class ValueField_3
class IsosurfacingValueField_3
{
public:
/*!
@ -31,7 +31,7 @@ public:
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;

View File

@ -4,19 +4,17 @@ namespace Isosurfacing {
/*!
* \ingroup PkgIsosurfacing3Concepts
*
* \cgalConcept
* \relates IsosurfacingPartition_3
*
* \relates Partition_3
*
* The class `partition_traits` is the API compatibility layer between a model of `Partition_3`
* The class `partition_traits` is the API compatibility layer between a model of `IsosurfacingPartition_3`
* and the isosurfacing domain classes `CGAL::Isosurfacing::Marching_cubes_domain_3` and
* `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
* for `CGAL::Isosurfacing::Cartesian_grid_3`.
*/
template <typename Partition_3>
template <typename IsosurfacingPartition_3>
class partition_traits
{
public:
@ -62,27 +60,27 @@ public:
/*!
* \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`.
*/
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.
*/
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`.
*/
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`.
*/
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.
@ -95,7 +93,7 @@ public:
* \param partition the partition whose vertices are being iterated
*/
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.
@ -108,7 +106,7 @@ public:
* \param partition the partition whose edges are being iterated
*/
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.
@ -121,7 +119,7 @@ public:
* \param partition the partition whose cells are being iterated
*/
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

View File

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

View File

@ -127,7 +127,7 @@ struct Cartesian_grid_position<GeomTraits, Cache_positions>
/**
* \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
* 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
* `EdgeIntersectionOracle` gives control over the method used to computate edge-isosurface intersection points.
*
* \tparam Partition must be a model of `Partition_3`
* \tparam ValueField must be a model of `ValueField_3`
* \tparam GradientField must be a model of `GradientField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3`
* \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam GradientField must be a model of `IsosurfacingGradientField_3`
* \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
*
* \sa `CGAL::Isosurfacing::dual_contouring()`
* \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.
*
* \tparam Partition must be a model of `Partition_3`
* \tparam ValueField must be a model of `ValueField_3`
* \tparam GradientField must be a model of `GradientField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3`
* \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam GradientField must be a model of `IsosurfacingGradientField_3`
* \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
*
* \param partition the space partitioning data structure
* \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
*
* \cgalModels{GradientField_3}
* \cgalModels{IsosurfacingGradientField_3}
*
* \brief Class template for a gradient that is calculated using finite differences.
*

View File

@ -25,12 +25,12 @@ namespace Isosurfacing {
/**
* \ingroup IS_Fields_grp
*
* \cgalModels{GradientField_3}
* \cgalModels{IsosurfacingGradientField_3}
*
* \brief The class `Gradient_function_3` represents a field of vectors computed
* 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`
*/

View File

@ -28,12 +28,12 @@ namespace Isosurfacing {
/**
* \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.
*
* \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,
typename InterpolationScheme = Trilinear_interpolation<Grid> >
@ -64,7 +64,7 @@ public:
}
// 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
template <typename ValueField>
void compute_discrete_gradients(const ValueField& values)

View File

@ -28,12 +28,12 @@ namespace Isosurfacing {
/**
* \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.
*
* \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,
typename InterpolationScheme = Trilinear_interpolation<Grid> >

View File

@ -33,9 +33,9 @@ namespace Isosurfacing {
* the values that define the isosurface. The optional template parameter
* `EdgeIntersectionOracle` gives control over the method used to computate edge-isosurface intersection points.
*
* \tparam Partition must be a model of `Partition_3`
* \tparam ValueField must be a model of `ValueField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3`
* \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
*
* \sa `CGAL::Isosurfacing::marching_cubes_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.
*
* \tparam Partition must be a model of `Partition_3`
* \tparam ValueField must be a model of `ValueField_3`
* \tparam EdgeIntersectionOracle must be a model of `EdgeIntersectionOracle_3`
* \tparam Partition must be a model of `IsosurfacingPartition_3`
* \tparam ValueField must be a model of `IsosurfacingValueField_3`
* \tparam EdgeIntersectionOracle must be a model of `IsosurfacingEdgeIntersectionOracle_3`
*
* \param partition the space partitioning data structure
* \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
*
* \cgalModels{ValueField_3}
* \cgalModels{IsosurfacingValueField_3}
*
* \brief The class `Value_function_3` represents a field of scalars computed
* 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::Dual_contouring_domain_3`

View File

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

View File

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