{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Graf.TView3D.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.TView3D.RawType
import HROOT.Graf.TView3D.FFI
import HROOT.Graf.TView3D.Interface
import HROOT.Graf.TView3D.Cast
import HROOT.Graf.TView3D.RawType
import HROOT.Graf.TView3D.Cast
import HROOT.Graf.TView3D.Interface
import HROOT.Core.TVirtualPad.RawType
import HROOT.Core.TVirtualPad.Cast
import HROOT.Core.TVirtualPad.Interface
import HROOT.Core.TClass.RawType
import HROOT.Core.TClass.Cast
import HROOT.Core.TClass.Interface
import HROOT.Graf.TView.RawType
import HROOT.Graf.TView.Cast
import HROOT.Graf.TView.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 () => ITView3D (TView3D) where

instance () => ITView (TView3D) where
        front :: TView3D -> IO ()
front = (Ptr RawTView3D -> IO ()) -> TView3D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO ()
c_tview3d_front
        frontView :: forall c0. (ITVirtualPad c0, FPtr c0) => TView3D -> c0 -> IO ()
frontView = (Ptr RawTView3D -> Ptr RawTVirtualPad -> IO ())
-> TView3D -> 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 RawTView3D -> Ptr RawTVirtualPad -> IO ()
c_tview3d_frontview
        getLatitude :: TView3D -> IO CDouble
getLatitude = (Ptr RawTView3D -> IO CDouble) -> TView3D -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CDouble
c_tview3d_getlatitude
        getLongitude :: TView3D -> IO CDouble
getLongitude = (Ptr RawTView3D -> IO CDouble) -> TView3D -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CDouble
c_tview3d_getlongitude
        getPsi :: TView3D -> IO CDouble
getPsi = (Ptr RawTView3D -> IO CDouble) -> TView3D -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CDouble
c_tview3d_getpsi
        isViewChanged :: TView3D -> IO CBool
isViewChanged = (Ptr RawTView3D -> IO CBool) -> TView3D -> IO CBool
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CBool
c_tview3d_isviewchanged
        rotateView :: TView3D -> CDouble -> CDouble -> IO ()
rotateView = (Ptr RawTView3D -> CDouble -> CDouble -> IO ())
-> TView3D -> 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 RawTView3D -> CDouble -> CDouble -> IO ()
c_tview3d_rotateview
        setLatitude :: TView3D -> CDouble -> IO ()
setLatitude = (Ptr RawTView3D -> CDouble -> IO ()) -> TView3D -> 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 RawTView3D -> CDouble -> IO ()
c_tview3d_setlatitude
        setLongitude :: TView3D -> CDouble -> IO ()
setLongitude = (Ptr RawTView3D -> CDouble -> IO ()) -> TView3D -> 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 RawTView3D -> CDouble -> IO ()
c_tview3d_setlongitude
        setPsi :: TView3D -> CDouble -> IO ()
setPsi = (Ptr RawTView3D -> CDouble -> IO ()) -> TView3D -> 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 RawTView3D -> CDouble -> IO ()
c_tview3d_setpsi
        setView1 :: TView3D -> CDouble -> CDouble -> CDouble -> Ptr CInt -> IO ()
setView1 = (Ptr RawTView3D
 -> CDouble -> CDouble -> CDouble -> Ptr CInt -> IO ())
-> TView3D -> 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 RawTView3D
-> CDouble -> CDouble -> CDouble -> Ptr CInt -> IO ()
c_tview3d_setview1
        setViewChanged :: TView3D -> CBool -> IO ()
setViewChanged = (Ptr RawTView3D -> CBool -> IO ()) -> TView3D -> 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 RawTView3D -> CBool -> IO ()
c_tview3d_setviewchanged
        side :: TView3D -> IO ()
side = (Ptr RawTView3D -> IO ()) -> TView3D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO ()
c_tview3d_side
        sideView :: forall c0. (ITVirtualPad c0, FPtr c0) => TView3D -> c0 -> IO ()
sideView = (Ptr RawTView3D -> Ptr RawTVirtualPad -> IO ())
-> TView3D -> 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 RawTView3D -> Ptr RawTVirtualPad -> IO ()
c_tview3d_sideview
        top :: TView3D -> IO ()
top = (Ptr RawTView3D -> IO ()) -> TView3D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO ()
c_tview3d_top
        topView :: forall c0. (ITVirtualPad c0, FPtr c0) => TView3D -> c0 -> IO ()
topView = (Ptr RawTView3D -> Ptr RawTVirtualPad -> IO ())
-> TView3D -> 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 RawTView3D -> Ptr RawTVirtualPad -> IO ()
c_tview3d_topview

instance () => ITObject (TView3D) where
        clear :: forall c0. Castable c0 CString => TView3D -> c0 -> IO ()
clear = (Ptr RawTView3D -> CString -> IO ()) -> TView3D -> 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 RawTView3D -> CString -> IO ()
c_tview3d_clear
        draw :: forall c0. Castable c0 CString => TView3D -> c0 -> IO ()
draw = (Ptr RawTView3D -> CString -> IO ()) -> TView3D -> 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 RawTView3D -> CString -> IO ()
c_tview3d_draw
        findObject :: forall c0. Castable c0 CString => TView3D -> c0 -> IO TObject
findObject = (Ptr RawTView3D -> CString -> IO (Ptr RawTObject))
-> TView3D -> 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 RawTView3D -> CString -> IO (Ptr RawTObject)
c_tview3d_findobject
        getName :: TView3D -> IO CString
getName = (Ptr RawTView3D -> IO CString) -> TView3D -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CString
c_tview3d_getname
        isA :: TView3D -> IO TClass
isA = (Ptr RawTView3D -> IO (Ptr RawTClass)) -> TView3D -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO (Ptr RawTClass)
c_tview3d_isa
        paint :: forall c0. Castable c0 CString => TView3D -> c0 -> IO ()
paint = (Ptr RawTView3D -> CString -> IO ()) -> TView3D -> 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 RawTView3D -> CString -> IO ()
c_tview3d_paint
        printObj :: forall c0. Castable c0 CString => TView3D -> c0 -> IO ()
printObj = (Ptr RawTView3D -> CString -> IO ()) -> TView3D -> 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 RawTView3D -> CString -> IO ()
c_tview3d_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TView3D -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTView3D -> CString -> CString -> IO ())
-> TView3D -> 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 RawTView3D -> CString -> CString -> IO ()
c_tview3d_saveas
        write :: forall c0.
