Salome HOME
Fix porting error jfa/Porting_OCCT_780
authorjfa <jfa@opencascade.com>
Wed, 21 Feb 2024 16:12:31 +0000 (16:12 +0000)
committerjfa <jfa@opencascade.com>
Wed, 21 Feb 2024 16:12:31 +0000 (16:12 +0000)
src/SMESHDS/SMESHDS_Mesh.hxx

index 1753bccf6b3fc6755183051426ae6fd0a9f6ab24..9cdd7395eb38831e38568e8d4c585d6e49291563 100644 (file)
@@ -61,10 +61,9 @@ class SMDS_BallElement;
 #include <NCollection_DataMap.hxx>
 typedef std::list<const SMESHDS_Hypothesis*>                          THypList;
 
-#if OCC_VERSION_LARGE < 0x07080000
-
 struct SMESHDS_Hasher
 {
+#if OCC_VERSION_LARGE < 0x07080000
   static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
                                          const TopoDS_Shape& S2)
   {
@@ -75,14 +74,20 @@ struct SMESHDS_Hasher
   {
     return ::HashCode( S, Upper);
   }
-};
-typedef NCollection_DataMap< TopoDS_Shape, THypList, SMESHDS_Hasher > ShapeToHypothesis;
-
 #else
-
-typedef NCollection_DataMap< TopoDS_Shape, THypList > ShapeToHypothesis;
-
+  bool operator()(const TopoDS_Shape& S1, const TopoDS_Shape& S2) const
+  {
+    // for the purpose of ShapeToHypothesis map we don't consider shapes orientation
+    return S1.IsSame(S2);
+  }
+  size_t operator()(const TopoDS_Shape& S) const
+  {
+    return std::hash<TopoDS_Shape>{}(S);
+  }
 #endif
+};
+
+typedef NCollection_DataMap< TopoDS_Shape, THypList, SMESHDS_Hasher > ShapeToHypothesis;
 
 class SMESHDS_GroupBase;
 class DownIdType;