X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_QuadFromMedialAxis_1D2D.cxx;h=5cdf93f2bbef8a33d920aff261ab54975655d3ac;hb=8606805252362caea2274a0fe99ecf46edfef3de;hp=c531c5aaee5881e63bee3c138e68e0b251501c73;hpb=bd7477efc255f965c479d88d1be1ee3dbf4aa760;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_QuadFromMedialAxis_1D2D.cxx b/src/StdMeshers/StdMeshers_QuadFromMedialAxis_1D2D.cxx index c531c5aae..5cdf93f2b 100644 --- a/src/StdMeshers/StdMeshers_QuadFromMedialAxis_1D2D.cxx +++ b/src/StdMeshers/StdMeshers_QuadFromMedialAxis_1D2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -240,7 +240,7 @@ namespace { TmpMesh() { - _myMeshDS = new SMESHDS_Mesh(/*id=*/0, /*isEmbeddedMode=*/true); + _meshDS = new SMESHDS_Mesh(/*id=*/0, /*isEmbeddedMode=*/true); } }; @@ -260,8 +260,8 @@ namespace virtual void ProcessEvent(const int event, const int eventType, SMESH_subMesh* faceSubMesh, - SMESH_subMeshEventListenerData* data, - const SMESH_Hypothesis* hyp) + SMESH_subMeshEventListenerData* /*data*/, + const SMESH_Hypothesis* /*hyp*/) { if ( eventType == SMESH_subMesh::ALGO_EVENT ) { @@ -603,7 +603,7 @@ namespace theSinuEdges [0].size() > 0 && theSinuEdges [1].size() > 0 ); // the sinuous EDGEs can be composite and C0 continuous, - // therefor we use a complex criterion to find TWO short non-sinuous EDGEs + // therefore we use a complex criterion to find TWO short non-sinuous EDGEs // and the rest EDGEs will be treated as sinuous. // A short edge should have the following features: // a) straight @@ -1018,7 +1018,7 @@ namespace * \param [in] theDivPoints - projections of VERTEXes to MA * \param [in] theSinuEdges - the sinuous EDGEs * \param [in] theSideEdgeIDs - indices of sinuous EDGEs per side - * \param [in] theIsEdgeComputed - is sinuous EGDE is meshed + * \param [in] theIsEdgeComputed - is sinuous EDGE is meshed * \param [in,out] thePointsOnE - the map to fill * \param [out] theNodes2Merge - the map of nodes to merge */ @@ -1154,6 +1154,8 @@ namespace bool isShortPrev[2], isShortNext[2], isPrevCloser[2]; TMAPar2NPoints::iterator u2NPPrev = u2NP, u2NPNext = u2NP; --u2NPPrev; ++u2NPNext; + if ( u2NPNext == thePointsOnE.end() ) + u2NPNext = thePointsOnE.begin(); // hope theSinuFace.IsRing() for ( int iS = 0; iS < 2; ++iS ) // side with Vertex and side with Nodes { NodePoint np = get( u2NP->second, iS ); @@ -1183,6 +1185,8 @@ namespace if ( !npCloseV._node || npCloseV._node == npVert._node ) { npProj = npCloseN; + if ( i+1 < projToMerge.size() && u2NPClose == projToMerge[ i+1 ]) + ++i; thePointsOnE.erase( u2NPClose ); continue; } @@ -1246,7 +1250,7 @@ namespace //================================================================================ void separateNodes( SMESH_MesherHelper& theHelper, - const SMESH_MAT2d::MedialAxis& theMA, + const SMESH_MAT2d::MedialAxis& /*theMA*/, TMAPar2NPoints & thePointsOnE, SinuousFace& theSinuFace, const vector< bool >& theIsComputedEdge) @@ -1641,7 +1645,7 @@ namespace //================================================================================ /*! * \brief Divide the sinuous EDGEs by projecting the division point of Medial - * Axis to the EGDEs + * Axis to the EDGEs * \param [in] theHelper - the helper * \param [in] theMinSegLen - minimal segment length * \param [in] theMA - the Medial Axis @@ -1718,8 +1722,8 @@ namespace if ( isComputed[ edgeIDs1[i]] && isComputed[ edgeIDs2[i]] ) { - int nbNodes1 = meshDS->MeshElements(edgeIDs[ edgeIDs1[i]] )->NbNodes(); - int nbNodes2 = meshDS->MeshElements(edgeIDs[ edgeIDs2[i]] )->NbNodes(); + smIdType nbNodes1 = meshDS->MeshElements(edgeIDs[ edgeIDs1[i]] )->NbNodes(); + smIdType nbNodes2 = meshDS->MeshElements(edgeIDs[ edgeIDs2[i]] )->NbNodes(); if ( nbNodes1 != nbNodes2 ) return false; if (( int(i)-1 >= 0 ) && @@ -1930,7 +1934,7 @@ namespace const vector& theShortEdges, SMESH_Algo* the1dAlgo, const bool theHasRadialHyp, - const bool theIs2nd) + const bool /*theIs2nd*/) { SMESH_Hypothesis::Hypothesis_Status aStatus; for ( size_t i = 0; i < theShortEdges.size(); ++i )