CGAL 4.7 - Combinatorial Maps: Dart Concept Reference

\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.7 - Combinatorial Maps

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
Dart Concept Reference
Concepts

## Definition

The concept `Dart` defines a d-dimensional dart. A dart mainly stores handles to the darts linked with itself by \( \beta_i\), \( \forall\)i, 0 \( \leq\)i \( \leq\)d. Moreover, it stores also handles to each non void attribute associated with itself.

Creation

A dart `d0` is never constructed directly, but always created within a combinatorial map `cm` by using the method cm.create_dart(). A new dart is initialized to be i-free, \( \forall\)i: 0 \( \leq\)i \( \leq\)dimension, and having all its attribute handles initialized to `NULL`, for each non `void` attribute.

Has Models:
  CGAL::Dart<d,CMap>

Deprecated:
  Since CGAL 4.4, `CombinatorialMap::null_dart_handle` is no longer a static data member. This implies to move the following methods of Dart concept into CombinatorialMap concept: `is_free`, `highest_nonfree_dimension`, `opposite` and `other_extremity`. You can define the `CGAL_CMAP_DEPRECATED` macro to keep the old behavior.

Examples:
  Combinatorial_map/map_3_dynamic_onmerge.cpp, and Combinatorial_map/map_3_with_colored_facets.cpp.

## Constants

static unsigned int | dimension
| The dimension of the dart.

## Types

typedef unspecified_type | Dart_handle
| Dart handle type. More...
typedef unspecified_type | Dart_const_handle
| Dart const handle type. More...
template<unsigned int i>
using | Attribute_handle = unspecified_type
| `Attribute_handle<i>::type` is a handle to `i`-attributes, with 0 \( \leq \) `i` \( \leq \) `dimension`. More...
template<unsigned int i>
using | Attribute_const_handle = unspecified_type
| `Attribute_const_handle<i>::type` is a const handle to `i`-attributes, with 0 \( \leq \) `i` \( \leq \) `dimension`. More...

## Access Member Functions

Dart_handle | beta (unsigned int i)
| To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,i) instead. More...
Dart_const_handle | beta (unsigned int i) const
| To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,i) instead. More...
Dart_handle | beta_inv (unsigned int i)
| To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,CGAL_BETAINV(i)) instead. More...
Dart_const_handle | beta_inv (unsigned int i) const
| To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,CGAL_BETAINV(i)) instead. More...
template<unsigned int i>
Attribute_handle< i >::type | attribute ()
| To simplify a future implementation, it is recommended to not use this function and to use cmap.attribute(dh) instead. More...
template<unsigned int i>
Attribute_const_handle< i >::type | attribute () const
| To simplify a future implementation, it is recommended to not use this function and to use cmap.attribute(dh) instead. More...

## Member Typedef Documentation

template<unsigned int i>

using Dart::Attribute_const_handle = unspecified_type

`Attribute_const_handle<i>::type` is a const handle to `i`-attributes, with 0 \( \leq \) `i` \( \leq \) `dimension`.

Must be a model of `ConstHandle` concept.

Note
  It can be implemented using a nested template class.

template<unsigned int i>

using Dart::Attribute_handle = unspecified_type

`Attribute_handle<i>::type` is a handle to `i`-attributes, with 0 \( \leq \) `i` \( \leq \) `dimension`.

Must be a model of `Handle` concept.

Note
  It can be implemented using a nested template class.

typedef unspecified_type Dart::Dart_const_handle

Dart const handle type.

Must be a model of `ConstHandle` concept.

typedef unspecified_type Dart::Dart_handle

Dart handle type.

Must be a model of `Handle` concept.

## Member Function Documentation

template<unsigned int i>

Attribute_handle<i>::type Dart::attribute | ( | ) |  |

To simplify a future implementation, it is recommended to not use this function and to use cmap.attribute(dh) instead.

Returns a handle to the i-attribute associated to the dart.

Precondition
  0 \( \leq\)i \( \leq\)dimension, and i-attributes are non `void`.

template<unsigned int i>

Attribute_const_handle<i>::type Dart::attribute | ( | ) |  | const

To simplify a future implementation, it is recommended to not use this function and to use cmap.attribute(dh) instead.

Returns a const handle to the i-attribute associated to the dart, when the dart is const.

Precondition
  0 \( \leq\)i \( \leq\)dimension, and i-attributes are non `void`.

Dart_handle Dart::beta | ( | unsigned int | i) |  |

To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,i) instead.

Returns \( \beta_i\)(`*this`).

Precondition
  0 \( \leq\)i \( \leq\)dimension.

Dart_const_handle Dart::beta | ( | unsigned int | i) |  | const

To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,i) instead.

Returns \( \beta_i\)(`*this`) when the dart is const.

Precondition
  0 \( \leq\)i \( \leq\)dimension.

Dart_handle Dart::beta_inv | ( | unsigned int | i) |  |

To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,CGAL_BETAINV(i)) instead.

Returns \( \beta_i^{-1}\)(`*this`).

Precondition
  0 \( \leq\)i \( \leq\)dimension.

Dart_const_handle Dart::beta_inv | ( | unsigned int | i) |  | const

To simplify a future implementation, it is recommended to not use this function and to use cmap.beta(dh,CGAL_BETAINV(i)) instead.

Returns \( \beta_i^{-1}\)(`*this`) when the dart is const.

Precondition
  0 \( \leq\)i \( \leq\)dimension.