Castable c0 CString =>
TView3D -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTView3D -> CString -> CInt -> CInt -> IO CInt)
-> TView3D -> 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 RawTView3D -> CString -> CInt -> CInt -> IO CInt
c_tview3d_write
        write_ :: TView3D -> IO CInt
write_ = (Ptr RawTView3D -> IO CInt) -> TView3D -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CInt
c_tview3d_write_

instance () => ITAttLine (TView3D) where
        getLineColor :: TView3D -> IO CShort
getLineColor = (Ptr RawTView3D -> IO CShort) -> TView3D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CShort
c_tview3d_getlinecolor
        getLineStyle :: TView3D -> IO CShort
getLineStyle = (Ptr RawTView3D -> IO CShort) -> TView3D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CShort
c_tview3d_getlinestyle
        getLineWidth :: TView3D -> IO CShort
getLineWidth = (Ptr RawTView3D -> IO CShort) -> TView3D -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO CShort
c_tview3d_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TView3D -> c0 -> IO ()
resetAttLine = (Ptr RawTView3D -> CString -> IO ()) -> TView3D -> 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 RawTView3D -> CString -> IO ()
c_tview3d_resetattline
        setLineAttributes :: TView3D -> IO ()
setLineAttributes = (Ptr RawTView3D -> IO ()) -> TView3D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO ()
c_tview3d_setlineattributes
        setLineColor :: TView3D -> CShort -> IO ()
setLineColor = (Ptr RawTView3D -> CShort -> IO ()) -> TView3D -> 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 RawTView3D -> CShort -> IO ()
c_tview3d_setlinecolor
        setLineStyle :: TView3D -> CShort -> IO ()
setLineStyle = (Ptr RawTView3D -> CShort -> IO ()) -> TView3D -> 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 RawTView3D -> CShort -> IO ()
c_tview3d_setlinestyle
        setLineWidth :: TView3D -> CShort -> IO ()
setLineWidth = (Ptr RawTView3D -> CShort -> IO ()) -> TView3D -> 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 RawTView3D -> CShort -> IO ()
c_tview3d_setlinewidth

instance () => IDeletable (TView3D) where
        delete :: TView3D -> IO ()
delete = (Ptr RawTView3D -> IO ()) -> TView3D -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTView3D -> IO ()
c_tview3d_delete