Salome HOME
[bos #32517][EDF] Dynamic log messages switched on and off by SALOME_VERBOSE environm...
[modules/smesh.git] / src / SMESHUtils / SMESH_MeshAlgos.hxx
index 1ceb456dbff1c8846149c70b447103679594cc3f..ea5a1ee094bc37594f34aab0367d7e33edd2809d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  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
@@ -187,12 +187,24 @@ namespace SMESH_MeshAlgos
   SMESHUtils_EXPORT
   bool FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool normalized=true);
 
+  /*!
+   * \brief Return number of nodes common to two elements
+   */
+  SMESHUtils_EXPORT
+  int NbCommonNodes(const SMDS_MeshElement* e1,
+                    const SMDS_MeshElement* e2);
   /*!
    * \brief Return nodes common to two elements
    */
   SMESHUtils_EXPORT
   std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1,
                                                     const SMDS_MeshElement* e2);
+  /*!
+   * \brief Return true if a node is on a boundary of 2D mesh.
+   *        Optionally returns two neighboring boundary nodes (or more in non-manifold mesh)
+   */
+  SMESHUtils_EXPORT bool IsOn2DBoundary( const SMDS_MeshNode* node,
+                                         std::vector< const SMDS_MeshNode*> * neibors = nullptr );
   /*!
    * \brief Return true if node1 encounters first in the face and node2, after.
    *        The nodes are supposed to be neighbor nodes in the face.
@@ -219,6 +231,7 @@ namespace SMESH_MeshAlgos
 
   /*!
    * \brief Mark elements given by SMDS_Iterator
+   * \sa SMDS_Mesh::SetAllNodesNotMarked() and SMDS_Mesh::SetAllCellsNotMarked()
    */
   template< class ElemIter >
   void MarkElems( ElemIter it, const bool isMarked )
@@ -500,7 +513,7 @@ namespace SMESH_MeshAlgos
 
   /*!
    * Create a slot of given width around given 1D elements lying on a triangle mesh.
-   * The slot is consrtucted by cutting faces by cylindrical surfaces made around each segment.
+   * The slot is constructed by cutting faces by cylindrical surfaces made around each segment.
    * \return Edges located at the slot boundary
    */
   // Implemented in ./SMESH_Slot.cxx