-- 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 C2HS import Foreign import Foreign.Ptr import Foreign.C import Monad (liftM, liftM2) import HGamer3D.Data.HG3DClass import HGamer3D.Data.Vector import HGamer3D.Data.Colour import HGamer3D.Data.Angle import HGamer3D.Bindings.Ogre.Utils {-# LINE 42 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} import HGamer3D.Bindings.Ogre.ClassPtr {-# LINE 43 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} import HGamer3D.Bindings.Ogre.StructHG3DClass {-# LINE 44 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} import HGamer3D.Bindings.Ogre.StructSharedPtr {-# LINE 45 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} import HGamer3D.Bindings.Ogre.EnumVertexAnimationType {-# LINE 46 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | delete :: HG3DClass -- ^ classpointer - pointer of Class instance which is going to be deleted. -> IO () -- ^ delete a1 = withHG3DClass a1 $ \a1' -> delete'_ a1' >>= \res -> return () {-# LINE 51 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Removes a name from a SubMesh unnameSubMesh :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO () -- ^ unnameSubMesh a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> unnameSubMesh'_ a1' a2' >>= \res -> return () {-# LINE 56 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets the number of sub meshes which comprise this mesh. getNumSubMeshes :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Int) -- ^ getNumSubMeshes a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getNumSubMeshes'_ a1' a2' >>= \res -> peekIntConv a2'>>= \a2'' -> return (a2'') {-# LINE 61 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Destroy a SubMesh with the given index. This will invalidate the contents of any existing EntityEntity destroySubMesh :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Int -- ^ index -> IO () -- ^ destroySubMesh a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromIntegral a2} in destroySubMesh'_ a1' a2' >>= \res -> return () {-# LINE 66 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Destroy a SubMesh with the given name. This will invalidate the contents of any existing EntityEntity destroySubMesh2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO () -- ^ destroySubMesh2 a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> destroySubMesh2'_ a1' a2' >>= \res -> return () {-# LINE 71 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Makes a copy of this mesh object and gives it a new name. This is useful if you want to tweak an existing mesh without affecting the original one. The newly cloned mesh is registered with the MeshManager clone :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ newName - The name to give the clone -> String -- ^ newGroup - Optional name of the new group to assign the clone to; if you leave this blank, the clone will be assigned to the same group as this Mesh. -> 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 78 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets the radius of the bounding sphere surrounding this mesh. getBoundingSphereRadius :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Float) -- ^ getBoundingSphereRadius a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getBoundingSphereRadius'_ a1' a2' >>= \res -> peekFloatConv a2'>>= \a2'' -> return (a2'') {-# LINE 83 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Sets the name of the skeleton this MeshMeshes can optionally be assigned a skeleton which can be used to animate the mesh through bone assignments. The default is for the MeshMesh setSkeletonName :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ skelName - The name of the .skeleton file to use, or an empty string to use no skeleton -> IO () -- ^ setSkeletonName a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> setSkeletonName'_ a1' a2' >>= \res -> return () {-# LINE 88 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns true if this MeshSkeleton hasSkeleton :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ hasSkeleton a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> hasSkeleton'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 93 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns whether or not this mesh has some kind of vertex animation. hasVertexAnimation :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ hasVertexAnimation a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> hasVertexAnimation'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 98 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets a pointer to any linked Skeleton getSkeleton :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (SharedPtr) -- ^ return value - Weak reference to the skeleton - copy this if you want to hold a strong pointer. getSkeleton a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getSkeleton'_ a1' a2' >>= \res -> peekSharedPtr a2'>>= \a2'' -> return (a2'') {-# LINE 103 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets the name of any linked Skeleton getSkeletonName :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (String) -- ^ getSkeletonName a1 = withHG3DClass a1 $ \a1' -> alloc64k $ \a2' -> getSkeletonName'_ a1' a2' >>= \res -> peekCString a2'>>= \a2'' -> return (a2'') {-# LINE 108 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Removes all bone assignments for this mesh. This method is for modifying weights to the shared geometry of the Mesh clearBoneAssignments :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ clearBoneAssignments a1 = withHG3DClass a1 $ \a1' -> clearBoneAssignments'_ a1' >>= \res -> return () {-# LINE 112 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Adds a new manual level-of-detail entry to this MeshAs an alternative to generating lower level of detail versions of a mesh, you can use your own manually modelled meshes as lower level versions. This lets you have complete control over the LOD, and in addition lets you scale down other aspects of the model which cannot be done using the generated method; for example, you could use less detailed materials and / or use less bones in the skeleton if this is an animated mesh. Therefore for complex models you are likely to be better off modelling your LODs yourself and using this method, whilst for models with fairly simple materials and no animation you can just use the generateLodLevels method. createManualLodLevel :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Float -- ^ value - The value from which this Lod will apply. -> String -- ^ meshName - The name of the mesh which will be the lower level detail version. -> String -- ^ groupName -> 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 119 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns true if this mesh is using manual LOD. A mesh can either use automatically generated LOD, or it can use alternative meshes as provided by an artist. A mesh can only use either all manual LODs or all generated LODs, not a mixture of both. isLodManual :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ isLodManual a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> isLodManual'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 124 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Removes all LOD data from this Mesh removeLodLevels :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ removeLodLevels a1 = withHG3DClass a1 $ \a1' -> removeLodLevels'_ a1' >>= \res -> return () {-# LINE 128 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets whether or not this meshes vertex buffers are shadowed. isVertexBufferShadowed :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ isVertexBufferShadowed a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> isVertexBufferShadowed'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 133 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets whether or not this meshes index buffers are shadowed. isIndexBufferShadowed :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ isIndexBufferShadowed a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> isIndexBufferShadowed'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 138 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Builds an edge list for this mesh, which can be used for generating a shadow volume among other things. buildEdgeList :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ buildEdgeList a1 = withHG3DClass a1 $ \a1' -> buildEdgeList'_ a1' >>= \res -> return () {-# LINE 142 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Destroys and frees the edge lists this mesh has built. freeEdgeList :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ freeEdgeList a1 = withHG3DClass a1 $ \a1' -> freeEdgeList'_ a1' >>= \res -> return () {-# LINE 146 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | This method prepares the mesh for generating a renderable shadow volume. Preparing a mesh to generate a shadow volume involves firstly ensuring that the vertex buffer containing the positions for the mesh is a standalone vertex buffer, with no other components in it. This method will therefore break apart any existing vertex buffers this mesh holds if position is sharing a vertex buffer. Secondly, it will double the size of this vertex buffer so that there are 2 copies of the position data for the mesh. The first half is used for the original, and the second half is used for the 'extruded' version of the mesh. The vertex count of the main VertexData used to render the mesh will remain the same though, so as not to add any overhead to regular rendering of the object. Both copies of the position are required in one buffer because shadow volumes stretch from the original mesh to the extruded version. Because shadow volumes are rendered in turn, no additional index buffer space is allocated by this method, a shared index buffer allocated by the shadow rendering algorithm is used for addressing this extended vertex buffer. prepareForShadowVolume :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ prepareForShadowVolume a1 = withHG3DClass a1 $ \a1' -> prepareForShadowVolume'_ a1' >>= \res -> return () {-# LINE 150 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes. isPreparedForShadowVolumes :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ isPreparedForShadowVolumes a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> isPreparedForShadowVolumes'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 155 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns whether this mesh has an attached edge list. isEdgeListBuilt :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ isEdgeListBuilt a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> isEdgeListBuilt'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 160 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Sets whether or not this MeshThis allows you to create meshes which do not have edge lists calculated, because you never want to use them. This value defaults to 'true' for mesh formats which did not include edge data, and 'false' for newer formats, where edge lists are expected to have been generated in advance. setAutoBuildEdgeLists :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ autobuild -> IO () -- ^ setAutoBuildEdgeLists a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in setAutoBuildEdgeLists'_ a1' a2' >>= \res -> return () {-# LINE 165 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Sets whether or not this Mesh getAutoBuildEdgeLists :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ getAutoBuildEdgeLists a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getAutoBuildEdgeLists'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 170 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets the type of vertex animation the shared vertex data of this mesh supports. getSharedVertexDataAnimationType :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (EnumVertexAnimationType) -- ^ getSharedVertexDataAnimationType a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getSharedVertexDataAnimationType'_ a1' a2' >>= \res -> peekEnumUtil a2'>>= \a2'' -> return (a2'') {-# LINE 175 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Creates a new Animation createAnimation :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name - The name of this animation -> Float -- ^ length - The length of the animation in seconds -> 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 182 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns the named vertex Animation getAnimation :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name - The name of the animation -> IO (HG3DClass) -- ^ getAnimation a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> alloca $ \a3' -> getAnimation'_ a1' a2' a3' >>= \res -> peek a3'>>= \a3'' -> return (a3'') {-# LINE 188 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Returns whether this mesh contains the named vertex animation. hasAnimation :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO (Bool) -- ^ hasAnimation a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> alloca $ \a3' -> hasAnimation'_ a1' a2' a3' >>= \res -> peekBoolUtil a3'>>= \a3'' -> return (a3'') {-# LINE 194 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Removes vertex Animation removeAnimation :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO () -- ^ removeAnimation a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> removeAnimation'_ a1' a2' >>= \res -> return () {-# LINE 199 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets the number of morph animations in this mesh. getNumAnimations :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Int) -- ^ getNumAnimations a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getNumAnimations'_ a1' a2' >>= \res -> peekIntConv a2'>>= \a2'' -> return (a2'') {-# LINE 204 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Gets a single morph animation by index. getAnimation2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Int -- ^ index -> 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 210 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Removes all morph Animations from this mesh. removeAllAnimations :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ removeAllAnimations a1 = withHG3DClass a1 $ \a1' -> removeAllAnimations'_ a1' >>= \res -> return () {-# LINE 214 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Iterates through all submeshes and requests them to apply their texture aliases to the material they use. The submesh will only apply texture aliases to the material if matching texture alias names are found in the material. If a match is found, the submesh will automatically clone the original material and then apply its texture to the new material. This method is normally called by the protected method loadImpl when a mesh if first loaded. updateMaterialForAllSubMeshes :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ updateMaterialForAllSubMeshes a1 = withHG3DClass a1 $ \a1' -> updateMaterialForAllSubMeshes'_ a1' >>= \res -> return () {-# LINE 218 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Get the number of poses. getPoseCount :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Int) -- ^ getPoseCount a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getPoseCount'_ a1' a2' >>= \res -> peekIntConv a2'>>= \a2'' -> return (a2'') {-# LINE 223 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Destroy a pose by name. This will invalidate any animation tracks referring to this pose or those after it. removePose2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO () -- ^ removePose2 a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> removePose2'_ a1' a2' >>= \res -> return () {-# LINE 228 ".\\HGamer3D\\Bindings\\Ogre\\ClassMesh.chs" #-} -- | Destroy all poses removeAllPoses :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ removeAllPoses a1 = withHG3DClass a1 $ \a1' -> removeAllPoses'_ a1' >>= \res -> return () {-# LINE 232 ".\\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_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 ()))