All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ImageModel.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 ImageModel.h
22 
23  \brief Class that represents a "Model" part of Image MVC component.
24  Its coordinate system is the same of scene (millimeters).
25  This is also son of ItemModelObservable, so it can become observable.
26 
27  \ingroup layout
28 */
29 
30 #ifndef __TERRALIB_LAYOUT_INTERNAL_IMAGE_MODEL_H
31 #define __TERRALIB_LAYOUT_INTERNAL_IMAGE_MODEL_H
32 
33 // TerraLib
34 #include "../core/pattern/mvc/ItemModelObservable.h"
35 #include "../core/ContextItem.h"
36 #include "../../maptools/Enums.h"
37 #include "../core/Config.h"
38 
39 // STL
40 #include <string>
41 
42 namespace te
43 {
44  namespace layout
45  {
46  /*!
47  \brief Class that represents a "Model" part of Image MVC component.
48  Its coordinate system is the same of scene (millimeters).
49  This is also son of ItemModelObservable, so it can become observable.
50 
51  \ingroup layout
52 
53  \sa te::layout::ItemModelObservable
54  */
56  {
57  public:
58 
59  /*!
60  \brief Constructor
61  */
62  ImageModel();
63 
64  /*!
65  \brief Destructor
66  */
67  virtual ~ImageModel();
68 
69  /*!
70  \brief Reimplemented from ItemModelObservable
71  */
72  virtual te::layout::Properties* getProperties() const;
73 
74  /*!
75  \brief Reimplemented from ItemModelObservable
76  */
77  virtual void updateProperties(te::layout::Properties* properties);
78 
79  /*!
80  \brief Change file name
81 
82  \param fileName file name
83  */
84  virtual void setFileName(std::string fileName);
85 
86  /*!
87  \brief Change file name
88 
89  \param fileName file name
90  */
91  virtual std::string getFileName();
92 
93  /*!
94  \brief Returns the file extension.
95 
96  \param file extension
97  */
98  virtual std::string getFileExtension();
99 
100  /*!
101  \brief Returns the type of the image.
102 
103  \return type of the image
104  */
105  virtual te::map::ImageType getFileType();
106 
107  protected:
108 
109  std::string m_fileName; //!< full path where the file is
110  std::string m_fileExtension; //!< file extension
111  te::map::ImageType m_imgType; //!< image type
112  };
113  }
114 }
115 
116 #endif
ImageType
This enum specifies the possible input and output image formats supported by the canvas API...
Definition: Enums.h:38
te::map::ImageType m_imgType
image type
Definition: ImageModel.h:111
std::string m_fileExtension
file extension
Definition: ImageModel.h:110
#define TELAYOUTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:99
Abstract class to represent an observable. "Model" part of MVC component. All classes representing th...
The Properties class represents a persistent set of properties. The Properties can be saved to a file...
Definition: Properties.h:52
std::string m_fileName
full path where the file is
Definition: ImageModel.h:109
Class that represents a "Model" part of Image MVC component. Its coordinate system is the same of sce...
Definition: ImageModel.h:55