summaryrefslogtreecommitdiff
path: root/debian/patches/0006-CGAL-5.5-compatibility.patch
blob: a5d28944848a57401677f6d019db60e33d735716 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
From: Vincent Rouvreau <vincent.rouvreau@inria.fr>
Date: Tue, 9 Aug 2022 16:06:06 +0200
Subject: CGAL 5.5 compatibility

Based on upstream commits

 dc7a0aed53d7b74580ed5625293e27cacd452c34
 71cbf8f35814d247fe7421c079a6ea78da2282f4

with modifications from discussion in

 https://github.com/CGAL/cgal/issues/6799
---
 .../include/gudhi/Skeleton_blocker_contractor.h     | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h b/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h
index a0d9f2b..d510043 100644
--- a/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h
+++ b/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h
@@ -171,8 +171,13 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
     Self const* algorithm_;
   };
 
+#if CGAL_VERSION_NR < 1050500000
   typedef CGAL::Modifiable_priority_queue<Edge_handle, Compare_cost, Undirected_edge_id> PQ;
-  typedef typename PQ::handle pq_handle;
+#else
+  typedef CGAL::Modifiable_priority_queue<Edge_handle, Compare_cost, Undirected_edge_id, CGAL::CGAL_BOOST_PAIRING_HEAP> PQ;
+#endif
+  
+  typedef bool pq_handle;
 
 
   // An Edge_data is associated with EVERY edge in the complex (collapsible or not).
@@ -196,7 +201,7 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
     }
 
     bool is_in_PQ() const {
-      return PQHandle_ != PQ::null_handle();
+      return PQHandle_ != false;
     }
 
     void set_PQ_handle(pq_handle h) {
@@ -204,7 +209,7 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
     }
 
     void reset_PQ_handle() {
-      PQHandle_ = PQ::null_handle();
+      PQHandle_ = false;
     }
 
    private:
@@ -238,16 +243,22 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
   }
 
   void insert_in_PQ(Edge_handle edge, Edge_data& data) {
-    data.set_PQ_handle(heap_PQ_->push(edge));
+    heap_PQ_->push(edge);
+    data.set_PQ_handle(true);
     ++current_num_edges_heap_;
   }
 
   void update_in_PQ(Edge_handle edge, Edge_data& data) {
+#if CGAL_VERSION_NR < 1050500000
     data.set_PQ_handle(heap_PQ_->update(edge, data.PQ_handle()));
+#else
+    heap_PQ_->update(edge);
+#endif
   }
 
   void remove_from_PQ(Edge_handle edge, Edge_data& data) {
-    data.set_PQ_handle(heap_PQ_->erase(edge, data.PQ_handle()));
+    heap_PQ_->erase(edge);
+    data.set_PQ_handle(false);
     --current_num_edges_heap_;
   }