-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
*/
bool triangulate( std::vector< const SMDS_MeshNode*>& nodes, const size_t nbNodes );
- /*!
- * \brief Vertex of a polygon. Together with 2 neighbor Vertices represents a triangle
- */
- struct PolyVertex
- {
- SMESH_NodeXYZ _nxyz;
- size_t _index;
- gp_XY _xy;
- PolyVertex* _prev;
- PolyVertex* _next;
-
- void SetNodeAndNext( const SMDS_MeshNode* n, PolyVertex& v, size_t index );
- void GetTriaNodes( const SMDS_MeshNode** nodes, size_t* nodeIndices) const;
- double TriaArea() const;
- bool IsInsideTria( const PolyVertex* v );
- PolyVertex* Delete();
- };
+ struct PolyVertex;
struct Optimizer;
+ struct Data;
- std::vector< PolyVertex > _pv;
- std::vector< size_t > _nodeIndex;
- Optimizer* _optimizer;
+ Data* _data;
+ Optimizer* _optimizer;
};
// structure used in MakePolyLine() to define a cutting plane
/*!
* 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