Loading...
Searching...
No Matches
ContrastDialogForm.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/ContrastDialogForm.h
22
23 \brief This file defines a class for a Contrast dialog.
24*/
25
26#ifndef __TERRALIB_QT_WIDGETS_RP_INTERNAL_CONTRASTDIALOGFORM_H
27#define __TERRALIB_QT_WIDGETS_RP_INTERNAL_CONTRASTDIALOGFORM_H
28
29// TerraLib
30#ifndef Q_MOC_RUN
31#include "../../../maptools/AbstractLayer.h"
32#include "../../../qt/widgets/rp/RpToolsWidget.h"
33#endif
34#include "../../../rp/Contrast.h"
35#include "../../../se/ChannelSelection.h"
36#include "../../../qt/widgets/canvas/MapDisplay.h"
37#include "../Config.h"
38#include "InputLayerWidget.h"
39#include "OutputRasterWidget.h"
40
41// STL
42#include <memory>
43
44// Qt
45#include <qcombobox.h>
46#include <QDialog>
47#include <QActionGroup>
48
49// Forward declaration
50namespace Ui { class ContrastDialogForm; }
51
52namespace te
53{
54 namespace qt
55 {
56 namespace af
57 {
58 namespace evt
59 {
60 struct Event;
61 }
62 }
63
64 namespace widgets
65 {
66 class RasterHistogramWidget;
67
68 /*!
69 \class ContrastDialogForm
70
71 \brief This class is GUI used to define the contrast parameters for the RP constast operation.
72 */
74 {
75 Q_OBJECT
76
77 public:
78
79 ContrastDialogForm(QWidget* parent = 0);
80
82
83 public:
84
86
87 /*!
88 \brief This method is used to set the selected layer for contrast operation
89
90 \param layer The layer ptr
91
92 \note This layer MUST HAVE a valid raster object.
93 */
94 void setList(std::list<te::map::AbstractLayerPtr>& layerList);
95
97
98 void setActionGroup(QActionGroup* actionGroup);
99
101
103
105
107
108 protected:
109
111
112 void listBands();
113
115
116 // draw the internal raster preview using the stored raster in m_previewRasterPtr
118
119 void drawGeom();
120
121 void setDefaultValues(int contrastType);
122
124
126
128
130
131 bool execute();
132
133 void setDisableInterface(bool enabled);
134
136
138
139 void closeEvent(QCloseEvent*);
140
142
144
145 /*!
146 \brief Get the current selected input band index.
147 \param bandIdx the current selected input band index.
148 \return true if at least one band is selected, false if no selected/checked bands ware found.
149 */
150 bool getSelectInputBandIdx( unsigned int& bandIdx );
151
152 /*!
153 \brief Get the current selected output band index.
154 \param bandIdx the current selected output band index.
155 \return true if at least one band is selected, false if no selected/checked bands ware found.
156 */
157 bool getSelectOutputBandIdx( unsigned int& bandIdx );
158
159 /*!
160 \brief Get the current checked band indexes;
161 \param bandIndexes The current checked band indexes.
162 */
163 void getCheckedInputBandIndexes( std::vector< unsigned int> & bandIndexes );
164
165 protected slots:
166
167 void onAllImageRadioButtonToggled(bool isChecked);
168
170
171 void onCellClicked(int row, int column);
172
173 void onCellDoubleClicked(int row, int column);
174
175 void onCellChanged(int row, int column);
176
177 void onMinValueSelected(int value, int band);
178
179 void onMinValueSelected(double value, int band);
180
181 void onMaxValueSelected(int value, int band);
182
183 void onMaxValueSelected(double value, int band);
184
186
188
190
191 void onRoiRadioButtonToggled(bool isChecked);
192
194
196
198
200
202
204
206
207 signals:
208
210
211 void closeTool();
212
213 private:
214
215 std::unique_ptr<Ui::ContrastDialogForm> m_ui;
216 std::unique_ptr<te::qt::widgets::RpToolsWidget> m_navigator;
217 std::unique_ptr<te::qt::widgets::RasterHistogramWidget> m_histogramWidget;
218 std::unique_ptr<te::qt::widgets::RasterHistogramWidget> m_histogramWidget2;
219
225
226 std::unique_ptr<te::rst::Raster> m_raster;
227 std::unique_ptr<te::rst::Raster> m_previewRasterPtr;
228 std::unique_ptr<te::gm::Geometry> m_geom;
229
230 std::vector<double> m_minValue;
231 std::vector<double> m_maxValue;
232 std::string m_lastText;
234
236 };
237
238 } // end namespace widgets
239 } // end namespace qt
240} // end namespace te
241
242#endif // __TERRALIB_QT_WIDGETS_RP_INTERNAL_CONTRASTDIALOGFORM_H
This file has the InputLayerWidget class.
This file has the OutputRasterWidget class.
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
This class is GUI used to define the contrast parameters for the RP constast operation.
te::map::AbstractLayerPtr getOutputLayer()
te::qt::widgets::OutputRasterWidget * m_outputWidget
void addLayer(te::map::AbstractLayerPtr layer)
void onMinValueSelected(int value, int band)
ContrastDialogForm(QWidget *parent=0)
bool getSelectInputBandIdx(unsigned int &bandIdx)
Get the current selected input band index.
void onMaxValueSelected(double value, int band)
te::rp::Contrast::InputParameters getInputParams()
bool getSelectOutputBandIdx(unsigned int &bandIdx)
Get the current selected output band index.
void setDefaultValues(int contrastType)
void setList(std::list< te::map::AbstractLayerPtr > &layerList)
This method is used to set the selected layer for contrast operation.
te::qt::widgets::MapDisplay * m_mapDisplay
void onMaxValueSelected(int value, int band)
void onEableDisableHistoToolButtonClicked(bool checked)
std::unique_ptr< te::qt::widgets::RasterHistogramWidget > m_histogramWidget
std::unique_ptr< te::gm::Geometry > m_geom
std::unique_ptr< te::qt::widgets::RpToolsWidget > m_navigator
void onCellClicked(int row, int column)
void setDisableInterface(bool enabled)
void onEnvelopeAcquired(te::gm::Envelope env)
void onRoiRadioButtonToggled(bool isChecked)
void onAllImageRadioButtonToggled(bool isChecked)
void onCellChanged(int row, int column)
te::map::AbstractLayerPtr m_outputLayer
void getCheckedInputBandIndexes(std::vector< unsigned int > &bandIndexes)
Get the current checked band indexes;.
void resetWindow(te::map::AbstractLayerPtr layer)
std::unique_ptr< te::rst::Raster > m_previewRasterPtr
te::map::AbstractLayerPtr get()
void setActionGroup(QActionGroup *actionGroup)
void onMinValueSelected(double value, int band)
std::unique_ptr< te::rst::Raster > m_raster
void onContrastTypeComboBoxActivated(int index)
std::unique_ptr< te::qt::widgets::RasterHistogramWidget > m_histogramWidget2
void onCellDoubleClicked(int row, int column)
te::se::ChannelSelection * getChannelSelection()
std::unique_ptr< Ui::ContrastDialogForm > m_ui
te::qt::widgets::InputLayerWidget * m_inputWidget
void onVisibleAreaRadioButtonToggled(bool isChecked)
void setMapDisplay(te::qt::widgets::MapDisplay *mapDisplay)
void onApplicationTriggered(te::qt::af::evt::Event *e)
This class is used to set input layer.
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
This class is used to set output layer.
Contrast input parameters.
Definition: Contrast.h:66
ChannelSelection specifies the false-color channel selection for a multi-spectral raster source (such...
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
TerraLib.
#define slots
A base class for application events.
Definition: Event.h:60
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63