\( \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
Dart Concept Reference

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.