{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Graf.TMarker.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.TMarker.RawType
import HROOT.Graf.TMarker.FFI
import HROOT.Graf.TMarker.Interface
import HROOT.Graf.TMarker.Cast
import HROOT.Graf.TMarker.RawType
import HROOT.Graf.TMarker.Cast
import HROOT.Graf.TMarker.Interface
import HROOT.Core.TClass.RawType
import HROOT.Core.TClass.Cast
import HROOT.Core.TClass.Interface
import HROOT.Core.Rectangle_t.RawType
import HROOT.Core.Rectangle_t.Cast
import HROOT.Core.Rectangle_t.Interface
import HROOT.Core.TObject.RawType
import HROOT.Core.TObject.Cast
import HROOT.Core.TObject.Interface
import HROOT.Core.TAttMarker.RawType
import HROOT.Core.TAttMarker.Cast
import HROOT.Core.TAttMarker.Interface
import HROOT.Core.TAttBBox2D.RawType
import HROOT.Core.TAttBBox2D.Cast
import HROOT.Core.TAttBBox2D.Interface
import STD.Deletable.RawType
import STD.Deletable.Cast
import STD.Deletable.Interface

instance () => ITMarker (TMarker) where
        setX :: TMarker -> CDouble -> IO ()
setX = (Ptr RawTMarker -> CDouble -> IO ()) -> TMarker -> 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 RawTMarker -> CDouble -> IO ()
c_tmarker_setx
        setY :: TMarker -> CDouble -> IO ()
setY = (Ptr RawTMarker -> CDouble -> IO ()) -> TMarker -> 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 RawTMarker -> CDouble -> IO ()
c_tmarker_sety

instance () => ITObject (TMarker) where
        clear :: forall c0. Castable c0 CString => TMarker -> c0 -> IO ()
clear = (Ptr RawTMarker -> CString -> IO ()) -> TMarker -> 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 RawTMarker -> CString -> IO ()
c_tmarker_clear
        draw :: forall c0. Castable c0 CString => TMarker -> c0 -> IO ()
draw = (Ptr RawTMarker -> CString -> IO ()) -> TMarker -> 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 RawTMarker -> CString -> IO ()
c_tmarker_draw
        findObject :: forall c0. Castable c0 CString => TMarker -> c0 -> IO TObject
findObject = (Ptr RawTMarker -> CString -> IO (Ptr RawTObject))
-> TMarker -> 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 RawTMarker -> CString -> IO (Ptr RawTObject)
c_tmarker_findobject
        getName :: TMarker -> IO CString
getName = (Ptr RawTMarker -> IO CString) -> TMarker -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CString
c_tmarker_getname
        isA :: TMarker -> IO TClass
isA = (Ptr RawTMarker -> IO (Ptr RawTClass)) -> TMarker -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO (Ptr RawTClass)
c_tmarker_isa
        paint :: forall c0. Castable c0 CString => TMarker -> c0 -> IO ()
paint = (Ptr RawTMarker -> CString -> IO ()) -> TMarker -> 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 RawTMarker -> CString -> IO ()
c_tmarker_paint
        printObj :: forall c0. Castable c0 CString => TMarker -> c0 -> IO ()
printObj = (Ptr RawTMarker -> CString -> IO ()) -> TMarker -> 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 RawTMarker -> CString -> IO ()
c_tmarker_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TMarker -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTMarker -> CString -> CString -> IO ())
-> TMarker -> 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 RawTMarker -> CString -> CString -> IO ()
c_tmarker_saveas
        write :: forall c0.
Castable c0 CString =>
TMarker -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTMarker -> CString -> CInt -> CInt -> IO CInt)
-> TMarker -> 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 RawTMarker -> CString -> CInt -> CInt -> IO CInt
c_tmarker_write
        write_ :: TMarker -> IO CInt
write_ = (Ptr RawTMarker -> IO CInt) -> TMarker -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CInt
c_tmarker_write_

instance () => ITAttMarker (TMarker) where
        getMarkerColor :: TMarker -> IO CShort
getMarkerColor = (Ptr RawTMarker -> IO CShort) -> TMarker -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CShort
c_tmarker_getmarkercolor
        getMarkerStyle :: TMarker -> IO CShort
