module Data.Geolocation.GEOS.Imports
( GEOSContextHandle ()
, GEOSCoordSequencePtr ()
, GEOSGeometryPtr ()
, GEOSWKTReaderPtr ()
, GEOSWKTWriterPtr ()
, NullablePtr (isNullPtr, rawIntPtr)
, c_GEOSArea_r
, c_GEOSCoordSeq_create_r
, c_GEOSCoordSeq_destroy_r
, c_GEOSCoordSeq_getOrdinate_r
, c_GEOSCoordSeq_getSize_r
, c_GEOSCoordSeq_getX_r
, c_GEOSCoordSeq_getY_r
, c_GEOSCoordSeq_getZ_r
, c_GEOSCoordSeq_setOrdinate_r
, c_GEOSCoordSeq_setX_r
, c_GEOSCoordSeq_setY_r
, c_GEOSCoordSeq_setZ_r
, c_GEOSEnvelope_r
, c_GEOSFree_r_CString
, c_GEOSGeomTypeId_r
, c_GEOSGeom_createLinearRing_r
, c_GEOSGeom_createPolygon_r
, c_GEOSGeom_destroy_r
, c_GEOSGeom_getCoordSeq_r
, c_GEOSGetExteriorRing_r
, c_GEOSGetGeometryN_r
, c_GEOSGetNumGeometries_r
, c_GEOSIntersection_r
, c_GEOSWKTReader_create_r
, c_GEOSWKTReader_destroy_r
, c_GEOSWKTReader_read_r
, c_GEOSWKTWriter_create_r
, c_GEOSWKTWriter_destroy_r
, c_GEOSWKTWriter_write_r
, c_GEOSisEmpty_r
, c_GEOSversion
, c_finishGEOS_r
, c_getErrorMessage
, c_initializeGEOSWithHandlers
) where
import Foreign.C
import Foreign.Ptr
import Foreign.Storable
class NullablePtr a where
isNullPtr :: a -> Bool
rawIntPtr :: a -> IntPtr
newtype GEOSContextHandle = GEOSContextHandle (Ptr GEOSContextHandle)
newtype GEOSCoordSequencePtr = GEOSCoordSequencePtr (Ptr GEOSCoordSequencePtr)
instance NullablePtr GEOSCoordSequencePtr where
isNullPtr (GEOSCoordSequencePtr p) = p == nullPtr
rawIntPtr (GEOSCoordSequencePtr p) = ptrToIntPtr p
newtype GEOSGeometryPtr = GEOSGeometryPtr (Ptr GEOSGeometryPtr) deriving Storable
instance NullablePtr GEOSGeometryPtr where
isNullPtr (GEOSGeometryPtr p) = p == nullPtr
rawIntPtr (GEOSGeometryPtr p) = ptrToIntPtr p
newtype GEOSWKTReaderPtr = GEOSWKTReaderPtr (Ptr GEOSWKTReaderPtr)
instance NullablePtr GEOSWKTReaderPtr where
isNullPtr (GEOSWKTReaderPtr p) = p == nullPtr
rawIntPtr (GEOSWKTReaderPtr p) = ptrToIntPtr p
newtype GEOSWKTWriterPtr = GEOSWKTWriterPtr (Ptr GEOSWKTWriterPtr)
instance NullablePtr GEOSWKTWriterPtr where
isNullPtr (GEOSWKTWriterPtr p) = p == nullPtr
rawIntPtr (GEOSWKTWriterPtr p) = ptrToIntPtr p
foreign import ccall "GEOSArea_r"
c_GEOSArea_r :: GEOSContextHandle -> GEOSGeometryPtr -> Ptr CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_create_r"
c_GEOSCoordSeq_create_r :: GEOSContextHandle -> CUInt -> CUInt -> IO GEOSCoordSequencePtr
foreign import ccall "GEOSCoordSeq_destroy_r"
c_GEOSCoordSeq_destroy_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> IO ()
foreign import ccall "GEOSCoordSeq_getOrdinate_r"
c_GEOSCoordSeq_getOrdinate_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> CUInt -> Ptr CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_getSize_r"
c_GEOSCoordSeq_getSize_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> Ptr CUInt -> IO CInt
foreign import ccall "GEOSCoordSeq_getX_r"
c_GEOSCoordSeq_getX_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> Ptr CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_getY_r"
c_GEOSCoordSeq_getY_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> Ptr CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_getZ_r"
c_GEOSCoordSeq_getZ_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> Ptr CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_setOrdinate_r"
c_GEOSCoordSeq_setOrdinate_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> CUInt -> CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_setX_r"
c_GEOSCoordSeq_setX_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_setY_r"
c_GEOSCoordSeq_setY_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> CDouble -> IO CInt
foreign import ccall "GEOSCoordSeq_setZ_r"
c_GEOSCoordSeq_setZ_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> CUInt -> CDouble -> IO CInt
foreign import ccall "GEOSEnvelope_r"
c_GEOSEnvelope_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO GEOSGeometryPtr
foreign import ccall "GEOSFree_r"
c_GEOSFree_r_CString :: GEOSContextHandle -> CString -> IO ()
foreign import ccall "GEOSGeomTypeId_r"
c_GEOSGeomTypeId_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO CInt
foreign import ccall "GEOSGeom_createLinearRing_r"
c_GEOSGeom_createLinearRing_r :: GEOSContextHandle -> GEOSCoordSequencePtr -> IO GEOSGeometryPtr
foreign import ccall "GEOSGeom_createPolygon_r"
c_GEOSGeom_createPolygon_r :: GEOSContextHandle -> GEOSGeometryPtr -> Ptr GEOSGeometryPtr -> CUInt -> IO GEOSGeometryPtr
foreign import ccall "GEOSGeom_destroy_r"
c_GEOSGeom_destroy_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO ()
foreign import ccall "GEOSGeom_getCoordSeq_r"
c_GEOSGeom_getCoordSeq_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO GEOSCoordSequencePtr
foreign import ccall "GEOSGetExteriorRing_r"
c_GEOSGetExteriorRing_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO GEOSGeometryPtr
foreign import ccall "GEOSGetGeometryN_r"
c_GEOSGetGeometryN_r :: GEOSContextHandle -> GEOSGeometryPtr -> CInt -> IO GEOSGeometryPtr
foreign import ccall "GEOSGetNumGeometries_r"
c_GEOSGetNumGeometries_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO CInt
foreign import ccall "GEOSIntersection_r"
c_GEOSIntersection_r :: GEOSContextHandle -> GEOSGeometryPtr -> GEOSGeometryPtr -> IO GEOSGeometryPtr
foreign import ccall "GEOSWKTReader_create_r"
c_GEOSWKTReader_create_r :: GEOSContextHandle -> IO GEOSWKTReaderPtr
foreign import ccall "GEOSWKTReader_destroy_r"
c_GEOSWKTReader_destroy_r :: GEOSContextHandle -> GEOSWKTReaderPtr -> IO ()
foreign import ccall "GEOSWKTReader_read_r"
c_GEOSWKTReader_read_r :: GEOSContextHandle -> GEOSWKTReaderPtr -> CString -> IO GEOSGeometryPtr
foreign import ccall "GEOSWKTWriter_create_r"
c_GEOSWKTWriter_create_r :: GEOSContextHandle -> IO GEOSWKTWriterPtr
foreign import ccall "GEOSWKTWriter_destroy_r"
c_GEOSWKTWriter_destroy_r :: GEOSContextHandle -> GEOSWKTWriterPtr -> IO ()
foreign import ccall "GEOSWKTWriter_write_r"
c_GEOSWKTWriter_write_r :: GEOSContextHandle -> GEOSWKTWriterPtr -> GEOSGeometryPtr -> IO CString
foreign import ccall "GEOSisEmpty_r"
c_GEOSisEmpty_r :: GEOSContextHandle -> GEOSGeometryPtr -> IO CChar
foreign import ccall "GEOSversion"
c_GEOSversion :: IO CString
foreign import ccall "finishGEOS_r"
c_finishGEOS_r :: GEOSContextHandle -> IO ()
foreign import ccall "helpers.h getErrorMessage"
c_getErrorMessage :: IO CString
foreign import ccall "helpers.h getNoticeMessage"
c_getNoticeMessage :: IO CString
foreign import ccall "helpers.h initializeGEOSWithHandlers"
c_initializeGEOSWithHandlers :: IO GEOSContextHandle