{-# LINE 1 "src/GDAL/OGRGeometry/FFI.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-}
module GDAL.OGRGeometry.FFI where
import Data.Word
import Data.Int
import Foreign.C
import Foreign.Ptr
import GDAL.OGRGeometry.RawType
import GDAL.OGRGeometry.RawType
import GDAL.OGRPolygon.RawType
import GDAL.OGRMultiPolygon.RawType
import GDAL.OGREnvelope.RawType
import GDAL.OGRPoint.RawType

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_delete" c_ogrgeometry_delete ::
               Ptr RawOGRGeometry -> IO ()

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_getGeometryType"
               c_ogrgeometry_getgeometrytype :: Ptr RawOGRGeometry -> IO CUInt

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_getEnvelope"
               c_ogrgeometry_getenvelope ::
               Ptr RawOGRGeometry -> Ptr RawOGREnvelope -> IO ()

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Intersects"
               c_ogrgeometry_intersects ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Equals" c_ogrgeometry_equals ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Disjoint" c_ogrgeometry_disjoint ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Touches" c_ogrgeometry_touches ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Crosses" c_ogrgeometry_crosses ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Within" c_ogrgeometry_within ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Contains" c_ogrgeometry_contains ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Overlaps" c_ogrgeometry_overlaps ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Boundary" c_ogrgeometry_boundary ::
               Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Distance" c_ogrgeometry_distance ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CDouble

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_ConvexHull"
               c_ogrgeometry_convexhull ::
               Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Buffer" c_ogrgeometry_buffer ::
               Ptr RawOGRGeometry -> CDouble -> CInt -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Intersection"
               c_ogrgeometry_intersection ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Union" c_ogrgeometry_union ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_UnionCascaded"
               c_ogrgeometry_unioncascaded ::
               Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Difference"
               c_ogrgeometry_difference ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_SymDifference"
               c_ogrgeometry_symdifference ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Centroid" c_ogrgeometry_centroid ::
               Ptr RawOGRGeometry -> Ptr RawOGRPoint -> IO CInt

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Simplify" c_ogrgeometry_simplify ::
               Ptr RawOGRGeometry -> CDouble -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_oGRGeometry_SimplifyPreserveTopology"
               c_ogrgeometry_ogrgeometry_simplifypreservetopology ::
               Ptr RawOGRGeometry -> CDouble -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_DelaunayTriangulation"
               c_ogrgeometry_delaunaytriangulation ::
               Ptr RawOGRGeometry -> CDouble -> CInt -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Polygonize"
               c_ogrgeometry_polygonize ::
               Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_Distance3D"
               c_ogrgeometry_distance3d ::
               Ptr RawOGRGeometry -> Ptr RawOGRGeometry -> IO CDouble

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_oGRGeometry_toPolygon"
               c_ogrgeometry_ogrgeometry_topolygon ::
               Ptr RawOGRGeometry -> IO (Ptr RawOGRPolygon)

foreign import ccall interruptible
               "HGDALOGRGeometry.h OGRGeometry_oGRGeometry_toMultiPolygon"
               c_ogrgeometry_ogrgeometry_tomultipolygon ::
               Ptr RawOGRGeometry -> IO (Ptr RawOGRMultiPolygon)