27 #include "../../../common/progress/ProgressManager.h" 
   28 #include "../../../dataaccess/dataset/DataSet.h" 
   29 #include "../../../dataaccess/utils/Utils.h" 
   30 #include "../../../raster/Grid.h" 
   31 #include "../../../raster/Raster.h" 
   32 #include "../../../rp/Register.h" 
   33 #include "../../../rp/Module.h" 
   34 #include "../help/HelpPushButton.h" 
   35 #include "../layer/search/LayerSearchWidget.h" 
   36 #include "../layer/search/LayerSearchWizardPage.h" 
   37 #include "../progress/ProgressViewerDialog.h" 
   51 #include <QApplication> 
   52 #include <QMessageBox> 
   59   this->setWizardStyle(QWizard::ModernStyle);
 
   60   this->setWindowTitle(tr(
"Register"));
 
   63   this->setOption(QWizard::HaveHelpButton, 
true);
 
   64   this->setOption(QWizard::HelpButtonOnRight, 
false);
 
   68   this->setButton(QWizard::HelpButton, helpButton);
 
   82   if(currentPage() ==  m_layerRefPage.get())
 
   84     std::list<te::map::AbstractLayerPtr> list = m_layerRefPage->getSearchWidget()->getSelecteds();
 
   86     if(list.empty() == 
false)
 
   88       m_refLayer = *list.begin();
 
   90       m_tiePointLocatorDialog->setReferenceLayer(m_refLayer);
 
   93     return m_layerRefPage->isComplete();
 
   95   else if(currentPage() ==  m_layerAdjPage.get())
 
   97     std::list<te::map::AbstractLayerPtr> list = m_layerAdjPage->getSearchWidget()->getSelecteds();
 
   99     if(list.empty() == 
false)
 
  101       m_adjLayer = *list.begin();
 
  103       m_tiePointLocatorDialog->setAdjustLayer(m_adjLayer);
 
  106     m_tiePointLocatorDialog->showMaximized();
 
  108     return m_layerAdjPage->isComplete();
 
  110   else if(currentPage() ==  m_rasterInfoPage.get())
 
  112     std::vector< te::gm::GTParameters::TiePoint > tiePoints;
 
  114     m_tiePointLocatorDialog->getWidget()->getTiePoints(tiePoints);
 
  116     if(tiePoints.empty())
 
  118       QMessageBox::warning(
this, tr(
"Register"), tr(
"Tie Points not aquired."));
 
  130   m_layerRefPage->getSearchWidget()->setList(layerList);
 
  131   m_layerAdjPage->getSearchWidget()->setList(layerList);
 
  133   m_layerRefPage->getSearchWidget()->filterOnlyByRaster();
 
  134   m_layerAdjPage->getSearchWidget()->filterOnlyByRaster();
 
  139   return m_outputLayer;
 
  149   addPage(m_layerRefPage.get());
 
  150   addPage(m_layerAdjPage.get());
 
  151   addPage(m_rasterInfoPage.get());
 
  154   m_layerRefPage->setSubTitle(tr(
"Allows selection of layers using filters for selection. Select the layer to be used as REFERENCE."));
 
  155   m_layerRefPage->getSearchWidget()->enableMultiSelection(
false);
 
  156   m_layerAdjPage->setSubTitle(tr(
"Allows selection of layers using filters for selection. Select the layer to be used as ADJUST."));
 
  157   m_layerAdjPage->getSearchWidget()->enableMultiSelection(
false);
 
  162   if(m_rasterInfoPage->getWidget()->fileExists())
 
  164     QMessageBox::warning(
this, tr(
"Register"), tr(
"File already exists."));
 
  169   std::auto_ptr<te::da::DataSet> ds(m_adjLayer->getData());
 
  171   std::auto_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
 
  173   std::vector<unsigned int> vec;
 
  174   for(
size_t t = 0; t < inputRst->getNumberOfBands(); ++t)
 
  176     vec.push_back((
unsigned int)t);
 
  179   std::vector< te::gm::GTParameters::TiePoint > tiePoints;
 
  180   m_tiePointLocatorDialog->getWidget()->getTiePoints(tiePoints);
 
  183   m_tiePointLocatorDialog->getWidget()->getOutputSRID(srid);
 
  186   m_tiePointLocatorDialog->getWidget()->getOutputResolution(resX, resY);
 
  199   algoOutputParams.
m_rType = m_rasterInfoPage->getWidget()->getType();
 
  200   algoOutputParams.
m_rInfo = m_rasterInfoPage->getWidget()->getInfo();
 
  207   QApplication::setOverrideCursor(Qt::WaitCursor);
 
  213     if(!algorithmInstance.
initialize(algoInputParams))
 
  215       QMessageBox::warning(
this, tr(
"Register"), tr(
"Algorithm initialization error.") +
 
  220       QApplication::restoreOverrideCursor();
 
  225     if(!algorithmInstance.
execute(algoOutputParams))
 
  227       QMessageBox::warning(
this, tr(
"Register"), tr(
"Register Error.") +
 
  232       QApplication::restoreOverrideCursor();
 
  238       QMessageBox::warning(
this, tr(
"Register"), tr(
"Register Done!"));
 
  240       algoOutputParams.
reset();
 
  244                                                    m_rasterInfoPage->getWidget()->getInfo());
 
  247   catch(
const std::exception& e)
 
  249     QMessageBox::warning(
this, tr(
"Register"), e.what());
 
  253     QApplication::restoreOverrideCursor();
 
  259     QMessageBox::warning(
this, tr(
"Register"), tr(
"An exception has occurred!"));
 
  263     QApplication::restoreOverrideCursor();
 
  270   QApplication::restoreOverrideCursor();
 
Utility functions for the data access module. 
 
bool execute(AlgorithmOutputParameters &outputParams)
Executes the algorithm using the supplied parameters. 
 
This file defines the RegisterWizard class. 
 
This file defines a class for a Raster Info Wizard page. 
 
bool initialize(const AlgorithmInputParameters &inputParams)
Initialize the algorithm instance making it ready for execution. 
 
static const std::string & getLastLogStr()
Returns the last log string generated by this module. 
 
void removeViewer(int viewerId)
Dettach a progress viewer. 
 
static ProgressManager & getInstance()
It returns a reference to the singleton instance. 
 
This class is GUI used to define the raster info parameters for raster factory. 
 
std::map< std::string, std::string > m_rInfo
The necessary information to create the output rasters (as described in te::raster::RasterFactory). 
 
int addViewer(AbstractProgressViewer *apv)
Attach a progress viewer. 
 
Performs raster data registering into a SRS using a set of tie points. 
 
Register output parameters. 
 
std::string m_rType
Output raster data source type (as described in te::raster::RasterFactory ). 
 
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
 
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
 
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state...