-// 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
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.
/*!
* \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 )