1 /******************************************************************************
2  *
3  * Project:  KML Translator
4  * Purpose:  Implements OGRLIBKMLDriver
5  * Author:   Brian Case, rush at winkey dot org
6  *
7  ******************************************************************************
8  * Copyright (c) 2010, Brian Case
9  *
10  * Permission is hereby granted, free of charge, to any person obtaining a
11  * copy of this software and associated documentation files (the "Software"),
12  * to deal in the Software without restriction, including without limitation
13  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14  * and/or sell copies of the Software, and to permit persons to whom the
15  * Software is furnished to do so, subject to the following conditions:
16  *
17  * The above copyright notice and this permission notice shall be included
18  * in all copies or substantial portions of the Software.
19  *
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26  * DEALINGS IN THE SOFTWARE.
27  *****************************************************************************/
28 
29 #ifndef OGR_LIBKML_GEOMETRY_H
30 #define OGR_LIBKML_GEOMETRY_H
31 
32 #include "libkml_headers.h"
33 
34 /*******************************************************************************
35  Function to write out a ogr geometry to km.
36 
37 args:
38             poOgrGeom     the ogr geometry
39             extra         used in recursion, just pass -1
40             poKmlFactory  pointer to the libkml dom factory
41 
42 returns:
43             ElementPtr to the geometry created
44 
45 *******************************************************************************/
46 
47 kmldom::ElementPtr geom2kml (
48     OGRGeometry * poOgrGeom,
49     int extra,
50     kmldom::KmlFactory * poKmlFactory );
51 
52 /******************************************************************************
53  Function to read a kml geometry and translate to ogr.
54 
55 Args:
56             poKmlGeometry   pointer to the kml geometry to translate
57             poOgrSRS        pointer to the spatial ref to set on the geometry
58 
59 Returns:
60             pointer to the new ogr geometry object
61 
62 ******************************************************************************/
63 
64 OGRGeometry *kml2geom (
65     kmldom::GeometryPtr poKmlGeometry,
66     OGRSpatialReference *poOgrSRS );
67 
68 OGRGeometry *kml2geom_latlonbox (
69     kmldom::LatLonBoxPtr poKmlLatLonBox,
70     OGRSpatialReference *poOgrSRS );
71 
72 OGRGeometry *kml2geom_latlonquad (
73     kmldom::GxLatLonQuadPtr poKmlLatLonQuad,
74     OGRSpatialReference *poOgrSRS );
75 
76 #endif  // OGR_LIBKML_GEOMETRY_H
77