GEOSHelpers.hpp
Go to the documentation of this file.
1 /*
2 
3  This file is part of OpenFLUID software
4  Copyright(c) 2007, INRA - Montpellier SupAgro
5 
6 
7  == GNU General Public License Usage ==
8 
9  OpenFLUID is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  OpenFLUID is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with OpenFLUID. If not, see <http://www.gnu.org/licenses/>.
21 
22 
23  == Other Usage ==
24 
25  Other Usage means a use of OpenFLUID that is inconsistent with the GPL
26  license, and requires a written agreement between You and INRA.
27  Licensees for Other Usage of OpenFLUID may use this file in accordance
28  with the terms contained in the written agreement between You and INRA.
29 
30 */
31 
32 
33 
34 /**
35  @file GEOSHelpers.hpp
36 
37  @author Aline LIBRES <aline.libres@gmail.com>
38  @author Jean-Christophe Fabre <jean-christophe.fabre@supagro.inra.fr>
39  */
40 
41 
42 #ifndef __OPENFLUID_LANDR_GEOSHELPERS_HPP__
43 #define __OPENFLUID_LANDR_GEOSHELPERS_HPP__
44 
45 
46 #include <geos/geom/GeometryFactory.h>
47 
48 #include <ogrsf_frmts.h>
49 
50 #include <openfluid/dllexport.hpp>
51 #include <openfluid/config.hpp>
52 
53 
54 namespace openfluid { namespace landr {
55 
56 
57 #if GEOS_VERSION_GREATER_OR_EQUAL_3_3_0
58  #define GET_DANGLES(P,D) \
59  D = P->getDangles();
60 #else
61  #define GET_DANGLES(P,D) \
62  std::vector<const geos::geom::LineString*>* _M_TheDangles = P->getDangles(); \
63  if (_M_TheDangles) \
64  D = *_M_TheDangles;
65 #endif
66 
67 
68 #if GEOS_VERSION_GREATER_OR_EQUAL_3_3_2
69  #define GEOM_PTR_PAIR geos::geom::GeomPtrPair
70 #else
71  #define GEOM_PTR_PAIR std::pair<std::unique_ptr<geos::geom::Geometry>,std::unique_ptr<geos::geom::Geometry> >
72 #endif
73 
74 
75 // =====================================================================
76 // =====================================================================
77 
78 
79 GEOSGeom OPENFLUID_API convertOGRGeometryToGEOS(const OGRGeometry* Geometry);
80 
81 
82 OGRGeometry* /*OPENFLUID_API*/ convertGEOSGeometryToOGR(const GEOSGeom Geometry);
83 
84 
85 } } // namespaces
86 
87 
88 #endif /* __OPENFLUID_LANDR_GEOSHELPERS_HPP__ */
OGRGeometry * convertGEOSGeometryToOGR(const GEOSGeom Geometry)
Definition: ApplicationException.hpp:47
GEOSGeom OPENFLUID_API convertOGRGeometryToGEOS(const OGRGeometry *Geometry)
#define OPENFLUID_API
Definition: dllexport.hpp:87