CGAL 6.1 - 3D Isosurfacing

Loading...
Searching...
No Matches
List of all members | Public Types | Static Public Member Functions
CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 > Class Template Reference
Reference Manual » Concepts

`#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

template<typename IsosurfacingPartition_3 >

typedef unspecified_type CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::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

template<typename IsosurfacingPartition_3 >

typedef unspecified_type CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::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

template<typename IsosurfacingPartition_3 >

typedef unspecified_type CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::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

template<typename IsosurfacingPartition_3 >

typedef unspecified_type CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::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()

template<typename IsosurfacingPartition_3 >

static Cell_edges CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::cell_edges | ( | cell_descriptor | c,
|  | IsosurfacingPartition_3 | partition
| ) |  |
| static

Returns
  all the edges of the cell `c`.

## ◆ cell_vertices()

template<typename IsosurfacingPartition_3 >

static Cell_vertices CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::cell_vertices | ( | cell_descriptor | c,
|  | IsosurfacingPartition_3 | partition
| ) |  |
| static

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

  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)`.

Parameters

  f | the functor called on every cell
  partition | the 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

  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)`.

Parameters

  f | the functor called on every edge
  partition | the 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

  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)`

Parameters

  f | the functor called on every vertex
  partition | the partition whose vertices are being iterated over

## ◆ incident_cells()

template<typename IsosurfacingPartition_3 >

static Cells_incident_to_edge CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::incident_cells | ( | edge_descriptor | e,
|  | IsosurfacingPartition_3 | partition
| ) |  |
| static

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

## ◆ incident_vertices()

template<typename IsosurfacingPartition_3 >

static Edge_vertices CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::incident_vertices | ( | edge_descriptor | e,
|  | IsosurfacingPartition_3 | partition
| ) |  |
| static

Returns
  the two vertices incident to the edge `e`.

## ◆ point()

template<typename IsosurfacingPartition_3 >

static Point_3 CGAL::Isosurfacing::partition_traits< IsosurfacingPartition_3 >::point | ( | vertex_descriptor | v,
|  | IsosurfacingPartition_3 | partition
| ) |  |
| static

Returns
  the 3D location of the vertex `v`.