CGAL 6.0 - 3D Isosurfacing
|
The concept IsosurfacingDomain_3
describes the set of requirements to be fulfilled by any class used as input data for isosurfacing algorithms.
A model of the concept IsosurfacingDomain_3
provides a partition of the Euclidean space in cells, and a scalar field defined over the whole partition. The isosurfacing algorithms traverse these cells and query the domain class at the vertices of each cell, using the functions point()
and value()
.
IsosurfacingDomainWithGradient_3
Types | |
typedef unspecified_type | Geom_traits |
The geometric traits type. | |
typedef Geom_traits::FT | FT |
The scalar type. | |
typedef Geom_traits::Point_3 | Point_3 |
The 3D point type. | |
typedef unspecified_type | vertex_descriptor |
A descriptor that uniquely identifies a vertex. | |
typedef unspecified_type | edge_descriptor |
A descriptor that uniquely identifies an edge. | |
typedef unspecified_type | cell_descriptor |
A descriptor that uniquely identifies a cell. | |
typedef unspecified_type | Edge_vertices |
A container for the two vertices of an edge. | |
typedef unspecified_type | Cells_incident_to_edge |
A container for the cells incident to an edge. | |
typedef unspecified_type | Cell_vertices |
A container for the vertices of a cell. | |
typedef unspecified_type | Cell_edges |
A container for the edges of a cell. | |
Operations | |
Geom_traits | geom_traits () |
returns the geometric traits. | |
Point_3 | point (vertex_descriptor v) const |
returns the 3D location of the vertex v . | |
FT | value (Point_3 p) const |
returns the value of the value field at the point p . | |
FT | value (vertex_descriptor v) const |
returns the value of the value field at the vertex v . | |
Edge_vertices | incident_vertices (edge_descriptor e) const |
returns the two vertices incident to the edge e . | |
Cells_incident_to_edge | incident_cells (edge_descriptor e) const |
returns all the cells incident to the edge e , in a clockwise or counterclockwise order. | |
Cell_vertices | cell_vertices (cell_descriptor c) const |
returns all the vertices of the cell c . | |
Cell_edges | cell_edges (cell_descriptor c) const |
returns all the edges of the cell c . | |
template<typename ConcurrencyTag , typename Functor > | |
void | for_each_vertex (Functor &f) const |
iterates over all vertices, and calls the functor f on each one. | |
template<typename ConcurrencyTag , typename Functor > | |
void | for_each_edge (Functor &f) const |
iterates over all edges, and calls the functor f on each one. | |
template<typename ConcurrencyTag , typename Functor > | |
void | for_each_cell (Functor &f) const |
iterates over all cells, and calls the functor f on each one. | |
bool | construct_intersection (Point_3 p_0, Point_3 p_1, FT val_0, FT val_1, FT isovalue, Point_3 &p) const |
Constructs the intersection - if it exists - between an edge and an isosurface. | |
A descriptor that uniquely identifies a cell.
Must be a model of the concepts Descriptor
and Hashable
.
A container for the edges of a cell.
Must be a model of the concept ForwardRange
whose value type is edge_descriptor
.
A container for the vertices of a cell.
Must be a model of the concept ForwardRange
whose value type is vertex_descriptor
.
A container for the cells incident to an edge.
Must be a model of the concept ForwardRange
whose value type is cell_descriptor
.
A descriptor that uniquely identifies an edge.
Must be a model of the concept Descriptor
and Hashable
.
A container for the two vertices of an edge.
Must be a model of the concept RandomAccessContainer
of size 2
whose value type is vertex_descriptor
.
The geometric traits type.
Must be a model of IsosurfacingTraits_3
.
A descriptor that uniquely identifies a vertex.
Must be a model of the concepts Descriptor
and Hashable
.
bool IsosurfacingDomain_3::construct_intersection | ( | Point_3 | p_0, |
Point_3 | p_1, | ||
FT | val_0, | ||
FT | val_1, | ||
FT | isovalue, | ||
Point_3 & | p | ||
) | const |
Constructs the intersection - if it exists - between an edge and an isosurface.
p_0 | the location of the first vertex of the edge |
p_1 | the location of the second vertex of the edge |
val_0 | the value at the first vertex of the edge |
val_1 | the value at the second vertex of the edge |
isovalue | the isovalue defining the isosurface with which we seek an intersection |
p | the intersection point, if it exists |
true
if the intersection point exists, false
otherwise. void IsosurfacingDomain_3::for_each_cell | ( | Functor & | f | ) | const |
iterates over all cells, and calls the functor f
on each one.
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 . |
Functor | must implement void operator()(cell_descriptor cell) . |
f | the functor called on every cell |
void IsosurfacingDomain_3::for_each_edge | ( | Functor & | f | ) | const |
iterates over all edges, and calls the functor f
on each one.
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 . |
Functor | must implement void operator()(edge_descriptor edge) . |
f | the functor called on every edge |
void IsosurfacingDomain_3::for_each_vertex | ( | Functor & | f | ) | const |
iterates over all vertices, and calls the functor f
on each one.
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 . |
Functor | must implement void operator()(vertex_descriptor vertex) |
f | the functor called on every vertex |