mvdImageImporter.h 5.34 KB
Newer Older
1 2
/*=========================================================================

3
  Program:   Monteverdi
4 5 6 7 8 9
  Language:  C++


  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
  See Copyright.txt for details.

10
  Monteverdi is distributed under the CeCILL licence version 2. See
11 12 13 14 15 16 17 18
  Licence_CeCILL_V2-en.txt or
  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt for more details.

  This software is distributed WITHOUT ANY WARRANTY; without even
  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  PURPOSE.  See the above copyright notices for more information.

=========================================================================*/
19 20
#ifndef mvdImageImporter_h
#define mvdImageImporter_h
21 22 23 24

//
// Configuration include.
//// Included at first position before any other ones.
25
#ifndef Q_MOC_RUN  // See: https://bugreports.qt-project.org/browse/QTBUG-22829  //tag=QT4-boost-compatibility
26
#include "ConfigureMonteverdi.h"
27
#endif //tag=QT4-boost-compatibility
28

29
#include "OTBMonteverdiCoreExport.h"
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

/*****************************************************************************/
/* INCLUDE SECTION                                                           */

//
// Qt includes (sorted by alphabetic order)
//// Must be included before system/custom includes.
#include <QtCore>

//
// System includes (sorted by alphabetic order)

//
// ITK includes (sorted by alphabetic order)

//
// OTB includes (sorted by alphabetic order)

//
// Monteverdi includes (sorted by alphabetic order)
50
#ifndef Q_MOC_RUN  // See: https://bugreports.qt-project.org/browse/QTBUG-22829  //tag=QT4-boost-compatibility
51
#include "mvdAbstractWorker.h"
52
#endif //tag=QT4-boost-compatibility
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

/*****************************************************************************/
/* PRE-DECLARATION SECTION                                                   */

//
// External classes pre-declaration.
namespace
{
}

namespace mvd
{
//
// Internal classes pre-declaration.

/*****************************************************************************/
/* CLASS DEFINITION SECTION                                                  */

/**
 * \class ImageImporter
 *
74
 * \ingroup OTBMonteverdiCore
75
 *
76 77 78
 * \brief Import image worker. It is parametrized by the image
 * filename and the desired (width, height) best-fit size.
 */
79
class OTBMonteverdiCore_EXPORT ImageImporter :
80 81 82 83 84 85 86 87 88 89 90 91 92 93
    public AbstractWorker
{

  /*-[ QOBJECT SECTION ]-----------------------------------------------------*/

  Q_OBJECT;

  /*-[ PUBLIC SECTION ]------------------------------------------------------*/

//
// Public methods.
public:

  /**
94
   * \brief Constructor (dataset-model).
95 96 97 98
   *
   * \param filename Filename of image to import.
   * \param width Width of the best-fit size or -1 if none.
   * \param height Height of the best-fit size or -1 if none.
99
   * \param isForceCreateEnabled true to force creation of dataset.
100 101
   */
  ImageImporter( const QString& filename,
102
		 bool isForceCreateEnabled,
103 104
		 int width =-1,
		 int height =-1,
105
		 QObject* p =NULL );
106

107 108 109 110 111 112 113 114 115 116 117
  /**
   * \brief Constructor (image-model).
   *
   * \param filename Filename of image to import.
   * \param width Width of the best-fit size or -1 if none.
   * \param height Height of the best-fit size or -1 if none.
   * \param isForceCreateEnabled true to force creation of dataset.
   */
  ImageImporter( const QString& filename,
		 int width =-1,
		 int height =-1,
118
		 QObject* p =NULL );
119

120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
  /**
   * \brief Destructor.
   */
  virtual ~ImageImporter();

  /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/

//
// Public SLOTS.
public slots:

  /*-[ SIGNALS SECTION ]-----------------------------------------------------*/

//
// Signals.
signals:

  /**
   * \brief Signal emitted when job/task has correctly been done.
   *
   * \param result Resulting QObject instance of NULL if none.
   */
  //void Done( QObject* result =NULL );

  /**
   * \brief Signal emitted when an exception has been caught by this worker.
   *
   * \param exc The copy (thread safety) exception which has been caught.
   */
  //void ExceptionRaised( std::exception exc );

  /*-[ PROTECTED SECTION ]---------------------------------------------------*/

//
// Protected methods.
protected:

//
// Protected attributes.
protected:

  /*-[ PRIVATE SECTION ]-----------------------------------------------------*/

163 164 165 166 167 168 169 170
//
// Private types.
private:
  enum ModelType
  {
    IMAGE,
  };

171 172 173 174 175 176 177 178 179
//
// Private methods.
private:

  //
  // AbstractWorker oveloads.

  QObject* virtual_Do();

180 181
  QString virtual_GetFirstProgressText() const;

182 183 184 185 186 187 188

//
// Private attributes.
private:
  /**
   */
  QString m_Filename;
189 190 191
  /**
   */
  ModelType m_ModelType;
192 193 194 195 196 197
  /**
   */
  int m_Width;
  /**
   */
  int m_Height;
198 199 200
  /**
   */
  bool m_IsForceCreateEnabled: 1;
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234

  /*-[ PRIVATE SLOTS SECTION ]-----------------------------------------------*/

//
// Slots.
private slots:
};

} // end namespace 'mvd'.

/*****************************************************************************/
/* INLINE SECTION                                                            */

//
// Qt includes (sorted by alphabetic order)
//// Must be included before system/custom includes.

//
// System includes (sorted by alphabetic order)

//
// ITK includes (sorted by alphabetic order)

//
// OTB includes (sorted by alphabetic order)

//
// Monteverdi includes (sorted by alphabetic order)

namespace mvd
{

} // end namespace 'mvd'

235
#endif // mvdImageImporter_h