X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_Regular_1D.cxx;h=73f11aff59838b56942fbddde96630ed2ad443a3;hb=8682ebb1ebbf9c8392c8fa4adcce76d37e171859;hp=da5abc3ecb096f0562999b5ecf6d89ec31139633;hpb=251f8c052dd12dd29922210dc901b295fe999a0e;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_Regular_1D.cxx b/src/StdMeshers/StdMeshers_Regular_1D.cxx index da5abc3ec..73f11aff5 100644 --- a/src/StdMeshers/StdMeshers_Regular_1D.cxx +++ b/src/StdMeshers/StdMeshers_Regular_1D.cxx @@ -690,25 +690,28 @@ bool StdMeshers_Regular_1D::computeInternalParameters(SMESH_Mesh & theMesh, if ( smDS->NbNodes() < 1 ) return true; // 1 segment - vector< double > mainEdgeParams; - if ( ! SMESH_Algo::GetNodeParamOnEdge( theMesh.GetMeshDS(), mainEdge, mainEdgeParams )) + map< double, const SMDS_MeshNode* > mainEdgeParamsOfNodes; + if ( ! SMESH_Algo::GetSortedNodesOnEdge( theMesh.GetMeshDS(), mainEdge, _quadraticMesh, + mainEdgeParamsOfNodes, SMDSAbs_Edge )) return error("Bad node parameters on the source edge of Propagation Of Distribution"); - vector< double > segLen( mainEdgeParams.size() - 1 ); + vector< double > segLen( mainEdgeParamsOfNodes.size() - 1 ); double totalLen = 0; BRepAdaptor_Curve mainEdgeCurve( mainEdge ); - for ( size_t i = 1; i < mainEdgeParams.size(); ++i ) + map< double, const SMDS_MeshNode* >::iterator + u_n2 = mainEdgeParamsOfNodes.begin(), u_n1 = u_n2++; + for ( size_t i = 1; i < mainEdgeParamsOfNodes.size(); ++i, ++u_n1, ++u_n2 ) { segLen[ i-1 ] = GCPnts_AbscissaPoint::Length( mainEdgeCurve, - mainEdgeParams[i-1], - mainEdgeParams[i]); + u_n1->first, + u_n2->first); totalLen += segLen[ i-1 ]; } for ( size_t i = 0; i < segLen.size(); ++i ) segLen[ i ] *= theLength / totalLen; - size_t iSeg = theReverse ? segLen.size()-1 : 0; - size_t dSeg = theReverse ? -1 : +1; + size_t iSeg = theReverse ? segLen.size()-1 : 0; + size_t dSeg = theReverse ? -1 : +1; double param = theFirstU; int nbParams = 0; for ( int i = 0, nb = segLen.size()-1; i < nb; ++i, iSeg += dSeg )