X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_MeshEditor.hxx;h=870660a8aa4adbef75f0deafbe441e65d9344e3d;hb=065232801d4a2f74e2b18e67b2316be72ab72fe2;hp=a042e4bcc19e7f176e5c41159fab43ea57075ca2;hpb=664ae5e0335821f9ca1ca863d3853841577ffd7c;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_MeshEditor.hxx b/src/SMESH/SMESH_MeshEditor.hxx index a042e4bcc..870660a8a 100644 --- a/src/SMESH/SMESH_MeshEditor.hxx +++ b/src/SMESH/SMESH_MeshEditor.hxx @@ -137,7 +137,6 @@ public: bool TriToQuad (TIDSortedElemSet & theElems, SMESH::Controls::NumericalFunctorPtr theCriterion, const double theMaxAngle); - /*! * \brief Split quadrangles into triangles. * \param theElems - The faces to be splitted. @@ -146,7 +145,6 @@ public: */ bool QuadToTri (TIDSortedElemSet & theElems, SMESH::Controls::NumericalFunctorPtr theCriterion); - /*! * \brief Split quadrangles into triangles. * \param theElems - The faces to be splitted. @@ -155,6 +153,11 @@ public: */ bool QuadToTri (TIDSortedElemSet & theElems, 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. + */ + void QuadTo4Tri (TIDSortedElemSet & theElems); /*! * \brief Find better diagonal for splitting. @@ -190,6 +193,13 @@ public: // If the2D, smoothing is performed using UV parameters of nodes // on geometrical faces + typedef TIDTypeCompare TElemSort; + typedef std::map < const SMDS_MeshElement*, + std::list, TElemSort > TTElemOfElemListMap; + typedef std::map > TNodeOfNodeListMap; + typedef TNodeOfNodeListMap::iterator TNodeOfNodeListMapItr; + typedef std::vector TVecOfNnlmiMap; + typedef std::map TElemOfVecOfNnlmiMap; typedef std::auto_ptr< std::list > PGroupIDs; PGroupIDs RotationSweep (TIDSortedElemSet & theElements, @@ -243,13 +253,13 @@ public: * @param theTolerance - uses for comparing locations of nodes if flag * EXTRUSION_FLAG_SEW is set */ - PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems, - const gp_Vec& theStep, - const int theNbSteps, - TElemOfElemListMap& newElemsMap, - const bool theMakeGroups, - const int theFlags = EXTRUSION_FLAG_BOUNDARY, - const double theTolerance = 1.e-6); + PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems, + const gp_Vec& theStep, + const int theNbSteps, + TTElemOfElemListMap& newElemsMap, + const bool theMakeGroups, + const int theFlags = EXTRUSION_FLAG_BOUNDARY, + const double theTolerance = 1.e-6); /*! * Generate new elements by extrusion of theElements @@ -261,12 +271,12 @@ public: * EXTRUSION_FLAG_SEW is set * @param theParams - special structure for manage of extrusion */ - PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems, - ExtrusParam& theParams, - TElemOfElemListMap& newElemsMap, - const bool theMakeGroups, - const int theFlags, - const double theTolerance); + PGroupIDs ExtrusionSweep (TIDSortedElemSet & theElems, + ExtrusParam& theParams, + TTElemOfElemListMap& newElemsMap, + const bool theMakeGroups, + const int theFlags, + const double theTolerance); // Generate new elements by extrusion of theElements @@ -501,6 +511,8 @@ public: // Return an index of the shape theElem is on // or zero if a shape not found + void DoubleElements( const TIDSortedElemSet& theElements ); + bool DoubleNodes( const std::list< int >& theListOfNodes, const std::list< int >& theListOfModifiedElems ); @@ -576,13 +588,6 @@ public: const SMESH_SequenceOfElemPtr& elemGens, const std::string& postfix, SMESH_Mesh* targetMesh=0); - - - typedef std::map > TNodeOfNodeListMap; - typedef TNodeOfNodeListMap::iterator TNodeOfNodeListMapItr; - typedef std::vector TVecOfNnlmiMap; - typedef std::map TElemOfVecOfNnlmiMap; - /*! * \brief Create elements by sweeping an element * \param elem - element to sweep @@ -607,7 +612,7 @@ public: * \param srcElements - to append elem for each generated element */ void makeWalls (TNodeOfNodeListMap & mapNewNodes, - TElemOfElemListMap & newElemsMap, + TTElemOfElemListMap & newElemsMap, TElemOfVecOfNnlmiMap & elemNewNodesMap, TIDSortedElemSet& elemSet, const int nbSteps,