module HGamer3D.Bindings.Ogre.ClassEntity where
import Foreign
import Foreign.Ptr
import Foreign.C
import HGamer3D.Data.HG3DClass
import HGamer3D.Data.Vector
import HGamer3D.Data.Colour
import HGamer3D.Data.Angle
import HGamer3D.Bindings.Ogre.Utils
import HGamer3D.Bindings.Ogre.ClassPtr
import HGamer3D.Bindings.Ogre.StructHG3DClass
import HGamer3D.Bindings.Ogre.StructSharedPtr
import HGamer3D.Bindings.Ogre.EnumEntityVertexDataBindChoice
delete :: HG3DClass -> IO ()
delete a1 =
  withHG3DClass a1 $ \a1' -> 
  delete'_ a1' >>= \res ->
  return ()
getMesh :: HG3DClass -> IO (SharedPtr)
getMesh a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getMesh'_ a1' a2' >>= \res ->
  peekSharedPtr  a2'>>= \a2'' -> 
  return (a2'')
getNumSubEntities :: HG3DClass -> IO (Int)
getNumSubEntities a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getNumSubEntities'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
clone :: HG3DClass -> String -> IO (HG3DClass)
clone a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  clone'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
setMaterialName :: HG3DClass -> String -> String -> IO ()
setMaterialName a1 a2 a3 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  withCString a3 $ \a3' -> 
  setMaterialName'_ a1' a2' a3' >>= \res ->
  return ()
setMaterial :: HG3DClass -> SharedPtr -> IO ()
setMaterial a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withSharedPtr a2 $ \a2' -> 
  setMaterial'_ a1' a2' >>= \res ->
  return ()
getMovableType :: HG3DClass -> IO (String)
getMovableType a1 =
  withHG3DClass a1 $ \a1' -> 
  alloc64k $ \a2' -> 
  getMovableType'_ a1' a2' >>= \res ->
  peekCString  a2'>>= \a2'' -> 
  return (a2'')
getAnimationState :: HG3DClass -> String -> IO (HG3DClass)
getAnimationState a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  getAnimationState'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
hasAnimationState :: HG3DClass -> String -> IO (Bool)
hasAnimationState a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  hasAnimationState'_ a1' a2' a3' >>= \res ->
  peekBoolUtil  a3'>>= \a3'' -> 
  return (a3'')
getAllAnimationStates :: HG3DClass -> IO (HG3DClass)
getAllAnimationStates a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAllAnimationStates'_ a1' a2' >>= \res ->
  peek  a2'>>= \a2'' -> 
  return (a2'')
setDisplaySkeleton :: HG3DClass -> Bool -> IO ()
setDisplaySkeleton a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setDisplaySkeleton'_ a1' a2' >>= \res ->
  return ()
getDisplaySkeleton :: HG3DClass -> IO (Bool)
getDisplaySkeleton a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getDisplaySkeleton'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
getManualLodLevel :: HG3DClass -> Int -> IO (HG3DClass)
getManualLodLevel a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  alloca $ \a3' -> 
  getManualLodLevel'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
getNumManualLodLevels :: HG3DClass -> IO (Int)
getNumManualLodLevels a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getNumManualLodLevels'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
setPolygonModeOverrideable :: HG3DClass -> Bool -> IO ()
setPolygonModeOverrideable a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setPolygonModeOverrideable'_ a1' a2' >>= \res ->
  return ()
detachObjectFromBone :: HG3DClass -> String -> IO (HG3DClass)
detachObjectFromBone a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  detachObjectFromBone'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
detachObjectFromBone2 :: HG3DClass -> HG3DClass -> IO ()
detachObjectFromBone2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withHG3DClass a2 $ \a2' -> 
  detachObjectFromBone2'_ a1' a2' >>= \res ->
  return ()
detachAllObjectsFromBone :: HG3DClass -> IO ()
detachAllObjectsFromBone a1 =
  withHG3DClass a1 $ \a1' -> 
  detachAllObjectsFromBone'_ a1' >>= \res ->
  return ()
getBoundingRadius :: HG3DClass -> IO (Float)
getBoundingRadius a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getBoundingRadius'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
hasEdgeList :: HG3DClass -> IO (Bool)
hasEdgeList a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  hasEdgeList'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
hasSkeleton :: HG3DClass -> IO (Bool)
hasSkeleton a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  hasSkeleton'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
isHardwareAnimationEnabled :: HG3DClass -> IO (Bool)
isHardwareAnimationEnabled a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isHardwareAnimationEnabled'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
getSoftwareAnimationRequests :: HG3DClass -> IO (Int)
getSoftwareAnimationRequests a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSoftwareAnimationRequests'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
getSoftwareAnimationNormalsRequests :: HG3DClass -> IO (Int)
getSoftwareAnimationNormalsRequests a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSoftwareAnimationNormalsRequests'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
addSoftwareAnimationRequest :: HG3DClass -> Bool -> IO ()
addSoftwareAnimationRequest a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  addSoftwareAnimationRequest'_ a1' a2' >>= \res ->
  return ()
removeSoftwareAnimationRequest :: HG3DClass -> Bool -> IO ()
removeSoftwareAnimationRequest a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  removeSoftwareAnimationRequest'_ a1' a2' >>= \res ->
  return ()
shareSkeletonInstanceWith :: HG3DClass -> HG3DClass -> IO ()
shareSkeletonInstanceWith a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withHG3DClass a2 $ \a2' -> 
  shareSkeletonInstanceWith'_ a1' a2' >>= \res ->
  return ()
