All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RasterTransformConfigurer.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 RasterTransformConfigurer.h
22 
23  \brief A Raster Transform configurer generates a Raster Transform given a RasterSymbolzier.
24 */
25 
26 #ifndef __TERRALIB_MAPTOOLS_INTERNAL_RASTERTRANSFORMCONFIGURER_H
27 #define __TERRALIB_MAPTOOLS_INTERNAL_RASTERTRANSFORMCONFIGURER_H
28 
29 // TerraLib
30 #include "Config.h"
31 #include "RasterTransform.h"
32 
33 // STL
34 #include <map>
35 
36 namespace te
37 {
38 // Forward declarations
39  namespace se
40  {
41  class ContrastEnhancement;
42  class RasterSymbolizer;
43  class SelectedChannel;
44  class Interpolate;
45  class Categorize;
46  }
47 
48  namespace rst
49  {
50  class Raster;
51  class RasterProperty;
52  }
53 
54  namespace map
55  {
56  /*!
57  \class RasterTransformConfigurer
58 
59  \brief A Raster Transform configurer generates a Raster Transform given a RasterSymbolzier.
60 
61  \sa RasterTransform
62  */
64  {
65  public:
66 
67  /*!
68  \brief Constructor
69 
70  \param rs Valid raster symbolizer pointer
71  \param rt Pointer to a raster transform object that will be configurated
72 
73  \note
74  */
76 
77  /*! \brief Destructor. */
79 
80  /*! \brief Configure Transformation. */
81  void configure();
82 
83  protected:
84 
85  /*! Function used to get the commun properties (gain, offset, opacity) */
86  void getGeneralProperties();
87 
88  /*! Function used to get channel selection order */
89  void getChannelSelection();
90 
91  /*! Function used to get gray channel properties */
92  void getGrayChannelProperties(te::se::SelectedChannel* se);
93 
94  /*! Function used to get red channel properties */
95  void getRedChannelProperties(te::se::SelectedChannel* se);
96 
97  /*! Function used to get green channel properties */
98  void getGreenChannelProperties(te::se::SelectedChannel* se);
99 
100  /*! Function used to get blue channel properties */
101  void getBlueChannelProperties(te::se::SelectedChannel* se);
102 
103  /*! Function used to get gamma value from a Contrast Enhancement */
104  double getGammaProperty(te::se::ContrastEnhancement* ce);
105 
106  /*! Function used to get the color map information */
107  void getColorMapInformation();
108 
109  /*! Function used to get the color map Interpolated information */
110  void getInterpolatedMap(te::se::Interpolate* interpolate);
111 
112  /*! Function used to get the color map Categorized information */
113  void getCategorizedMap(te::se::Categorize* caterogize);
114 
115 
116  private:
117 
118  te::se::RasterSymbolizer* m_rstSymbolizer; //!< SE element that describes the raster style.
119  te::map::RasterTransform* m_rstTransform; //!< Raster transformation object.
120 
121  };
122 
123  } // end namespace map
124 } // end namespace te
125 
126 #endif // __TERRALIB_MAPTOOLS_INTERNAL_RASTERTRANSFORMCONFIGURER_H
A selected channel to be display.
A Raster Transform is a class that defines functions to transform a styled raster.
The transformation of continuous values to distinct values (Categorize function). ...
Definition: Categorize.h:90
te::se::RasterSymbolizer * m_rstSymbolizer
SE element that describes the raster style.
te::map::RasterTransform * m_rstTransform
Raster transformation object.
The transformation of continuous values to a number of values (Interpolate function).
Definition: Interpolate.h:88
ContrastEnhancement defines the 'stretching' of contrast for a channel of a false-color image or for ...
#define TEMAPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63
The RasterSymbolizer describes how to render raster/matrix-coverage data (e.g., satellite photos...
A Raster Transform configurer generates a Raster Transform given a RasterSymbolzier.
A Raster Transform is a class that defines functions to transform a styled raster.