X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportImageDlg.h;h=59de8c6c6c89aebb9f4a79710099a1d41ab96bd1;hb=844c6abc897469c996e8df5a1569c3aeaa08c446;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=c66fbd26a75a044039dc2b2f8dea2249582deabc;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportImageDlg.h b/src/HYDROGUI/HYDROGUI_ImportImageDlg.h index e69de29b..59de8c6c 100644 --- a/src/HYDROGUI/HYDROGUI_ImportImageDlg.h +++ b/src/HYDROGUI/HYDROGUI_ImportImageDlg.h @@ -0,0 +1,180 @@ +// 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 +// +// 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. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef HYDROGUI_IMPORTIMAGEDLG_H +#define HYDROGUI_IMPORTIMAGEDLG_H + +#include "HYDROGUI_InputPanel.h" + +#include + +#define LAMBERT_X0 700000 +#define LAMBERT_Y0 6600000 +#define LAMBERT_LONG 3 +#define LAMBERT_LATT 46.5 +#define IMG_DELTA 500 + +class QButtonGroup; +class QComboBox; +class QGroupBox; +class QLabel; +class QLineEdit; +class QCheckBox; + +class QtxDoubleSpinBox; +class QtxIntSpinBox; + +class HYDROGUI_ImportImageDlg : public HYDROGUI_InputPanel +{ + Q_OBJECT + +public: + struct TransformationData + { + QPoint ImagePoint; + QPointF GeodesicPoint; + QPointF CartesianPoint; + + TransformationData() {} + + TransformationData( const QPoint& theImagePoint ) : + ImagePoint( theImagePoint ) {} + + TransformationData( const QPoint& theImagePoint, + const QPointF& theGeodesicPoint, + const QPointF& theCartesianPoint ) : + ImagePoint( theImagePoint ), + GeodesicPoint( theGeodesicPoint ), + CartesianPoint( theCartesianPoint ) {} + }; + typedef QMap< int, TransformationData > TransformationDataMap; + + typedef QPair< QString, TransformationDataMap > PrsPointData; + typedef QList< PrsPointData > PrsPointDataList; + typedef QListIterator< PrsPointData > PrsPointDataListIterator; + +public: + HYDROGUI_ImportImageDlg( HYDROGUI_Module* theModule, const QString& theTitle ); + virtual ~HYDROGUI_ImportImageDlg(); + + void setIsEdit( const bool theIsEdit ); + void reset(); + + void setImageName( const QString& theName ); + QString getImageName() const; + + void setRefImageName( const QString& theName ); + QString getRefImageName() const; + + QString getFileName() const; + + void setImageSize( const QSize& theSize, + const bool theIsRefImage = false ); + + void setTransformationMode( const int theMode ); + int getTransformationMode() const; + + void setByTwoPoints( const bool theIsByTwoPoints ); + bool isByTwoPoints() const; + + void setTransformationDataMap( const TransformationDataMap& theMap, + const bool theIsOnlyInput = false, + const bool theIsRefImage = false ); + bool getTransformationDataMap( TransformationDataMap& theMap, + const bool theIsRefImage = false ) const; + + void setPrsPointDataList( const PrsPointDataList& theList ); + + void initializePointSelection(); + +public: + + static TransformationData ComputeTrsfData( const int theMode, + const QPoint& theLocalPoint, + const QPointF& theGlobalPoint ); + +protected slots: + void onBrowse(); + void onModeActivated( int ); + void onRefImageActivated( const QString& ); + void onPointBtnToggled( bool ); + void onPointCoordChanged( int ); + + void onGeodesicCoordChanged(); + void onGeodesicCoordChanged( const int thePointType ); + + void onCartesianCoordChanged(); + void onCartesianCoordChanged( const int thePointType ); + +private: + void blockSignalsGeodesic( const bool theState ); + void blockSignalsCartesian( const bool theState ); + +signals: + void createPreview( QImage ); + void activatePointSelection( int ); + void pointCoordChanged( bool theIsRef, + int thePointType, + bool theIsY, + int theValue ); + void modeActivated( int ); + void refImageActivated( const QString& ); + void setIsByTwoPoints( bool theIsByTwoPoints ); + +private: + QGroupBox* myFileNameGroup; //!< The group for the source image file selection + QLineEdit* myFileName; //!< Source image file name input field + + QGroupBox* myImageNameGroup; //!< The group for the image name input field + QLineEdit* myImageName; //!< The image name input field + + QGroupBox* myTransformGroup; //!< The group of input contols for points definition + + QButtonGroup* myModeGroup; //!< The group for the input mode selector + QComboBox* myRefImage; //!< Reference image selector + + QList myGeodesicLabels; //!< Labels for geodesic coords input fields + + QMap myPointBtnMap; //!< A,B,C points selection modes activators + QMap myPointXMap; //!< X coord on the image + QMap myPointYMap; //!< Y coord on the image + QMap myPointXDegMap; //!< Longitude degrees + QMap myPointYDegMap; //!< Latitude degrees + QMap myPointXMinMap; //!< Longitude minutes + QMap myPointYMinMap; //!< Latitude minutes + QMap myPointXSecMap; //!< Longitude seconds + QMap myPointYSecMap; //!< Latitude seconds + + QMap myCartPointXMap; //!< Lambert93 (cartesian) X coord (m) + QMap myCartPointYMap; //!< Lambert93 (cartesian) Y coord (m) + + QMap myRefPointXMap; //!< X coord on the reference image + QMap myRefPointYMap; //!< Y coord on the reference image + + QCheckBox* myPointCEnabler; //!< Checkbox for enabling definition of the point C + + PrsPointDataList myPrsPointDataList; //!< Points presentations + + bool myIsInitialized; //!< True if a point selection is activated +}; + +#endif