Salome HOME
23627: [IMACS] ASERIS: project point to the mesh and create a slot
[modules/smesh.git] / src / SMESH / SMESH_MeshEditor.hxx
index 1773a1bf6980c605141cbc56f74586c4bfe1f2ed..221a78d46494c1bb01334b345fe1d38bfac87948 100644 (file)
@@ -199,7 +199,7 @@ public:
                   const bool         the13Diag);
   /*!
    * \brief Split each of given quadrangles into 4 triangles.
-   * \param theElems - The faces to be splitted. If empty all faces are split.
+   * \param theElems - The faces to be split. If empty all faces are split.
    */
   void QuadTo4Tri (TIDSortedElemSet & theElems);
 
@@ -275,7 +275,7 @@ public:
   typedef TNodeOfNodeListMap::iterator                                     TNodeOfNodeListMapItr;
   typedef std::vector<TNodeOfNodeListMapItr>                               TVecOfNnlmiMap;
   typedef std::map<const SMDS_MeshElement*, TVecOfNnlmiMap, TElemSort >    TElemOfVecOfNnlmiMap;
-  typedef std::auto_ptr< std::list<int> > PGroupIDs;
+  typedef std::unique_ptr< std::list< int > >                              PGroupIDs;
 
   PGroupIDs RotationSweep (TIDSortedElemSet   theElements[2],
                            const gp_Ax1&      theAxis,
@@ -465,6 +465,14 @@ public:
                        SMESH_Mesh*        theTargetMesh=0);
   // Move or copy theElements applying theTrsf to their nodes
 
+  PGroupIDs Offset( TIDSortedElemSet & theElements,
+                    const double       theValue,
+                    SMESH_Mesh*        theTgtMesh,
+                    const bool         theMakeGroups,
+                    const bool         theCopyElements,
+                    const bool         theFixSelfIntersection);
+  // Make an offset mesh from a source 2D mesh
+
   typedef std::list< std::list< const SMDS_MeshNode* > > TListOfListOfNodes;
 
   void FindCoincidentNodes (TIDSortedNodeSet &   theNodes,
@@ -542,7 +550,7 @@ public:
   // of the side 2. If nb of links in the free border and
   // between theSide2FirstNode and theSide2LastNode are different,
   // additional nodes are inserted on a link provided that no
-  // volume elements share the splitted link.
+  // volume elements share the split link.
   // The side 2 is a free border if theSide2IsFreeBorder == true.
   // Sewing is performed between the given first, second and last
   // nodes on the sides.
@@ -709,42 +717,6 @@ public:
                        bool                    toAddExistingBondary = false,
                        bool                    aroundElements = false);
 
-
-  // structure used in MakePolyLine() to define a cutting plane
-  struct PolySegment
-  {
-    // 2 points: if myNode2 != 0, then the point is the middle of a face edge defined
-    //           by two nodes, else it is at myNode1
-    const SMDS_MeshNode* myNode1[2];
-    const SMDS_MeshNode* myNode2[2];
-
-    gp_Vec myVector; // vector on the plane; to use a default plane set vector = (0,0,0)
-
-    // point to return coordinates of a middle of the two points, projected to mesh
-    gp_Pnt myMidProjPoint;
-  };
-  typedef std::vector<PolySegment> TListOfPolySegments;
-
-  /*!
-   * \brief Create a polyline consisting of 1D mesh elements each lying on a 2D element of
-   *        the initial mesh. Positions of new nodes are found by cutting the mesh by the
-   *        plane passing through pairs of points specified by each PolySegment structure.
-   *        If there are several paths connecting a pair of points, the shortest path is
-   *        selected by the module. Position of the cutting plane is defined by the two
-   *        points and an optional vector lying on the plane specified by a PolySegment.
-   *        By default the vector is defined by Mesh module as following. A middle point
-   *        of the two given points is computed. The middle point is projected to the mesh.
-   *        The vector goes from the middle point to the projection point. In case of planar
-   *        mesh, the vector is normal to the mesh.
-   *  \param [inout] segments - PolySegment's defining positions of cutting planes.
-   *        Return the used vector and position of the middle point.
-   *  \param [in] group - an optional group where created mesh segments will
-   *        be added.
-   */
-  void MakePolyLine( TListOfPolySegments&   segments,
-                     SMESHDS_Group*         group=0,
-                     SMESH_ElementSearcher* searcher=0);
-
  private:
 
   /*!