X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_TypeDefs.hxx;h=ddca90c8124121670c6c3c31471a3942d4e48bd1;hb=b0797b305a39b4f5aa34a6fb1eab8d83e2ddb3e4;hp=9fbc5b076ade419dc7c865af26091a5a74b79c3b;hpb=88141f757b048eaa5aae0be49faaf274448bbcaf;p=modules%2Fsmesh.git diff --git a/src/SMESHUtils/SMESH_TypeDefs.hxx b/src/SMESHUtils/SMESH_TypeDefs.hxx index 9fbc5b076..ddca90c81 100644 --- a/src/SMESHUtils/SMESH_TypeDefs.hxx +++ b/src/SMESHUtils/SMESH_TypeDefs.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -76,6 +76,7 @@ namespace SMESHUtils TVECTOR v2( vec ); vec.swap( v2 ); } + /*! * \brief Auto pointer */ @@ -91,6 +92,7 @@ namespace SMESHUtils private: Deleter( const Deleter& ); }; + /*! * \brief Auto pointer to array */ @@ -104,6 +106,9 @@ namespace SMESHUtils ArrayDeleter( const ArrayDeleter& ); }; + /*! + * \return SMDS_ElemIteratorPtr on an std container of SMDS_MeshElement's + */ template < class ELEM_SET > SMDS_ElemIteratorPtr elemSetIterator( const ELEM_SET& elements ) { @@ -111,6 +116,24 @@ namespace SMESHUtils < SMDS_pElement, typename ELEM_SET::const_iterator> TSetIterator; return boost::make_shared< TSetIterator >( elements.begin(), elements.end() ); } + + /*! + * \brief Increment enum value + */ + template < typename ENUM > + void Increment( ENUM& v, int delta=1 ) + { + v = ENUM( int(v)+delta ); + } + + /*! + * \brief Return incremented enum value + */ + template < typename ENUM > + ENUM Add( ENUM v, int delta ) + { + return ENUM( int(v)+delta ); + } } //======================================================================= @@ -185,6 +208,21 @@ struct SMESH_TNodeXYZ : public gp_XYZ }; typedef SMESH_TNodeXYZ SMESH_NodeXYZ; +// -------------------------------------------------------------------------------- +// SMESH_Hasher provide methods needed to put mesh data to NCollection maps + +struct SMESH_Hasher +{ + static Standard_Integer HashCode(const SMDS_MeshElement* e, const Standard_Integer upper) + { + return ::HashCode( e->GetID(), upper ); + } + static Standard_Boolean IsEqual( const SMDS_MeshElement* e1, const SMDS_MeshElement* e2 ) + { + return ( e1 == e2 ); + } +}; + //-------------------------------------------------- /*! * \brief Data of a node generated on FACE boundary @@ -198,7 +236,7 @@ typedef struct uvPtStruct double x, y; // 2d parameter, normalized [0,1] const SMDS_MeshNode * node; - uvPtStruct(): node(NULL) {} + uvPtStruct(const SMDS_MeshNode* n = 0): node(n) {} inline gp_XY UV() const { return gp_XY( u, v ); } inline void SetUV( const gp_XY& uv ) { u = uv.X(); v = uv.Y(); }