#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)
{
{
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;