-// 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 )
/*!
* 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
SMESHUtils_EXPORT
- std::vector< Edge > MakeSlot( SMDS_ElemIteratorPtr segmentIt,
- double width,
- SMDS_Mesh* mesh);
+ std::vector< Edge > MakeSlot( SMDS_ElemIteratorPtr segmentIt,
+ double width,
+ SMDS_Mesh* mesh,
+ std::vector< SMDS_MeshGroup* > & groupsToUpdate);
} // namespace SMESH_MeshAlgos