{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Graf.TView.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.TView.RawType
import HROOT.Graf.TView.FFI
import HROOT.Graf.TView.Interface
import HROOT.Graf.TView.Cast
import HROOT.Graf.TView.RawType
import HROOT.Graf.TView.Cast
import HROOT.Graf.TView.Interface
import HROOT.Core.TClass.RawType
import HROOT.Core.TClass.Cast
import HROOT.Core.TClass.Interface
import HROOT.Core.TVirtualPad.RawType
import HROOT.Core.TVirtualPad.Cast
import HROOT.Core.TVirtualPad.Interface
import HROOT.Core.TObject.RawType
import HROOT.Core.TObject.Cast
import HROOT.Core.TObject.Interface
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 () => ITView (TView) where
        front :: TView -> IO ()
front = (Ptr RawTView -> IO ()) -> TView -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO ()
c_tview_front
        frontView :: forall c0. (ITVirtualPad c0, FPtr c0) => TView -> c0 -> IO ()
frontView = (Ptr RawTView -> Ptr RawTVirtualPad -> IO ())
-> TView -> 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 RawTView -> Ptr RawTVirtualPad -> IO ()
c_tview_frontview
        getLatitude :: TView -> IO CDouble
getLatitude = (Ptr RawTView -> IO CDouble) -> TView -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CDouble
c_tview_getlatitude
        getLongitude :: TView -> IO CDouble
getLongitude = (Ptr RawTView -> IO CDouble) -> TView -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CDouble
c_tview_getlongitude
        getPsi :: TView -> IO CDouble
getPsi = (Ptr RawTView -> IO CDouble) -> TView -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CDouble
c_tview_getpsi
        isViewChanged :: TView -> IO CBool
isViewChanged = (Ptr RawTView -> IO CBool) -> TView -> IO CBool
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CBool
c_tview_isviewchanged
        rotateView :: TView -> CDouble -> CDouble -> IO ()
rotateView = (Ptr RawTView -> CDouble -> CDouble -> IO ())
-> TView -> CDouble -> CDouble -> 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 RawTView -> CDouble -> CDouble -> IO ()
c_tview_rotateview
        setLatitude :: TView -> CDouble -> IO ()
setLatitude = (Ptr RawTView -> CDouble -> IO ()) -> TView -> 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 RawTView -> CDouble -> IO ()
c_tview_setlatitude
        setLongitude :: TView -> CDouble -> IO ()
setLongitude = (Ptr RawTView -> CDouble -> IO ()) -> TView -> 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 RawTView -> CDouble -> IO ()
c_tview_setlongitude
        setPsi :: TView -> CDouble -> IO ()
setPsi = (Ptr RawTView -> CDouble -> IO ()) -> TView -> 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 RawTView -> CDouble -> IO ()
c_tview_setpsi
        setView1 :: TView -> CDouble -> CDouble -> CDouble -> Ptr CInt -> IO ()
setView1 = (Ptr RawTView
 -> CDouble -> CDouble -> CDouble -> Ptr CInt -> IO ())
-> TView -> CDouble -> CDouble -> CDouble -> Ptr CInt -> 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 RawTView -> CDouble -> CDouble -> CDouble -> Ptr CInt -> IO ()
c_tview_setview1
        setViewChanged :: TView -> CBool -> IO ()
setViewChanged = (Ptr RawTView -> CBool -> IO ()) -> TView -> CBool -> 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 RawTView -> CBool -> IO ()
c_tview_setviewchanged
        side :: TView -> IO ()
side = (Ptr RawTView -> IO ()) -> TView -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO ()
c_tview_side
        sideView :: forall c0. (ITVirtualPad c0, FPtr c0) => TView -> c0 -> IO ()
sideView = (Ptr RawTView -> Ptr RawTVirtualPad -> IO ())
-> TView -> 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 RawTView -> Ptr RawTVirtualPad -> IO ()
c_tview_sideview
        top :: TView -> IO ()
top = (Ptr RawTView -> IO ()) -> TView -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO ()
c_tview_top
        topView :: forall c0. (ITVirtualPad c0, FPtr c0) => TView -> c0 -> IO ()
topView = (Ptr RawTView -> Ptr RawTVirtualPad -> IO ())
-> TView -> 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 RawTView -> Ptr RawTVirtualPad -> IO ()
c_tview_topview

instance () => ITObject (TView) where
        clear :: forall c0. Castable c0 CString => TView -> c0 -> IO ()
clear = (Ptr RawTView -> CString -> IO ()) -> TView -> 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 RawTView -> CString -> IO ()
c_tview_clear
        draw :: forall c0. Castable c0 CString => TView -> c0 -> IO ()
draw = (Ptr RawTView -> CString -> IO ()) -> TView -> 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 RawTView -> CString -> IO ()
c_tview_draw
        findObject :: forall c0. Castable c0 CString => TView -> c0 -> IO TObject
findObject = (Ptr RawTView -> CString -> IO (Ptr RawTObject))
-> TView -> 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 RawTView -> CString -> IO (Ptr RawTObject)
c_tview_findobject
        getName :: TView -> IO CString
getName = (Ptr RawTView -> IO CString) -> TView -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CString
c_tview_getname
        isA :: TView -> IO TClass
isA = (Ptr RawTView -> IO (Ptr RawTClass)) -> TView -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO (Ptr RawTClass)
c_tview_isa
        paint :: forall c0. Castable c0 CString => TView -> c0 -> IO ()
paint = (Ptr RawTView -> CString -> IO ()) -> TView -> 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 RawTView -> CString -> IO ()
c_tview_paint
        printObj :: forall c0. Castable c0 CString => TView -> c0 -> IO ()
printObj = (Ptr RawTView -> CString -> IO ()) -> TView -> 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 RawTView -> CString -> IO ()
c_tview_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TView -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTView -> CString -> CString -> IO ())
-> TView -> 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 RawTView -> CString -> CString -> IO ()
c_tview_saveas
        write :: forall c0.
