X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ProfileInterpolateOp.cxx;h=3ea3a5ea84cd10b67af289a4158ef828e3fa960e;hb=fce3f1240b6161d7cb837344078e5943b90eca65;hp=4f3286288aeecfa7e0c1cb1d5791e368bc3be441;hpb=adf1c2cc49502c366a2637adfcda9c1c71b11887;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx b/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx index 4f328628..3ea3a5ea 100644 --- a/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx @@ -1,8 +1,4 @@ -// Copyright (C) 2007-2015 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 -// +// Copyright (C) 2014-2015 EDF-R&D // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either @@ -23,6 +19,7 @@ #include #include "HYDROGUI_Tool.h" +#include "HYDROGUI_Tool2.h" #include "HYDROGUI_Module.h" #include "HYDROGUI_DataObject.h" #include "HYDROGUI_UpdateFlags.h" @@ -69,11 +66,14 @@ void HYDROGUI_ProfileInterpolateOp::startOperation() { HYDROGUI_Operation::startOperation(); - HYDROGUI_ProfileInterpolateDlg* aPanel = ::qobject_cast( inputPanel() ); - if ( aPanel ) + if ( isApplyAndClose() ) { + HYDROGUI_ProfileInterpolateDlg* aPanel = ::qobject_cast( inputPanel() ); + if ( aPanel ) + { aPanel->reset(); aPanel->setInterpolators( interpolators() ); + } } } @@ -142,12 +142,12 @@ bool HYDROGUI_ProfileInterpolateOp::processApply( int& theUpdateFlags, QString& commitDocOperation(); else { - errMessage = tr( "CALCULATE_ERROR" ), QString( anIterp->GetErrorMessage().c_str() ); + errMessage = tr( "CALCULATE_ERROR" ), QString( HYDROGUI_Tool::ToQString( anIterp->GetErrorMessage() ) ); abortDocOperation(); } } else - errMessage = tr( "CANT_GET_RIVER_OBJECT" ).arg( aDlg->river() ); + errMessage = tr( "CANT_GET_STREAM_OBJECT" ).arg( aDlg->river() ); if ( !errMessage.isEmpty() ) QMessageBox::critical( aDlg->topLevelWidget(), tr( "INTERPOLATION_ERROR" ), errMessage, QMessageBox::Ok ); @@ -208,24 +208,19 @@ void HYDROGUI_ProfileInterpolateOp::updateInterpolator( HYDROData_IProfilesInter theInt->SetResultProfilesNumber( aDlg->profileNumber() ); theInt->SetProfiles( profile( aDlg->profileStart() ), profile( aDlg->profileFinish() ) ); ParamsList aParams = parameters( aDlg->interpolatorParameters() ); - for ( ParamsList::Iterator it = aParams.begin(); it != aParams.end(); ++it ) - theInt->SetParameter( (*it).first.toStdString(), (*it).second.toStdString() ); + for ( ParamsList::Iterator it = aParams.begin(); it != aParams.end(); ++it ) { + theInt->SetParameter( HYDROGUI_Tool::ToAsciiString( (*it).first ), + HYDROGUI_Tool::ToAsciiString( (*it).second ) ); + } } -std::vector HYDROGUI_ProfileInterpolateOp::profile( const QString& theName ) const +HYDROData_Profile::ProfilePoints HYDROGUI_ProfileInterpolateOp::profile( const QString& theName ) const { - std::vector aPoints; + HYDROData_Profile::ProfilePoints aPoints; Handle(HYDROData_Profile) aProf = Handle(HYDROData_Profile)::DownCast( HYDROGUI_Tool::FindObjectByName( module(), theName, KIND_PROFILE ) ); if ( !aProf.IsNull() ) { - HYDROData_Profile::ProfilePoints aPntList = aProf->GetProfilePoints(); - for ( int i = aPntList.Lower(); i <= aPntList.Upper(); i++ ) - { - HYDROData_Profile::ProfilePoint aPnt = aPntList.Value( i ); - aPoints.push_back( aPnt.X() ); - aPoints.push_back( aPnt.Y() ); - aPoints.push_back( aPnt.Z() ); - } + aPoints = aProf->GetProfilePoints(); } return aPoints; } @@ -270,9 +265,11 @@ QStringList HYDROGUI_ProfileInterpolateOp::interpolators() const QStringList aNames; if ( anIFactory ) { - std::vector iNames = anIFactory->GetInterpolatorNames(); - for ( std::vector::iterator it = iNames.begin(); it != iNames.end(); ++it ) - aNames.append( (*it).c_str() ); + NCollection_Sequence iNames = anIFactory->GetInterpolatorNames(); + for ( int i = 1, n = iNames.Size(); i <= n; ++i ) { + const TCollection_AsciiString& anInterpName = iNames.Value( i ); + aNames.append( HYDROGUI_Tool::ToQString( anInterpName ) ); + } } return aNames; @@ -287,7 +284,7 @@ HYDROData_IProfilesInterpolator* HYDROGUI_ProfileInterpolateOp::interpolator( co HYDROData_IProfilesInterpolator* aRes = 0; if ( anIFactory ) - aRes = anIFactory->GetInterpolator( theName.toStdString() ); + aRes = anIFactory->GetInterpolator( HYDROGUI_Tool::ToAsciiString( theName ) ); return aRes; } @@ -300,10 +297,8 @@ TopoDS_Shape HYDROGUI_ProfileInterpolateOp::previewShape( HYDROData_IProfilesInt aBuilder.MakeCompound( aPreviewShape ); for ( int i = 0; i < theInterp->GetCalculatedProfilesNumber(); i++ ) { - NCollection_Sequence pointSeq; - std::vector aPoints = theInterp->GetResultProfile( i ); - for ( int i = 0; i < (int) aPoints.size(); i += 3 ) - pointSeq.Append( gp_XYZ( aPoints[i], aPoints[i+1], aPoints[i+2] ) ); + NCollection_Sequence pointSeq = theInterp->GetResultProfilePoints( i ); + TopoDS_Shape aWire = HYDROData_PolylineXY::BuildWire( HYDROData_IPolyline::SECTION_SPLINE, false, pointSeq ); if ( !aWire.IsNull() ) aBuilder.Add( aPreviewShape, aWire ); @@ -320,7 +315,7 @@ void HYDROGUI_ProfileInterpolateOp::onInterpolatorChanged( const QString& theInt if ( !aPanel || !anInterp ) return; - aPanel->setInterpolatorDescription( QString( anInterp->GetDescription().c_str() ) ); + aPanel->setInterpolatorDescription( HYDROGUI_Tool::ToQString( anInterp->GetDescription() ) ); updatePreview(); }