-// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021 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
#include "SMDS_SetIterator.hxx"
#include "SMDS_MeshNode.hxx"
+#include <smIdType.hxx>
+
#include <gp_XYZ.hxx>
#include <gp_XY.hxx>
TVECTOR v2( vec );
vec.swap( v2 );
}
+
/*!
* \brief Auto pointer
*/
private:
Deleter( const Deleter& );
};
+
/*!
* \brief Auto pointer to array
*/
TOBJ* _obj;
ArrayDeleter( TOBJ* obj ): _obj( obj ) {}
~ArrayDeleter() { delete [] _obj; _obj = 0; }
+ operator TOBJ*() { return _obj; }
+ TOBJ* get() { return _obj; }
private:
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 )
{
< 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 );
+ }
}
//=======================================================================
// methods for usage of SMESH_TLink as a hasher in NCollection maps
static int HashCode(const SMESH_TLink& link, int aLimit)
{
- return ::HashCode( link.node1()->GetID() + link.node2()->GetID(), aLimit );
+ return smIdHasher::HashCode( link.node1()->GetID() + link.node2()->GetID(), aLimit );
}
static Standard_Boolean IsEqual(const SMESH_TLink& l1, const SMESH_TLink& l2)
{
{
static Standard_Integer HashCode(const SMDS_MeshElement* e, const Standard_Integer upper)
{
- return ::HashCode( e->GetID(), upper );
+ return smIdHasher::HashCode( e->GetID(), upper );
}
static Standard_Boolean IsEqual( const SMDS_MeshElement* e1, const SMDS_MeshElement* e2 )
{
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(); }