mirror of https://github.com/CGAL/cgal
CC with index cont
This commit is contained in:
parent
8bf242ad34
commit
c25da7a9ba
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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 >
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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)());
|
||||
|
||||
|
|
|
|||
|
|
@ -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_>;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue