{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Core.TAttLine.Implementation where
import Data.Monoid
import Data.Word
import Data.Int
import Foreign.C
import Foreign.Ptr
import Language.Haskell.TH
import Language.Haskell.TH.Syntax
import System.IO.Unsafe
import FFICXX.Runtime.Cast
import FFICXX.Runtime.CodeGen.Cxx
import FFICXX.Runtime.TH
import HROOT.Core.TAttLine.RawType
import HROOT.Core.TAttLine.FFI
import HROOT.Core.TAttLine.Interface
import HROOT.Core.TAttLine.Cast
import HROOT.Core.TAttLine.RawType
import HROOT.Core.TAttLine.Cast
import HROOT.Core.TAttLine.Interface
import STD.Deletable.RawType
import STD.Deletable.Cast
import STD.Deletable.Interface

instance () => ITAttLine (TAttLine) where
        getLineColor :: TAttLine -> IO CShort
getLineColor = (Ptr RawTAttLine -> IO CShort) -> TAttLine -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttLine -> IO CShort
c_tattline_getlinecolor
        getLineStyle :: TAttLine -> IO CShort
getLineStyle = (Ptr RawTAttLine -> IO CShort) -> TAttLine -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttLine -> IO CShort
c_tattline_getlinestyle
        getLineWidth :: TAttLine -> IO CShort
getLineWidth = (Ptr RawTAttLine -> IO CShort) -> TAttLine -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttLine -> IO CShort
c_tattline_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TAttLine -> c0 -> IO ()
resetAttLine = (Ptr RawTAttLine -> CString -> IO ()) -> TAttLine -> c0 -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttLine -> CString -> IO ()
c_tattline_resetattline
        setLineAttributes :: TAttLine -> IO ()
setLineAttributes = (Ptr RawTAttLine -> IO ()) -> TAttLine -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttLine -> IO ()
c_tattline_setlineattributes
        setLineColor :: TAttLine -> CShort -> IO ()
setLineColor = (Ptr RawTAttLine -> CShort -> IO ()) -> TAttLine -> CShort -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttLine -> CShort -> IO ()
c_tattline_setlinecolor
        setLineStyle :: TAttLine -> CShort -> IO ()
setLineStyle = (Ptr RawTAttLine -> CShort -> IO ()) -> TAttLine -> CShort -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttLine -> CShort -> IO ()
c_tattline_setlinestyle
        setLineWidth :: TAttLine -> CShort -> IO ()
setLineWidth = (Ptr RawTAttLine -> CShort -> IO ()) -> TAttLine -> CShort -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttLine -> CShort -> IO ()
c_tattline_setlinewidth

instance () => IDeletable (TAttLine) where
        delete :: TAttLine -> IO ()
delete = (Ptr RawTAttLine -> IO ()) -> TAttLine -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttLine -> IO ()
c_tattline_delete

newTAttLine :: () => CShort -> CShort -> CShort -> IO TAttLine
newTAttLine :: CShort -> CShort -> CShort -> IO TAttLine
newTAttLine = (CShort -> CShort -> CShort -> IO (Ptr RawTAttLine))
-> CShort -> CShort -> CShort -> IO TAttLine
forall a ca x1 cx1 x2 cx2 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) =>
(ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y
xform2 CShort -> CShort -> CShort -> IO (Ptr RawTAttLine)
c_tattline_newtattline

tAttLine_DistancetoLine ::
                          () =>
                          TAttLine ->
                            CInt -> CInt -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt
tAttLine_DistancetoLine :: TAttLine
-> CInt
-> CInt
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO CInt
tAttLine_DistancetoLine = (Ptr RawTAttLine
 -> CInt
 -> CInt
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> IO CInt)
-> TAttLine
-> CInt
-> CInt
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO CInt
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 x6 cx6 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable x6 cx6,
 Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y
xform6 Ptr RawTAttLine
-> CInt
-> CInt
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO CInt
c_tattline_tattline_distancetoline