packages feed

HGamer3D-Ogre-Binding-0.5.0: 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.hgamer3d.org .
-- 

-- (c) 2011-2014 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 #}
{# import HGamer3D.Bindings.Ogre.ClassPtr #}
{# import HGamer3D.Bindings.Ogre.StructHG3DClass #}
{# import HGamer3D.Bindings.Ogre.StructSharedPtr #}
{# import HGamer3D.Bindings.Ogre.EnumVertexAnimationType #}

#include "ClassMesh.h"
{- function ~Mesh -}
{#fun ogre_msh_destruct as delete 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function unnameSubMesh -}
{#fun ogre_msh_unnameSubMesh as unnameSubMesh 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function getNumSubMeshes -}
{#fun ogre_msh_getNumSubMeshes as getNumSubMeshes 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Int' peekIntConv*} -> `()'  #}

{- function destroySubMesh -}
{#fun ogre_msh_destroySubMesh as destroySubMesh 
{ withHG3DClass* `HG3DClass' ,
 fromIntegral `Int' } -> `()'  #}

{- function destroySubMesh2 -}
{#fun ogre_msh_destroySubMesh2 as destroySubMesh2 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function clone -}
{#fun ogre_msh_clone as clone 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 withCString* `String' ,
 alloca- `SharedPtr' peekSharedPtr*} -> `()'  #}

{- function getBoundingSphereRadius -}
{#fun ogre_msh_getBoundingSphereRadius as getBoundingSphereRadius 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Float' peekFloatConv*} -> `()'  #}

{- function setSkeletonName -}
{#fun ogre_msh_setSkeletonName as setSkeletonName 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function hasSkeleton -}
{#fun ogre_msh_hasSkeleton as hasSkeleton 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function hasVertexAnimation -}
{#fun ogre_msh_hasVertexAnimation as hasVertexAnimation 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function getSkeleton -}
{#fun ogre_msh_getSkeleton as getSkeleton 
{ withHG3DClass* `HG3DClass' ,
 alloca- `SharedPtr' peekSharedPtr*} -> `()'  #}

{- function getSkeletonName -}
{#fun ogre_msh_getSkeletonName as getSkeletonName 
{ withHG3DClass* `HG3DClass' ,
 alloc64k- `String' peekCString*} -> `()'  #}

{- function clearBoneAssignments -}
{#fun ogre_msh_clearBoneAssignments as clearBoneAssignments 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function createManualLodLevel -}
{#fun ogre_msh_createManualLodLevel as createManualLodLevel 
{ withHG3DClass* `HG3DClass' ,
 realToFrac `Float' ,
 withCString* `String' ,
 withCString* `String' } -> `()'  #}

{- function isLodManual -}
{#fun ogre_msh_isLodManual as isLodManual 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function removeLodLevels -}
{#fun ogre_msh_removeLodLevels as removeLodLevels 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function isVertexBufferShadowed -}
{#fun ogre_msh_isVertexBufferShadowed as isVertexBufferShadowed 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function isIndexBufferShadowed -}
{#fun ogre_msh_isIndexBufferShadowed as isIndexBufferShadowed 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function buildEdgeList -}
{#fun ogre_msh_buildEdgeList as buildEdgeList 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function freeEdgeList -}
{#fun ogre_msh_freeEdgeList as freeEdgeList 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function prepareForShadowVolume -}
{#fun ogre_msh_prepareForShadowVolume as prepareForShadowVolume 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function isPreparedForShadowVolumes -}
{#fun ogre_msh_isPreparedForShadowVolumes as isPreparedForShadowVolumes 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function isEdgeListBuilt -}
{#fun ogre_msh_isEdgeListBuilt as isEdgeListBuilt 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function setAutoBuildEdgeLists -}
{#fun ogre_msh_setAutoBuildEdgeLists as setAutoBuildEdgeLists 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function getAutoBuildEdgeLists -}
{#fun ogre_msh_getAutoBuildEdgeLists as getAutoBuildEdgeLists 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function getSharedVertexDataAnimationType -}
{#fun ogre_msh_getSharedVertexDataAnimationType as getSharedVertexDataAnimationType 
{ withHG3DClass* `HG3DClass' ,
 alloca- `EnumVertexAnimationType' peekEnumUtil*} -> `()'  #}

{- function getSharedVertexDataAnimationIncludesNormals -}
{#fun ogre_msh_getSharedVertexDataAnimationIncludesNormals as getSharedVertexDataAnimationIncludesNormals 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function createAnimation -}
{#fun ogre_msh_createAnimation as createAnimation 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 realToFrac `Float' ,
 alloca- `HG3DClass' peek*} -> `()'  #}

{- function getAnimation -}
{#fun ogre_msh_getAnimation as getAnimation 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 alloca- `HG3DClass' peek*} -> `()'  #}

{- function hasAnimation -}
{#fun ogre_msh_hasAnimation as hasAnimation 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function removeAnimation -}
{#fun ogre_msh_removeAnimation as removeAnimation 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function getNumAnimations -}
{#fun ogre_msh_getNumAnimations as getNumAnimations 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Int' peekIntConv*} -> `()'  #}

{- function getAnimation2 -}
{#fun ogre_msh_getAnimation2 as getAnimation2 
{ withHG3DClass* `HG3DClass' ,
 fromIntegral `Int' ,
 alloca- `HG3DClass' peek*} -> `()'  #}

{- function removeAllAnimations -}
{#fun ogre_msh_removeAllAnimations as removeAllAnimations 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function updateMaterialForAllSubMeshes -}
{#fun ogre_msh_updateMaterialForAllSubMeshes as updateMaterialForAllSubMeshes 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function getPoseCount -}
{#fun ogre_msh_getPoseCount as getPoseCount 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Int' peekIntConv*} -> `()'  #}

{- function removePose2 -}
{#fun ogre_msh_removePose2 as removePose2 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function removeAllPoses -}
{#fun ogre_msh_removeAllPoses as removeAllPoses 
{ withHG3DClass* `HG3DClass' } -> `()'  #}