\( \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.3 - 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>

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.
typedef unspecified_type | Dart_const_handle
| Dart const handle type.
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)
| Returns \( \beta_i\)(`*this`). More...
Dart_const_handle | beta (unsigned int i) const
| Returns \( \beta_i\)(`*this`) when the dart is const. More...
Dart_handle | beta_inv (unsigned int i)
| Returns \( \beta_i^{-1}\)(`*this`). More...
Dart_const_handle | beta_inv (unsigned int i) const
| Returns \( \beta_i^{-1}\)(`*this`) when the dart is const. More...
bool | is_free (unsigned int i) const
| Returns true iff the dart is i-free. More...
int | highest_nonfree_dimension () const
| Returns the highest dimension i such that the dart is not i-free. More...
Dart_handle | opposite ()
| Returns a handle to a dart belonging to the same edge than this dart, and not to the same vertex. More...
Dart_const_handle | opposite () const
| Returns a const handle to a dart belonging to the same edge than this dart, and not to the same vertex, when the dart is const. More...
Dart_handle | other_extremity ()
| Returns a handle to a dart belonging to the other vertex of the edge containing this dart (but contrary to `opposite()` not necessarily to the same edge). More...
Dart_const_handle | other_extremity () const
| Returns a const handle to a dart belonging to the other vertex of the edge containing this dart, when the dart is const (but contrary to `opposite()` not necessarily to the same edge). More...
template<unsigned int i>
Attribute_handle< i >::type | attribute ()
| Returns a handle to the i-attribute associated to the dart. More...
template<unsigned int i>
Attribute_const_handle< i >::type | attribute () const
| Returns a const handle to the i-attribute associated to the dart, when the dart is const. 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`.

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

Note
  It can be implemented using a nested template class.

## Member Function Documentation

template<unsigned int i>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

int Dart::highest_nonfree_dimension | ( | ) |  | const

Returns the highest dimension i such that the dart is not i-free.

-1 if `d0` is free for any dimension.

bool Dart::is_free | ( | unsigned int | i) |  | const

Returns true iff the dart is i-free.

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

Dart_handle Dart::opposite | ( | ) |  |

Returns a handle to a dart belonging to the same edge than this dart, and not to the same vertex.

`NULL` if such a dart does not exist.

Dart_const_handle Dart::opposite | ( | ) |  | const

Returns a const handle to a dart belonging to the same edge than this dart, and not to the same vertex, when the dart is const.

`NULL` if such a dart does not exist.

Dart_handle Dart::other_extremity | ( | ) |  |

Returns a handle to a dart belonging to the other vertex of the edge containing this dart (but contrary to `opposite()` not necessarily to the same edge).

`NULL` if such a dart does not exist.

Dart_const_handle Dart::other_extremity | ( | ) |  | const

Returns a const handle to a dart belonging to the other vertex of the edge containing this dart, when the dart is const (but contrary to `opposite()` not necessarily to the same edge).

`NULL` if such a dart does not exist.