packages feed

opencascade-hs-0.7.0.0: src/OpenCascade/Graphic3D/AlphaMode.hs

module OpenCascade.Graphic3D.AlphaMode
( AlphaMode (..)
) where

-- Should match the values in Graphic3D_AlphaMode.hxx
data AlphaMode = BlendAuto | Opaque | Mask | Blend | MaskBlend deriving (Show, Eq)

-- this can't derive Enum, because Graphic3d_AlphaMode_BlendAuto is defined as -1
instance Enum AlphaMode where
    fromEnum BlendAuto = -1
    fromEnum Opaque = 0
    fromEnum Mask = 1
    fromEnum Blend = 2
    fromEnum MaskBlend = 3
    toEnum (-1) = BlendAuto
    toEnum 0 = Opaque
    toEnum 1 = Mask
    toEnum 2 = Blend
    toEnum 3 = MaskBlend
    toEnum _ = error "toEnum: out of range for Graphic3D.AlphaMode"