Welcome to mirror list, hosted at ThFree Co, Russian Federation.

blender.patch « patches « quadriflow « extern - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 55fdd123e3bab63d72c167e13008cdea3aacd4d9 (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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
diff --git a/extern/quadriflow/src/config.hpp b/extern/quadriflow/src/config.hpp
index 842b885..bf597ad 100644
--- a/extern/quadriflow/src/config.hpp
+++ b/extern/quadriflow/src/config.hpp
@@ -1,6 +1,11 @@
 #ifndef CONFIG_H_
 #define CONFIG_H_
 
+/* Workaround a bug in boost 1.68, until we upgrade to a newer version. */
+#if defined(__clang__) && defined(WIN32)
+  #include <boost/type_traits/is_assignable.hpp>
+  using namespace boost;
+#endif
 // Move settings to cmake to make CMake happy :)
 
 // #define WITH_SCALE
diff --git a/extern/quadriflow/3rd/lemon-1.3.1/lemon/arg_parser.cc b/extern/quadriflow/3rd/lemon-1.3.1/lemon/arg_parser.cc
index 35a73d9..0eeba8a 100644
--- a/extern/quadriflow/3rd/lemon-1.3.1/lemon/arg_parser.cc
+++ b/extern/quadriflow/3rd/lemon-1.3.1/lemon/arg_parser.cc
@@ -221,9 +221,8 @@ namespace lemon {
                                 const std::string &opt)
   {
     Opts::iterator o = _opts.find(opt);
-    Opts::iterator s = _opts.find(syn);
     LEMON_ASSERT(o!=_opts.end(), "Unknown option: '"+opt+"'");
-    LEMON_ASSERT(s==_opts.end(), "Option already used: '"+syn+"'");
+    LEMON_ASSERT(_opts.find(syn)==_opts.end(), "Option already used: '"+syn+"'");
     ParData p;
     p.help=opt;
     p.mandatory=false;
diff --git a/extern/quadriflow/3rd/lemon-1.3.1/lemon/network_simplex.h b/extern/quadriflow/3rd/lemon-1.3.1/lemon/network_simplex.h
index 6ccad33..388e990 100644
--- a/extern/quadriflow/3rd/lemon-1.3.1/lemon/network_simplex.h
+++ b/extern/quadriflow/3rd/lemon-1.3.1/lemon/network_simplex.h
@@ -234,7 +234,7 @@ namespace lemon {
     int in_arc, join, u_in, v_in, u_out, v_out;
     Value delta;
 
-    const Value MAX;
+    const Value MAX_VALUE;
 
   public:
 
@@ -649,9 +649,9 @@ namespace lemon {
     NetworkSimplex(const GR& graph, bool arc_mixing = true) :
       _graph(graph), _node_id(graph), _arc_id(graph),
       _arc_mixing(arc_mixing),
-      MAX(std::numeric_limits<Value>::max()),
+      MAX_VALUE(std::numeric_limits<Value>::max()),
       INF(std::numeric_limits<Value>::has_infinity ?
-          std::numeric_limits<Value>::infinity() : MAX)
+          std::numeric_limits<Value>::infinity() : MAX_VALUE)
     {
       // Check the number types
       LEMON_ASSERT(std::numeric_limits<Value>::is_signed,
@@ -1076,9 +1076,9 @@ namespace lemon {
         for (int i = 0; i != _arc_num; ++i) {
           Value c = _lower[i];
           if (c >= 0) {
-            _cap[i] = _upper[i] < MAX ? _upper[i] - c : INF;
+            _cap[i] = _upper[i] < MAX_VALUE ? _upper[i] - c : INF;
           } else {
-            _cap[i] = _upper[i] < MAX + c ? _upper[i] - c : INF;
+            _cap[i] = _upper[i] < MAX_VALUE + c ? _upper[i] - c : INF;
           }
           _supply[_source[i]] -= c;
           _supply[_target[i]] += c;
@@ -1282,7 +1282,7 @@ namespace lemon {
         d = _flow[e];
         if (_pred_dir[u] == DIR_DOWN) {
           c = _cap[e];
-          d = c >= MAX ? INF : c - d;
+          d = c >= MAX_VALUE ? INF : c - d;
         }
         if (d < delta) {
           delta = d;
@@ -1297,7 +1297,7 @@ namespace lemon {
         d = _flow[e];
         if (_pred_dir[u] == DIR_UP) {
           c = _cap[e];
-          d = c >= MAX ? INF : c - d;
+          d = c >= MAX_VALUE ? INF : c - d;
         }
         if (d <= delta) {
           delta = d;
@@ -1559,7 +1559,7 @@ namespace lemon {
             _pi[_target[in_arc]]) >= 0) continue;
         findJoinNode();
         bool change = findLeavingArc();
-        if (delta >= MAX) return false;
+        if (delta >= MAX_VALUE) return false;
         changeFlow(change);
         if (change) {
           updateTreeStructure();
@@ -1598,7 +1598,7 @@ namespace lemon {
       while (pivot.findEnteringArc()) {
         findJoinNode();
         bool change = findLeavingArc();
-        if (delta >= MAX) return UNBOUNDED;
+        if (delta >= MAX_VALUE) return UNBOUNDED;
         changeFlow(change);
         if (change) {
           updateTreeStructure();
diff --git a/extern/quadriflow/src/hierarchy.cpp b/extern/quadriflow/src/hierarchy.cpp
index c333256..8cc41da 100644
--- a/extern/quadriflow/src/hierarchy.cpp
+++ b/extern/quadriflow/src/hierarchy.cpp
@@ -1133,7 +1133,8 @@ void Hierarchy::propagateConstraints() {
         auto& COw = mCOw[l];
         auto& COw_next = mCOw[l + 1];
         auto& toUpper = mToUpper[l];
-        MatrixXd& S = mS[l];
+        // FIXME
+        // MatrixXd& S = mS[l];
 
         for (uint32_t i = 0; i != mV[l + 1].cols(); ++i) {
             Vector2i upper = toUpper.col(i);