CGAL 6.0 - 3D Isosurfacing
Loading...
Searching...
No Matches
CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 > Class Template Reference

#include <Concepts/partition_traits.h>

Definition

template<typename IsosurfacingPartition_3>
class CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_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 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.

Public Types

typedef unspecified_type vertex_descriptor
 A vertex descriptor corresponds to a unique vertex in an abstract partition instance.
 
typedef unspecified_type edge_descriptor
 An edge descriptor corresponds to a unique edge in an abstract partition instance.
 
typedef unspecified_type cell_descriptor
 A cell descriptor corresponds to a unique edge in an abstract partition instance.
 
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.
 

Static Public Member Functions

static Point_3 point (vertex_descriptor v, IsosurfacingPartition_3 partition)
 
static Edge_vertices incident_vertices (edge_descriptor e, IsosurfacingPartition_3 partition)
 
static Cells_incident_to_edge incident_cells (edge_descriptor e, IsosurfacingPartition_3 partition)
 
static Cell_vertices cell_vertices (cell_descriptor c, IsosurfacingPartition_3 partition)
 
static Cell_edges cell_edges (cell_descriptor c, IsosurfacingPartition_3 partition)
 
template<typename ConcurrencyTag , typename Functor >
static void for_each_vertex (Functor &f, IsosurfacingPartition_3 partition)
 iterates over all vertices, and calls the functor f on each one.
 
template<typename ConcurrencyTag , typename Functor >
static void for_each_edge (Functor &f, IsosurfacingPartition_3 partition)
 iterates over all edges, and calls the functor f on each one.
 
template<typename ConcurrencyTag , typename Functor >
static void for_each_cell (Functor &f, IsosurfacingPartition_3 partition)
 iterates over all cells, and calls the functor f on each one.
 

Member Typedef Documentation

◆ Cell_edges

A container for the edges of a cell.

Must be a model of ForwardRange whose value_type must be edge_descriptor.

◆ Cell_vertices

A container for the vertices of a cell.

Must be a model of ForwardRange whose value_type must be vertex_descriptor.

◆ Cells_incident_to_edge

A container for the cells incident to an edge.

Must be a model of ForwardRange whose value_type must be cell_descriptor.

◆ Edge_vertices

A container for the two vertices of an edge.

Must be a model of RandomAccessContainer whose value_type must be vertex_descriptor.

Member Function Documentation

◆ cell_edges()

Returns
all the edges of the cell c.

◆ cell_vertices()

Returns
all the vertices of the cell c.

◆ for_each_cell()

template<typename IsosurfacingPartition_3 >
template<typename ConcurrencyTag , typename Functor >
static void CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::for_each_cell ( Functor &  f,
IsosurfacingPartition_3  partition 
)
static

iterates over all cells, and calls the functor f on each one.

Template Parameters
ConcurrencyTagdecides if the cells are iterated sequentially or in parallel. Can be either CGAL::Sequential_tag, CGAL::Parallel_if_available_tag, or CGAL::Parallel_tag.
Functormust implement void operator()(cell_descriptor cell).
Parameters
fthe functor called on every cell
partitionthe partition whose cells are being iterated over

◆ for_each_edge()

template<typename IsosurfacingPartition_3 >
template<typename ConcurrencyTag , typename Functor >
static void CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::for_each_edge ( Functor &  f,
IsosurfacingPartition_3  partition 
)
static

iterates over all edges, and calls the functor f on each one.

Template Parameters
ConcurrencyTagdecides if the edges are iterated sequentially or in parallel. Can be either CGAL::Sequential_tag, CGAL::Parallel_if_available_tag, or CGAL::Parallel_tag.
Functormust implement void operator()(edge_descriptor edge).
Parameters
fthe functor called on every edge
partitionthe partition whose edges are being iterated over

◆ for_each_vertex()

template<typename IsosurfacingPartition_3 >
template<typename ConcurrencyTag , typename Functor >
static void CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::for_each_vertex ( Functor &  f,
IsosurfacingPartition_3  partition 
)
static

iterates over all vertices, and calls the functor f on each one.

Template Parameters
ConcurrencyTagdecides if the vertices are iterated sequentially or in parallel. Can be either CGAL::Sequential_tag, CGAL::Parallel_if_available_tag, or CGAL::Parallel_tag.
Functormust implement void operator()(vertex_descriptor vertex)
Parameters
fthe functor called on every vertex
partitionthe partition whose vertices are being iterated over

◆ incident_cells()

Returns
all the cells incident to the edge e, in a geometrically ordered manner around the edge.

◆ incident_vertices()

Returns
the two vertices incident to the edge e.

◆ point()

Returns
the 3D position of the vertex v.