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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0846f39bd..f7516afa4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -372,25 +372,20 @@ if (USE_OCC)
TKGeomAlgo
TKGeomBase
TKHLR
- TKIGES
TKLCAF
TKMath
TKMesh
TKOffset
TKPrim
- TKSTEP
- TKSTEP209
- TKSTEPAttr
- TKSTEPBase
- TKSTL
+ TKDESTL
TKService
TKShHealing
TKTopAlgo
TKV3d
TKVCAF
TKXCAF
- TKXDEIGES
- TKXDESTEP
+ TKDEIGES
+ TKDESTEP
TKXSBase
TKernel
)
diff --git a/libsrc/occ/Partition_Loop3d.hxx b/libsrc/occ/Partition_Loop3d.hxx
index e1716691c..e8a434911 100644
--- a/libsrc/occ/Partition_Loop3d.hxx
+++ b/libsrc/occ/Partition_Loop3d.hxx
@@ -10,27 +10,16 @@
#ifndef _Partition_Loop3d_HeaderFile
#define _Partition_Loop3d_HeaderFile
-#ifndef _TopTools_ListOfShape_HeaderFile
-#include <TopTools_ListOfShape.hxx>
-#endif
-#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Version.hxx>
#include <Standard_Boolean.hxx>
-#endif
-#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
-#endif
-#ifndef _Standard_Version_HeaderFile
-#include <Standard_Version.hxx>
-#endif
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#if OCC_VERSION_HEX < 0x070000
+#if OCC_VERSION_HEX < 0x070000 || OCC_VERSION_HEX > 0x070799
#else
#include <TopTools_ShapeMapHasher.hxx>
#include <TopTools_OrientedShapeMapHasher.hxx>
- #include <TopTools_MapOfOrientedShape.hxx>
#endif
class TopoDS_Shape;
@@ -38,6 +27,8 @@ class TopoDS_Shape;
#if OCC_VERSION_HEX < 0x070000
class TopTools_ListOfShape;
class TopTools_MapOfOrientedShape;
+#else
+#include <TopTools_MapOfOrientedShape.hxx>
#endif
class TopoDS_Edge;
diff --git a/libsrc/occ/occ_edge.cpp b/libsrc/occ/occ_edge.cpp
index 0c907d78b..fd64c9a42 100644
--- a/libsrc/occ/occ_edge.cpp
+++ b/libsrc/occ/occ_edge.cpp
@@ -55,7 +55,11 @@ namespace netgen
size_t OCCEdge::GetHash() const
{
+#if OCC_VERSION_HEX < 0x070800
return edge.HashCode(std::numeric_limits<Standard_Integer>::max());
+#else
+ return std::hash<TopoDS_Shape>{}(edge);
+#endif
}
void OCCEdge::ProjectPoint(Point<3>& p, EdgePointGeomInfo* gi) const
diff --git a/libsrc/occ/occ_face.cpp b/libsrc/occ/occ_face.cpp
index 239982aa8..ea4dd15b4 100644
--- a/libsrc/occ/occ_face.cpp
+++ b/libsrc/occ/occ_face.cpp
@@ -32,7 +32,11 @@ namespace netgen
size_t OCCFace::GetHash() const
{
+#if OCC_VERSION_HEX < 0x070800
return face.HashCode(std::numeric_limits<Standard_Integer>::max());
+#else
+ return std::hash<TopoDS_Shape>{}(face);
+#endif
}
Point<3> OCCFace::GetCenter() const
diff --git a/libsrc/occ/occ_solid.hpp b/libsrc/occ/occ_solid.hpp
index d598de4a2..66f28d73a 100644
--- a/libsrc/occ/occ_solid.hpp
+++ b/libsrc/occ/occ_solid.hpp
@@ -16,8 +16,11 @@ namespace netgen
OCCSolid(TopoDS_Shape dshape)
: solid(TopoDS::Solid(dshape))
{ }
-
+#if OCC_VERSION_HEX < 0x070800
size_t GetHash() const override { return solid.HashCode(std::numeric_limits<Standard_Integer>::max()); }
+#else
+ size_t GetHash() const override { return std::hash<TopoDS_Solid>{}(solid); }
+#endif
};
}
diff --git a/libsrc/occ/occ_vertex.cpp b/libsrc/occ/occ_vertex.cpp
index 6e83c8944..be8e38732 100644
--- a/libsrc/occ/occ_vertex.cpp
+++ b/libsrc/occ/occ_vertex.cpp
@@ -19,6 +19,10 @@ namespace netgen
size_t OCCVertex::GetHash() const
{
+#if OCC_VERSION_HEX < 0x070800
return vertex.HashCode(std::numeric_limits<Standard_Integer>::max());
+#else
+ return std::hash<TopoDS_Shape>{}(vertex);
+#endif
}
}
diff --git a/libsrc/occ/occgeom.cpp b/libsrc/occ/occgeom.cpp
index bc0383f99..826134ba0 100644
--- a/libsrc/occ/occgeom.cpp
+++ b/libsrc/occ/occgeom.cpp
@@ -1716,9 +1716,13 @@ namespace netgen
/*
// enumerate shapes and archive only integers
auto my_hash = [](const TopoDS_Shape & key) {
+#if OCC_VERSION_HEX < 0x070800
auto occ_hash = key.HashCode(1<<31UL);
return std::hash<decltype(occ_hash)>()(occ_hash);
+#else
+ return std::hash<TopoDS_Shape>{}(key);
+#endif
};
*/
TopTools_IndexedMapOfShape shape_map;
Array<TopoDS_Shape> shape_list;
|