Envelope.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/gml/Envelope.h
22 
23  \brief Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions.
24  */
25 
26 #ifndef __TERRALIB_GML_INTERNAL_ENVELOPE_H
27 #define __TERRALIB_GML_INTERNAL_ENVELOPE_H
28 
29 // TerraLib
30 #include "Config.h"
31 
32 namespace te
33 {
34  namespace gm { class Envelope; }
35 
36  namespace gml
37  {
38  /*!
39  \class Envelope
40 
41  \brief Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions.
42 
43  The first direct position is the "lower corner" (a coordinate position
44  consisting of all the minimal ordinates for each dimension for all points
45  within the envelope), the second one the "upper corner" (a coordinate position
46  consisting of all the maximal ordinates for each dimension for all points
47  within the envelope).
48  <br>
49  The use of the properties "coordinates" and "pos" has been deprecated.
50  The explicitly named properties "lowerCorner" and "upperCorner" shall be used instead.
51  */
53  {
54  public:
55 
56  /** @name Initializer Methods
57  * Methods related to instantiation and destruction.
58  */
59  //@{
60 
61  /*! \brief It initializes a new empty Envelope. */
62  Envelope();
63 
64  /*!
65  \brief It initializes the GML envelope with the given coordinates and srs.
66 
67  \param e The envelope.
68  \param srid The envelope spatial reference system.
69  */
70  Envelope(te::gm::Envelope* e, int srid);
71 
72  /*! \brief Destructor. */
73  ~Envelope();
74 
75  //@}
76 
77  /** @name Accessor methods
78  * Methods used to get or set properties.
79  */
80  //@{
81 
82  te::gm::Envelope* getCoordinates() const;
83 
84  void setCoordinates(const double& llx, const double& lly, const double& urx, const double& ury);
85 
86  int getSRID() const;
87 
88  void setSRID(int srid);
89 
90  //@}
91 
92  private:
93 
94  /** @name Not Allowed Methods
95  * No copy allowed.
96  */
97  //@{
98 
99  /*!
100  \brief No copy constructor allowed.
101 
102  \param rhs The other object.
103  */
104  Envelope(const Envelope& rhs);
105 
106  /*!
107  \brief No assignment operator allowed.
108 
109  \param rhs The other object.
110 
111  \return A reference for this object.
112  */
113  Envelope& operator=(const Envelope& rhs);
114 
115  //@}
116 
117  private:
118 
119  te::gm::Envelope* m_envelope; //!< The envelope coordinates.
120  int m_srid; //!< The SRS associated to the envelope coordinates.
121  };
122 
123  } // end namespace gml
124 } // end namespace te
125 
126 #endif // __TERRALIB_GML_INTERNAL_ENVELOPE_H
#define TEGMLEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:60
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
URI C++ Library.
Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimension...
Definition: Envelope.h:52
Configuration flags for the GML module of TerraLib.
te::gm::Envelope * m_envelope
The envelope coordinates.
Definition: Envelope.h:119
int m_srid
The SRS associated to the envelope coordinates.
Definition: Envelope.h:120