{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Core.TAtt3D.Implementation where import FFICXX.Runtime.Cast import HROOT.Core.TAtt3D.RawType import HROOT.Core.TAtt3D.FFI import HROOT.Core.TAtt3D.Interface import HROOT.Core.TAtt3D.Cast import HROOT.Core.Deletable.RawType import HROOT.Core.Deletable.Cast import HROOT.Core.Deletable.Interface import Data.Word import Foreign.C import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITAtt3D TAtt3D where instance IDeletable TAtt3D where delete = xform0 c_tatt3d_delete instance ITAtt3D (Exist TAtt3D) where instance IDeletable (Exist TAtt3D) where delete (ETAtt3D x) = delete x instance FPtr (Exist TAtt3D) where type Raw (Exist TAtt3D) = RawTAtt3D get_fptr (ETAtt3D obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETAtt3D (cast_fptr_to_obj (fptr :: ForeignPtr RawTAtt3D) :: TAtt3D)