Loading...
Searching...
No Matches
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
47namespace Ui { class RasterEditWizardPageForm; }
48
49namespace 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
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;
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
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
Definition: Polygon.h:51
A specialization of QTreeView for manipulate layers.
Definition: LayerItemView.h:79
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
This class is GUI used to define the parameters raster data edition.
void getROIs(std::vector< te::gm::Geometry * > &geomVec)
void newValueComboBoxcurrentIndexChanged(int index)
std::vector< te::gm::Geometry * > m_geomVec
void onPointPicked(double x, double y)
std::shared_ptr< te::rst::Raster > m_outputRasterPtr
std::vector< std::map< unsigned int, std::string > > m_palleteIndex2Descriptions
RasterEditWizardPage(QWidget *parent, te::qt::widgets::MapDisplay *mainMapDispPtr, te::qt::widgets::LayerItemView *mainLayerExplorerPtr)
void onRoiTableWidgetItemClicked(QTableWidgetItem *)
void onEnvelopeAcquired(te::gm::Envelope env)
te::qt::widgets::MapDisplay * m_mainMapDispPtr
void oldValueComboBoxcurrentIndexChanged(int index)
void getReplaceValues(std::vector< std::pair< double, double > > &replaceValues) const
bool setLayer(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for editing operation.
const std::vector< std::map< unsigned int, std::string > > & getPalleteIndex2Descriptions() const
Return the current output pallete indexes to their respetive descriptions.
std::unique_ptr< te::qt::widgets::RasterNavigatorDialog > m_rasterMavDialogPtr
te::qt::widgets::LayerItemView * m_mainLayerExplorerPtr
void onGeomAquired(te::gm::Polygon *poly)
std::shared_ptr< te::rst::Raster > getOutputRaster()
Return the current output raster.
std::unique_ptr< Ui::RasterEditWizardPageForm > m_ui
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
TerraLib.
#define slots
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63