-// 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
{
HYDROGUI_Operation::startOperation();
- HYDROGUI_ProfileInterpolateDlg* aPanel = ::qobject_cast<HYDROGUI_ProfileInterpolateDlg*>( inputPanel() );
- if ( aPanel )
+ if ( isApplyAndClose() )
{
+ HYDROGUI_ProfileInterpolateDlg* aPanel = ::qobject_cast<HYDROGUI_ProfileInterpolateDlg*>( inputPanel() );
+ if ( aPanel )
+ {
aPanel->reset();
aPanel->setInterpolators( interpolators() );
+ }
}
}
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 );
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<double> HYDROGUI_ProfileInterpolateOp::profile( const QString& theName ) const
+HYDROData_Profile::ProfilePoints HYDROGUI_ProfileInterpolateOp::profile( const QString& theName ) const
{
- std::vector<double> 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;
}
QStringList aNames;
if ( anIFactory )
{
- std::vector<std::string> iNames = anIFactory->GetInterpolatorNames();
- for ( std::vector<std::string>::iterator it = iNames.begin(); it != iNames.end(); ++it )
- aNames.append( (*it).c_str() );
+ NCollection_Sequence<TCollection_AsciiString> 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;
HYDROData_IProfilesInterpolator* aRes = 0;
if ( anIFactory )
- aRes = anIFactory->GetInterpolator( theName.toStdString() );
+ aRes = anIFactory->GetInterpolator( HYDROGUI_Tool::ToAsciiString( theName ) );
return aRes;
}
aBuilder.MakeCompound( aPreviewShape );
for ( int i = 0; i < theInterp->GetCalculatedProfilesNumber(); i++ )
{
- NCollection_Sequence<gp_XYZ> pointSeq;
- std::vector<double> 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<gp_XYZ> pointSeq = theInterp->GetResultProfilePoints( i );
+
TopoDS_Shape aWire = HYDROData_PolylineXY::BuildWire( HYDROData_IPolyline::SECTION_SPLINE, false, pointSeq );
if ( !aWire.IsNull() )
aBuilder.Add( aPreviewShape, aWire );
if ( !aPanel || !anInterp )
return;
- aPanel->setInterpolatorDescription( QString( anInterp->GetDescription().c_str() ) );
+ aPanel->setInterpolatorDescription( HYDROGUI_Tool::ToQString( anInterp->GetDescription() ) );
updatePreview();
}