RasterEditWizardPage.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/qt/widgets/rp/RasterEditWizardPage.h
22 
23  \brief This file defines a class for raster data edition.
24 */
25 
26 #ifndef __TERRALIB_QT_WIDGETS_RP_INTERNAL_RASTEREDITWIZARDPAGE_H
27 #define __TERRALIB_QT_WIDGETS_RP_INTERNAL_RASTEREDITWIZARDPAGE_H
28 
29 // TerraLib
30 #include "../../../geometry/Envelope.h"
31 #ifndef Q_MOC_RUN
32 #include "../../../maptools/AbstractLayer.h"
33 #include "../../../qt/widgets/canvas/MapDisplay.h"
34 #include "../../../qt/widgets/layer/explorer/LayerItemView.h"
35 #endif
36 #include "../Config.h"
37 
38 // STL
39 #include <memory>
40 
41 // Qt
42 #include <QWizardPage>
43 #include <QActionGroup>
44 #include <QTableWidgetItem>
45 
46 // Forward declaration
47 namespace Ui { class RasterEditWizardPageForm; }
48 
49 namespace te
50 {
51  namespace qt
52  {
53  namespace widgets
54  {
55  class RpToolsWidget;
56  class RasterNavigatorDialog;
57 
58  /*!
59  \class RasterEditWizardPage
60 
61  \brief This class is GUI used to define the parameters raster data edition.
62  */
63  class TEQTWIDGETSEXPORT RasterEditWizardPage : public QWizardPage
64  {
65  Q_OBJECT
66 
67  public:
68 
69  RasterEditWizardPage(QWidget* parent,
70  te::qt::widgets::MapDisplay* mainMapDispPtr,
71  te::qt::widgets::LayerItemView* mainLayerExplorerPtr );
72 
74 
75  bool isComplete() const;
76 
77  /*!
78  \brief This method is used to set the selected layer for editing operation
79 
80  \param layer The layer ptr
81 
82  \return true if ok, false on errors.
83 
84  \note This layer MUST HAVE a valid raster object.
85  */
87 
88  /*!
89  \brief Return the current output raster.
90 
91  \return Return the current output raster.
92  */
93  std::shared_ptr< te::rst::Raster > getOutputRaster();
94 
95  /*!
96  \brief Return the current output pallete indexes to their respetive descriptions.
97 
98  \brief Return the current output pallete indexes to their respetive descriptions.
99  */
100  const std::vector< std::map< unsigned int , std::string > >&
101  getPalleteIndex2Descriptions() const { return m_palleteIndex2Descriptions; };
102 
103  protected slots:
104 
106 
108 
110 
112 
113  void onPointPicked(double x, double y);
114 
116 
118 
120 
122 
124 
126 
128 
130 
132 
133  void onRoiTableWidgetItemClicked( QTableWidgetItem*);
134 
136 
138 
139  protected:
140 
141  unsigned int getBand();
142 
143  void getROIs(std::vector<te::gm::Geometry*> &geomVec);
144 
145  void getReplaceValues( std::vector< std::pair< double, double > >& replaceValues ) const;
146 
148 
149  void addRoiItem();
150 
151  private:
152 
155  std::unique_ptr<Ui::RasterEditWizardPageForm> m_ui;
156  std::vector<te::gm::Geometry*> m_geomVec;
157  std::unique_ptr< te::qt::widgets::RasterNavigatorDialog > m_rasterMavDialogPtr;
158  std::shared_ptr< te::rst::Raster > m_outputRasterPtr;
159  std::string m_outputDataSourceID;
160  std::vector< std::map< unsigned int , std::string > > m_palleteIndex2Descriptions; // One map per band
161  };
162 
163  } // end namespace widgets
164  } // end namespace qt
165 } // end namespace te
166 
167 #endif // __TERRALIB_QT_WIDGETS_RP_INTERNAL_RASTEREDITWIZARDPAGE_H
te::qt::widgets::RasterEditWizardPage::drawGeometries
void drawGeometries()
te::gm::Envelope
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
te::qt::widgets::RasterEditWizardPage::onsetNewValueColorPushButtonClicked
void onsetNewValueColorPushButtonClicked()
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::qt::widgets::RasterEditWizardPage::addRoiItem
void addRoiItem()
te::qt::widgets::RasterEditWizardPage::newValueComboBoxcurrentIndexChanged
void newValueComboBoxcurrentIndexChanged(int index)
te::qt::widgets::MapDisplay
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
te::map::AbstractLayerPtr
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
Definition: AbstractLayer.h:626
te::qt::widgets::RasterEditWizardPage::removeRulePushButtonClicked
void removeRulePushButtonClicked()
te::qt::widgets::RasterEditWizardPage::getBand
unsigned int getBand()
te::qt::widgets::RasterEditWizardPage::m_mainLayerExplorerPtr
te::qt::widgets::LayerItemView * m_mainLayerExplorerPtr
Definition: RasterEditWizardPage.h:154
te::qt::widgets::RasterEditWizardPage::addRulePushButtonClicked
void addRulePushButtonClicked()
TEQTWIDGETSEXPORT
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63
te::gm::Polygon
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
Definition: Polygon.h:51
te::qt::widgets::RasterEditWizardPage::~RasterEditWizardPage
~RasterEditWizardPage()
te::qt::widgets::RasterEditWizardPage::m_palleteIndex2Descriptions
std::vector< std::map< unsigned int, std::string > > m_palleteIndex2Descriptions
Definition: RasterEditWizardPage.h:160
te::qt::widgets::RasterEditWizardPage::onRemoveRoiItem
void onRemoveRoiItem()
te::qt::widgets::RasterEditWizardPage
This class is GUI used to define the parameters raster data edition.
Definition: RasterEditWizardPage.h:64
te::qt::widgets::RasterEditWizardPage::onSelectRoiItem
void onSelectRoiItem()
te::qt::widgets::LayerItemView
A specialization of QTreeView for manipulate layers.
Definition: LayerItemView.h:79
te::qt::widgets::RasterEditWizardPage::onGeomAquired
void onGeomAquired(te::gm::Polygon *poly)
te::qt::widgets::RasterEditWizardPage::isComplete
bool isComplete() const
Ui
Definition: ConfigInputAddressDialog.h:44
te::qt::widgets::RasterEditWizardPage::getReplaceValues
void getReplaceValues(std::vector< std::pair< double, double > > &replaceValues) const
te::qt::widgets::RasterEditWizardPage::onReplaceAllPushButtonClicked
void onReplaceAllPushButtonClicked()
slots
#define slots
Definition: VirtualMachine.h:48
te::qt::widgets::RasterEditWizardPage::m_geomVec
std::vector< te::gm::Geometry * > m_geomVec
Definition: RasterEditWizardPage.h:156
te::qt::widgets::RasterEditWizardPage::m_outputDataSourceID
std::string m_outputDataSourceID
Definition: RasterEditWizardPage.h:159
te::qt::widgets::RasterEditWizardPage::getROIs
void getROIs(std::vector< te::gm::Geometry * > &geomVec)
te::qt::widgets::RasterEditWizardPage::onEnvelopeAcquired
void onEnvelopeAcquired(te::gm::Envelope env)
te::qt::widgets::RasterEditWizardPage::onPointPickedOnMainMapDisplay
void onPointPickedOnMainMapDisplay(QPointF &)
te::qt::widgets::RasterEditWizardPage::updateValuesCombos
void updateValuesCombos()
te::qt::widgets::RasterEditWizardPage::getPalleteIndex2Descriptions
const std::vector< std::map< unsigned int, std::string > > & getPalleteIndex2Descriptions() const
Return the current output pallete indexes to their respetive descriptions.
Definition: RasterEditWizardPage.h:101
te::qt::widgets::RasterEditWizardPage::m_rasterMavDialogPtr
std::unique_ptr< te::qt::widgets::RasterNavigatorDialog > m_rasterMavDialogPtr
Definition: RasterEditWizardPage.h:157
te::qt::widgets::RasterEditWizardPage::m_outputRasterPtr
std::shared_ptr< te::rst::Raster > m_outputRasterPtr
Definition: RasterEditWizardPage.h:158
te::qt::widgets::RasterEditWizardPage::getOutputRaster
std::shared_ptr< te::rst::Raster > getOutputRaster()
Return the current output raster.
te::qt::widgets::RasterEditWizardPage::onTansferPushButtonClicked
void onTansferPushButtonClicked()
te::qt::widgets::RasterEditWizardPage::m_mainMapDispPtr
te::qt::widgets::MapDisplay * m_mainMapDispPtr
Definition: RasterEditWizardPage.h:153
te::qt::widgets::RasterEditWizardPage::onAddNewValuePushButtonClicked
void onAddNewValuePushButtonClicked()
te::qt::widgets::RasterEditWizardPage::RasterEditWizardPage
RasterEditWizardPage(QWidget *parent, te::qt::widgets::MapDisplay *mainMapDispPtr, te::qt::widgets::LayerItemView *mainLayerExplorerPtr)
te::qt::widgets::RasterEditWizardPage::m_ui
std::unique_ptr< Ui::RasterEditWizardPageForm > m_ui
Definition: RasterEditWizardPage.h:155
te::qt::widgets::RasterEditWizardPage::onLoadROISPushButtonClicked
void onLoadROISPushButtonClicked()
te::qt::widgets::RasterEditWizardPage::oldValueComboBoxcurrentIndexChanged
void oldValueComboBoxcurrentIndexChanged(int index)
te::qt::widgets::RasterEditWizardPage::onRoiTableWidgetItemClicked
void onRoiTableWidgetItemClicked(QTableWidgetItem *)
te::qt::widgets::RasterEditWizardPage::setLayer
bool setLayer(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for editing operation.
te::qt::widgets::RasterEditWizardPage::onPointPicked
void onPointPicked(double x, double y)