From e5779e69e19bc12f40e7069f9f88d665a20a3277 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Mon, 26 Aug 2002 15:51:50 +0000 Subject: [PATCH] Move Double_map from Mesh_3 to Mesh_2. --- Packages/Mesh_2/include/CGAL/Double_map.h | 129 ---------------------- Packages/Mesh_3/include/CGAL/Double_map.h | 129 ---------------------- 2 files changed, 258 deletions(-) delete mode 100644 Packages/Mesh_2/include/CGAL/Double_map.h delete mode 100644 Packages/Mesh_3/include/CGAL/Double_map.h diff --git a/Packages/Mesh_2/include/CGAL/Double_map.h b/Packages/Mesh_2/include/CGAL/Double_map.h deleted file mode 100644 index 80c2b39f913..00000000000 --- a/Packages/Mesh_2/include/CGAL/Double_map.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef CGAL_DOUBLE_MAP_H -#define CGAL_DOUBLE_MAP_H - -CGAL_BEGIN_NAMESPACE - -#include -#include -#include -#include - -template , - class _Reverse_order = std::less<_Data> > -class Double_map -{ -public: - typedef _Key Key; - typedef _Data Data; - typedef _Direct_order Direct_order; - typedef _Reverse_order Reverse_order; - - typedef std::map Direct_map; - typedef std::multimap Reverse_multi_map; - - typedef std::pair Direct_entry; - typedef std::pair Reverse_entry; - - typedef typename Direct_map::size_type size_type; - - typedef typename Reverse_multi_map::iterator reverse_iterator; - typedef typename Direct_map::iterator direct_iterator; - typedef reverse_iterator iterator; - -private: - // Private members - Direct_map direct_func; - Reverse_multi_map reverse_func; - -public : - // The default constructor - Double_map () {} - - - // Queries - bool empty() const - { - CGAL_assertion(is_valid()); - return(direct_func.empty()); - } - - size_type size() const - { - CGAL_assertion(is_valid()); - return direct_func.size(); - } - - bool is_valid() const - { - return(direct_func.size()==reverse_func.size()); - } - - void clear() - { - direct_func.clear(); - reverse_func.clear(); - } - - // Assignation - bool insert(const Key& k, const Data& d) - { - std::pair - direct_result = direct_func.insert(Direct_entry(k, d)); - - if (direct_result.second != true) - return false; - - reverse_func.insert(Reverse_entry(d, k)); - - CGAL_assertion(is_valid()); - return(true); - } - - void erase(Key& k); - - // Access - reverse_iterator front() - { - return(reverse_func.begin()); - } - - void pop_front() - { - erase(front()->second); - } - - class Second_is { - Key k; - public: - Second_is(const Key& _k): k(_k) {}; - bool operator()(const Reverse_entry& p) const - { - return p.second == k; - } - }; -}; - -template -void -Double_map<_Key, _Data, _Direct_order, _Reverse_order>:: -erase(Key& k) -{ - direct_iterator pos = direct_func.find(k); - if (pos == direct_func.end()) - return; - else - { - const Data& d = pos->second; - - reverse_iterator lb = reverse_func.lower_bound(d); - reverse_iterator ub = reverse_func.upper_bound(d); - - direct_func.erase(pos); - reverse_func.erase(std::find_if(lb, ub, Second_is(k))); - } -} - -CGAL_END_NAMESPACE - -#endif diff --git a/Packages/Mesh_3/include/CGAL/Double_map.h b/Packages/Mesh_3/include/CGAL/Double_map.h deleted file mode 100644 index 80c2b39f913..00000000000 --- a/Packages/Mesh_3/include/CGAL/Double_map.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef CGAL_DOUBLE_MAP_H -#define CGAL_DOUBLE_MAP_H - -CGAL_BEGIN_NAMESPACE - -#include -#include -#include -#include - -template , - class _Reverse_order = std::less<_Data> > -class Double_map -{ -public: - typedef _Key Key; - typedef _Data Data; - typedef _Direct_order Direct_order; - typedef _Reverse_order Reverse_order; - - typedef std::map Direct_map; - typedef std::multimap Reverse_multi_map; - - typedef std::pair Direct_entry; - typedef std::pair Reverse_entry; - - typedef typename Direct_map::size_type size_type; - - typedef typename Reverse_multi_map::iterator reverse_iterator; - typedef typename Direct_map::iterator direct_iterator; - typedef reverse_iterator iterator; - -private: - // Private members - Direct_map direct_func; - Reverse_multi_map reverse_func; - -public : - // The default constructor - Double_map () {} - - - // Queries - bool empty() const - { - CGAL_assertion(is_valid()); - return(direct_func.empty()); - } - - size_type size() const - { - CGAL_assertion(is_valid()); - return direct_func.size(); - } - - bool is_valid() const - { - return(direct_func.size()==reverse_func.size()); - } - - void clear() - { - direct_func.clear(); - reverse_func.clear(); - } - - // Assignation - bool insert(const Key& k, const Data& d) - { - std::pair - direct_result = direct_func.insert(Direct_entry(k, d)); - - if (direct_result.second != true) - return false; - - reverse_func.insert(Reverse_entry(d, k)); - - CGAL_assertion(is_valid()); - return(true); - } - - void erase(Key& k); - - // Access - reverse_iterator front() - { - return(reverse_func.begin()); - } - - void pop_front() - { - erase(front()->second); - } - - class Second_is { - Key k; - public: - Second_is(const Key& _k): k(_k) {}; - bool operator()(const Reverse_entry& p) const - { - return p.second == k; - } - }; -}; - -template -void -Double_map<_Key, _Data, _Direct_order, _Reverse_order>:: -erase(Key& k) -{ - direct_iterator pos = direct_func.find(k); - if (pos == direct_func.end()) - return; - else - { - const Data& d = pos->second; - - reverse_iterator lb = reverse_func.lower_bound(d); - reverse_iterator ub = reverse_func.upper_bound(d); - - direct_func.erase(pos); - reverse_func.erase(std::find_if(lb, ub, Second_is(k))); - } -} - -CGAL_END_NAMESPACE - -#endif