-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE TypeSynonymInstances #-}

-- This source file is part of HGamer3D
-- (A project to enable 3D game development in Haskell)
-- For the latest info, see http://www.althainz.de/HGamer3D.html
-- 

-- (c) 2011, 2012 Peter Althainz
-- 
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
-- 
--     http://www.apache.org/licenses/LICENSE-2.0
-- 
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- 


-- ClassMesh.chs

-- 

module HGamer3D.Bindings.Ogre.ClassMesh 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
{-# LINE 40 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}
import HGamer3D.Bindings.Ogre.ClassPtr
{-# LINE 41 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}
import HGamer3D.Bindings.Ogre.StructHG3DClass
{-# LINE 42 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}
import HGamer3D.Bindings.Ogre.StructSharedPtr
{-# LINE 43 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}
import HGamer3D.Bindings.Ogre.EnumVertexAnimationType
{-# LINE 44 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function ~Mesh -}
delete :: HG3DClass -> IO ()
delete a1 =
  withHG3DClass a1 $ \a1' -> 
  delete'_ a1' >>= \res ->
  return ()
{-# LINE 49 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function unnameSubMesh -}
unnameSubMesh :: HG3DClass -> String -> IO ()
unnameSubMesh a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  unnameSubMesh'_ a1' a2' >>= \res ->
  return ()
{-# LINE 54 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getNumSubMeshes -}
getNumSubMeshes :: HG3DClass -> IO (Int)
getNumSubMeshes a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getNumSubMeshes'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 59 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function destroySubMesh -}
destroySubMesh :: HG3DClass -> Int -> IO ()
destroySubMesh a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  destroySubMesh'_ a1' a2' >>= \res ->
  return ()
{-# LINE 64 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function destroySubMesh2 -}
destroySubMesh2 :: HG3DClass -> String -> IO ()
destroySubMesh2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  destroySubMesh2'_ a1' a2' >>= \res ->
  return ()
{-# LINE 69 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function clone -}
clone :: HG3DClass -> String -> String -> IO (SharedPtr)
clone a1 a2 a3 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  withCString a3 $ \a3' -> 
  alloca $ \a4' -> 
  clone'_ a1' a2' a3' a4' >>= \res ->
  peekSharedPtr  a4'>>= \a4'' -> 
  return (a4'')
{-# LINE 76 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getBoundingSphereRadius -}
getBoundingSphereRadius :: HG3DClass -> IO (Float)
getBoundingSphereRadius a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getBoundingSphereRadius'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 81 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function setSkeletonName -}
setSkeletonName :: HG3DClass -> String -> IO ()
setSkeletonName a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  setSkeletonName'_ a1' a2' >>= \res ->
  return ()
{-# LINE 86 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function hasSkeleton -}
hasSkeleton :: HG3DClass -> IO (Bool)
hasSkeleton a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  hasSkeleton'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 91 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function hasVertexAnimation -}
hasVertexAnimation :: HG3DClass -> IO (Bool)
hasVertexAnimation a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  hasVertexAnimation'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 96 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getSkeleton -}
getSkeleton :: HG3DClass -> IO (SharedPtr)
getSkeleton a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSkeleton'_ a1' a2' >>= \res ->
  peekSharedPtr  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 101 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getSkeletonName -}
getSkeletonName :: HG3DClass -> IO (String)
getSkeletonName a1 =
  withHG3DClass a1 $ \a1' -> 
  alloc64k $ \a2' -> 
  getSkeletonName'_ a1' a2' >>= \res ->
  peekCString  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 106 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function clearBoneAssignments -}
clearBoneAssignments :: HG3DClass -> IO ()
clearBoneAssignments a1 =
  withHG3DClass a1 $ \a1' -> 
  clearBoneAssignments'_ a1' >>= \res ->
  return ()
{-# LINE 110 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function createManualLodLevel -}
createManualLodLevel :: HG3DClass -> Float -> String -> String -> IO ()
createManualLodLevel a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  withCString a3 $ \a3' -> 
  withCString a4 $ \a4' -> 
  createManualLodLevel'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 117 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function isLodManual -}
isLodManual :: HG3DClass -> IO (Bool)
isLodManual a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isLodManual'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 122 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function removeLodLevels -}
removeLodLevels :: HG3DClass -> IO ()
removeLodLevels a1 =
  withHG3DClass a1 $ \a1' -> 
  removeLodLevels'_ a1' >>= \res ->
  return ()
{-# LINE 126 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function isVertexBufferShadowed -}
isVertexBufferShadowed :: HG3DClass -> IO (Bool)
isVertexBufferShadowed a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isVertexBufferShadowed'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 131 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function isIndexBufferShadowed -}
isIndexBufferShadowed :: HG3DClass -> IO (Bool)
isIndexBufferShadowed a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isIndexBufferShadowed'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 136 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function buildEdgeList -}
buildEdgeList :: HG3DClass -> IO ()
buildEdgeList a1 =
  withHG3DClass a1 $ \a1' -> 
  buildEdgeList'_ a1' >>= \res ->
  return ()
{-# LINE 140 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function freeEdgeList -}
freeEdgeList :: HG3DClass -> IO ()
freeEdgeList a1 =
  withHG3DClass a1 $ \a1' -> 
  freeEdgeList'_ a1' >>= \res ->
  return ()
{-# LINE 144 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function prepareForShadowVolume -}
prepareForShadowVolume :: HG3DClass -> IO ()
prepareForShadowVolume a1 =
  withHG3DClass a1 $ \a1' -> 
  prepareForShadowVolume'_ a1' >>= \res ->
  return ()
{-# LINE 148 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function isPreparedForShadowVolumes -}
isPreparedForShadowVolumes :: HG3DClass -> IO (Bool)
isPreparedForShadowVolumes a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isPreparedForShadowVolumes'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 153 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function isEdgeListBuilt -}
isEdgeListBuilt :: HG3DClass -> IO (Bool)
isEdgeListBuilt a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  isEdgeListBuilt'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 158 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function setAutoBuildEdgeLists -}
setAutoBuildEdgeLists :: HG3DClass -> Bool -> IO ()
setAutoBuildEdgeLists a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setAutoBuildEdgeLists'_ a1' a2' >>= \res ->
  return ()
{-# LINE 163 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getAutoBuildEdgeLists -}
getAutoBuildEdgeLists :: HG3DClass -> IO (Bool)
getAutoBuildEdgeLists a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAutoBuildEdgeLists'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 168 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getSharedVertexDataAnimationType -}
getSharedVertexDataAnimationType :: HG3DClass -> IO (EnumVertexAnimationType)
getSharedVertexDataAnimationType a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSharedVertexDataAnimationType'_ a1' a2' >>= \res ->
  peekEnumUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 173 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getSharedVertexDataAnimationIncludesNormals -}
getSharedVertexDataAnimationIncludesNormals :: HG3DClass -> IO (Bool)
getSharedVertexDataAnimationIncludesNormals a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSharedVertexDataAnimationIncludesNormals'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 178 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function createAnimation -}
createAnimation :: HG3DClass -> String -> Float -> IO (HG3DClass)
createAnimation a1 a2 a3 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  let {a3' = realToFrac a3} in 
  alloca $ \a4' -> 
  createAnimation'_ a1' a2' a3' a4' >>= \res ->
  peek  a4'>>= \a4'' -> 
  return (a4'')
{-# LINE 185 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getAnimation -}
getAnimation :: HG3DClass -> String -> IO (HG3DClass)
getAnimation a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  getAnimation'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 191 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function hasAnimation -}
hasAnimation :: HG3DClass -> String -> IO (Bool)
hasAnimation a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  hasAnimation'_ a1' a2' a3' >>= \res ->
  peekBoolUtil  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 197 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function removeAnimation -}
removeAnimation :: HG3DClass -> String -> IO ()
removeAnimation a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  removeAnimation'_ a1' a2' >>= \res ->
  return ()
{-# LINE 202 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getNumAnimations -}
getNumAnimations :: HG3DClass -> IO (Int)
getNumAnimations a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getNumAnimations'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 207 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getAnimation2 -}
getAnimation2 :: HG3DClass -> Int -> IO (HG3DClass)
getAnimation2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  alloca $ \a3' -> 
  getAnimation2'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 213 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function removeAllAnimations -}
removeAllAnimations :: HG3DClass -> IO ()
removeAllAnimations a1 =
  withHG3DClass a1 $ \a1' -> 
  removeAllAnimations'_ a1' >>= \res ->
  return ()
{-# LINE 217 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function updateMaterialForAllSubMeshes -}
updateMaterialForAllSubMeshes :: HG3DClass -> IO ()
updateMaterialForAllSubMeshes a1 =
  withHG3DClass a1 $ \a1' -> 
  updateMaterialForAllSubMeshes'_ a1' >>= \res ->
  return ()
{-# LINE 221 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function getPoseCount -}
getPoseCount :: HG3DClass -> IO (Int)
getPoseCount a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getPoseCount'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 226 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function removePose2 -}
removePose2 :: HG3DClass -> String -> IO ()
removePose2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  removePose2'_ a1' a2' >>= \res ->
  return ()
{-# LINE 231 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}

{- function removeAllPoses -}
removeAllPoses :: HG3DClass -> IO ()
removeAllPoses a1 =
  withHG3DClass a1 $ \a1' -> 
  removeAllPoses'_ a1' >>= \res ->
  return ()
{-# LINE 235 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-}


foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_destruct"
  delete'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_unnameSubMesh"
  unnameSubMesh'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getNumSubMeshes"
  getNumSubMeshes'_ :: ((HG3DClassPtr) -> ((Ptr CUShort) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_destroySubMesh"
  destroySubMesh'_ :: ((HG3DClassPtr) -> (CUShort -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_destroySubMesh2"
  destroySubMesh2'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_clone"
  clone'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CChar) -> ((SharedPtrPtr) -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getBoundingSphereRadius"
  getBoundingSphereRadius'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_setSkeletonName"
  setSkeletonName'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_hasSkeleton"
  hasSkeleton'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_hasVertexAnimation"
  hasVertexAnimation'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getSkeleton"
  getSkeleton'_ :: ((HG3DClassPtr) -> ((SharedPtrPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getSkeletonName"
  getSkeletonName'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_clearBoneAssignments"
  clearBoneAssignments'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_createManualLodLevel"
  createManualLodLevel'_ :: ((HG3DClassPtr) -> (CFloat -> ((Ptr CChar) -> ((Ptr CChar) -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_isLodManual"
  isLodManual'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_removeLodLevels"
  removeLodLevels'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_isVertexBufferShadowed"
  isVertexBufferShadowed'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_isIndexBufferShadowed"
  isIndexBufferShadowed'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_buildEdgeList"
  buildEdgeList'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_freeEdgeList"
  freeEdgeList'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_prepareForShadowVolume"
  prepareForShadowVolume'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_isPreparedForShadowVolumes"
  isPreparedForShadowVolumes'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_isEdgeListBuilt"
  isEdgeListBuilt'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_setAutoBuildEdgeLists"
  setAutoBuildEdgeLists'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getAutoBuildEdgeLists"
  getAutoBuildEdgeLists'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getSharedVertexDataAnimationType"
  getSharedVertexDataAnimationType'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getSharedVertexDataAnimationIncludesNormals"
  getSharedVertexDataAnimationIncludesNormals'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_createAnimation"
  createAnimation'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (CFloat -> ((HG3DClassPtr) -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getAnimation"
  getAnimation'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_hasAnimation"
  hasAnimation'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CInt) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_removeAnimation"
  removeAnimation'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getNumAnimations"
  getNumAnimations'_ :: ((HG3DClassPtr) -> ((Ptr CUShort) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getAnimation2"
  getAnimation2'_ :: ((HG3DClassPtr) -> (CUShort -> ((HG3DClassPtr) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_removeAllAnimations"
  removeAllAnimations'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_updateMaterialForAllSubMeshes"
  updateMaterialForAllSubMeshes'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_getPoseCount"
  getPoseCount'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_removePose2"
  removePose2'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassMesh.chs.h ogre_msh_removeAllPoses"
  removeAllPoses'_ :: ((HG3DClassPtr) -> (IO ()))