Castable c0 CString =>
TView -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTView -> CString -> CInt -> CInt -> IO CInt)
-> TView -> 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 RawTView -> CString -> CInt -> CInt -> IO CInt
c_tview_write
        write_ :: TView -> IO CInt
write_ = (Ptr RawTView -> IO CInt) -> TView -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CInt
c_tview_write_

instance () => ITAttLine (TView) where
        getLineColor :: TView -> IO CShort
getLineColor = (Ptr RawTView -> IO CShort) -> TView -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CShort
c_tview_getlinecolor
        getLineStyle :: TView -> IO CShort
getLineStyle = (Ptr RawTView -> IO CShort) -> TView -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CShort
c_tview_getlinestyle
        getLineWidth :: TView -> IO CShort
getLineWidth = (Ptr RawTView -> IO CShort) -> TView -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO CShort
c_tview_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TView -> c0 -> IO ()
resetAttLine = (Ptr RawTView -> CString -> IO ()) -> TView -> 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 RawTView -> CString -> IO ()
c_tview_resetattline
        setLineAttributes :: TView -> IO ()
setLineAttributes = (Ptr RawTView -> IO ()) -> TView -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO ()
c_tview_setlineattributes
        setLineColor :: TView -> CShort -> IO ()
setLineColor = (Ptr RawTView -> CShort -> IO ()) -> TView -> 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 RawTView -> CShort -> IO ()
c_tview_setlinecolor
        setLineStyle :: TView -> CShort -> IO ()
setLineStyle = (Ptr RawTView -> CShort -> IO ()) -> TView -> 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 RawTView -> CShort -> IO ()
c_tview_setlinestyle
        setLineWidth :: TView -> CShort -> IO ()
setLineWidth = (Ptr RawTView -> CShort -> IO ()) -> TView -> 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 RawTView -> CShort -> IO ()
c_tview_setlinewidth

instance () => IDeletable (TView) where
        delete :: TView -> IO ()
delete = (Ptr RawTView -> IO ()) -> TView -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView -> IO ()
c_tview_delete