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

data RawOGRPoint

newtype OGRPoint = OGRPoint (Ptr RawOGRPoint)
                     deriving (OGRPoint -> OGRPoint -> Bool
(OGRPoint -> OGRPoint -> Bool)
-> (OGRPoint -> OGRPoint -> Bool) -> Eq OGRPoint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OGRPoint -> OGRPoint -> Bool
== :: OGRPoint -> OGRPoint -> Bool
$c/= :: OGRPoint -> OGRPoint -> Bool
/= :: OGRPoint -> OGRPoint -> Bool
Eq, Eq OGRPoint
Eq OGRPoint
-> (OGRPoint -> OGRPoint -> Ordering)
-> (OGRPoint -> OGRPoint -> Bool)
-> (OGRPoint -> OGRPoint -> Bool)
-> (OGRPoint -> OGRPoint -> Bool)
-> (OGRPoint -> OGRPoint -> Bool)
-> (OGRPoint -> OGRPoint -> OGRPoint)
-> (OGRPoint -> OGRPoint -> OGRPoint)
-> Ord OGRPoint
OGRPoint -> OGRPoint -> Bool
OGRPoint -> OGRPoint -> Ordering
OGRPoint -> OGRPoint -> OGRPoint
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 :: OGRPoint -> OGRPoint -> Ordering
compare :: OGRPoint -> OGRPoint -> Ordering
$c< :: OGRPoint -> OGRPoint -> Bool
< :: OGRPoint -> OGRPoint -> Bool
$c<= :: OGRPoint -> OGRPoint -> Bool
<= :: OGRPoint -> OGRPoint -> Bool
$c> :: OGRPoint -> OGRPoint -> Bool
> :: OGRPoint -> OGRPoint -> Bool
$c>= :: OGRPoint -> OGRPoint -> Bool
>= :: OGRPoint -> OGRPoint -> Bool
$cmax :: OGRPoint -> OGRPoint -> OGRPoint
max :: OGRPoint -> OGRPoint -> OGRPoint
$cmin :: OGRPoint -> OGRPoint -> OGRPoint
min :: OGRPoint -> OGRPoint -> OGRPoint
Ord, Int -> OGRPoint -> ShowS
[OGRPoint] -> ShowS
OGRPoint -> String
(Int -> OGRPoint -> ShowS)
-> (OGRPoint -> String) -> ([OGRPoint] -> ShowS) -> Show OGRPoint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OGRPoint -> ShowS
showsPrec :: Int -> OGRPoint -> ShowS
$cshow :: OGRPoint -> String
show :: OGRPoint -> String
$cshowList :: [OGRPoint] -> ShowS
showList :: [OGRPoint] -> ShowS
Show)

instance () => FPtr (OGRPoint) where
        type Raw OGRPoint = RawOGRPoint
        get_fptr :: OGRPoint -> Ptr (Raw OGRPoint)
get_fptr (OGRPoint Ptr RawOGRPoint
ptr) = Ptr (Raw OGRPoint)
Ptr RawOGRPoint
ptr
        cast_fptr_to_obj :: Ptr (Raw OGRPoint) -> OGRPoint
cast_fptr_to_obj = Ptr (Raw OGRPoint) -> OGRPoint
Ptr RawOGRPoint -> OGRPoint
OGRPoint