CGAL 5.6 - Combinatorial Maps
|
#include <CGAL/Combinatorial_map.h>
Inherited by CGAL::Linear_cell_complex_for_combinatorial_map< typename d, typename d2, typename LCCTraits, typename Items, typename 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.
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.
GenericMapItems
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. | |
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.
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.