X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportImageOp.h;h=32b1853caed74f89f92acc423697e79a3d95c29a;hb=445cca2de7e4814cdc8d6cb7727b5bf2e3170220;hp=5a94c44c1df284cc90e42d58729e1489843c8cd3;hpb=41f291766eb87fc4ed3871fc89d3371581b8014d;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportImageOp.h b/src/HYDROGUI/HYDROGUI_ImportImageOp.h index 5a94c44c..32b1853c 100644 --- a/src/HYDROGUI/HYDROGUI_ImportImageOp.h +++ b/src/HYDROGUI/HYDROGUI_ImportImageOp.h @@ -1,12 +1,8 @@ -// Copyright (C) 2007-2013 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 -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -24,15 +20,14 @@ #define HYDROGUI_IMPORTIMAGEOP_H #include "HYDROGUI_Operation.h" +#include "HYDROGUI_ImportImageDlg.h" #include #include class GraphicsView_ViewManager; - class SUIT_ViewManager; - class HYDROGUI_PrsImage; class HYDROGUI_ImportImageOp : public HYDROGUI_Operation @@ -50,37 +45,89 @@ protected: virtual HYDROGUI_InputPanel* createInputPanel() const; - virtual bool processApply( int& theUpdateFlags, QString& theErrorMsg ); + virtual bool processApply( int& theUpdateFlags, QString& theErrorMsg, + QStringList& theBrowseObjectsEntries ); + bool isReferenceCorrect() const; + + /** + * Apply changes done by this operation. + */ + virtual void apply(); protected slots: - void onCreatePreview( QImage ); + void onCreatePreview( QImage, HYDROData_Image::ECW_FileInfo* ); void onActivatePointSelection( int ); void onPointCoordChanged( bool, int, bool, int ); void onModeActivated( int ); void onRefImageActivated( const QString& ); + void onSetCIsUsed( bool theCIsUsed ); void onLastViewClosed( SUIT_ViewManager* ); void onPointSelected(); + void onRefPointSelected(); void onPointSelected( bool theIsRefImage ); + void onFilesSelected( const QStringList& ); private: void closePreview(); + void closeView( GraphicsView_ViewManager* &aViewMgr ); + + bool checkPoints( const QPointF& thePointA, + const QPointF& thePointB, + const QPointF& thePointC, + const bool theIsByTwoPoints, + const QString& theLineErrMsg, + const QString& thePoinErrMsg, + QString& theErrorMsg, + const bool theIsToCheckInvertibles ) const; + + /** + * Build the local-global points mapping. + */ + void computeTrsfData( HYDROData_Image::TransformationMode theTrsfMode, + bool theIsByTwoPoints, + const QPoint& theLocalPointA, + const QPoint& theLocalPointB, + const QPoint& theLocalPointC, + const QPointF& theGlobalPointA, + const QPointF& theGlobalPointB, + const QPointF& theGlobalPointC, + HYDROGUI_ImportImageDlg::TransformationDataMap& theDataMap ) const; + + /** + * Set transformation points A,B,C to the image presentation. + */ + void setPresentationTrsfPoints( HYDROGUI_PrsImage* thePrs, + bool theIsByTwoPoints, + const QPoint theLocalPointA, + const QPoint theLocalPointB, + const QPoint theLocalPointC ); + + /* + * Initialize the combobox in the dialog with the list of available reference images + */ + void getReferenceDataList( + HYDROGUI_ImportImageDlg::PrsPointDataList& theList ) const; + + bool SetNextFile(); private: bool myIsEdit; Handle(HYDROData_Image) myEditedObject; - SUIT_ViewManager* myActiveViewManager; + SUIT_ViewManager* myActiveViewManager; //!< The previous view to come back to after the operation - GraphicsView_ViewManager* myPreviewViewManager; - HYDROGUI_PrsImage* myPreviewPrs; - HYDROGUI_PrsImage* myRefPreviewPrs; + GraphicsView_ViewManager* myPreviewViewManager; //!< The operation preview window + GraphicsView_ViewManager* myRefViewManager; //!< The reference image view window + HYDROGUI_PrsImage* myPreviewPrs; //!< The loaded image preview presentation + HYDROGUI_PrsImage* myRefPreviewPrs; //!< The reference image presentation - QImage myImage; - QTransform myRefTransform; + QImage myImage; //!< The loaded image to import int myPointType; + QStringList myFiles; + int myFileIndex; }; #endif