CC with index cont

This commit is contained in:
Guillaume Damiand 2022-05-23 13:28:00 +02:00
parent 8bf242ad34
commit c25da7a9ba
11 changed files with 120 additions and 145 deletions

View File

@ -32,25 +32,25 @@ template<unsigned int, class, class>
class Combinatorial_map_storage_1;
template<unsigned int, class, class>
class Combinatorial_map_storage_2;
class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
class Generalized_map_storage_1;
template<unsigned int, class, class>
class Generalized_map_storage_2;
class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
class CMap_linear_cell_complex_storage_2;
class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
class GMap_linear_cell_complex_storage_2;
class GMap_linear_cell_complex_storage_with_index;
namespace internal {
@ -111,25 +111,25 @@ struct Init_id;
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
template<class, class>
friend struct internal::Init_id;
@ -236,25 +236,25 @@ struct Init_id;
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
template<class, class>
friend struct internal::Init_id;
@ -368,25 +368,25 @@ struct Init_id;
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
public:
typedef Tag_ Supports_cell_dart;
@ -423,25 +423,25 @@ struct Init_id;
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
public:
typedef Cell_attribute<Refs, Info_, Tag_, OnMerge, OnSplit, WithID> Self;

View File

@ -24,7 +24,7 @@ template<unsigned int d_, class Items_, class Alloc_>
class Combinatorial_map_storage_1;
template<unsigned int d_, class Items_, class Alloc_>
class Combinatorial_map_storage_2;
class Combinatorial_map_storage_with_index;
namespace internal
{
@ -38,7 +38,7 @@ template<>
struct Default_storage_for_cmap_when_tag<CGAL::Tag_true>
{
template<unsigned int d_, class Items_, class Alloc_>
using type=Combinatorial_map_storage_2<d_, Items_, Alloc_>;
using type=Combinatorial_map_storage_with_index<d_, Items_, Alloc_>;
};
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_use_index_tag_cmap,Use_index,false)

View File

@ -34,10 +34,10 @@ namespace CGAL {
// Storage with combinatorial maps using index
template<unsigned int d_, class Items_, class Alloc_>
class Combinatorial_map_storage_2
class Combinatorial_map_storage_with_index
{
public:
using Self=Combinatorial_map_storage_2<d_, Items_, Alloc_>;
using Self=Combinatorial_map_storage_with_index<d_, Items_, Alloc_>;
using Use_index=CGAL::Tag_true;
using Concurrent_tag=typename internal::Get_concurrent_tag<Items_>::type;
@ -65,7 +65,7 @@ namespace CGAL {
typedef typename Dart_container::size_type size_type;
typedef Dart_index Null_descriptor_type;
static Null_descriptor_type null_descriptor;
static const Index_type null_descriptor=Dart_container::null_descriptor;
using Type_for_compact_container=Index_type;
@ -108,7 +108,7 @@ namespace CGAL {
template<int i>
using Attribute_const_handle=Attribute_const_descriptor<i>;
static Null_descriptor_type null_handle;
static const Index_type null_handle=null_descriptor;
/// Number of marks
static const size_type NB_MARKS = 32;
@ -154,7 +154,7 @@ namespace CGAL {
Dart_const_range& darts() const { return mdarts_range; }
//**************************************************************************
Combinatorial_map_storage_2() : mdarts_range(*this)
Combinatorial_map_storage_with_index() : mdarts_range(*this)
{}
void init_storage()
@ -164,7 +164,7 @@ namespace CGAL {
Dart_index local_null_dart_descriptor = mdarts.emplace();
if(local_null_dart_descriptor!=0)
{
std::cerr<<"[ERROR] fatal in Combinatorial_map_storage_2::init_storage"
std::cerr<<"[ERROR] fatal in Combinatorial_map_storage_with_index::init_storage"
<<std::endl;
CGAL_assertion(false);
}
@ -470,8 +470,10 @@ namespace CGAL {
public:
/// Void dart. A dart d is i-free if beta_i(d)=null_dart_descriptor.
static Dart_index null_dart_descriptor; //=0;
static Dart_descriptor null_dart_handle; // Deprecated: kept for backward compatibility
static const Index_type null_dart_descriptor=0;
// Deprecated: kept for backward compatibility
static const Index_type null_dart_handle=null_dart_descriptor;
protected:
/// Dart container.
@ -485,26 +487,6 @@ namespace CGAL {
typename Helper::Attribute_containers mattribute_containers;
};
/// null_dart_descriptor
template<unsigned int d_, class Items_, class Alloc_>
typename Combinatorial_map_storage_2<d_, Items_, Alloc_>::Dart_index
Combinatorial_map_storage_2<d_, Items_, Alloc_>::null_dart_descriptor(0);
/// null_descriptor
template<unsigned int d_, class Items_, class Alloc_>
typename Combinatorial_map_storage_2<d_, Items_, Alloc_>::Null_descriptor_type
Combinatorial_map_storage_2<d_, Items_, Alloc_>::
null_descriptor((std::numeric_limits<Index_type>::max)());
template<unsigned int d_, class Items_, class Alloc_>
typename Combinatorial_map_storage_2<d_, Items_, Alloc_>::Dart_index
Combinatorial_map_storage_2<d_, Items_, Alloc_>::null_dart_handle(0);
template<unsigned int d_, class Items_, class Alloc_>
typename Combinatorial_map_storage_2<d_, Items_, Alloc_>::Null_descriptor_type
Combinatorial_map_storage_2<d_, Items_, Alloc_>::
null_handle((std::numeric_limits<Index_type>::max)());
} // namespace CGAL
#if defined(BOOST_GCC)

View File

@ -97,6 +97,8 @@ class Free_list_management<CC_with_index, CGAL::Tag_true, CGAL::Tag_true>
using size_type=typename CC_with_index::size_type;
public:
static const size_type null_descriptor=std::numeric_limits<size_type>::max();
Free_list_management(CC_with_index& cc_with_index):
m_cc_with_index(cc_with_index)
{}
@ -191,6 +193,8 @@ class Free_list_management<CC_with_index, CGAL::Tag_false, CGAL::Tag_true>
using Traits=Compact_container_with_index_traits <T, size_type>;
public:
static const size_type null_descriptor=std::numeric_limits<size_type>::max();
Free_list_management(CC_with_index& cc_with_index):
m_cc_with_index(cc_with_index)
{}
@ -200,7 +204,7 @@ public:
m_used.assign(m_cc_with_index.capacity(), false);
m_free_list=0;
for(size_type i=0; i<static_cast<size_type>(m_cc_with_index.capacity()); ++i)
{ Traits::size_t(m_cc_with_index[i])=i+1; }
{ Traits::set_size_t(m_cc_with_index[i], i+1); }
// Next of the last element is capacity() which is the "nullptr".
}
@ -210,7 +214,7 @@ public:
CGAL_assertion(m_free_list==old_size); // Previous container was full
m_used.resize(m_cc_with_index.capacity(), false);
for(size_type i=0; i<static_cast<size_type>(m_cc_with_index.capacity()); ++i)
{ Traits::size_t(m_cc_with_index[i])=i+1; }
{ Traits::set_size_t(m_cc_with_index[i], i+1); }
// Nothing to do with m_free_list, because it was equal to old_size.
}
@ -234,7 +238,7 @@ public:
{
CGAL_assertion(i<m_cc_with_index.capacity());
m_used[i]=false;
Traits::size_t(m_cc_with_index[i])=m_free_list;
Traits::set_size_t(m_cc_with_index[i], m_free_list);
m_free_list=i;
}
@ -249,11 +253,12 @@ public:
CGAL_assertion(!is_empty());
size_type res=m_free_list;
m_free_list=Traits::size_t(m_cc_with_index[res]);
m_used[res]=true;
return res;
}
void copy_special_data(const T& src, T& dest)
{ Traits::size_t(dest)=Traits::size_t(src); }
{ Traits::set_size_t(dest, Traits::size_t(src)); }
protected:
CC_with_index& m_cc_with_index;
@ -271,6 +276,8 @@ class Free_list_management<CC_with_index, CGAL::Tag_false, CGAL::Tag_false>
using Traits=Compact_container_with_index_traits <T, size_type>;
public:
static const size_type null_descriptor=std::numeric_limits<size_type>::max()/2;
Free_list_management(CC_with_index& cc_with_index):
m_cc_with_index(cc_with_index)
{}
@ -327,7 +334,7 @@ public:
}
void copy_special_data(const T& src, T& dest)
{ Traits::size_t(dest)=Traits::size_t(src); }
{ Traits::set_size_t(dest, Traits::size_t(src)); }
protected:
// Definition of the bit squatting :
@ -351,6 +358,11 @@ protected:
static size_type static_get_val(const T& e)
{ return (Traits::size_t(e) & ~mask_type); }
// set the value of the element and its type
static void static_set_type(T& e, Type t)
{ Traits::set_size_t(e, static_get_val(e) |
( ((size_type)t) <<(nbbits_size_type_m1))); }
// set the value of the element and its type
static void static_set_val(T& e, size_type v, Type t)
{ Traits::set_size_t(e, v | ( ((size_type)t) <<(nbbits_size_type_m1))); }
@ -368,7 +380,7 @@ public:
using Self=Index_for_cc_with_index<Index_type>;
using size_type=Index_type;
/// Constructor. Default construction creates a kind of "NULL" index.
/// Constructor.
Index_for_cc_with_index(size_type idx=(std::numeric_limits<size_type>::max)())
: m_idx(idx)
{}
@ -382,9 +394,11 @@ public:
Index_for_cc_with_index(const Index2& idx): m_idx(static_cast<size_t>(idx))
{}
/// return whether the handle is valid
bool is_valid() const
{ return m_idx != (std::numeric_limits<size_type>::max)(); }
bool operator==(const Self& n) const
{ return m_idx==n.m_idx; }
bool operator==(size_type n) const
{ return m_idx==n; }
/// Increment the internal index. This operations does not
/// guarantee that the index is valid or undeleted after the
@ -447,6 +461,11 @@ public:
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
using Index=Index_for_cc_with_index<IndexType>;
using TFree_list_management=Free_list_management
<Self, CGAL::Tag_false, CGAL::Tag_true>;
static const size_type null_descriptor=TFree_list_management::null_descriptor;
friend class internal::CC_iterator_with_index<Self, false>;
friend class internal::CC_iterator_with_index<Self, true>;
@ -728,12 +747,12 @@ private:
free_list.init();
}
allocator_type alloc;
size_type capacity_;
size_type size_;
size_type block_size;
pointer all_items;
Free_list_management<Self, CGAL::Tag_true, CGAL::Tag_true> free_list;
allocator_type alloc;
size_type capacity_;
size_type size_;
size_type block_size;
pointer all_items;
TFree_list_management free_list;
};
/*template < class T, class Allocator, class Increment_policy, class IndexType >

View File

@ -33,25 +33,25 @@ namespace CGAL {
class Combinatorial_map_storage_1;
template<unsigned int, class, class>
class Combinatorial_map_storage_2;
class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
class Generalized_map_storage_1;
template<unsigned int, class, class>
class Generalized_map_storage_2;
class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
class CMap_linear_cell_complex_storage_2;
class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
class GMap_linear_cell_complex_storage_2;
class GMap_linear_cell_complex_storage_with_index;
namespace internal {
@ -88,35 +88,35 @@ namespace CGAL {
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
template<class, class>
friend struct internal::Init_id;
typedef Dart_without_info<d,Refs, WithId> Self;
typedef typename Refs::Dart_descriptor Dart_descriptor;
typedef typename Refs::size_type size_type;
typedef typename Refs::Dart_const_descriptor Dart_const_descriptor;
typedef typename Refs::Helper Helper;
typedef WithId Has_id;
typedef Dart_without_info<d,Refs, WithId> Self;
typedef typename Refs::Dart_descriptor Dart_descriptor;
typedef typename Refs::size_type size_type;
typedef typename Refs::Dart_const_descriptor Dart_const_descriptor;
typedef typename Refs::Helper Helper;
typedef WithId Has_id;
using Type_for_compact_container=typename Refs::Type_for_compact_container;
/// Typedef for attributes
@ -251,25 +251,25 @@ namespace CGAL {
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
typedef Dart<d, Refs, Info_, WithID> Self;
typedef Info_ Info;

View File

@ -22,7 +22,7 @@ template<unsigned int d_, class Items_, class Alloc_>
class Generalized_map_storage_1;
template<unsigned int d_, class Items_, class Alloc_>
class Generalized_map_storage_2;
class Generalized_map_storage_with_index;
struct Generic_map_min_items;
@ -38,7 +38,7 @@ template<>
struct Default_storage_for_gmap_when_tag<CGAL::Tag_true>
{
template<unsigned int d_, class Items_, class Alloc_>
using type=Generalized_map_storage_2<d_, Items_, Alloc_>;
using type=Generalized_map_storage_with_index<d_, Items_, Alloc_>;
};
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_use_index_tag_gmap,Use_index,false)

View File

@ -34,10 +34,10 @@ namespace CGAL {
// Storage of darts with compact container, alpha with indices
template<unsigned int d_, class Items_, class Alloc_>
class Generalized_map_storage_2
class Generalized_map_storage_with_index
{
public:
using Self=Generalized_map_storage_2<d_, Items_, Alloc_>;
using Self=Generalized_map_storage_with_index<d_, Items_, Alloc_>;
using Use_index=CGAL::Tag_true;
using Concurrent_tag=typename internal::Get_concurrent_tag<Items_>::type;
@ -439,13 +439,13 @@ namespace CGAL {
/// null_descriptor
template<unsigned int d_, class Items_, class Alloc_>
typename Generalized_map_storage_2<d_, Items_, Alloc_>::Null_descriptor_type
Generalized_map_storage_2<d_, Items_, Alloc_>::
typename Generalized_map_storage_with_index<d_, Items_, Alloc_>::Null_descriptor_type
Generalized_map_storage_with_index<d_, Items_, Alloc_>::
null_descriptor((std::numeric_limits<Index_type>::max)());
template<unsigned int d_, class Items_, class Alloc_>
typename Generalized_map_storage_2<d_, Items_, Alloc_>::Null_descriptor_type
Generalized_map_storage_2<d_, Items_, Alloc_>::
typename Generalized_map_storage_with_index<d_, Items_, Alloc_>::Null_descriptor_type
Generalized_map_storage_with_index<d_, Items_, Alloc_>::
null_handle((std::numeric_limits<Index_type>::max)());
} // namespace CGAL

View File

@ -33,16 +33,16 @@ namespace CGAL {
}
// Storage of darts with compact container, alpha using index
// Copy of Combinatorial_map_storage_2 and add new types related
// Copy of Combinatorial_map_storage_with_index and add new types related
// to geometry (not possible to inherith because we use Self type
// as template parameter of Dart_wrapper. If we inherit, Self is not
// the correct type).
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
class CMap_linear_cell_complex_storage_2
class CMap_linear_cell_complex_storage_with_index
{
public:
using Self=CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
using Self=CMap_linear_cell_complex_storage_with_index<d_, ambient_dim, Traits_,
Items_, Alloc_>;
using Use_index=CGAL::Tag_true;
using Concurrent_tag=typename internal::Get_concurrent_tag<Items_>::type;
@ -75,7 +75,7 @@ namespace CGAL {
typedef typename Dart_container::size_type size_type;
typedef Dart_index Null_descriptor_type;
static Null_descriptor_type null_descriptor;
static const Index_type null_descriptor=Dart_container::null_descriptor;
using Type_for_compact_container=Index_type;
@ -129,7 +129,7 @@ namespace CGAL {
using Vertex_attribute_handle=Vertex_attribute_descriptor;
using Vertex_attribute_const_handle=Vertex_attribute_const_descriptor;
static Null_descriptor_type null_handle;
static const Index_type null_handle=null_descriptor;
/// Number of marks
static const size_type NB_MARKS = 32;
@ -175,7 +175,7 @@ namespace CGAL {
Dart_const_range& darts() const { return mdarts_range; }
//**************************************************************************
CMap_linear_cell_complex_storage_2() : mdarts_range(*this)
CMap_linear_cell_complex_storage_with_index() : mdarts_range(*this)
{}
void init_storage()
@ -185,7 +185,7 @@ namespace CGAL {
Dart_index local_null_dart_descriptor = mdarts.emplace();
if(local_null_dart_descriptor!=0)
{
std::cerr<<"[ERROR] fatal in CMap_linear_cell_complex_storage_2::init_storage"
std::cerr<<"[ERROR] fatal in CMap_linear_cell_complex_storage_with_index::init_storage"
<<std::endl;
CGAL_assertion(false);
}
@ -505,8 +505,10 @@ namespace CGAL {
public:
/// Void dart. A dart d is i-free if beta_i(d)=null_dart_descriptor.
static Dart_index null_dart_descriptor; //=0;
static Dart_descriptor null_dart_handle; // Deprecated: kept for backward compatibility
static const Index_type null_dart_descriptor=0;
// Deprecated: kept for backward compatibility
static const Index_type null_dart_handle=null_dart_descriptor;
protected:
/// Dart container.
@ -520,34 +522,6 @@ namespace CGAL {
typename Helper::Attribute_containers mattribute_containers;
};
/// null_dart_descriptor
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
typename CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
Dart_index CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
null_dart_descriptor(0);
/// null_descriptor
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
typename CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
Null_descriptor_type CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
Items_, Alloc_>::
null_descriptor((std::numeric_limits<Index_type>::max)());
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
typename CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
Dart_index CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
null_dart_handle(0);
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
typename CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
Null_descriptor_type CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
Items_, Alloc_>::
null_handle((std::numeric_limits<Index_type>::max)());
} // namespace CGAL
#if defined(BOOST_GCC)

View File

@ -69,25 +69,25 @@ namespace CGAL {
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
public:
typedef Cell_attribute_with_point<LCC, Info_, Tag, Functor_on_merge_,
@ -157,25 +157,25 @@ namespace CGAL {
friend class Combinatorial_map_storage_1;
template<unsigned int, class, class>
friend class Combinatorial_map_storage_2;
friend class Combinatorial_map_storage_with_index;
template<unsigned int, class, class>
friend class Generalized_map_storage_1;
template<unsigned int, class, class>
friend class Generalized_map_storage_2;
friend class Generalized_map_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class CMap_linear_cell_complex_storage_2;
friend class CMap_linear_cell_complex_storage_with_index;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_1;
template<unsigned int, unsigned int, class, class, class>
friend class GMap_linear_cell_complex_storage_2;
friend class GMap_linear_cell_complex_storage_with_index;
public:
typedef Cell_attribute<LCC, void, Tag,

View File

@ -33,16 +33,16 @@ namespace CGAL {
}
// Storage of darts with compact container, alpha using index
// Copy of Generalized_map_storage_2 and add new types related
// Copy of Generalized_map_storage_with_index and add new types related
// to geometry (not possible to inherith because we use Self type
// as template parameter of Dart_wrapper. If we inherit, Self is not
// the correct type).
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
class GMap_linear_cell_complex_storage_2
class GMap_linear_cell_complex_storage_with_index
{
public:
using Self=GMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
using Self=GMap_linear_cell_complex_storage_with_index<d_, ambient_dim, Traits_,
Items_, Alloc_>;
using Use_index=CGAL::Tag_true;
using Concurrent_tag=typename internal::Get_concurrent_tag<Items_>::type;
@ -462,8 +462,8 @@ namespace CGAL {
/// null_descriptor
template<unsigned int d_, unsigned int ambient_dim, class Traits_,
class Items_, class Alloc_>
typename GMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_, Items_, Alloc_>::
Null_descriptor_type GMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
typename GMap_linear_cell_complex_storage_with_index<d_, ambient_dim, Traits_, Items_, Alloc_>::
Null_descriptor_type GMap_linear_cell_complex_storage_with_index<d_, ambient_dim, Traits_,
Items_, Alloc_>::
null_descriptor((std::numeric_limits<Index_type>::max)());

View File

@ -27,11 +27,11 @@ class GMap_linear_cell_complex_storage_1;
template<unsigned int d_, unsigned int ambient_dim,
class Traits_, class Items_, class Alloc_>
class CMap_linear_cell_complex_storage_2;
class CMap_linear_cell_complex_storage_with_index;
template<unsigned int d_, unsigned int ambient_dim,
class Traits_, class Items_, class Alloc_>
class GMap_linear_cell_complex_storage_2;
class GMap_linear_cell_complex_storage_with_index;
template <unsigned int d>
struct LCC_default_kernel;
@ -57,7 +57,7 @@ struct Default_storage_for_lcc_cmap_when_tag<CGAL::Tag_true>
{
template<unsigned int d_, unsigned int ambient_dim,
class Traits_, class Items_, class Alloc_>
using type=CMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
using type=CMap_linear_cell_complex_storage_with_index<d_, ambient_dim, Traits_,
Items_, Alloc_>;
};
@ -92,7 +92,7 @@ struct Default_storage_for_lcc_gmap_when_tag<CGAL::Tag_true>
{
template<unsigned int d_, unsigned int ambient_dim,
class Traits_, class Items_, class Alloc_>
using type=GMap_linear_cell_complex_storage_2<d_, ambient_dim, Traits_,
using type=GMap_linear_cell_complex_storage_with_index<d_, ambient_dim, Traits_,
Items_, Alloc_>;
};