hasVertexAnimation :: HG3DClass -> IO (Bool)
hasVertexAnimation a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  hasVertexAnimation'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
stopSharingSkeletonInstance :: HG3DClass -> IO ()
stopSharingSkeletonInstance a1 =
  withHG3DClass a1 $ \a1' -> 
  stopSharingSkeletonInstance'_ a1' >>= \res ->
  return ()
sharesSkeletonInstance :: HG3DClass -> IO (Bool)
sharesSkeletonInstance a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  sharesSkeletonInstance'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
refreshAvailableAnimationState :: HG3DClass -> IO ()
refreshAvailableAnimationState a1 =
  withHG3DClass a1 $ \a1' -> 
  refreshAvailableAnimationState'_ a1' >>= \res ->
  return ()
chooseVertexDataForBinding :: HG3DClass -> Bool -> IO (EnumEntityVertexDataBindChoice)
chooseVertexDataForBinding a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  alloca $ \a3' -> 
  chooseVertexDataForBinding'_ a1' a2' a3' >>= \res ->
  peekEnumUtil  a3'>>= \a3'' -> 
  return (a3'')
isInitialised :: HG3DClass -> IO (Bool)
isInitialised a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isInitialised'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
backgroundLoadingComplete :: HG3DClass -> HG3DClass -> IO ()
backgroundLoadingComplete a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withHG3DClass a2 $ \a2' -> 
  backgroundLoadingComplete'_ a1' a2' >>= \res ->
  return ()
setSkipAnimationStateUpdate :: HG3DClass -> Bool -> IO ()
setSkipAnimationStateUpdate a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setSkipAnimationStateUpdate'_ a1' a2' >>= \res ->
  return ()
getSkipAnimationStateUpdate :: HG3DClass -> IO (Bool)
getSkipAnimationStateUpdate a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSkipAnimationStateUpdate'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
setAlwaysUpdateMainSkeleton :: HG3DClass -> Bool -> IO ()
setAlwaysUpdateMainSkeleton a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setAlwaysUpdateMainSkeleton'_ a1' a2' >>= \res ->
  return ()
getAlwaysUpdateMainSkeleton :: HG3DClass -> IO (Bool)
getAlwaysUpdateMainSkeleton a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAlwaysUpdateMainSkeleton'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_destruct"
  delete'_ :: ((HG3DClassPtr) -> (IO ()))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getMesh"
  getMesh'_ :: ((HG3DClassPtr) -> ((SharedPtrPtr) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getNumSubEntities"
  getNumSubEntities'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_clone"
  clone'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_setMaterialName"
  setMaterialName'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CChar) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_setMaterial"
  setMaterial'_ :: ((HG3DClassPtr) -> ((SharedPtrPtr) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getMovableType"
  getMovableType'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getAnimationState"
  getAnimationState'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_hasAnimationState"
  hasAnimationState'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CInt) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getAllAnimationStates"
  getAllAnimationStates'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_setDisplaySkeleton"
  setDisplaySkeleton'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getDisplaySkeleton"
  getDisplaySkeleton'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getManualLodLevel"
  getManualLodLevel'_ :: ((HG3DClassPtr) -> (CInt -> ((HG3DClassPtr) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getNumManualLodLevels"
  getNumManualLodLevels'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_setPolygonModeOverrideable"
  setPolygonModeOverrideable'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_detachObjectFromBone"
  detachObjectFromBone'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_detachObjectFromBone2"
  detachObjectFromBone2'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_detachAllObjectsFromBone"
  detachAllObjectsFromBone'_ :: ((HG3DClassPtr) -> (IO ()))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getBoundingRadius"
  getBoundingRadius'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_hasEdgeList"
  hasEdgeList'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_hasSkeleton"
  hasSkeleton'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_isHardwareAnimationEnabled"
  isHardwareAnimationEnabled'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getSoftwareAnimationRequests"
  getSoftwareAnimationRequests'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getSoftwareAnimationNormalsRequests"
  getSoftwareAnimationNormalsRequests'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_addSoftwareAnimationRequest"
  addSoftwareAnimationRequest'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_removeSoftwareAnimationRequest"
  removeSoftwareAnimationRequest'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_shareSkeletonInstanceWith"
  shareSkeletonInstanceWith'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_hasVertexAnimation"
  hasVertexAnimation'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_stopSharingSkeletonInstance"
  stopSharingSkeletonInstance'_ :: ((HG3DClassPtr) -> (IO ()))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_sharesSkeletonInstance"
  sharesSkeletonInstance'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_refreshAvailableAnimationState"
  refreshAvailableAnimationState'_ :: ((HG3DClassPtr) -> (IO ()))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_chooseVertexDataForBinding"
  chooseVertexDataForBinding'_ :: ((HG3DClassPtr) -> (CInt -> ((Ptr CInt) -> (IO ()))))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_isInitialised"
  isInitialised'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_backgroundLoadingComplete"
  backgroundLoadingComplete'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_setSkipAnimationStateUpdate"
  setSkipAnimationStateUpdate'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getSkipAnimationStateUpdate"
  getSkipAnimationStateUpdate'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_setAlwaysUpdateMainSkeleton"
  setAlwaysUpdateMainSkeleton'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassEntity.chs.h ogre_ent_getAlwaysUpdateMainSkeleton"
  getAlwaysUpdateMainSkeleton'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))