mirror of https://github.com/CGAL/cgal
Add 'Isosurfacing' to some concept names
This commit is contained in:
parent
2b8bb720c7
commit
33c0079e85
|
|
@ -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:
|
||||
/*!
|
||||
|
|
@ -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:
|
||||
/*!
|
||||
|
|
@ -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:
|
||||
/*!
|
||||
|
|
@ -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:
|
||||
/*!
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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> >
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue