27 #include "../../core/filesystem/FileSystem.h" 28 #include "../../core/logger/Logger.h" 29 #include "../../core/translator/Translator.h" 30 #include "../../common/Exception.h" 31 #include "../../common/progress/ProgressManager.h" 32 #include "../../dataaccess/datasource/DataSourceFactory.h" 33 #include "../../dataaccess/datasource/DataSourceInfoManager.h" 34 #include "../../dataaccess/datasource/DataSourceManager.h" 35 #include "../../dataaccess/utils/Utils.h" 36 #include "../../geometry/GeometryProperty.h" 37 #include "../../maptools/DataSetLayer.h" 38 #include "../../maptools/RasterContrast.h" 39 #include "../../maptools/Utils.h" 40 #include "../../qt/widgets/datasource/selector/DataSourceSelectorDialog.h" 41 #include "../../qt/widgets/progress/ProgressViewerDialog.h" 42 #include "../../qt/widgets/rp/Utils.h" 43 #include "../../qt/widgets/srs/SRSManagerDialog.h" 44 #include "../../qt/widgets/Utils.h" 45 #include "../../qt/widgets/utils/FileDialog.h" 46 #include "../../raster.h" 47 #include "../../raster/Interpolator.h" 48 #include "../../raster/RasterFactory.h" 49 #include "../../rp/Contrast.h" 50 #include "../../srs/SpatialReferenceSystemManager.h" 52 #include "../core/CalculateGrid.h" 53 #include "../core/SplineGrass.h" 54 #include "../core/SplineGrassMitasova.h" 55 #include "../core/TINCalculateGrid.h" 56 #include "../core/Utils.h" 60 #include "ui_MNTGenerationDialogForm.h" 63 #include <QFileDialog> 64 #include <QMessageBox> 67 #include <boost/algorithm/string.hpp> 68 #include <boost/filesystem.hpp> 69 #include <boost/lexical_cast.hpp> 70 #include <boost/uuid/random_generator.hpp> 71 #include <boost/uuid/uuid_io.hpp> 75 m_ui(new
Ui::MNTGenerationDialogForm),
83 connect(
m_ui->m_gridradioButton, SIGNAL(toggled(
bool)),
this, SLOT(
onGridToggled()));
91 connect(
m_ui->m_dummycheckBox, SIGNAL(toggled(
bool)),
m_ui->m_dummylineEdit, SLOT(setEnabled(
bool)));
95 m_ui->m_dimLLineEdit->setValidator(
new QIntValidator(
this));
96 m_ui->m_dimCLineEdit->setValidator(
new QIntValidator(
this));
97 m_ui->m_resXLineEdit->setValidator(
new QDoubleValidator(
this));
98 m_ui->m_resYLineEdit->setValidator(
new QDoubleValidator(
this));
105 m_ui->m_targetDatasourceToolButton->setIcon(QIcon::fromTheme(
"datasource"));
112 m_ui->m_helpPushButton->setNameSpace(
"dpi.inpe.br.plugins");
113 m_ui->m_helpPushButton->setPageReference(
"plugins/mnt/DTM_DTM.html");
115 m_ui->m_srsToolButton->setIcon(QIcon::fromTheme(
"srs"));
118 for (
int i = 2; i < 10; i++)
119 m_ui->m_powerComboBox->addItem(QString::number(i));
122 m_ui->m_tensionLineEdit->setText(
"40");
123 m_ui->m_smothLineEdit->setText(
"0.1");
124 m_ui->m_minPtsMitLineEdit->setText(
"50");
136 std::list<te::map::AbstractLayerPtr>::iterator it =
m_layers.begin();
144 if (it->get()->isValid())
147 std::unique_ptr<te::da::DataSetType> dsType(layer->getSchema());
149 if (inputType ==
GRID)
158 if (inputType ==
GRID || inputType ==
TIN)
160 m_ui->m_layersComboBox->addItem(QString(layer->getTitle().c_str()), QVariant(layer->getId().c_str()));
165 m_ui->m_samplescomboBox->addItem(QString(it->get()->getTitle().c_str()), QVariant(it->get()->getId().c_str()));
170 m_ui->m_isolinescomboBox->addItem(QString(it->get()->getTitle().c_str()), QVariant(it->get()->getId().c_str()));
177 m_ui->m_layersComboBox->insertItem(0,
"");
178 m_ui->m_samplescomboBox->insertItem(0,
"");
179 m_ui->m_isolinescomboBox->insertItem(0,
"");
181 m_ui->m_layersComboBox->setCurrentIndex(0);
182 m_ui->m_samplescomboBox->setCurrentIndex(0);
183 m_ui->m_isolinescomboBox->setCurrentIndex(0);
187 m_ui->m_vectorradioButton->setChecked(
true);
192 m_ui->m_gridradioButton->setChecked(
true);
205 if (
m_ui->m_gridradioButton->isChecked())
208 m_ui->m_inputtabWidget->setTabEnabled(0,
true);
209 m_ui->m_inputtabWidget->setTabEnabled(1,
true);
210 m_ui->m_inputtabWidget->setTabEnabled(2,
false);
212 m_ui->m_interpolatorComboBox->clear();
216 m_ui->m_interpolatorComboBox->addItem(
"Weighted Avg./Z Value/Quadrant");
217 m_ui->m_interpolatorComboBox->addItem(
"Weighted Average/Quadrant");
218 m_ui->m_interpolatorComboBox->addItem(
"Weighted Average");
219 m_ui->m_interpolatorComboBox->addItem(
"Simple Average");
220 m_ui->m_interpolatorComboBox->addItem(
"Nearest Neighbor");
221 m_ui->m_interpolatorComboBox->addItem(
"Bilinear Spline");
222 m_ui->m_interpolatorComboBox->addItem(
"Bicubic Spline");
223 m_ui->m_interpolatorComboBox->addItem(
"Mitasova Spline");
237 if (!
m_ui->m_gridradioButton->isChecked())
240 m_ui->m_inputtabWidget->setTabEnabled(0,
false);
241 m_ui->m_inputtabWidget->setTabEnabled(1,
false);
242 m_ui->m_inputtabWidget->setTabEnabled(2,
true);
244 m_ui->m_interparamStackedWidget->setCurrentIndex(3);
255 QList<mntType> types;
259 if (search.exec() != QDialog::Accepted)
262 int index =
m_ui->m_isolinescomboBox->findText(search.
getLayer()->getTitle().c_str());
263 m_ui->m_isolinescomboBox->setCurrentIndex(index);
271 m_ui->m_isolinesZcomboBox->clear();
276 std::list<te::map::AbstractLayerPtr>::iterator it =
m_layers.begin();
277 std::string layerID =
m_ui->m_isolinescomboBox->itemData(index, Qt::UserRole).toString().toUtf8().data();
281 if(layerID == it->get()->getId())
288 QMessageBox::warning(
this, tr(
"DTM Generation"), tr(
"Input Layers with different SRIDs!"));
294 double raio = std::sqrt(width * width + height * height) / 5.;
295 m_ui->m_radiusLineEdit->setText(QString::number(raio,
'f', 4));
299 std::unique_ptr<te::da::DataSetType> dsType(
m_isoinputLayer->getSchema());
302 if (!m_isoinDataSource.get())
310 std::unique_ptr<te::da::DataSet> inDset(m_isoinDataSource->getDataSet(
m_isoinSetName));
313 if (inDset->getGeometry(geo_pos)->is3D())
315 m_ui->m_isolinesZcomboBox->hide();
316 m_ui->m_isolinesZlabel->hide();
320 m_ui->m_isolinesZcomboBox->show();
321 m_ui->m_isolinesZlabel->show();
322 std::vector<te::dt::Property*> props = dsType->getProperties();
323 for (std::size_t i = 0; i < props.size(); ++i)
325 switch (props[i]->getType())
336 m_ui->m_isolinesZcomboBox->addItem(QString(props[i]->getName().c_str()), QVariant(props[i]->getName().c_str()));
353 QList<mntType> types;
357 if (search.exec() != QDialog::Accepted)
360 int index =
m_ui->m_samplescomboBox->findText(search.
getLayer()->getTitle().c_str());
361 m_ui->m_samplescomboBox->setCurrentIndex(index);
368 m_ui->m_samplesZcomboBox->clear();
369 m_ui->m_samplesZcomboBox->hide();
370 m_ui->m_samplesZlabel->hide();
375 std::list<te::map::AbstractLayerPtr>::iterator it =
m_layers.begin();
376 std::string layerID =
m_ui->m_samplescomboBox->itemData(index, Qt::UserRole).toString().toUtf8().data();
380 if(layerID == it->get()->getId())
387 QMessageBox::warning(
this, tr(
"DTM Generation"), tr(
"Input Layers with different SRIDs!"));
393 double raio = std::sqrt(width * width + height * height) / 5.;
394 m_ui->m_radiusLineEdit->setText(QString::number(raio,
'f', 4));
401 if (!m_sampleinDataSource.get())
409 std::unique_ptr<te::da::DataSet> inDset(m_sampleinDataSource->getDataSet(
m_sampleinSetName));
412 std::unique_ptr<te::gm::Geometry> gin(inDset->getGeometry(geo_pos));
415 m_ui->m_samplesZcomboBox->hide();
416 m_ui->m_samplesZlabel->hide();
420 m_ui->m_samplesZcomboBox->show();
421 m_ui->m_samplesZlabel->show();
422 std::vector<te::dt::Property*> props = dsType->getProperties();
423 for (std::size_t i = 0; i < props.size(); ++i)
425 switch (props[i]->getType())
436 m_ui->m_samplesZcomboBox->addItem(QString(props[i]->getName().c_str()), QVariant(props[i]->getName().c_str()));
455 m_ui->m_interpolatorComboBox->clear();
456 std::list<te::map::AbstractLayerPtr>::iterator it =
m_layers.begin();
457 std::string layerID =
m_ui->m_layersComboBox->itemData(index, Qt::UserRole).toString().toUtf8().data();
461 if(layerID == it->get()->getId())
468 if (!m_inDataSource.get())
473 std::unique_ptr<te::da::DataSetType> dsType(
m_inputLayer->getSchema());
477 if (m_inputType ==
TIN)
480 m_ui->m_interpolatorComboBox->addItem(
"Linear");
481 m_ui->m_interpolatorComboBox->addItem(
"Quintic without breaklines");
483 std::string tname(
"type1");
484 if (ds->propertyExists(
m_inputLayer->getDataSetName(), tname))
486 std::string qry(
"Select type1, type2, type3 from ");
488 qry +=
" where (type1 > 3 and type1 < 7) or (type2 > 3 and type2 < 7) or (type3 > 3 and type3 < 7)";
489 std::unique_ptr<te::da::DataSet> dataquery(ds->query(qry));
490 if (!dataquery->isEmpty())
491 m_ui->m_interpolatorComboBox->addItem(
"Quintic with breaklines");
493 m_ui->m_dummycheckBox->setVisible(
false);
494 m_ui->m_dummylineEdit->setVisible(
false);
497 if (m_inputType ==
GRID)
500 m_ui->m_interpolatorComboBox->addItem(
"Bilinear");
501 m_ui->m_interpolatorComboBox->addItem(
"Bicubic");
504 std::unique_ptr<te::rst::Raster> inputRst(
m_inputLayer->getData()->getRaster(rpos).release());
505 m_ui->m_dummycheckBox->setVisible(
true);
506 m_ui->m_dummylineEdit->setVisible(
true);
507 m_ui->m_dummylineEdit->setText(QString::number(inputRst->getBand(0)->getProperty()->m_noDataValue));
522 QList<mntType> types;
527 if (search.exec() != QDialog::Accepted)
532 int index =
m_ui->m_layersComboBox->findText(search.
getLayer()->getTitle().c_str());
533 m_ui->m_layersComboBox->setCurrentIndex(index);
538 std::string inter =
m_ui->m_interpolatorComboBox->itemData(index, Qt::UserRole).toString().toUtf8().data();
549 m_ui->m_interparamStackedWidget->setCurrentIndex(0);
550 m_ui->m_powerLabel->show();
551 m_ui->m_powerComboBox->show();
552 m_ui->m_radiusLabel->show();
553 m_ui->m_radiusLineEdit->show();
557 m_ui->m_interparamStackedWidget->setCurrentIndex(0);
558 m_ui->m_powerLabel->hide();
559 m_ui->m_powerComboBox->hide();
560 m_ui->m_radiusLabel->show();
561 m_ui->m_radiusLineEdit->show();
565 m_ui->m_interparamStackedWidget->setCurrentIndex(1);
568 m_ui->m_interparamStackedWidget->setCurrentIndex(2);
576 m_ui->m_interparamStackedWidget->setCurrentIndex(3);
588 m_ui->m_interparamStackedWidget->setCurrentIndex(3);
601 m_ui->m_interparamStackedWidget->setCurrentIndex(3);
608 double resX =
m_ui->m_resXLineEdit->text().toDouble();
611 m_ui->m_dimCLineEdit->setText(
"");
616 if (
m_ui->m_vectorradioButton->isChecked())
625 QMessageBox::warning(
this, tr(
"DTM Generation"), tr(
"Invalid envelope!"));
631 m_ui->m_dimCLineEdit->setText(QString::number(maxCols));
636 double resY =
m_ui->m_resYLineEdit->text().toDouble();
639 m_ui->m_dimLLineEdit->setText(
"");
644 if (
m_ui->m_vectorradioButton->isChecked())
653 QMessageBox::warning(
this, tr(
"DTM Generation"), tr(
"Invalid envelope!"));
659 m_ui->m_dimLLineEdit->setText(QString::number(maxRows));
664 int cols =
m_ui->m_dimCLineEdit->text().toInt();
667 m_ui->m_resXLineEdit->setText(
"");
672 if (
m_ui->m_vectorradioButton->isChecked())
681 QMessageBox::warning(
this, tr(
"DTM Generation"), tr(
"Invalid envelope!"));
687 m_ui->m_resXLineEdit->setText(QString::number(resX));
692 int rows =
m_ui->m_dimLLineEdit->text().toInt();
695 m_ui->m_resYLineEdit->setText(
"");
700 if (
m_ui->m_vectorradioButton->isChecked())
709 QMessageBox::warning(
this, tr(
"DTM Generation"), tr(
"Invalid envelope!"));
715 m_ui->m_resYLineEdit->setText(QString::number(resY));
720 m_ui->m_newLayerNameLineEdit->clear();
721 m_ui->m_repositoryLineEdit->clear();
728 catch (
const std::exception& e)
730 QMessageBox::information(
this, tr(
"DTM Generation"), e.what());
734 m_ui->m_repositoryLineEdit->setText(fileDialog.
getPath().c_str());
735 m_ui->m_newLayerNameLineEdit->setText(fileDialog.
getFileName().c_str());
737 m_ui->m_newLayerNameLineEdit->setEnabled(
false);
742 m_ui->m_newLayerNameLineEdit->clear();
743 m_ui->m_newLayerNameLineEdit->setEnabled(
true);
747 std::list<te::da::DataSourceInfoPtr> dsPtrList = dlg.
getSelecteds();
749 if (dsPtrList.empty())
752 std::list<te::da::DataSourceInfoPtr>::iterator it = dsPtrList.begin();
754 m_ui->m_repositoryLineEdit->setText(QString(it->get()->getTitle().c_str()));
767 QApplication::setOverrideCursor(Qt::WaitCursor);
772 std::map<std::string, std::string> outdsinfo;
776 if (
m_ui->m_repositoryLineEdit->text().isEmpty())
779 if (
m_ui->m_newLayerNameLineEdit->text().isEmpty())
782 std::string outputdataset =
m_ui->m_newLayerNameLineEdit->text().toUtf8().data();
783 boost::filesystem::path uri(
m_ui->m_repositoryLineEdit->text().toUtf8().data());
788 std::size_t idx = outputdataset.find(
".");
789 if (idx != std::string::npos)
790 outputdataset = outputdataset.substr(0, idx);
792 outdsinfo[
"URI"] = uri.string();
794 double radius =
m_ui->m_radiusLineEdit->text().toDouble();
795 int pow =
m_ui->m_powerComboBox->currentText().toInt();
798 double resxo =
m_ui->m_resXLineEdit->text().toDouble(&ok);
801 double resyo =
m_ui->m_resYLineEdit->text().toDouble(&ok);
805 double min = std::numeric_limits<double>::max();
806 double max = std::numeric_limits<double>::min();
812 int inter_i =
m_ui->m_interpolatorComboBox->currentIndex();
860 grid->
setParams(
m_ui->m_isolinesZcomboBox->currentText().toUtf8().data(),
m_ui->m_samplesZcomboBox->currentText().toUtf8().data(), resxo, resyo,
m_inter, radius, pow);
872 int mp =
m_ui->m_minPtsMitLineEdit->text().toInt();
873 double t =
m_ui->m_tensionLineEdit->text().toDouble();
874 double s =
m_ui->m_smothLineEdit->text().toDouble();
888 grid->
setParams(
m_ui->m_isolinesZcomboBox->currentText().toUtf8().data(),
m_ui->m_samplesZcomboBox->currentText().toUtf8().data(), resxo, resyo,
m_inter, radius, pow);
901 unsigned int px =
m_ui->m_sepXSpinBox->text().toUInt();
902 unsigned int py =
m_ui->m_sepYSpinBox->text().toUInt();
903 unsigned int mp =
m_ui->m_minPtsSpinBox->text().toUInt();
904 double ov =
m_ui->m_overDoubleSpinBox->text().toDouble();
917 grid->
setParams(
m_ui->m_isolinesZcomboBox->currentText().toUtf8().data(),
m_ui->m_samplesZcomboBox->currentText().toUtf8().data(), resxo, resyo,
m_inter, radius, pow);
932 int inter_i =
m_ui->m_interpolatorComboBox->currentIndex();
963 std::unique_ptr<te::da::DataSet> inds(
m_inputLayer->getData());
965 std::unique_ptr<te::rst::Raster> inputRst(inds->getRaster(rpos).release());
966 if (inputRst->getNumberOfBands() > 1)
971 std::vector< std::complex<double> > dummy;
972 if (
m_ui->m_dummycheckBox->isChecked())
975 dummy.push_back(
m_ui->m_dummylineEdit->text().toDouble(&ok));
980 dummy.push_back(inputRst->getBand(0)->getProperty()->m_noDataValue);
982 int inter_i =
m_ui->m_interpolatorComboBox->currentIndex();
995 double resxi = inputRst->getResolutionX();
996 double resyi = inputRst->getResolutionY();
997 unsigned int outputWidth =
m_ui->m_dimCLineEdit->text().toUInt();
998 unsigned int outputHeight =
m_ui->m_dimLLineEdit->text().toUInt();
999 int X1 = inputRst->getExtent()->getLowerLeftX();
1000 int Y2 = inputRst->getExtent()->getUpperRightY();
1004 std::vector<te::rst::BandProperty*>
bands;
1006 bands[0]->m_nblocksx = 1;
1007 bands[0]->m_nblocksy = (
int)outputHeight;
1008 bands[0]->m_blkw = (
int)outputWidth;
1009 bands[0]->m_blkh = 1;
1018 std::vector<std::complex<double> > value;
1019 double xi, yi, xo, yo;
1021 for (
unsigned int l = 0; l < outputHeight; l++)
1023 for (
unsigned int c = 0; c < outputWidth; c++)
1030 xo = (X1 + c * resxo + resxo / 2.);
1031 yo = (Y2 - l * resyo - resyo / 2.);
1034 xi = ((xo - (X1 + resxi / 2.)) / resxi);
1035 yi = (((Y2 - resyi / 2.) - yo) / resyi);
1037 interp.getValues(xi, yi, value);
1041 max = (value[0].real() > max) ? value[0].real() : max;
1042 min = (value[0].real() < min) ? value[0].real() : min;
1064 for (
size_t b = 0;
b < rst->getNumberOfBands(); ++
b)
1066 double gain, offset1, offset2;
1069 contrast->setValues(gain, offset1, offset2, min, max,
b);
1075 QApplication::restoreOverrideCursor();
1076 QMessageBox::information(
this,
"DTM Generation", e.
what());
1080 QApplication::restoreOverrideCursor();
1092 srsDialog.setWindowTitle(tr(
"Choose the SRS"));
1094 if (srsDialog.exec() == QDialog::Rejected)
1107 m_ui->m_resSRIDLabel->setText(
"No SRS defined");
1113 m_ui->m_resSRIDLabel->setText(name.c_str());
1115 m_ui->m_resSRIDLabel->setText(QString(
"%1").arg(newSRID));
void setInput(te::da::DataSourcePtr inDsrc, std::string inDsetName, std::unique_ptr< te::da::DataSetType > inDsetType, InputType type)
It sets the Datasource that is being used to generate TIN.
TEDATAACCESSEXPORT DataSourcePtr GetDataSource(const std::string &datasourceId, const bool opened=true)
Search for a data source with the informed id in the DataSourceManager.
te::da::DataSourcePtr m_isoinDataSource
input DataSourcePtr
virtual void setValues(unsigned int c, unsigned int r, const std::vector< double > &values)
Sets the imaginary attribute values in all complex bands of a cell.
TEDATAACCESSEXPORT te::rst::RasterProperty * GetFirstRasterProperty(const DataSetType *dt)
bool run()
Calculate GRID \ return true or false.
static bool exists(const std::string &path)
Checks if a given path in UTF-8 exists.
Index into a lookup table.
boost::shared_ptr< DataSource > DataSourcePtr
te::map::AbstractLayerPtr m_sampleinputLayer
Input layer.
A raster band description.
std::unique_ptr< Ui::MNTGenerationDialogForm > m_ui
te::da::DataSourcePtr m_inDataSource
input DataSourcePtr
virtual const char * what() const
It outputs the exception message.
bool run()
Method that generates a regular Grid from a given TIN.
It interpolates one pixel based on a selected algorithm. Methods currently available are Nearest Neig...
void setSRID(int newSRID)
void onResYLineEditEditingFinished()
This class can be used to inform the progress of a task.
static bool getGainAndOffset(const InputParameters::ContrastType &type, const double &inRangeMin, const double &inRangeMax, const double &outRangeMin, const double &outRangeMax, double &gain, double &offset1, double &offset2)
Returns gain and offset values for contrast types (when applicable).
double m_urx
Upper right corner x-coordinate.
std::string m_isoinSetName
input DataSetLayer name
void onCancelPushButtonClicked()
te::map::AbstractLayerPtr m_inputLayer
Input layer.
An utility struct for representing 2D coordinates.
static te::dt::Date ds(2010, 01, 01)
mntType m_inputType
Input type (SAMPLE, TIN, GRID)
A dialog Retangular Grid generation.
void onDimCLineEditEditingFinished()
#define TE_TR(message)
It marks a string in order to get translated.
std::list< te::map::AbstractLayerPtr > m_layers
List of layers.
bool isActive() const
Verify if the task is active.
te::da::DataSourceInfoPtr m_outputDatasource
DataSource information.
te::da::DataSourcePtr m_sampleinDataSource
input DataSourcePtr
void setParams(const std::string &attriso, const std::string &attrpt, double resx, double resy, Interpolator gt, double rad, int pow)
It sets the parameters that is being used to save TIN.
double m_llx
Lower left corner x-coordinate.
static SpatialReferenceSystemManager & getInstance()
It returns a reference to the singleton instance.
An Envelope defines a 2D rectangular region.
void oninterpolatorComboBoxChanged(int index)
void setLayers(std::list< te::map::AbstractLayerPtr > layers)
An abstract class for raster data strucutures.
Class to calculate grid from TIN.
te::map::AbstractLayerPtr getLayer()
void pulse()
Calls setCurrentStep() function using getCurrentStep() + 1.
void onInputSamplesToolButtonClicked()
void onIsolinesComboBoxChanged(int index)
te::map::AbstractLayerPtr m_outputLayer
Generated Layer.
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
void onlayerSearchToolButtonClicked()
double m_lly
Lower left corner y-coordinate.
Bicubic interpolation method.
void setLayers(std::list< te::map::AbstractLayerPtr > layers)
Set the layer that can be used.
This class contains the parameters needed to apply dynamic contrast over a raster.
TEMAPEXPORT te::rst::Raster * GetRaster(AbstractLayer *layer)
It gets the raster referenced by the given data set layer.
void onResXLineEditEditingFinished()
te::map::AbstractLayerPtr m_isoinputLayer
Input layer.
double m_ury
Upper right corner y-coordinate.
static Raster * make()
It creates and returns an empty raster with default raster driver.
void setInput(te::da::DataSourcePtr inDsrc, std::string inDsetName, std::unique_ptr< te::da::DataSetType > inDsetType)
It sets the Datasource that is being used to generate TIN.
void setActive(const QList< mntType > &types)
void setOutput(std::map< std::string, std::string > &dsinfo)
It sets the Datasource that is being used to save TIN.
Bilinear interpolation method.
void onSrsToolButtonClicked()
void onDimLLineEditEditingFinished()
std::string m_sampleinSetName
input DataSetLayer name
void setParams(double resx, double resy, Interpolator gt)
It sets the parameters that is being used to save TIN.
void setOutput(std::map< std::string, std::string > &dsinfo)
It sets the Datasource that is being used to save TIN.
void onInputComboBoxChanged(int index)
std::vector< te::rst::BandProperty * > & getBandProperties()
Returns a reference to the list of bands definitions.
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
void onOkPushButtonClicked()
TEMNTEXPORT te::mnt::mntType getMNTType(const te::da::DataSetType *dt)
void onTargetDatasourceToolButtonPressed()
MNTGenerationDialog(QWidget *parent=0, Qt::WindowFlags f=0)
A rectified grid is the spatial support for raster data.
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
void onSamplesComboBoxChanged(int index)
void onInputIsolinesToolButtonClicked()
std::string m_inSetName
input DataSetLayer name
bool isValid() const
It tells if the rectangle is valid or not.
void onTargetFileToolButtonPressed()
te::map::AbstractLayerPtr getLayer()