{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Graf.TSPHE.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.Graf.TSPHE.RawType
import HROOT.Graf.TSPHE.FFI
import HROOT.Graf.TSPHE.Interface
import HROOT.Graf.TSPHE.Cast
import HROOT.Graf.TSPHE.RawType
import HROOT.Graf.TSPHE.Cast
import HROOT.Graf.TSPHE.Interface
import HROOT.Core.TClass.RawType
import HROOT.Core.TClass.Cast
import HROOT.Core.TClass.Interface
import HROOT.Graf.TShape.RawType
import HROOT.Graf.TShape.Cast
import HROOT.Graf.TShape.Interface
import HROOT.Core.TNamed.RawType
import HROOT.Core.TNamed.Cast
import HROOT.Core.TNamed.Interface
import HROOT.Core.TAttLine.RawType
import HROOT.Core.TAttLine.Cast
import HROOT.Core.TAttLine.Interface
import HROOT.Core.TAttFill.RawType
import HROOT.Core.TAttFill.Cast
import HROOT.Core.TAttFill.Interface
import HROOT.Core.TAtt3D.RawType
import HROOT.Core.TAtt3D.Cast
import HROOT.Core.TAtt3D.Interface
import HROOT.Core.TObject.RawType
import HROOT.Core.TObject.Cast
import HROOT.Core.TObject.Interface
import STD.Deletable.RawType
import STD.Deletable.Cast
import STD.Deletable.Interface

instance () => ITSPHE (TSPHE) where

instance () => ITShape (TSPHE) where

instance () => ITNamed (TSPHE) where
        setName :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
setName = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_setname
        setNameTitle :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TSPHE -> c0 -> c1 -> IO ()
setNameTitle = (Ptr RawTSPHE -> CString -> CString -> IO ())
-> TSPHE -> c0 -> c1 -> IO ()
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 Ptr RawTSPHE -> CString -> CString -> IO ()
c_tsphe_setnametitle
        setTitle :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
setTitle = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_settitle

instance () => ITAttLine (TSPHE) where
        getLineColor :: TSPHE -> IO CShort
getLineColor = (Ptr RawTSPHE -> IO CShort) -> TSPHE -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO CShort
c_tsphe_getlinecolor
        getLineStyle :: TSPHE -> IO CShort
getLineStyle = (Ptr RawTSPHE -> IO CShort) -> TSPHE -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO CShort
c_tsphe_getlinestyle
        getLineWidth :: TSPHE -> IO CShort
getLineWidth = (Ptr RawTSPHE -> IO CShort) -> TSPHE -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO CShort
c_tsphe_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
resetAttLine = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_resetattline
        setLineAttributes :: TSPHE -> IO ()
setLineAttributes = (Ptr RawTSPHE -> IO ()) -> TSPHE -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO ()
c_tsphe_setlineattributes
        setLineColor :: TSPHE -> CShort -> IO ()
setLineColor = (Ptr RawTSPHE -> CShort -> IO ()) -> TSPHE -> 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 RawTSPHE -> CShort -> IO ()
c_tsphe_setlinecolor
        setLineStyle :: TSPHE -> CShort -> IO ()
setLineStyle = (Ptr RawTSPHE -> CShort -> IO ()) -> TSPHE -> 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 RawTSPHE -> CShort -> IO ()
c_tsphe_setlinestyle
        setLineWidth :: TSPHE -> CShort -> IO ()
setLineWidth = (Ptr RawTSPHE -> CShort -> IO ()) -> TSPHE -> 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 RawTSPHE -> CShort -> IO ()
c_tsphe_setlinewidth

instance () => ITAttFill (TSPHE) where
        setFillColor :: TSPHE -> CInt -> IO ()
setFillColor = (Ptr RawTSPHE -> CInt -> IO ()) -> TSPHE -> CInt -> 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 RawTSPHE -> CInt -> IO ()
c_tsphe_setfillcolor
        setFillStyle :: TSPHE -> CInt -> IO ()
setFillStyle = (Ptr RawTSPHE -> CInt -> IO ()) -> TSPHE -> CInt -> 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 RawTSPHE -> CInt -> IO ()
c_tsphe_setfillstyle

instance () => ITAtt3D (TSPHE) where

instance () => ITObject (TSPHE) where
        clear :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
clear = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_clear
        draw :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
draw = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_draw
        findObject :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO TObject
findObject = (Ptr RawTSPHE -> CString -> IO (Ptr RawTObject))
-> TSPHE -> c0 -> IO TObject
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 RawTSPHE -> CString -> IO (Ptr RawTObject)
c_tsphe_findobject
        getName :: TSPHE -> IO CString
getName = (Ptr RawTSPHE -> IO CString) -> TSPHE -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO CString
c_tsphe_getname
        isA :: TSPHE -> IO TClass
isA = (Ptr RawTSPHE -> IO (Ptr RawTClass)) -> TSPHE -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO (Ptr RawTClass)
c_tsphe_isa
        paint :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
paint = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_paint
        printObj :: forall c0. Castable c0 CString => TSPHE -> c0 -> IO ()
printObj = (Ptr RawTSPHE -> CString -> IO ()) -> TSPHE -> 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 RawTSPHE -> CString -> IO ()
c_tsphe_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TSPHE -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTSPHE -> CString -> CString -> IO ())
-> TSPHE -> c0 -> c1 -> IO ()
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 Ptr RawTSPHE -> CString -> CString -> IO ()
c_tsphe_saveas
        write :: forall c0.
Castable c0 CString =>
TSPHE -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTSPHE -> CString -> CInt -> CInt -> IO CInt)
-> TSPHE -> c0 -> CInt -> CInt -> IO CInt
forall a ca x1 cx1 x2 cx2 x3 cx3 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y
xform3 Ptr RawTSPHE -> CString -> CInt -> CInt -> IO CInt
c_tsphe_write
        write_ :: TSPHE -> IO CInt
write_ = (Ptr RawTSPHE -> IO CInt) -> TSPHE -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO CInt
c_tsphe_write_

instance () => IDeletable (TSPHE) where
        delete :: TSPHE -> IO ()
delete = (Ptr RawTSPHE -> IO ()) -> TSPHE -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTSPHE -> IO ()
c_tsphe_delete

newTSPHE ::
           (Castable c2 CString, Castable c1 CString, Castable c0 CString) =>
           c0 ->
             c1 ->
               c2 ->
                 CFloat ->
                   CFloat -> CFloat -> CFloat -> CFloat -> CFloat -> IO TSPHE
newTSPHE :: forall c2 c1 c0.
(Castable c2 CString, Castable c1 CString, Castable c0 CString) =>
c0
-> c1
-> c2
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> IO TSPHE
newTSPHE = (CString
 -> CString
 -> CString
 -> CFloat
 -> CFloat
 -> CFloat
 -> CFloat
 -> CFloat
 -> CFloat
 -> IO (Ptr RawTSPHE))
-> c0
-> c1
-> c2
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> IO TSPHE
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 x6 cx6 x7 cx7 x8 cx8
       y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7,
 Castable x8 cx8, Castable y cy) =>
(ca
 -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y
xform8 CString
-> CString
-> CString
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> CFloat
-> IO (Ptr RawTSPHE)
c_tsphe_newtsphe