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

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_getGeometryType"
               c_ogrmultipolygon_getgeometrytype ::
               Ptr RawOGRMultiPolygon -> IO CUInt

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_getEnvelope"
               c_ogrmultipolygon_getenvelope ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGREnvelope -> IO ()

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Intersects"
               c_ogrmultipolygon_intersects ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Equals"
               c_ogrmultipolygon_equals ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Disjoint"
               c_ogrmultipolygon_disjoint ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Touches"
               c_ogrmultipolygon_touches ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Crosses"
               c_ogrmultipolygon_crosses ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Within"
               c_ogrmultipolygon_within ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Contains"
               c_ogrmultipolygon_contains ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Overlaps"
               c_ogrmultipolygon_overlaps ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CBool

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Boundary"
               c_ogrmultipolygon_boundary ::
               Ptr RawOGRMultiPolygon -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Distance"
               c_ogrmultipolygon_distance ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CDouble

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_ConvexHull"
               c_ogrmultipolygon_convexhull ::
               Ptr RawOGRMultiPolygon -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Buffer"
               c_ogrmultipolygon_buffer ::
               Ptr RawOGRMultiPolygon ->
                 CDouble -> CInt -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Intersection"
               c_ogrmultipolygon_intersection ::
               Ptr RawOGRMultiPolygon ->
                 Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Union"
               c_ogrmultipolygon_union ::
               Ptr RawOGRMultiPolygon ->
                 Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_UnionCascaded"
               c_ogrmultipolygon_unioncascaded ::
               Ptr RawOGRMultiPolygon -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Difference"
               c_ogrmultipolygon_difference ::
               Ptr RawOGRMultiPolygon ->
                 Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_SymDifference"
               c_ogrmultipolygon_symdifference ::
               Ptr RawOGRMultiPolygon ->
                 Ptr RawOGRGeometry -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Centroid"
               c_ogrmultipolygon_centroid ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRPoint -> IO CInt

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Simplify"
               c_ogrmultipolygon_simplify ::
               Ptr RawOGRMultiPolygon -> CDouble -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_DelaunayTriangulation"
               c_ogrmultipolygon_delaunaytriangulation ::
               Ptr RawOGRMultiPolygon ->
                 CDouble -> CInt -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Polygonize"
               c_ogrmultipolygon_polygonize ::
               Ptr RawOGRMultiPolygon -> IO (Ptr RawOGRGeometry)

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_Distance3D"
               c_ogrmultipolygon_distance3d ::
               Ptr RawOGRMultiPolygon -> Ptr RawOGRGeometry -> IO CDouble

foreign import ccall interruptible
               "HGDALOGRMultiPolygon.h OGRMultiPolygon_delete"
               c_ogrmultipolygon_delete :: Ptr RawOGRMultiPolygon -> IO ()