{-# LANGUAGE ForeignFunctionInterface, TypeFamilies,
  MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances,
  EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}
module GDAL.OGRGeometry.RawType where
import Foreign.Ptr
import FFICXX.Runtime.Cast

data RawOGRGeometry

newtype OGRGeometry = OGRGeometry (Ptr RawOGRGeometry)
                        deriving (OGRGeometry -> OGRGeometry -> Bool
(OGRGeometry -> OGRGeometry -> Bool)
-> (OGRGeometry -> OGRGeometry -> Bool) -> Eq OGRGeometry
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OGRGeometry -> OGRGeometry -> Bool
== :: OGRGeometry -> OGRGeometry -> Bool
$c/= :: OGRGeometry -> OGRGeometry -> Bool
/= :: OGRGeometry -> OGRGeometry -> Bool
Eq, Eq OGRGeometry
Eq OGRGeometry
-> (OGRGeometry -> OGRGeometry -> Ordering)
-> (OGRGeometry -> OGRGeometry -> Bool)
-> (OGRGeometry -> OGRGeometry -> Bool)
-> (OGRGeometry -> OGRGeometry -> Bool)
-> (OGRGeometry -> OGRGeometry -> Bool)
-> (OGRGeometry -> OGRGeometry -> OGRGeometry)
-> (OGRGeometry -> OGRGeometry -> OGRGeometry)
-> Ord OGRGeometry
OGRGeometry -> OGRGeometry -> Bool
OGRGeometry -> OGRGeometry -> Ordering
OGRGeometry -> OGRGeometry -> OGRGeometry
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OGRGeometry -> OGRGeometry -> Ordering
compare :: OGRGeometry -> OGRGeometry -> Ordering
$c< :: OGRGeometry -> OGRGeometry -> Bool
< :: OGRGeometry -> OGRGeometry -> Bool
$c<= :: OGRGeometry -> OGRGeometry -> Bool
<= :: OGRGeometry -> OGRGeometry -> Bool
$c> :: OGRGeometry -> OGRGeometry -> Bool
> :: OGRGeometry -> OGRGeometry -> Bool
$c>= :: OGRGeometry -> OGRGeometry -> Bool
>= :: OGRGeometry -> OGRGeometry -> Bool
$cmax :: OGRGeometry -> OGRGeometry -> OGRGeometry
max :: OGRGeometry -> OGRGeometry -> OGRGeometry
$cmin :: OGRGeometry -> OGRGeometry -> OGRGeometry
min :: OGRGeometry -> OGRGeometry -> OGRGeometry
Ord, Int -> OGRGeometry -> ShowS
[OGRGeometry] -> ShowS
OGRGeometry -> String
(Int -> OGRGeometry -> ShowS)
-> (OGRGeometry -> String)
-> ([OGRGeometry] -> ShowS)
-> Show OGRGeometry
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OGRGeometry -> ShowS
showsPrec :: Int -> OGRGeometry -> ShowS
$cshow :: OGRGeometry -> String
show :: OGRGeometry -> String
$cshowList :: [OGRGeometry] -> ShowS
showList :: [OGRGeometry] -> ShowS
Show)

instance () => FPtr (OGRGeometry) where
        type Raw OGRGeometry = RawOGRGeometry
        get_fptr :: OGRGeometry -> Ptr (Raw OGRGeometry)
get_fptr (OGRGeometry Ptr RawOGRGeometry
ptr) = Ptr (Raw OGRGeometry)
Ptr RawOGRGeometry
ptr
        cast_fptr_to_obj :: Ptr (Raw OGRGeometry) -> OGRGeometry
cast_fptr_to_obj = Ptr (Raw OGRGeometry) -> OGRGeometry
Ptr RawOGRGeometry -> OGRGeometry
OGRGeometry