getMarkerStyle = (Ptr RawTMarker -> IO CShort) -> TMarker -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CShort
c_tmarker_getmarkerstyle
        getMarkerSize :: TMarker -> IO CFloat
getMarkerSize = (Ptr RawTMarker -> IO CFloat) -> TMarker -> IO CFloat
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CFloat
c_tmarker_getmarkersize
        resetAttMarker :: forall c0. Castable c0 CString => TMarker -> c0 -> IO ()
resetAttMarker = (Ptr RawTMarker -> CString -> IO ()) -> TMarker -> 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 RawTMarker -> CString -> IO ()
c_tmarker_resetattmarker
        setMarkerAttributes :: TMarker -> IO ()
setMarkerAttributes = (Ptr RawTMarker -> IO ()) -> TMarker -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO ()
c_tmarker_setmarkerattributes
        setMarkerColor :: TMarker -> CShort -> IO ()
setMarkerColor = (Ptr RawTMarker -> CShort -> IO ()) -> TMarker -> 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 RawTMarker -> CShort -> IO ()
c_tmarker_setmarkercolor
        setMarkerStyle :: TMarker -> CShort -> IO ()
setMarkerStyle = (Ptr RawTMarker -> CShort -> IO ()) -> TMarker -> 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 RawTMarker -> CShort -> IO ()
c_tmarker_setmarkerstyle
        setMarkerSize :: TMarker -> CShort -> IO ()
setMarkerSize = (Ptr RawTMarker -> CShort -> IO ()) -> TMarker -> 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 RawTMarker -> CShort -> IO ()
c_tmarker_setmarkersize

instance () => ITAttBBox2D (TMarker) where
        getBBox :: TMarker -> IO Rectangle_t
getBBox = (Ptr RawTMarker -> IO (Ptr RawRectangle_t))
-> TMarker -> IO Rectangle_t
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO (Ptr RawRectangle_t)
c_tmarker_getbbox
        setBBoxX1 :: TMarker -> CInt -> IO ()
setBBoxX1 = (Ptr RawTMarker -> CInt -> IO ()) -> TMarker -> 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 RawTMarker -> CInt -> IO ()
c_tmarker_setbboxx1
        setBBoxX2 :: TMarker -> CInt -> IO ()
setBBoxX2 = (Ptr RawTMarker -> CInt -> IO ()) -> TMarker -> 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 RawTMarker -> CInt -> IO ()
c_tmarker_setbboxx2
        setBBoxY1 :: TMarker -> CInt -> IO ()
setBBoxY1 = (Ptr RawTMarker -> CInt -> IO ()) -> TMarker -> 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 RawTMarker -> CInt -> IO ()
c_tmarker_setbboxy1
        setBBoxY2 :: TMarker -> CInt -> IO ()
setBBoxY2 = (Ptr RawTMarker -> CInt -> IO ()) -> TMarker -> 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 RawTMarker -> CInt -> IO ()
c_tmarker_setbboxy2

instance () => IDeletable (TMarker) where
        delete :: TMarker -> IO ()
delete = (Ptr RawTMarker -> IO ()) -> TMarker -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO ()
c_tmarker_delete

newTMarker :: () => CDouble -> CDouble -> CInt -> IO TMarker
newTMarker :: CDouble -> CDouble -> CInt -> IO TMarker
newTMarker = (CDouble -> CDouble -> CInt -> IO (Ptr RawTMarker))
-> CDouble -> CDouble -> CInt -> IO TMarker
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 CDouble -> CDouble -> CInt -> IO (Ptr RawTMarker)
c_tmarker_newtmarker

tMarker_GetX :: () => TMarker -> IO CDouble
tMarker_GetX :: TMarker -> IO CDouble
tMarker_GetX = (Ptr RawTMarker -> IO CDouble) -> TMarker -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CDouble
c_tmarker_tmarker_getx

tMarker_GetY :: () => TMarker -> IO CDouble
tMarker_GetY :: TMarker -> IO CDouble
tMarker_GetY = (Ptr RawTMarker -> IO CDouble) -> TMarker -> IO CDouble
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTMarker -> IO CDouble
c_tmarker_tmarker_gety