CGAL 6.0 - Combinatorial Maps
Loading...
Searching...
No Matches
CGAL::Combinatorial_map< d, Items, Alloc > Class Template Reference

#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
dthe dimension of the map.
Itemsa model of the GenericMapItems concept. Equal to Generic_map_min_items by default.
Allochas 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.