X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_GeoreferencementOp.cxx;h=a88a3e5719f7765fbf46418c681954b27ac37173;hb=a1431f03eac1d1aed4203d0568d987c41ce939b3;hp=fe1743ed72f25a85c423f2d6d11da792c55cee91;hpb=c1af1bfcf7dd246ce365d0e012e3687c532cd7eb;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_GeoreferencementOp.cxx b/src/HYDROGUI/HYDROGUI_GeoreferencementOp.cxx index fe1743ed..a88a3e57 100644 --- a/src/HYDROGUI/HYDROGUI_GeoreferencementOp.cxx +++ b/src/HYDROGUI/HYDROGUI_GeoreferencementOp.cxx @@ -117,7 +117,7 @@ HYDROGUI_InputPanel* HYDROGUI_GeoreferencementOp::createInputPanel() const bool HYDROGUI_GeoreferencementOp::processApply( int& theUpdateFlags, QString& theErrorMsg ) { - theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced; + theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer | UF_VTK_Forced | UF_VTK_Init; return store( theErrorMsg ); } @@ -212,34 +212,29 @@ bool HYDROGUI_GeoreferencementOp::store( QString& theErrorMsg ) } // Get georeferencement data from the panel - HYDROGUI_GeoreferencementDlg::ProfilesGeoDataMap aGeoDataMap; - aPanel->getData( aGeoDataMap ); - - if ( aGeoDataMap.empty() ) { + HYDROGUI_GeoreferencementDlg::ProfilesGeoDataList aGeoDataList; + aPanel->getData( aGeoDataList ); + if ( aGeoDataList.empty() ) { return true; } // Check the data validity - foreach ( const QString& aProfileName, aGeoDataMap.keys() ) { - HYDROGUI_GeoreferencementDlg::ProfileGeoData aGeoData = - aGeoDataMap.value( aProfileName ); + foreach ( const HYDROGUI_GeoreferencementDlg::ProfileGeoData& aGeoData, aGeoDataList ) { if ( aGeoData.isIncomplete ) { - theErrorMsg = tr( "INCOMPLETE_DATA" ).arg( aProfileName ); + theErrorMsg = tr( "INCOMPLETE_DATA" ).arg( aGeoData.Name ); return false; } } // Store the data in the data model - foreach ( const QString& aProfileName, aGeoDataMap.keys() ) { + foreach ( const HYDROGUI_GeoreferencementDlg::ProfileGeoData& aGeoData, aGeoDataList ) { Handle(HYDROData_Profile) aProfile = Handle(HYDROData_Profile)::DownCast( - HYDROGUI_Tool::FindObjectByName( module(), aProfileName, KIND_PROFILE ) ); + HYDROGUI_Tool::FindObjectByName( module(), aGeoData.Name, KIND_PROFILE ) ); if ( !aProfile.IsNull() ) { - HYDROGUI_GeoreferencementDlg::ProfileGeoData aGeoData = - aGeoDataMap.value( aProfileName ); if ( !aGeoData.isEmpty ) { - aProfile->SetFirstPoint( gp_XY( aGeoData.Xg, aGeoData.Yg ) ); - aProfile->SetLastPoint( gp_XY( aGeoData.Xd, aGeoData.Yd ) ); + aProfile->SetLeftPoint( gp_XY( aGeoData.Xg, aGeoData.Yg ) ); + aProfile->SetRightPoint( gp_XY( aGeoData.Xd, aGeoData.Yd ) ); } else { aProfile->Invalidate(); } @@ -275,7 +270,7 @@ void HYDROGUI_GeoreferencementOp::setPanelData( } // Get georeferencement data from the data model - HYDROGUI_GeoreferencementDlg::ProfilesGeoDataMap aDataMap; + HYDROGUI_GeoreferencementDlg::ProfilesGeoDataList aData; HYDROData_SequenceOfObjects::Iterator anIter( theProfiles ); for ( ; anIter.More(); anIter.Next() ) { @@ -285,18 +280,19 @@ void HYDROGUI_GeoreferencementOp::setPanelData( continue; } - HYDROGUI_GeoreferencementDlg::ProfileGeoData aGeoData; + HYDROGUI_GeoreferencementDlg::ProfileGeoData aGeoData( aProfile->GetName() ); gp_XY aFirstPoint, aLastPoint; - if ( aProfile->GetFirstPoint( aFirstPoint ) && aProfile->GetLastPoint( aLastPoint ) ) { + if ( aProfile->GetLeftPoint( aFirstPoint ) && aProfile->GetRightPoint( aLastPoint ) ) { aGeoData = - HYDROGUI_GeoreferencementDlg::ProfileGeoData( aFirstPoint.X(), aFirstPoint.Y(), + HYDROGUI_GeoreferencementDlg::ProfileGeoData( aGeoData.Name, + aFirstPoint.X(), aFirstPoint.Y(), aLastPoint.X(), aLastPoint.Y() ); } - aDataMap.insert( aProfile->GetName(), aGeoData ); + aData.append( aGeoData ); } // Set the collected data to the dialog - aPanel->setData( aDataMap ); + aPanel->setData( aData ); } \ No newline at end of file