Safe Haskell | Safe-Infered |
---|
- new :: String -> IO HG3DClass
- delete :: HG3DClass -> IO ()
- clear :: HG3DClass -> IO ()
- estimateVertexCount :: HG3DClass -> Int -> IO ()
- estimateIndexCount :: HG3DClass -> Int -> IO ()
- begin :: HG3DClass -> String -> EnumRenderOperationOperationType -> String -> IO ()
- setDynamic :: HG3DClass -> Bool -> IO ()
- getDynamic :: HG3DClass -> IO Bool
- beginUpdate :: HG3DClass -> Int -> IO ()
- position :: HG3DClass -> Vec3 -> IO ()
- position2 :: HG3DClass -> Float -> Float -> Float -> IO ()
- normal :: HG3DClass -> Vec3 -> IO ()
- normal2 :: HG3DClass -> Float -> Float -> Float -> IO ()
- tangent :: HG3DClass -> Vec3 -> IO ()
- tangent2 :: HG3DClass -> Float -> Float -> Float -> IO ()
- textureCoord :: HG3DClass -> Float -> IO ()
- textureCoord2 :: HG3DClass -> Float -> Float -> IO ()
- textureCoord3 :: HG3DClass -> Float -> Float -> Float -> IO ()
- textureCoord4 :: HG3DClass -> Float -> Float -> Float -> Float -> IO ()
- textureCoord5 :: HG3DClass -> Vec2 -> IO ()
- textureCoord6 :: HG3DClass -> Vec3 -> IO ()
- colour :: HG3DClass -> Colour -> IO ()
- colour2 :: HG3DClass -> Float -> Float -> Float -> Float -> IO ()
- index :: HG3DClass -> Int -> IO ()
- triangle :: HG3DClass -> Int -> Int -> Int -> IO ()
- quad :: HG3DClass -> Int -> Int -> Int -> Int -> IO ()
- end :: HG3DClass -> IO HG3DClass
- setMaterialName :: HG3DClass -> Int -> String -> String -> IO ()
- convertToMesh :: HG3DClass -> String -> String -> IO SharedPtr
- setUseIdentityProjection :: HG3DClass -> Bool -> IO ()
- getUseIdentityProjection :: HG3DClass -> IO Bool
- setUseIdentityView :: HG3DClass -> Bool -> IO ()
- getUseIdentityView :: HG3DClass -> IO Bool
- getSection :: HG3DClass -> Int -> IO HG3DClass
- getNumSections :: HG3DClass -> IO Int
- setKeepDeclarationOrder :: HG3DClass -> Bool -> IO ()
- getKeepDeclarationOrder :: HG3DClass -> IO Bool
- getMovableType :: HG3DClass -> IO String
- getBoundingRadius :: HG3DClass -> IO Float
- hasEdgeList :: HG3DClass -> IO Bool
- new'_ :: Ptr CChar -> HG3DClassPtr -> IO ()
- delete'_ :: HG3DClassPtr -> IO ()
- clear'_ :: HG3DClassPtr -> IO ()
- estimateVertexCount'_ :: HG3DClassPtr -> CInt -> IO ()
- estimateIndexCount'_ :: HG3DClassPtr -> CInt -> IO ()
- begin'_ :: HG3DClassPtr -> Ptr CChar -> CInt -> Ptr CChar -> IO ()
- setDynamic'_ :: HG3DClassPtr -> CInt -> IO ()
- getDynamic'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- beginUpdate'_ :: HG3DClassPtr -> CInt -> IO ()
- position'_ :: HG3DClassPtr -> Vec3Ptr -> IO ()
- position2'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- normal'_ :: HG3DClassPtr -> Vec3Ptr -> IO ()
- normal2'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- tangent'_ :: HG3DClassPtr -> Vec3Ptr -> IO ()
- tangent2'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- textureCoord'_ :: HG3DClassPtr -> CFloat -> IO ()
- textureCoord2'_ :: HG3DClassPtr -> CFloat -> CFloat -> IO ()
- textureCoord3'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()
- textureCoord4'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> CFloat -> IO ()
- textureCoord5'_ :: HG3DClassPtr -> Vec2Ptr -> IO ()
- textureCoord6'_ :: HG3DClassPtr -> Vec3Ptr -> IO ()
- colour'_ :: HG3DClassPtr -> ColourPtr -> IO ()
- colour2'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> CFloat -> IO ()
- index'_ :: HG3DClassPtr -> CUInt -> IO ()
- triangle'_ :: HG3DClassPtr -> CUInt -> CUInt -> CUInt -> IO ()
- quad'_ :: HG3DClassPtr -> CUInt -> CUInt -> CUInt -> CUInt -> IO ()
- end'_ :: HG3DClassPtr -> HG3DClassPtr -> IO ()
- setMaterialName'_ :: HG3DClassPtr -> CInt -> Ptr CChar -> Ptr CChar -> IO ()
- convertToMesh'_ :: HG3DClassPtr -> Ptr CChar -> Ptr CChar -> SharedPtrPtr -> IO ()
- setUseIdentityProjection'_ :: HG3DClassPtr -> CInt -> IO ()
- getUseIdentityProjection'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- setUseIdentityView'_ :: HG3DClassPtr -> CInt -> IO ()
- getUseIdentityView'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- getSection'_ :: HG3DClassPtr -> CUInt -> HG3DClassPtr -> IO ()
- getNumSections'_ :: HG3DClassPtr -> Ptr CUInt -> IO ()
- setKeepDeclarationOrder'_ :: HG3DClassPtr -> CInt -> IO ()
- getKeepDeclarationOrder'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
- getMovableType'_ :: HG3DClassPtr -> Ptr CChar -> IO ()
- getBoundingRadius'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()
- hasEdgeList'_ :: HG3DClassPtr -> Ptr CInt -> IO ()
Documentation
Completely clear the contents of the object. Clearing the contents of this object and rebuilding from scratch is not the optimal way to manage dynamic vertex data, since the buffers are recreated. If you want to keep the same structure but update the content within that structure, use beginUpdate()clear()begin()
Estimate the number of vertices ahead of time. Calling this helps to avoid memory reallocation when you define vertices. Also very handy when using beginUpdate()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | vcount |
-> IO () |
Estimate the number of indices ahead of time. Calling this helps to avoid memory reallocation when you define indices. Also very handy when using beginUpdate()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | icount |
-> IO () |
Start defining a part of the object. Each time you call this method, you start a new section of the object with its own material and potentially its own type of rendering operation (triangles, points or lines for example).
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> String | materialName - The name of the material to render this part of the object with. |
-> EnumRenderOperationOperationType | opType - The type of operation to use to render. |
-> String | groupName |
-> IO () |
Use before defining geometry to indicate that you intend to update the geometry regularly and want the internal structure to reflect that.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | dyn |
-> IO () |
Gets whether this object is marked as dynamic
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | sectionIndex - The index of the section you want to update. The first call to begin() would have created section 0, the second section 1, etc. |
-> IO () |
Add a vertex position, starting a new vertex at the same time. A vertex position is slightly special among the other vertex data methods like normal()textureCoord()position()
Start the definition of an update to a part of the object. Using this method, you can update an existing section of the object efficiently. You do not have the option of changing the operation type obviously, since it must match the one that was used before. If your sections are changing size, particularly growing, use estimateVertexCount and estimateIndexCount to pre-size the buffers a little larger than the initial needs to avoid buffer reconstruction.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Vec3 | pos |
-> IO () |
Add a vertex position, starting a new vertex at the same time. A vertex position is slightly special among the other vertex data methods like normal()textureCoord()position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | x |
-> Float | y |
-> Float | z |
-> IO () |
Add a vertex normal to the current vertex. Vertex normals are most often used for dynamic lighting, and their components should be normalised.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Vec3 | norm |
-> IO () |
Add a vertex normal to the current vertex. Vertex normals are most often used for dynamic lighting, and their components should be normalised.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | x |
-> Float | y |
-> Float | z |
-> IO () |
Add a vertex tangent to the current vertex. Vertex tangents are most often used for dynamic lighting, and their components should be normalised. Also, using tangent()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Vec3 | tan |
-> IO () |
Add a vertex tangent to the current vertex. Vertex tangents are most often used for dynamic lighting, and their components should be normalised. Also, using tangent()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | x |
-> Float | y |
-> Float | z |
-> IO () |
Add a texture coordinate to the current vertex. You can call this method multiple times between position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | u |
-> IO () |
Add a texture coordinate to the current vertex. You can call this method multiple times between position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | u |
-> Float | v |
-> IO () |
Add a texture coordinate to the current vertex. You can call this method multiple times between position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | u |
-> Float | v |
-> Float | w |
-> IO () |
Add a texture coordinate to the current vertex. You can call this method multiple times between position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | x |
-> Float | y |
-> Float | z |
-> Float | w |
-> IO () |
Add a texture coordinate to the current vertex. You can call this method multiple times between position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Vec2 | uv |
-> IO () |
Add a texture coordinate to the current vertex. You can call this method multiple times between position()
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Vec3 | uvw |
-> IO () |
Add a vertex colour to a vertex.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Colour | col |
-> IO () |
Add a vertex colour to a vertex.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Float | r - Colour components expressed as floating point numbers from 0-1 |
-> Float | g |
-> Float | b |
-> Float | a |
-> IO () |
Add a vertex index to construct faces lines points via indexing rather than just by a simple list of vertices. You will have to call this 3 times for each face for a triangle list, or use the alternative 3-parameter version. Other operation types require different numbers of indexes, RenderOperation::OperationType32-bit indexes are not supported on all cards and will only be used when required, if an index is > 65535.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | idx - A vertex index from 0 to 4294967295. |
-> IO () |
Add a set of 3 vertex indices to construct a triangle; this is a shortcut to calling index()32-bit indexes are not supported on all cards and will only be used when required, if an index is > 65535.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | i1 - 3 vertex indices from 0 to 4294967295 defining a face. |
-> Int | i2 |
-> Int | i3 |
-> IO () |
Add a set of 4 vertex indices to construct a quad (out of 2 triangles); this is a shortcut to calling index()triangle()32-bit indexes are not supported on all cards and will only be used when required, if an index is > 65535.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | i1 - 3 vertex indices from 0 to 4294967295 defining a face. |
-> Int | i2 |
-> Int | i3 |
-> Int | i4 |
-> IO () |
Finish defining the object and compile the final renderable version. Will return a pointer to the finished section or NULL if the section was discarded (i.e. has zero vertices/indices).
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | subindex |
-> String | name - The name of the new material to use |
-> String | group |
-> IO () |
Convert this object to a MeshAfter you've finished building this object, you may convert it to a MeshEntitySceneNodeOnly objects which use indexed geometry may be converted to a mesh.
Alter the material for a subsection of this object after it has been specified. You specify the material to use on a section of this object during the call to begin()
setUseIdentityProjectionSource
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | useIdentityProjection |
-> IO () |
Returns whether or not to use an identity
projection. Usually ManualObjects will use a projection matrix as determined by the active camera. However, if they want they can cancel this out and use an identity projection, which effectively projects in 2D using a {-1, 1} view space. Useful for overlay rendering. Normally you don't need to change this. ManualObject::setUseIdentityProjection
Sets whether or not to use an identity
projection. Usually ManualObjects will use a projection matrix as determined by the active camera. However, if they want they can cancel this out and use an identity projection, which effectively projects in 2D using a {-1, 1} view space. Useful for overlay rendering. Normally you don't need to change this. The default is false. ManualObject::getUseIdentityProjection
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | useIdentityView |
-> IO () |
Returns whether or not to use an identity
view. Usually ManualObjects will use a view matrix as determined by the active camera. However, if they want they can cancel this out and use an identity matrix, which means all geometry is assumed to be relative to camera space already. Useful for overlay rendering. Normally you don't need to change this. ManualObject::setUseIdentityView
Sets whether or not to use an identity
view. Usually ManualObjects will use a view matrix as determined by the active camera. However, if they want they can cancel this out and use an identity matrix, which means all geometry is assumed to be relative to camera space already. Useful for overlay rendering. Normally you don't need to change this. The default is false. ManualObject::getUseIdentityView
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Int | index |
-> IO HG3DClass |
Gets a pointer to a ManualObjectSectionManualObject
Retrieves the number of ManualObjectSectionManualObject
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> Bool | keepOrder - Whether to keep the declaration order or not. |
-> IO () |
Gets whether or not the declaration order is to be kept or not.
Sets whether or not to keep the original declaration order when queuing the renderables. This overrides the default behavior of the rendering queue, specifically stating the desired order of rendering. Might result in a performance loss, but lets the user to have more direct control when creating geometry through this class.
:: HG3DClass | classpointer - pointer of Class instance from which this methods is called. |
-> IO String |
. - Details: Returns the type name of this object.
. - Details: Retrieves the radius of the origin-centered bounding sphere for this object.
Overridden member from ShadowCaster.
delete'_ :: HG3DClassPtr -> IO ()Source
clear'_ :: HG3DClassPtr -> IO ()Source
estimateVertexCount'_ :: HG3DClassPtr -> CInt -> IO ()Source
estimateIndexCount'_ :: HG3DClassPtr -> CInt -> IO ()Source
setDynamic'_ :: HG3DClassPtr -> CInt -> IO ()Source
getDynamic'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
beginUpdate'_ :: HG3DClassPtr -> CInt -> IO ()Source
position'_ :: HG3DClassPtr -> Vec3Ptr -> IO ()Source
position2'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()Source
tangent2'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()Source
textureCoord'_ :: HG3DClassPtr -> CFloat -> IO ()Source
textureCoord2'_ :: HG3DClassPtr -> CFloat -> CFloat -> IO ()Source
textureCoord3'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> IO ()Source
textureCoord4'_ :: HG3DClassPtr -> CFloat -> CFloat -> CFloat -> CFloat -> IO ()Source
textureCoord5'_ :: HG3DClassPtr -> Vec2Ptr -> IO ()Source
textureCoord6'_ :: HG3DClassPtr -> Vec3Ptr -> IO ()Source
triangle'_ :: HG3DClassPtr -> CUInt -> CUInt -> CUInt -> IO ()Source
end'_ :: HG3DClassPtr -> HG3DClassPtr -> IO ()Source
setMaterialName'_ :: HG3DClassPtr -> CInt -> Ptr CChar -> Ptr CChar -> IO ()Source
convertToMesh'_ :: HG3DClassPtr -> Ptr CChar -> Ptr CChar -> SharedPtrPtr -> IO ()Source
setUseIdentityProjection'_ :: HG3DClassPtr -> CInt -> IO ()Source
getUseIdentityProjection'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
setUseIdentityView'_ :: HG3DClassPtr -> CInt -> IO ()Source
getUseIdentityView'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
getSection'_ :: HG3DClassPtr -> CUInt -> HG3DClassPtr -> IO ()Source
getNumSections'_ :: HG3DClassPtr -> Ptr CUInt -> IO ()Source
setKeepDeclarationOrder'_ :: HG3DClassPtr -> CInt -> IO ()Source
getKeepDeclarationOrder'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source
getMovableType'_ :: HG3DClassPtr -> Ptr CChar -> IO ()Source
getBoundingRadius'_ :: HG3DClassPtr -> Ptr CFloat -> IO ()Source
hasEdgeList'_ :: HG3DClassPtr -> Ptr CInt -> IO ()Source