mvdImageImporter.h 5.29 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48


/*****************************************************************************/
/* 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)
49
#ifndef Q_MOC_RUN  // See: https://bugreports.qt-project.org/browse/QTBUG-22829  //tag=QT4-boost-compatibility
50
#include "mvdAbstractWorker.h"
51
#endif //tag=QT4-boost-compatibility
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

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

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

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

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

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

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

  Q_OBJECT;

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

//
// Public methods.
public:

  /**
93
   * \brief Constructor (dataset-model).
94 95 96 97
   *
   * \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.
98
   * \param isForceCreateEnabled true to force creation of dataset.
99 100
   */
  ImageImporter( const QString& filename,
101
		 bool isForceCreateEnabled,
102 103
		 int width =-1,
		 int height =-1,
104
		 QObject* p =NULL );
105

106 107 108 109 110 111 112 113 114 115 116
  /**
   * \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,
117
		 QObject* p =NULL );
118

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
  /**
   * \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 ]-----------------------------------------------------*/

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

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

  //
  // AbstractWorker oveloads.

  QObject* virtual_Do();

179 180
  QString virtual_GetFirstProgressText() const;

181 182 183 184 185 186 187

//
// Private attributes.
private:
  /**
   */
  QString m_Filename;
188 189 190
  /**
   */
  ModelType m_ModelType;
191 192 193 194 195 196
  /**
   */
  int m_Width;
  /**
   */
  int m_Height;
197 198 199
  /**
   */
  bool m_IsForceCreateEnabled: 1;
200 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

  /*-[ 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'

234
#endif // mvdImageImporter_h