X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Profile.cxx;h=c9b349f834aed41eb46b29a02ba0831db1d14039;hb=d6a39d0ff1901a6d762c8a904774517b2dc5ba27;hp=d34695d9688de31e6d2dbe484715c8e92330c0c7;hpb=26e583f66a1d492ebe7d2cab874273697e455f8c;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Profile.cxx b/src/HYDROCurveCreator/CurveCreator_Profile.cxx index d34695d9..c9b349f8 100644 --- a/src/HYDROCurveCreator/CurveCreator_Profile.cxx +++ b/src/HYDROCurveCreator/CurveCreator_Profile.cxx @@ -216,34 +216,40 @@ bool CurveCreator_Profile::addPointsInternal( const CurveCreator::SectionsMap &t //! For internal use only! Undo/Redo are not used here. bool CurveCreator_Profile::setPointInternal( const CurveCreator::SectionsMap &theSectionsMap ) { - bool res = false; + bool aRes = false; - CurveCreator_Section* aSection = mySections.at( 0 ); + int anISection = 0; + CurveCreator_Section* aSection = mySections.at( anISection ); if( !aSection ) - return res; + return aRes; CurveCreator::SectionsMap::const_iterator anIt = theSectionsMap.begin(); - for ( ; anIt != theSectionsMap.end(); anIt++ ) - { - int anISection = anIt->first; - if( anISection != 0 ) - continue; + if ( anIt == theSectionsMap.end() ) + return aRes; - const CurveCreator::PosPointsList& aSectionPoints = anIt->second; + const CurveCreator::PosPointsList& aSectionPoints = anIt->second; - CurveCreator::PosPointsList::const_iterator aPntIt = aSectionPoints.begin(); - for( ; aPntIt != aSectionPoints.end(); aPntIt++ ) - { - int anIPnt = (*aPntIt)->myID; - aSection->myPoints.erase( aSection->myPoints.begin() + toICoord( anIPnt ), - aSection->myPoints.begin() + toICoord( anIPnt ) + 2 ); - } - } - - res = addPointsInternal( theSectionsMap ); + std::list aConvPoints; + convert( aSectionPoints, aConvPoints ); + removeSectionPoints( anISection, aConvPoints ); - if ( res ) + aRes = addPointsInternal( theSectionsMap ); + if ( aRes ) redisplayCurve(); - return res; + return aRes; +} + +void CurveCreator_Profile::convert( const CurveCreator::PosPointsList& thePoints, + std::list& theConvPoints ) +{ + theConvPoints.clear(); + + CurveCreator::PosPointsList::const_iterator aPntIt = thePoints.begin(), + aPntLast = thePoints.end(); + for( ; aPntIt != aPntLast; aPntIt++ ) + { + int anIPnt = (*aPntIt)->myID; + theConvPoints.push_back( anIPnt ); + } }