X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_MeshAlgos.hxx;h=4d9fba8d97a378210c98cd4e82aa9a86004db363;hp=3b1097a66002f67e43fb836fa4caf53d63f04e42;hb=7b4c10fd0e3bd5f6612582fb9ef39965b8f0055a;hpb=baf83bed4152b4ac101ebe43f442a4f8a1acd712;ds=sidebyside diff --git a/src/SMESHUtils/SMESH_MeshAlgos.hxx b/src/SMESHUtils/SMESH_MeshAlgos.hxx index 3b1097a66..4d9fba8d9 100644 --- a/src/SMESHUtils/SMESH_MeshAlgos.hxx +++ b/src/SMESHUtils/SMESH_MeshAlgos.hxx @@ -198,7 +198,6 @@ namespace SMESH_MeshAlgos bool IsRightOrder( const SMDS_MeshElement* face, const SMDS_MeshNode* node0, const SMDS_MeshNode* node1 ); - /*! * \brief Mark elements given by SMDS_Iterator */ @@ -247,6 +246,27 @@ namespace SMESH_MeshAlgos MarkElems( (*it)->nodesIterator(), isMarked ); } + // 2 nodes + optional medium node + struct Edge + { + const SMDS_MeshNode* _node1; + const SMDS_MeshNode* _node2; + const SMDS_MeshNode* _medium; + }; + + /*! + * Return sharp edges of faces and non-manifold ones. + * Optionally adds existing edges to the result. Angle is in degrees. + */ + std::vector< Edge > FindSharpEdges( SMDS_Mesh* mesh, + double angle, + bool addExisting ); + + /*! + * Distribute all faces of the mesh between groups using given edges. + */ + std::vector< std::vector< const SMDS_MeshElement* > > + SeparateFacesByEdges( SMDS_Mesh* mesh, const std::vector< Edge >& edges ); typedef std::vector TFreeBorder;