CGAL 6.1.2 - Combinatorial Maps: CGAL::Combinatorial_map< d, Items, Alloc > Class Template Reference

CGAL 6.1.2 - Combinatorial Maps

Loading...
Searching...
No Matches
List of all members
CGAL::Combinatorial_map< d, Items, Alloc > Class Template Reference
Reference Manual » Classes

`#include <CGAL/Combinatorial_map.h>`

Inherited by CGAL::Linear_cell_complex_for_combinatorial_map< typename d, typename d2, typename LCCTraits, typename Items, typename Alloc >.

## Definition

template<unsigned int d, typename Items, typename Alloc>
class CGAL::Combinatorial_map< d, Items, Alloc >

The class `Combinatorial_map` represents a dD combinatorial map.

Two versions exist: one where Darts and non void attributes are stored in memory using `Compact_container`, using `Alloc` as allocator, and use handles as descriptors; a second one where Darts and non void attributes are stored in an internal std::vector like data-structure, and use indices as descriptors. The choice between the two versions is done through the item class.

Is model of
  `CombinatorialMap`

Template Parameters

  d | the dimension of the map.
  Items | a model of the `GenericMapItems` concept. Equal to `Generic_map_min_items` by default.
  Alloc | has to match the standard allocator requirements. The `rebind` mechanism `Alloc` will be used to create appropriate allocators internally with value type `Dart`. Equal to `CGAL_ALLOCATOR(int)` from `<CGAL/memory.h>` by default.

Complexity

The complexity of `sew` and `unsew` is in O( \( | \) S \( | \) \( \times\) \( | \) c \( | \) ), S being the set of darts of the orbit \( \langle{}\) \( \beta_1\), \( \ldots\), \( \beta_{i-2}\), \( \beta_{i+2}\), \( \ldots\), \( \beta_d\) \( \rangle{}\) for the considered dart, and c the biggest j-cell merged or split during the sew such that j-attributes are non void. The complexity of `is_sewable` is in O( \( | \) S \( | \) ).

The complexity of `set_attribute` is in O( \( | \) c \( | \) ), c being the i-cell containing the considered dart.

The complexity of `is_without_boundary(i)` is in O( \( | \) D \( | \) ), D being the set of darts of the combinatorial map, and the complexity of `is_without_boundary()` is in O( \( | \) D \( | \) \( \times\) d ).

The complexity of `unmark_all` and `free_mark` is in O( 1 ) if all the darts of the combinatorial map have the same mark, and in O( \( | \) D \( | \) ) otherwise.

The complexity of `is_valid` is in O( \( | \) D \( | \) \( \times\) d \( ^2\) ).

The complexity of `clear` is in O( \( | \) D \( | \) \( \times\) d ).

Other methods have all a constant time complexity.

See also
  `GenericMapItems`

Examples
  Combinatorial_map/map_3_dynamic_onmerge.cpp, Combinatorial_map/map_3_index.cpp, Combinatorial_map/map_3_insert.cpp, Combinatorial_map/map_3_marks.cpp, Combinatorial_map/map_3_operations.cpp, Combinatorial_map/map_3_simple_example.cpp, Combinatorial_map/map_3_with_colored_facets.cpp, and Combinatorial_map/map_4_simple_example.cpp.

## Types
typedef Combinatorial_map< d, Items, Alloc > | Self
typedef Items::Dart_wrapper< Self >::Dart_info | Dart_info
| Information associated with darts.
typedef Items::Dart_wrapper< Self >::Attributes | Attributes
| The tuple of cell attributes.

## Constants
static const unsigned int | dimension = d
| The dimension of the combinatorial map.

## Member Typedef Documentation

## ◆ Attributes

template<unsigned int d, typename Items , typename Alloc >

typedef Items::Dart_wrapper<Self>::Attributes CGAL::Combinatorial_map< d, Items, Alloc >::Attributes

The tuple of cell attributes.

Equal to `std::tuple<>` if `Attributes` is not defined in the items class.

## ◆ Dart_info

template<unsigned int d, typename Items , typename Alloc >

typedef Items::Dart_wrapper<Self>::Dart_info CGAL::Combinatorial_map< d, Items, Alloc >::Dart_info

Information associated with darts.

Equal to `void` if `Dart_info` is not defined in the items class.