X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Profile.cxx;h=c9b349f834aed41eb46b29a02ba0831db1d14039;hb=c363fc5c3541669e07cf4d991cc1e94253147ac1;hp=ee0d204bd4f2e3bd02142c6310822bc3454a8f5f;hpb=ccba842d3f399476c64ddc0bebc191e3c1daebd0;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Profile.cxx b/src/HYDROCurveCreator/CurveCreator_Profile.cxx index ee0d204b..c9b349f8 100644 --- a/src/HYDROCurveCreator/CurveCreator_Profile.cxx +++ b/src/HYDROCurveCreator/CurveCreator_Profile.cxx @@ -68,7 +68,7 @@ bool CurveCreator_Profile::clearInternal() { // erase curve from the viewer if( myDisplayer ) - myDisplayer->erase( true ); + myDisplayer->eraseAll( true ); // Delete all allocated data. mySections[ 0 ]->myPoints.clear(); @@ -136,13 +136,13 @@ bool CurveCreator_Profile::setClosed( const int theISection, bool CurveCreator_Profile::setSectionTypeInternal( const int theISection, const CurveCreator::SectionType theType ) { - return false; + return CurveCreator_Curve::setSectionTypeInternal( theISection, theType ); } bool CurveCreator_Profile::setSectionType( const int theISection, const CurveCreator::SectionType theType ) { - return false; + return CurveCreator_Curve::setSectionType( theISection, theType ); } bool CurveCreator_Profile::addPointsInternal( const CurveCreator::SectionsMap &theSectionsMap ) @@ -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 ); - } - } + std::list aConvPoints; + convert( aSectionPoints, aConvPoints ); + removeSectionPoints( anISection, aConvPoints ); - res = addPointsInternal( theSectionsMap ); - - 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 ); + } }