{-# LINE 1 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

{-# LINE 3 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-object-class.html>

module Bindings.Gts.GeometricalObjectHierarchy.ObjectClass where
import Bindings.GLib
import Bindings.Gts.Types
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 10 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

c'GTS_CLASS_NAME_LENGTH = 40
c'GTS_CLASS_NAME_LENGTH :: (Num a) => a

{-# LINE 12 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "inline_GTS_OBJECT_CLASS" c'GTS_OBJECT_CLASS
  :: Ptr a -> Ptr C'GtsObjectClass

{-# LINE 14 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "inline_GTS_OBJECT" c'GTS_OBJECT
  :: Ptr a -> Ptr C'GtsObject

{-# LINE 15 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "inline_GTS_IS_OBJECT" c'GTS_IS_OBJECT
  :: Ptr a -> Ptr C'gboolean

{-# LINE 16 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "inline_GTS_OBJECT_FLAGS" c'GTS_OBJECT_FLAGS
  :: Ptr a -> IO C'guint32

{-# LINE 18 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "inline_GTS_OBJECT_SET_FLAGS" c'GTS_OBJECT_SET_FLAGS
  :: Ptr a -> C'guint32 -> IO ()

{-# LINE 19 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "inline_GTS_OBJECT_UNSET_FLAGS" c'GTS_OBJECT_UNSET_FLAGS
  :: Ptr a -> C'guint32 -> IO ()

{-# LINE 20 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "inline_GTS_OBJECT_DESTROYED" c'GTS_OBJECT_DESTROYED
  :: Ptr a -> IO C'gboolean

{-# LINE 21 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "gts_object_class" c'gts_object_class
  :: IO (Ptr C'GtsObjectClass)
foreign import ccall "&gts_object_class" p'gts_object_class
  :: FunPtr (IO (Ptr C'GtsObjectClass))

{-# LINE 23 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_class_new" c'gts_object_class_new
  :: Ptr C'GtsObjectClass -> Ptr C'GtsObjectClassInfo -> IO C'gpointer
foreign import ccall "&gts_object_class_new" p'gts_object_class_new
  :: FunPtr (Ptr C'GtsObjectClass -> Ptr C'GtsObjectClassInfo -> IO C'gpointer)

{-# LINE 24 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_class_check_cast" c'gts_object_class_check_cast
  :: C'gpointer -> C'gpointer -> IO C'gpointer
foreign import ccall "&gts_object_class_check_cast" p'gts_object_class_check_cast
  :: FunPtr (C'gpointer -> C'gpointer -> IO C'gpointer)

{-# LINE 25 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "inline_gts_object_class_is_from_class" c'gts_object_class_is_from_class
  :: C'gpointer -> C'gpointer -> IO C'gpointer

{-# LINE 27 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "gts_object_class_from_name" c'gts_object_class_from_name
  :: Ptr C'gchar -> IO (Ptr C'GtsObjectClass)
foreign import ccall "&gts_object_class_from_name" p'gts_object_class_from_name
  :: FunPtr (Ptr C'gchar -> IO (Ptr C'GtsObjectClass))

{-# LINE 29 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_new" c'gts_object_new
  :: Ptr C'GtsObjectClass -> IO (Ptr C'GtsObject)
foreign import ccall "&gts_object_new" p'gts_object_new
  :: FunPtr (Ptr C'GtsObjectClass -> IO (Ptr C'GtsObject))

{-# LINE 30 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_init" c'gts_object_init
  :: Ptr C'GtsObject -> Ptr C'GtsObjectClass -> IO ()
foreign import ccall "&gts_object_init" p'gts_object_init
  :: FunPtr (Ptr C'GtsObject -> Ptr C'GtsObjectClass -> IO ())

{-# LINE 31 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_clone" c'gts_object_clone
  :: Ptr C'GtsObject -> IO (Ptr C'GtsObject)
foreign import ccall "&gts_object_clone" p'gts_object_clone
  :: FunPtr (Ptr C'GtsObject -> IO (Ptr C'GtsObject))

{-# LINE 32 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_attributes" c'gts_object_attributes
  :: Ptr C'GtsObject -> Ptr C'GtsObject -> IO ()
foreign import ccall "&gts_object_attributes" p'gts_object_attributes
  :: FunPtr (Ptr C'GtsObject -> Ptr C'GtsObject -> IO ())

{-# LINE 33 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_check_cast" c'gts_object_check_cast
  :: C'gpointer -> C'gpointer -> IO C'gpointer
foreign import ccall "&gts_object_check_cast" p'gts_object_check_cast
  :: FunPtr (C'gpointer -> C'gpointer -> IO C'gpointer)

{-# LINE 34 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "inline_gts_object_is_from_class" c'gts_object_is_from_class
  :: C'gpointer -> C'gpointer -> IO C'gpointer

{-# LINE 36 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}

foreign import ccall "gts_object_reset_reserved" c'gts_object_reset_reserved
  :: Ptr C'GtsObject -> IO ()
foreign import ccall "&gts_object_reset_reserved" p'gts_object_reset_reserved
  :: FunPtr (Ptr C'GtsObject -> IO ())

{-# LINE 38 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_object_destroy" c'gts_object_destroy
  :: Ptr C'GtsObject -> IO ()
foreign import ccall "&gts_object_destroy" p'gts_object_destroy
  :: FunPtr (Ptr C'GtsObject -> IO ())

{-# LINE 39 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}
foreign import ccall "gts_finalize" c'gts_finalize
  :: IO ()
foreign import ccall "&gts_finalize" p'gts_finalize
  :: FunPtr (IO ())

{-# LINE 40 "src/Bindings/Gts/GeometricalObjectHierarchy/ObjectClass.hsc" #-}