geometry.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 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 General Public License for more details.
14 
15  You should have received a copy of the GNU 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 geometry.h
22 
23  \brief This file contains include headers for the Vector Geometry model of TerraLib.
24  */
25 
26 #ifndef __TERRALIB_INTERNAL_GEOMETRY_H
27 #define __TERRALIB_INTERNAL_GEOMETRY_H
28 
29 // TerraLib
30 #include "geometry/AffineGT.h"
34 #include "geometry/CompoundCurve.h"
35 #include "geometry/Config.h"
36 #include "geometry/Coord2D.h"
37 #include "geometry/Curve.h"
38 #include "geometry/CurvePolygon.h"
39 #include "geometry/Enums.h"
40 #include "geometry/Envelope.h"
41 #include "geometry/Exception.h"
43 #include "geometry/Geometry.h"
48 #include "geometry/GEOSReader.h"
49 #include "geometry/GEOSWriter.h"
50 #include "geometry/GTFactory.h"
51 #include "geometry/GTFilter.h"
53 #include "geometry/GTParameters.h"
54 #include "geometry/Line.h"
55 #include "geometry/LinearRing.h"
56 #include "geometry/LineString.h"
57 #include "geometry/MultiCurve.h"
59 #include "geometry/MultiPoint.h"
60 #include "geometry/MultiPolygon.h"
61 #include "geometry/MultiSurface.h"
62 #include "geometry/Point.h"
63 #include "geometry/Polygon.h"
65 #include "geometry/Surface.h"
66 #include "geometry/TIN.h"
67 #include "geometry/Triangle.h"
68 #include "geometry/ProjectiveGT.h"
70 #include "geometry/RSTGT.h"
71 #include "geometry/RSTGTFactory.h"
76 #include "geometry/Utils.h"
77 #include "geometry/Validation.h"
78 #include "geometry/Visitor.h"
79 #include "geometry/WKBReader.h"
80 #include "geometry/WKBSize.h"
81 #include "geometry/WKBWriter.h"
82 #include "geometry/WKTReader.h"
83 #include "geometry/WKTWriter.h"
84 
85 /*!
86  \defgroup geometry Geometry
87 
88  \brief This module implements the vector geometry support of TerraLib.
89 
90  The vector geometry module of TerraLib is OGC compliant.
91  So, the majority documentation of this module was extracted from
92  the Open Geospatial Consortium specification called
93  Simple Feature Specification - Part 1: Common Architecture.
94  This specification can be accessed at: http://www.opengeospatial.org/standards/sfa.
95 
96  It is important to notice that this module refers to a geometry model to be used in main memory
97  and it doesn't assume any kind of persistence or data storage management.
98 
99  Basically, the geometry module is responsible for providing:
100 
101  <ul>
102  <li>The primitive geometric objects like points, lines and polygons;</li>
103  <li>Homogeneous and heterogeneous collections of geometries;</li>
104  <li>Curved geometries;</li>
105  <li>Polyhedral surfaces and Triangular Irregular Networks (TIN);</li>
106  <li>Spatial operations: topological relationship tests, metric, set operations;</li>
107  <li>Serialization routines for common data formats: WKB, WKT, ...</li>
108  </ul>
109 
110  The main classes/concepts in this module are listed here. The namespace associated to the Geometry module is te::gm.
111  To know more about it, see the te::gm namespace documentation.
112 */
113 
114 namespace te
115 {
116  /*!
117  \brief Namespace for the Vector Geometry module of TerraLib.
118  */
119  namespace gm
120  {
121  } // end namespace gm
122 } // end namespace te
123 
124 #endif // __TERRALIB_INTERNAL_GEOMETRY_H
125 
GeometricTransformation.h
2D Geometric transformation base class.
GeometryProperty.h
Geometric property.
AffineGTFactory.h
2D Affine Geometric transformation factory.
WKTWriter.h
A class that serializes a geometry to the WKT format.
MultiPoint.h
MultiPoint is a GeometryCollection whose elements are restricted to points.
te
TerraLib.
Definition: AddressGeocodingOp.h:52
Point.h
A point with x and y coordinate values.
GEOSReader.h
A class that converts a GEOS geometry to a TerraLib geometry.
Enums.h
Enumerations related to Geometry module.
CircularString.h
CircularString is a curve with circular interpolation between points.
MultiCurve.h
MultiCurve is a class that represents a 1-dimensional GeometryCollection whose elements are curves.
AffineGT.h
2D Affine Geometric transformation.
Geometry.h
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
CurvePolygon.h
CurvePolygon is a planar surface defined by 1 exterior boundary and 0 or more interior boundaries.
SecondDegreePolynomialGTFactory.h
2D Second Degree Polynomial Geometric transformation factory.
WKBSize.h
A class that computes the number of bytes necessary to encode a geometry in WKB.
PolyhedralSurface.h
PolyhedralSurface is a contiguous collection of polygons, which share common boundary segments.
GTFilter.h
2D Geometric transformation outliers remotion filter.
RSTGTFactory.h
2D RST Geometric transformation factory.
WKBReader.h
A class that deserializes a geometry from a valid WKB.
MultiSurface.h
MultiSurface is a class that represents a 2-dimensional GeometryCollection whose elements are surface...
Polygon.h
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
CommonDataStructures.h
Surface.h
Surface is an abstract class that represents a 2-dimensional geometric objects.
SecondDegreePolynomialGT.h
Second Degree Polynomial Geometric transformation.
WKBWriter.h
A class that serializes a geometry to the WKB format.
CompoundCurve.h
CompoundCurve is a curve that may have circular and linear segments.
ThirdDegreePolynomialGT.h
Third Degree Polynomial Geometric transformation.
GeometryFunctions.h
A list of common used Geometry functions for the Geometry Module.
Line.h
A Line is LineString with 2 points.
LineString.h
LineString is a curve with linear interpolation between points.
Triangle.h
Triangle is a polygon with 3 distinct, non-collinear vertices and no interior boundary.
Coord2D.h
An utility struct for representing 2D coordinates.
MultiLineString.h
MultiLineString is a MultiCurve whose elements are LineStrings.
GTParameters.h
2D Geometric transformation parameters.
Validation.h
A list of Validation functions for the Geometry Module.
WKTReader.h
A class that deserializes a geometry from a valid WKT.
Envelope.h
An Envelope defines a 2D rectangular region.
ProjectiveGTFactory.h
2D Projective Geometric transformation factory.
ThirdDegreePolynomialGTFactory.h
2D Third Degree Polynomial Geometric transformation factory.
TIN.h
TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches.
Exception.h
An exception class for the Geometry module.
Utils.h
Utility functions for the Geometry Module.
LinearRing.h
A LinearRing is a LineString that is both closed and simple.
ProjectiveGT.h
2D Projective Geometric transformation.
Curve.h
Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of co...
GTFactory.h
2D Geometric transformation factory.
GeometryFactory.h
This is the Geometry factory for TerraLib geometries.
GeometryCollection.h
It is a collection of other geometric objects.
Config.h
Configuration flags for the Vector Geometry Model of TerraLib.
RSTGT.h
2D Rotation/scale/translation (rigid body) Geometric transformation.
Visitor.h
A visitor interface for the Geometry hierarchy.
MultiPolygon.h
MultiPolygon is a MultiSurface whose elements are Polygons.
GTModelParameters.h
2D Geometric transformation model parameters.
GEOSWriter.h
A class that converts a TerraLib geometry to a GEOS geometry.