{-# OPTIONS_HADDOCK hide #-}
module Graphics.Rendering.OpenGL.GL.EdgeFlag (
EdgeFlag(..), marshalEdgeFlag, unmarshalEdgeFlag
) where
import Graphics.Rendering.OpenGL.GL.GLboolean
import Graphics.GL
data EdgeFlag = BeginsInteriorEdge | BeginsBoundaryEdge
deriving ( EdgeFlag -> EdgeFlag -> Bool
(EdgeFlag -> EdgeFlag -> Bool)
-> (EdgeFlag -> EdgeFlag -> Bool) -> Eq EdgeFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EdgeFlag -> EdgeFlag -> Bool
$c/= :: EdgeFlag -> EdgeFlag -> Bool
== :: EdgeFlag -> EdgeFlag -> Bool
$c== :: EdgeFlag -> EdgeFlag -> Bool
Eq, Eq EdgeFlag
Eq EdgeFlag
-> (EdgeFlag -> EdgeFlag -> Ordering)
-> (EdgeFlag -> EdgeFlag -> Bool)
-> (EdgeFlag -> EdgeFlag -> Bool)
-> (EdgeFlag -> EdgeFlag -> Bool)
-> (EdgeFlag -> EdgeFlag -> Bool)
-> (EdgeFlag -> EdgeFlag -> EdgeFlag)
-> (EdgeFlag -> EdgeFlag -> EdgeFlag)
-> Ord EdgeFlag
EdgeFlag -> EdgeFlag -> Bool
EdgeFlag -> EdgeFlag -> Ordering
EdgeFlag -> EdgeFlag -> EdgeFlag
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
min :: EdgeFlag -> EdgeFlag -> EdgeFlag
$cmin :: EdgeFlag -> EdgeFlag -> EdgeFlag
max :: EdgeFlag -> EdgeFlag -> EdgeFlag
$cmax :: EdgeFlag -> EdgeFlag -> EdgeFlag
>= :: EdgeFlag -> EdgeFlag -> Bool
$c>= :: EdgeFlag -> EdgeFlag -> Bool
> :: EdgeFlag -> EdgeFlag -> Bool
$c> :: EdgeFlag -> EdgeFlag -> Bool
<= :: EdgeFlag -> EdgeFlag -> Bool
$c<= :: EdgeFlag -> EdgeFlag -> Bool
< :: EdgeFlag -> EdgeFlag -> Bool
$c< :: EdgeFlag -> EdgeFlag -> Bool
compare :: EdgeFlag -> EdgeFlag -> Ordering
$ccompare :: EdgeFlag -> EdgeFlag -> Ordering
Ord, Int -> EdgeFlag -> ShowS
[EdgeFlag] -> ShowS
EdgeFlag -> String
(Int -> EdgeFlag -> ShowS)
-> (EdgeFlag -> String) -> ([EdgeFlag] -> ShowS) -> Show EdgeFlag
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EdgeFlag] -> ShowS
$cshowList :: [EdgeFlag] -> ShowS
show :: EdgeFlag -> String
$cshow :: EdgeFlag -> String
showsPrec :: Int -> EdgeFlag -> ShowS
$cshowsPrec :: Int -> EdgeFlag -> ShowS
Show )
marshalEdgeFlag :: EdgeFlag -> GLboolean
marshalEdgeFlag :: EdgeFlag -> GLboolean
marshalEdgeFlag = Bool -> GLboolean
forall a. Num a => Bool -> a
marshalGLboolean (Bool -> GLboolean) -> (EdgeFlag -> Bool) -> EdgeFlag -> GLboolean
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (EdgeFlag
BeginsBoundaryEdge EdgeFlag -> EdgeFlag -> Bool
forall a. Eq a => a -> a -> Bool
==)
unmarshalEdgeFlag :: GLboolean -> EdgeFlag
unmarshalEdgeFlag :: GLboolean -> EdgeFlag
unmarshalEdgeFlag GLboolean
f =
if GLboolean -> Bool
forall a. (Eq a, Num a) => a -> Bool
unmarshalGLboolean GLboolean
f then EdgeFlag
BeginsBoundaryEdge else EdgeFlag
BeginsInteriorEdge