X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_MeshEditor.hxx;h=221a78d46494c1bb01334b345fe1d38bfac87948;hb=09bc0414c91ebabb67c7fe200549044a1854e199;hp=1773a1bf6980c605141cbc56f74586c4bfe1f2ed;hpb=985eaf19254291678afe1040ec41fbf1fa8f5d4d;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_MeshEditor.hxx b/src/SMESH/SMESH_MeshEditor.hxx index 1773a1bf6..221a78d46 100644 --- a/src/SMESH/SMESH_MeshEditor.hxx +++ b/src/SMESH/SMESH_MeshEditor.hxx @@ -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 TVecOfNnlmiMap; typedef std::map TElemOfVecOfNnlmiMap; - typedef std::auto_ptr< std::list > 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 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: /*!