SpatialCapabilities.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 SpatialCapabilities.h
22 
23  \brief Spatial capabilities include the ability to filter spatial data.
24  */
25 
26 #ifndef __TERRALIB_FE_INTERNAL_SPATIALCAPABILITIES_H
27 #define __TERRALIB_FE_INTERNAL_SPATIALCAPABILITIES_H
28 
29 // TerraLib
30 #include "Config.h"
31 
32 namespace te
33 {
34  namespace fe
35  {
36 // Forward declarations
37  class GeometryOperands;
38  class SpatialOperators;
39 
40  /*!
41  \class SpatialCapabilities
42 
43  \brief Spatial capabilities include the ability to filter spatial data.
44 
45  A service that supports spatial filtering shall
46  include a spatial capabilities section in the capabilities
47  document that it returns. Spatial capabilities include
48  the ability to filter spatial data of specified geometry
49  types based on the definition of a bounding box (BBOX) as well
50  as the ability to process the spatial operators defined by
51  CQL and the Simple Features for SQL specification:
52  <ul>
53  <li>Equals</li>
54  <li>Disjoint</li>
55  <li>Touches</li>
56  <li>Within</li>
57  <li>Overlaps</li>
58  <li>Crosses</li>
59  <li>Intersects</li>
60  <li>Contains</li>
61  <li>DWithin</li>
62  <li>Beyond</li>
63  </ul>
64 
65  \sa FilterCapabilities, GeometryOperands, SpatialOperators
66  */
68  {
69  public:
70 
71  /** @name Initializer Methods
72  * Methods related to instantiation and destruction.
73  */
74  //@{
75 
76  /*! \brief It initializes a new SpatialCapabilities. */
78 
79  /*! \brief Destructor. */
81 
82  //@}
83 
84  /** @name Accessor methods
85  * Methods used to get or set properties.
86  */
87  //@{
88 
89  /*!
90  \brief It sets the geometry operands.
91 
92  \param gOps The geometry operands.
93 
94  \note It will take the ownership of the geometry operands.
95  So, don't release the geometry operands resources.
96  */
97  void setGeometryOperands(GeometryOperands* gOps);
98 
99  /*!
100  \brief It returns the geometry operands.
101 
102  \return The geometry operands.
103  */
104  const GeometryOperands* getGeometryOperands() const;
105 
106  /*!
107  \brief It sets the spatial operators.
108 
109  \param sOps The spatial operators.
110 
111  \note It will take the ownership of the spatial operators.
112  So, don't release the arithmetic operators resources.
113  */
114  void setSpatialOperators(SpatialOperators* sOps);
115 
116  /*!
117  \brief It returns the spatial operators.
118 
119  \return The spatial operators.
120  */
121  const SpatialOperators* getSpatialOperators() const;
122 
123  //@}
124 
125  private:
126 
129  };
130 
131  } // end namespace fe
132 } // end namespace te
133 
134 #endif // __TERRALIB_FE_INTERNAL_SPATIALCAPABILITIES_H
Spatial capabilities include the ability to filter spatial data.
#define TEFEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:59
Geometry operands.
SpatialOperators * m_spatialOperators
Mandatory.
Spatial operators.
GeometryOperands * m_geometryOperands
Mandatory.
URI C++ Library.
Configuration flags for the TerraLib Filter Encoding module.