Safe Haskell | None |
---|
- delete :: HG3DClass -> IO ()
- unnameSubMesh :: HG3DClass -> String -> IO ()
- getNumSubMeshes :: HG3DClass -> IO Int
- destroySubMesh :: HG3DClass -> Int -> IO ()
- destroySubMesh2 :: HG3DClass -> String -> IO ()
- clone :: HG3DClass -> String -> String -> IO SharedPtr
- getBoundingSphereRadius :: HG3DClass -> IO Float
- setSkeletonName :: HG3DClass -> String -> IO ()
- hasSkeleton :: HG3DClass -> IO Bool
- hasVertexAnimation :: HG3DClass -> IO Bool
- getSkeleton :: HG3DClass -> IO SharedPtr
- getSkeletonName :: HG3DClass -> IO String
- clearBoneAssignments :: HG3DClass -> IO ()
- createManualLodLevel :: HG3DClass -> Float -> String -> String -> IO ()
- isLodManual :: HG3DClass -> IO Bool
- removeLodLevels :: HG3DClass -> IO ()
- isVertexBufferShadowed :: HG3DClass -> IO Bool
- isIndexBufferShadowed :: HG3DClass -> IO Bool
- buildEdgeList :: HG3DClass -> IO ()
- freeEdgeList :: HG3DClass -> IO ()
- prepareForShadowVolume :: HG3DClass -> IO ()
- isPreparedForShadowVolumes :: HG3DClass -> IO Bool
- isEdgeListBuilt :: HG3DClass -> IO Bool
- setAutoBuildEdgeLists :: HG3DClass -> Bool -> IO ()
- getAutoBuildEdgeLists :: HG3DClass -> IO Bool
- getSharedVertexDataAnimationType :: HG3DClass -> IO EnumVertexAnimationType
- getSharedVertexDataAnimationIncludesNormals :: HG3DClass -> IO Bool
- createAnimation :: HG3DClass -> String -> Float -> IO HG3DClass
- getAnimation :: HG3DClass -> String -> IO HG3DClass
- hasAnimation :: HG3DClass -> String -> IO Bool
- removeAnimation :: HG3DClass -> String -> IO ()
- getNumAnimations :: HG3DClass -> IO Int
- getAnimation2 :: HG3DClass -> Int -> IO HG3DClass
- removeAllAnimations :: HG3DClass -> IO ()
- updateMaterialForAllSubMeshes :: HG3DClass -> IO ()
- getPoseCount :: HG3DClass -> IO Int
- removePose2 :: HG3DClass -> String -> IO ()
- removeAllPoses :: HG3DClass -> IO ()
- delete'_ :: HG3DClassPtr -> IO ()
- unnameSubMesh'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- getNumSubMeshes'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()
- destroySubMesh'_ :: HG3DClassPtr -> CUShort -> IO ()
- destroySubMesh2'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- clone'_ :: HG3DClassPtr -> Ptr CChar -> Ptr CChar -> SharedPtrPtr -> IO ()
- getBoundingSphereRadius'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()
- setSkeletonName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- hasSkeleton'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- hasVertexAnimation'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- getSkeleton'_ :: HG3DClassPtr -> SharedPtrPtr -> IO ()
- getSkeletonName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- clearBoneAssignments'_ :: HG3DClassPtr -> IO ()
- createManualLodLevel'_ :: HG3DClassPtr -> CFloat -> Ptr CChar -> Ptr CChar -> IO ()
- isLodManual'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- removeLodLevels'_ :: HG3DClassPtr -> IO ()
- isVertexBufferShadowed'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- isIndexBufferShadowed'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- buildEdgeList'_ :: HG3DClassPtr -> IO ()
- freeEdgeList'_ :: HG3DClassPtr -> IO ()
- prepareForShadowVolume'_ :: HG3DClassPtr -> IO ()
- isPreparedForShadowVolumes'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- isEdgeListBuilt'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- setAutoBuildEdgeLists'_ :: HG3DClassPtr -> CInt -> IO ()
- getAutoBuildEdgeLists'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- getSharedVertexDataAnimationType'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- getSharedVertexDataAnimationIncludesNormals'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- createAnimation'_ :: HG3DClassPtr -> Ptr CChar -> CFloat -> HG3DClassPtr -> IO ()
- getAnimation'_ :: HG3DClassPtr -> Ptr CChar -> HG3DClassPtr -> IO ()
- hasAnimation'_ :: HG3DClassPtr -> Ptr CChar -> Ptr CInt -> IO ()
- removeAnimation'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- getNumAnimations'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()
- getAnimation2'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()
- removeAllAnimations'_ :: HG3DClassPtr -> IO ()
- updateMaterialForAllSubMeshes'_ :: HG3DClassPtr -> IO ()
- getPoseCount'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- removePose2'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- removeAllPoses'_ :: HG3DClassPtr -> IO ()
Documentation
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | name |
-> IO () |
Gets the number of sub meshes which comprise this mesh.
Removes a name from a SubMesh
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | index |
-> IO () |
Destroy a SubMesh with the given name. This will invalidate the contents of any existing EntityEntity
Destroy a SubMesh with the given index. This will invalidate the contents of any existing EntityEntity
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | name |
-> IO () |
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
:: 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 |
Gets the radius of the bounding sphere surrounding this mesh.
:: 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 () |
Returns true if this MeshSkeleton
Sets the name of the skeleton this Mesh uses for animation. Meshes can optionally be assigned a skeleton which can be used to animate the mesh through bone assignments. The default is for the MeshMesh
Returns whether or not this mesh has some kind of vertex animation.
:: 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. |
Gets the name of any linked Skeleton
Gets a pointer to any linked Skeleton.
Adds a new manual level-of-detail entry to this Mesh. As 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.
Removes all bone assignments for this mesh. This method is for modifying weights to the shared geometry of the Mesh
:: 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 () |
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.
Removes all LOD data from this Mesh
Gets whether or not this meshes vertex buffers are shadowed.
Gets whether or not this meshes index buffers are shadowed.
Destroys and frees the edge lists this mesh has built.
Builds an edge list for this mesh, which can be used for generating a shadow volume among other things.
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.
Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes.
Returns whether this mesh has an attached edge list.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | autobuild |
-> IO () |
Sets whether or not this Mesh
Sets whether or not this Mesh should automatically build edge lists
when asked for them, or whether it should never build them if
they are not already provided.
This 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.
getSharedVertexDataAnimationTypeSource
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> IO EnumVertexAnimationType |
Gets the type of vertex animation the shared vertex data of this mesh supports.
getSharedVertexDataAnimationIncludesNormalsSource
Returns whether animation on shared vertex data includes normals.
:: 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 |
Returns the named vertex Animation object.
Creates a new Animation object for vertex animating this mesh.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | name - The name of the animation |
-> IO HG3DClass |
Returns whether this mesh contains the named vertex animation.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | name |
-> IO () |
Gets the number of morph animations in this mesh.
Removes vertex Animation
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | index |
-> IO HG3DClass |
Gets a single morph animation by index.
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.
Removes all morph Animations from this mesh.
updateMaterialForAllSubMeshesSource
Get the number of poses.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | name |
-> IO () |
Destroy all poses
Destroy a pose by name. This will invalidate any animation tracks referring to this pose or those after it.
delete'_ :: HG3DClassPtr -> IO ()Source
unnameSubMesh'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
getNumSubMeshes'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()Source
destroySubMesh'_ :: HG3DClassPtr -> CUShort -> IO ()Source
destroySubMesh2'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
clone'_ :: HG3DClassPtr -> Ptr CChar -> Ptr CChar -> SharedPtrPtr -> IO ()Source
getBoundingSphereRadius'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()Source
setSkeletonName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
hasSkeleton'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
hasVertexAnimation'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
getSkeleton'_ :: HG3DClassPtr -> SharedPtrPtr -> IO ()Source
getSkeletonName'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
clearBoneAssignments'_ :: HG3DClassPtr -> IO ()Source
createManualLodLevel'_ :: HG3DClassPtr -> CFloat -> Ptr CChar -> Ptr CChar -> IO ()Source
isLodManual'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
removeLodLevels'_ :: HG3DClassPtr -> IO ()Source
isVertexBufferShadowed'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
isIndexBufferShadowed'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
buildEdgeList'_ :: HG3DClassPtr -> IO ()Source
freeEdgeList'_ :: HG3DClassPtr -> IO ()Source
prepareForShadowVolume'_ :: HG3DClassPtr -> IO ()Source
isPreparedForShadowVolumes'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
isEdgeListBuilt'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
setAutoBuildEdgeLists'_ :: HG3DClassPtr -> CInt -> IO ()Source
getAutoBuildEdgeLists'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
getSharedVertexDataAnimationType'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
createAnimation'_ :: HG3DClassPtr -> Ptr CChar -> CFloat -> HG3DClassPtr -> IO ()Source
getAnimation'_ :: HG3DClassPtr -> Ptr CChar -> HG3DClassPtr -> IO ()Source
hasAnimation'_ :: HG3DClassPtr -> Ptr CChar -> Ptr CInt -> IO ()Source
removeAnimation'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
getNumAnimations'_ :: HG3DClassPtr -> Ptr CUShort -> IO ()Source
getAnimation2'_ :: HG3DClassPtr -> CUShort -> HG3DClassPtr -> IO ()Source
removeAllAnimations'_ :: HG3DClassPtr -> IO ()Source
getPoseCount'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
removePose2'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
removeAllPoses'_ :: HG3DClassPtr -> IO ()Source