{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Hist.TGraph2D.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.Hist.TGraph2D.RawType
import HROOT.Hist.TGraph2D.FFI
import HROOT.Hist.TGraph2D.Interface
import HROOT.Hist.TGraph2D.Cast
import HROOT.Hist.TGraph2D.RawType
import HROOT.Hist.TGraph2D.Cast
import HROOT.Hist.TGraph2D.Interface
import HROOT.Core.TClass.RawType
import HROOT.Core.TClass.Cast
import HROOT.Core.TClass.Interface
import HROOT.Hist.TAxis.RawType
import HROOT.Hist.TAxis.Cast
import HROOT.Hist.TAxis.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.TAttMarker.RawType
import HROOT.Core.TAttMarker.Cast
import HROOT.Core.TAttMarker.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 () => ITGraph2D (TGraph2D) where
        setN :: TGraph2D -> CInt -> IO ()
setN = (Ptr RawTGraph2D -> CInt -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CInt -> IO ()
c_tgraph2d_setn
        setPointXYZ :: TGraph2D -> CInt -> CDouble -> CDouble -> CDouble -> IO ()
setPointXYZ = (Ptr RawTGraph2D -> CInt -> CDouble -> CDouble -> CDouble -> IO ())
-> TGraph2D -> CInt -> CDouble -> CDouble -> CDouble -> IO ()
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> IO y
xform4 Ptr RawTGraph2D -> CInt -> CDouble -> CDouble -> CDouble -> IO ()
c_tgraph2d_setpointxyz

instance () => ITNamed (TGraph2D) where
        setName :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
setName = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_setname
        setNameTitle :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TGraph2D -> c0 -> c1 -> IO ()
setNameTitle = (Ptr RawTGraph2D -> CString -> CString -> IO ())
-> TGraph2D -> 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 RawTGraph2D -> CString -> CString -> IO ()
c_tgraph2d_setnametitle
        setTitle :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
setTitle = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_settitle

instance () => ITAttLine (TGraph2D) where
        getLineColor :: TGraph2D -> IO CShort
getLineColor = (Ptr RawTGraph2D -> IO CShort) -> TGraph2D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CShort
c_tgraph2d_getlinecolor
        getLineStyle :: TGraph2D -> IO CShort
getLineStyle = (Ptr RawTGraph2D -> IO CShort) -> TGraph2D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CShort
c_tgraph2d_getlinestyle
        getLineWidth :: TGraph2D -> IO CShort
getLineWidth = (Ptr RawTGraph2D -> IO CShort) -> TGraph2D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CShort
c_tgraph2d_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
resetAttLine = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_resetattline
        setLineAttributes :: TGraph2D -> IO ()
setLineAttributes = (Ptr RawTGraph2D -> IO ()) -> TGraph2D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO ()
c_tgraph2d_setlineattributes
        setLineColor :: TGraph2D -> CShort -> IO ()
setLineColor = (Ptr RawTGraph2D -> CShort -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CShort -> IO ()
c_tgraph2d_setlinecolor
        setLineStyle :: TGraph2D -> CShort -> IO ()
setLineStyle = (Ptr RawTGraph2D -> CShort -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CShort -> IO ()
c_tgraph2d_setlinestyle
        setLineWidth :: TGraph2D -> CShort -> IO ()
setLineWidth = (Ptr RawTGraph2D -> CShort -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CShort -> IO ()
c_tgraph2d_setlinewidth

instance () => ITAttFill (TGraph2D) where
        setFillColor :: TGraph2D -> CInt -> IO ()
setFillColor = (Ptr RawTGraph2D -> CInt -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CInt -> IO ()
c_tgraph2d_setfillcolor
        setFillStyle :: TGraph2D -> CInt -> IO ()
setFillStyle = (Ptr RawTGraph2D -> CInt -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CInt -> IO ()
c_tgraph2d_setfillstyle

instance () => ITAttMarker (TGraph2D) where
        getMarkerColor :: TGraph2D -> IO CShort
getMarkerColor = (Ptr RawTGraph2D -> IO CShort) -> TGraph2D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CShort
c_tgraph2d_getmarkercolor
        getMarkerStyle :: TGraph2D -> IO CShort
getMarkerStyle = (Ptr RawTGraph2D -> IO CShort) -> TGraph2D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CShort
c_tgraph2d_getmarkerstyle
        getMarkerSize :: TGraph2D -> IO CFloat
getMarkerSize = (Ptr RawTGraph2D -> IO CFloat) -> TGraph2D -> IO CFloat
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CFloat
c_tgraph2d_getmarkersize
        resetAttMarker :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
resetAttMarker = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_resetattmarker
        setMarkerAttributes :: TGraph2D -> IO ()
setMarkerAttributes = (Ptr RawTGraph2D -> IO ()) -> TGraph2D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO ()
c_tgraph2d_setmarkerattributes
        setMarkerColor :: TGraph2D -> CShort -> IO ()
setMarkerColor = (Ptr RawTGraph2D -> CShort -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CShort -> IO ()
c_tgraph2d_setmarkercolor
        setMarkerStyle :: TGraph2D -> CShort -> IO ()
setMarkerStyle = (Ptr RawTGraph2D -> CShort -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CShort -> IO ()
c_tgraph2d_setmarkerstyle
        setMarkerSize :: TGraph2D -> CShort -> IO ()
setMarkerSize = (Ptr RawTGraph2D -> CShort -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CShort -> IO ()
c_tgraph2d_setmarkersize

instance () => ITObject (TGraph2D) where
        clear :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
clear = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_clear
        draw :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
draw = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_draw
        findObject :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO TObject
findObject = (Ptr RawTGraph2D -> CString -> IO (Ptr RawTObject))
-> TGraph2D -> 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 RawTGraph2D -> CString -> IO (Ptr RawTObject)
c_tgraph2d_findobject
        getName :: TGraph2D -> IO CString
getName = (Ptr RawTGraph2D -> IO CString) -> TGraph2D -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CString
c_tgraph2d_getname
        isA :: TGraph2D -> IO TClass
isA = (Ptr RawTGraph2D -> IO (Ptr RawTClass)) -> TGraph2D -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO (Ptr RawTClass)
c_tgraph2d_isa
        paint :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
paint = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_paint
        printObj :: forall c0. Castable c0 CString => TGraph2D -> c0 -> IO ()
printObj = (Ptr RawTGraph2D -> CString -> IO ()) -> TGraph2D -> 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 RawTGraph2D -> CString -> IO ()
c_tgraph2d_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TGraph2D -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTGraph2D -> CString -> CString -> IO ())
-> TGraph2D -> 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 RawTGraph2D -> CString -> CString -> IO ()
c_tgraph2d_saveas
        write :: forall c0.
Castable c0 CString =>
TGraph2D -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTGraph2D -> CString -> CInt -> CInt -> IO CInt)
-> TGraph2D -> 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 RawTGraph2D -> CString -> CInt -> CInt -> IO CInt
c_tgraph2d_write
        write_ :: TGraph2D -> IO CInt
write_ = (Ptr RawTGraph2D -> IO CInt) -> TGraph2D -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO CInt
c_tgraph2d_write_

instance () => IDeletable (TGraph2D) where
        delete :: TGraph2D -> IO ()
delete = (Ptr RawTGraph2D -> IO ()) -> TGraph2D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO ()
c_tgraph2d_delete

newTGraph2D_ :: () => IO TGraph2D
newTGraph2D_ :: IO TGraph2D
newTGraph2D_ = IO (Ptr RawTGraph2D) -> IO TGraph2D
forall a ca. Castable a ca => IO ca -> IO a
xformnull IO (Ptr RawTGraph2D)
c_tgraph2d_newtgraph2d_

newTGraph2D ::
              () =>
              CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO TGraph2D
newTGraph2D :: CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO TGraph2D
newTGraph2D = (CInt
 -> Ptr CDouble
 -> Ptr CDouble
 -> Ptr CDouble
 -> IO (Ptr RawTGraph2D))
-> CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO TGraph2D
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 CInt
-> Ptr CDouble
-> Ptr CDouble
-> Ptr CDouble
-> IO (Ptr RawTGraph2D)
c_tgraph2d_newtgraph2d

tGraph2D_GetXaxis :: () => TGraph2D -> IO TAxis
tGraph2D_GetXaxis :: TGraph2D -> IO TAxis
tGraph2D_GetXaxis = (Ptr RawTGraph2D -> IO (Ptr RawTAxis)) -> TGraph2D -> IO TAxis
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO (Ptr RawTAxis)
c_tgraph2d_tgraph2d_getxaxis

tGraph2D_GetYaxis :: () => TGraph2D -> IO TAxis
tGraph2D_GetYaxis :: TGraph2D -> IO TAxis
tGraph2D_GetYaxis = (Ptr RawTGraph2D -> IO (Ptr RawTAxis)) -> TGraph2D -> IO TAxis
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO (Ptr RawTAxis)
c_tgraph2d_tgraph2d_getyaxis

tGraph2D_GetZaxis :: () => TGraph2D -> IO TAxis
tGraph2D_GetZaxis :: TGraph2D -> IO TAxis
tGraph2D_GetZaxis = (Ptr RawTGraph2D -> IO (Ptr RawTAxis)) -> TGraph2D -> IO TAxis
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGraph2D -> IO (Ptr RawTAxis)
c_tgraph2d_tgraph2d_getzaxis

tGraph2D_SetMaximum :: () => TGraph2D -> CDouble -> IO ()
tGraph2D_SetMaximum :: TGraph2D -> CDouble -> IO ()
tGraph2D_SetMaximum = (Ptr RawTGraph2D -> CDouble -> IO ())
-> TGraph2D -> CDouble -> 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 RawTGraph2D -> CDouble -> IO ()
c_tgraph2d_tgraph2d_setmaximum

tGraph2D_SetMinimum :: () => TGraph2D -> CDouble -> IO ()
tGraph2D_SetMinimum :: TGraph2D -> CDouble -> IO ()
tGraph2D_SetMinimum = (Ptr RawTGraph2D -> CDouble -> IO ())
-> TGraph2D -> CDouble -> 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 RawTGraph2D -> CDouble -> IO ()
c_tgraph2d_tgraph2d_setminimum