mirror of https://github.com/CGAL/cgal
fix doc
This commit is contained in:
parent
f78e9ce819
commit
aadc08b6f2
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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`.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
};
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ int main(int, char**)
|
|||
auto domain = CGAL::Isosurfacing::create_implicit_Cartesian_grid_domain<Kernel>
|
||||
(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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ int main(int, char**)
|
|||
auto domain = CGAL::Isosurfacing::create_implicit_Cartesian_grid_domain<Kernel>
|
||||
(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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 <typename GeomTraits,
|
|||
typename Gradient = Zero_gradient>
|
||||
Explicit_Cartesian_grid_domain_3<Grid, Gradient>
|
||||
create_explicit_Cartesian_grid_domain(const CGAL::Isosurfacing::Cartesian_grid_3<GeomTraits>& grid,
|
||||
const Gradient& grad = Gradient())
|
||||
const Gradient& gradient = Gradient())
|
||||
#else
|
||||
// Actual code enables passing more than just a Cartesian_grid_3
|
||||
template <typename Grid,
|
||||
typename Gradient = Zero_gradient>
|
||||
Explicit_Cartesian_grid_domain_3<Grid, Gradient>
|
||||
create_explicit_Cartesian_grid_domain(const Grid& grid,
|
||||
const Gradient& grad = Gradient())
|
||||
const Gradient& gradient = Gradient())
|
||||
#endif
|
||||
{
|
||||
using Domain = Explicit_Cartesian_grid_domain_3<Grid, Gradient>;
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<GeomTraits, ImplicitFunction, Gradient>
|
|||
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<GeomTraits, ImplicitFunction, Gradient>;
|
||||
|
|
@ -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<GeomTraits> to match CGAL kernels
|
||||
|
|
|
|||
|
|
@ -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 <typename Octree,
|
|||
typename Gradient = Zero_gradient>
|
||||
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<Octree, ImplicitFunction, Gradient>;
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 <typename Geometry,
|
||||
typename PointFunction>
|
||||
class Implicit_function_with_geometry
|
||||
|
|
|
|||
Loading…
Reference in New Issue