-// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#ifndef __SMESH_TypeDefs_HXX__
#define __SMESH_TypeDefs_HXX__
+#include <Basics_OCCTVersion.hxx>
+
#include "SMESH_Utils.hxx"
#include "SMDS_SetIterator.hxx"
#include <gp_XYZ.hxx>
#include <gp_XY.hxx>
+#include <NCollection_Sequence.hxx>
#include <map>
#include <list>
const SMDS_MeshNode* node2() const { return second; }
// methods for usage of SMESH_TLink as a hasher in NCollection maps
+ //static int HashCode(const SMESH_TLink& link, int aLimit)
+ //{
+ // return smIdHasher::HashCode( link.node1()->GetID() + link.node2()->GetID(), aLimit );
+ //}
+ //static Standard_Boolean IsEqual(const SMESH_TLink& l1, const SMESH_TLink& l2)
+ //{
+ // return ( l1.node1() == l2.node1() && l1.node2() == l2.node2() );
+ //}
+};
+// a hasher in NCollection maps
+struct SMESH_TLinkHasher
+{
+#if OCC_VERSION_LARGE < 0x07080000
static int HashCode(const SMESH_TLink& link, int aLimit)
{
return smIdHasher::HashCode( link.node1()->GetID() + link.node2()->GetID(), aLimit );
{
return ( l1.node1() == l2.node1() && l1.node2() == l2.node2() );
}
+#else
+ size_t operator()(const SMESH_TLink& link) const
+ {
+ return smIdHasher()( link.node1()->GetID() + link.node2()->GetID() );
+ }
+ bool operator()(const SMESH_TLink& l1, const SMESH_TLink& l2) const
+ {
+ return ( l1.node1() == l2.node1() && l1.node2() == l2.node2() );
+ }
+#endif
};
typedef SMESH_TLink SMESH_Link;
}
return false;
}
+ void SetXYZ( const gp_XYZ& p ) { SetCoord( p.X(), p.Y(), p.Z() ); }
const SMDS_MeshNode* Node() const { return _node; }
double Distance(const SMDS_MeshNode* n) const { return (SMESH_TNodeXYZ( n )-*this).Modulus(); }
double SquareDistance(const SMDS_MeshNode* n) const { return (SMESH_TNodeXYZ( n )-*this).SquareModulus(); }
struct SMESH_Hasher
{
+#if OCC_VERSION_LARGE < 0x07080000
static Standard_Integer HashCode(const SMDS_MeshElement* e, const Standard_Integer upper)
{
return smIdHasher::HashCode( e->GetID(), upper );
{
return ( e1 == e2 );
}
+#else
+ size_t operator()(const SMDS_MeshElement* e) const
+ {
+ return smIdHasher()( e->GetID() );
+ }
+
+ bool operator()(const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
+ {
+ return ( e1 == e2 );
+ }
+#endif
};
//--------------------------------------------------
// --------------------------------------------------------------------------------
// class SMESH_SequenceOfNode
-#include <NCollection_DefineSequence.hxx>
-typedef const SMDS_MeshNode* SMDS_MeshNodePtr;
-DEFINE_SEQUENCE(SMESH_SequenceOfNode,
- SMESH_BaseCollectionNodePtr, SMDS_MeshNodePtr)
+typedef const SMDS_MeshNode* SMDS_MeshNodePtr;
+typedef NCollection_Sequence< SMDS_MeshNodePtr > SMESH_SequenceOfNode;
#endif