Salome HOME
54522: Compound Mesh: bad groups with meshToAppendTo provided
[modules/smesh.git] / src / SMESHUtils / SMESH_MeshAlgos.hxx
index 03e695a1dee06a90d35c07f9975755e9fcc0c3d7..1ceb456dbff1c8846149c70b447103679594cc3f 100644 (file)
@@ -443,28 +443,12 @@ namespace SMESH_MeshAlgos
 
     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
@@ -521,9 +505,10 @@ namespace SMESH_MeshAlgos
    */
   // 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