VectorizerPolygonStructure.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 terralib/raster/VectorizerPolygonStructure.h
22 
23  \brief A polygon container node class.
24 */
25 
26 #ifndef __TERRALIB_RASTER_INTERNAL_VECTORIZERPOLYGONSTRUCTURE_H
27 #define __TERRALIB_RASTER_INTERNAL_VECTORIZERPOLYGONSTRUCTURE_H
28 
29 // TerraLib
30 #include "../geometry/Polygon.h"
31 #include "TileIndexer.h"
32 #include "Config.h"
33 
34 #include <memory>
35 
36 namespace te
37 {
38  namespace rst
39  {
40  /*!
41  \class VectorizerPolygonStructure
42 
43  \brief A polygon container node class.
44  */
46  {
47  public:
48  /*! \brief Default constructor. */
50 
51  /*!
52  \brief Copy constructor.
53 
54  \param rhs The right-hand side VectorizerPolygonStructure.
55  */
57 
58  /*!
59  \brief Constructor with non default parameters.
60 
61  \param polPtr Polygon pointer (this structure will take the ownership of the given pointer)
62  \param v The pixel value related to the polygon.
63  \param tidy Tile indexer dy.
64  */
65  VectorizerPolygonStructure( te::gm::Polygon* polPtr, const double& v, const double& tidy);
66 
67  /*! \brief Default destructor. */
69 
70  /*! \brief Init internal variables. */
71  void init();
72 
73  /*! \brief Init internal variables. */
74  void clear();
75 
76  /*!
77  \brief Reset the current instance.
78 
79  \param polPtr Polygon pointer (this structure will take the ownership of the given pointer)
80  \param v Pixel value related to the polygon.
81  \param tidy Tile indexer dy.
82 
83  */
84  void reset( te::gm::Polygon* polPtr, const double& v, const double& tidy);
85 
86  /*!
87  \brief Assignment operator.
88 
89  \param rhs The right-hand-side copy that would be used to copy from.
90 
91  \return A reference to this object.
92  */
94 
95  public:
96 
97  double m_value; //!< The pixel value related to a polygon.
98  double m_tileIndexerDY; //!< The polygon tile indexer Y Axis resolution.
99  std::auto_ptr< TileIndexer > m_indexerPtr; //!< A pointer to the polygon tile indexer pointer.
100  std::auto_ptr< te::gm::Polygon > m_polygonPtr; //!< A pointer to the stored polygon instance.
101 
102  };
103 
104  } // end namespace rst
105 } // end namespace te
106 
107 #endif // __TERRALIB_RASTER_INTERNAL_VECTORIZERPOLYGONSTRUCTURE_H
double m_tileIndexerDY
The polygon tile indexer Y Axis resolution.
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:62
std::auto_ptr< TileIndexer > m_indexerPtr
A pointer to the polygon tile indexer pointer.
A polygon container node class.
Polygon tile indexing class for optmized geometrical relational tests.
URI C++ Library.
double m_value
The pixel value related to a polygon.
std::auto_ptr< te::gm::Polygon > m_polygonPtr
A pointer to the stored polygon instance.
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
Definition: Polygon.h:50
Configuration flags for the Raster module of TerraLib.