HGamer3D-Ogre-Binding-0.1.8: Library to enable 3D game development for Haskell - Ogre Bindings

Safe HaskellSafe-Infered

HGamer3D.Bindings.Ogre.ClassSceneManager

Synopsis

Documentation

deleteSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance which is going to be deleted.

-> IO () 

Default destructor.

getNameSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO String 

Mutex to protect the scene graph from simultaneous access from multiple threads. If you are updating the scene in a separate thread from the rendering thread, then you should lock this mutex before making any changes to the scene graph - that means creating, modifying or deleting a scene node, or attaching / detaching objects. It is yourNote that locking this mutex will prevent the scene being rendered until it is unlocked again. Therefore you should do this sparingly. Try to create any objects you need separately and fully prepare them before doing all your scene graph work in one go, thus keeping this lock for the shortest time possible. A single global lock is used rather than a per-node lock since it keeps the number of locks required during rendering down to a minimum. Obtaining a lock, even if there is no contention, is not free so for performance it is good to do it as little as possible. Since modifying the scene in a separate thread is a fairly rare occurrence (relative to rendering), it is better to keep the locking required during rendering lower than to make update locks more granular. Return the instance name of this SceneManager

getTypeNameSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO String 

Retrieve the type name of this scene manager. This method has to be implemented by subclasses. It should return the type name of this SceneManagerSceneManagerFactory

createCameraSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name - Name to give the new camera.

-> IO HG3DClass 

Creates a camera to be managed by this scene manager. This camera must be added to the scene at a later time using the attachObject method of the SceneNode

getCameraSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Retrieves a pointer to the named camera. Throws an exception if the named instance does not exist

hasCameraSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a camera with the given name exists.

destroyCameraSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

cam - Pointer to the camera to remove

-> IO () 

Removes a camera from the scene. This method removes an camera from the scene based on the camera's name rather than a pointer.

Removes a camera from the scene. This method removes a previously added camera from the scene. The camera is deleted so the caller must ensure no references to it's previous instance (e.g. in a SceneNode

destroyCamera2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes (and destroys) all cameras from the scene. Some cameras are internal created to dealing with texture shadow, their aren't supposed to destroy outside. So, while you are using texture shadow, don't call this method, or you can set the shadow technique other than texture-based, which will destroy all internal created shadow cameras and textures.

destroyAllCamerasSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Creates a light for use in the scene. Lights can either be in a fixed position and independent of the scene graph, or they can be attached to SceneNodes so they derive their position from the parent node. Either way, they are created using this method so that the SceneManager

createLightSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name - The name of the new light, to identify it later.

-> IO HG3DClass 

createLight2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Creates a light with a generated name.

getLightSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Returns a pointer to the named LightThrows an exception if the named instance does not exist

hasLightSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a light with the given name exists.

destroyLightSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes the light from the scene and destroys it based on a pointer. Any pointers held to this light after calling this method will be invalid.

Removes the named light from the scene and destroys it. Any pointers held to this light after calling this method will be invalid.

destroyLight2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

light

-> IO () 

Removes and destroys all lights in the scene.

destroyAllLightsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Creates an instance of a SceneNodeNote that this does not add the SceneNodeSceneManagerTo include the returned SceneNodeSceneNodeNote that this method takes no parameters, and the node created is unnamed (it is actually given a generated name, which you can retrieve if you want). If you wish to create a node with a specific name, call the alternative method which takes a name parameter.

createSceneNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

createSceneNode2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Creates an instance of a SceneNodeNote that this does not add the SceneNodeSceneManagerTo include the returned SceneNodeSceneNodeNote that this method takes a name parameter, which makes the node easier to retrieve directly again later.

destroySceneNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Destroys a SceneNodeThis allows you to physically delete an individual SceneNodeSceneManager

Destroys a SceneNodeThis allows you to physically delete an individual SceneNodeSceneManager

destroySceneNode2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

sn

-> IO () 

Gets the SceneNodeThe entire scene is held as a hierarchy of nodes, which allows things like relative transforms, general changes in rendering state etc (See the SceneNodeSceneManagerOgreHowever, in all cases there is only ever one root node of the hierarchy, and this method returns a pointer to it.

getRootSceneNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

getSceneNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Retrieves a named SceneNodeIf you chose to name a SceneNodeThrows an exception if the named instance does not exist

hasSceneNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a scene node with the given name exists.

createEntitySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

entityName - The name to be given to the entity (must be unique).

-> String

meshName - The name of the Mesh it is to be based on (e.g. 'knot.oof'). The mesh will be loaded if it is not already.

-> String

groupName

-> IO HG3DClass 

Create an Entity

createEntity2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

meshName - The name of the Mesh it is to be based on (e.g. 'knot.oof'). The mesh will be loaded if it is not already.

-> IO HG3DClass 

Create an Entity

createEntity3Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

entityName - The name to be given to the entity (must be unique).

-> EnumSceneManagerPrefabType

ptype - The prefab type.

-> IO HG3DClass 

Create an Entity

createEntity4Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> EnumSceneManagerPrefabType

ptype - The prefab type.

-> IO HG3DClass 

Create an Entity

getEntitySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Retrieves a pointer to the named EntityThrows an exception if the named instance does not exist

hasEntitySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether an entity with the given name exists.

destroyEntitySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

ent

-> IO () 

Removes & destroys an EntitySceneManagerMust only be done if the EntitySceneNodeSceneManager::clearScene

Removes & destroys an EntitySceneManagerMust only be done if the EntitySceneNodeSceneManager::clearScene

destroyEntity2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes & destroys all Entities. Again, use caution since no EntitySceneNodeSceneNodeSceneManager::clearScene

destroyAllEntitiesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Create a ManualObject

createManualObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name - The name to be given to the object (must be unique).

-> IO HG3DClass 

createManualObject2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Create a ManualObject

getManualObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Retrieves a pointer to the named ManualObjectThrows an exception if the named instance does not exist

hasManualObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a manual object with the given name exists.

destroyManualObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

obj

-> IO () 

Removes & destroys a ManualObjectSceneManager

Removes & destroys a ManualObjectSceneManager

destroyManualObject2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes & destroys all ManualObjects from the SceneManager

destroyAllManualObjectsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Create a BillboardChain

createBillboardChainSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name - The name to be given to the object (must be unique).

-> IO HG3DClass 

createBillboardChain2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Create a BillboardChain

getBillboardChainSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Retrieves a pointer to the named BillboardChainThrows an exception if the named instance does not exist

hasBillboardChainSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a billboard chain with the given name exists.

destroyBillboardChainSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

obj

-> IO () 

Removes & destroys a BillboardChainSceneManager

Removes & destroys a BillboardChainSceneManager

destroyBillboardChain2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes & destroys all BillboardChains from the SceneManager

destroyAllBillboardChainsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Returns whether a ribbon trail with the given name exists.

hasRibbonTrailSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

destroyRibbonTrail2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes & destroys all RibbonTrails from the SceneManager

Removes & destroys a RibbonTrail from the SceneManager

destroyAllRibbonTrailsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Returns whether a particle system with the given name exists.

hasParticleSystemSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

destroyParticleSystem2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes & destroys all ParticleSystems from the SceneManager

Removes & destroys a ParticleSystem from the SceneManager

destroyAllParticleSystemsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc. Cameras are not deleted at this stage since they are still referenced by viewports, which are not destroyed during this process.

clearSceneSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Sets the ambient light level to be used for the scene. This sets the colour and intensity of the ambient light in the scene, i.e. the light which is sourceless and illuminates all objects equally. The colour of an object is affected by a combination of the light in the scene, and the amount of light that object reflects (in this case based on the Material::ambient property). By default the ambient light in the scene is ColourValue::Black, i.e. no ambient light. This means that any objects rendered with a MaterialMaterial::setLightingEnabled

setAmbientLightSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Colour

colour

-> IO () 

Returns the ambient light level to be used for the scene.

getAmbientLightSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Colour 

prepareWorldGeometrySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

filename

-> IO () 

Sets the source of the world geometry, i.e. the large, mainly static geometry making up the world e.g. rooms, landscape etc. Depending on the type of SceneManagerRootSceneManager

Sets the source of the world geometry, i.e. the large, mainly static geometry making up the world e.g. rooms, landscape etc. This function can be called before setWorldGeometry in a background thread, do to some slow tasks (e.g. IO) that do not involve the backend render system. Depending on the type of SceneManagerRootSceneManager

setWorldGeometrySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

filename

-> IO () 

Estimate the number of loading stages required to load the named world geometry. This method should be overridden by SceneManagers that provide custom world geometry that can take some time to load. They should return from this method a count of the number of stages of progress they can report on whilst loading. During real loading (setWorldGeometry), they should call ResourceGroupManager::_notifyWorldGeometryProgress exactly that number of times when loading the geometry for real. The default is to return 0, ie to not report progress.

estimateWorldGeometrySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

filename

-> IO Int 

hasOptionSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

strKey - The name of the option to check for.

-> IO Bool

return value - If the scene manager contains the given option, true is returned.

Method for verifying wether the scene manager has an implementation-specific option. If it does not, false is returned.

setSkyPlaneEnabledSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enable

-> IO () 

Return whether a key plane is enabled

Enables / disables a 'sky plane'

isSkyPlaneEnabledSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

getSkyPlaneNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Get the sky plane node, if enabled.

setSkyBoxSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enable - True to enable the skybox, false to disable it

-> String

materialName - The name of the material the box will use

-> Float

distance - Distance in world coorinates from the camera to each plane of the box. The default is normally OK.

-> Bool

drawFirst - If true, the box is drawn before all other geometry in the scene, without updating the depth buffer. This is the safest rendering method since all other objects will always appear in front of the sky. However this is not the most efficient way if most of the sky is often occluded by other objects. If this is the case, you can set this parameter to false meaning it draws after all other geometry which can be an optimisation - however you must ensure that the distance value is large enough that no objects will 'poke through' the sky box when it is rendered.

-> Quaternion

orientation - Optional parameter to specify the orientation of the box. By default the top of the box is deemed to be in the +y direction, and the front at the -z direction. You can use this parameter to rotate the sky if you want.

-> String

groupName - The name of the resource group to which to assign the plane mesh.

-> IO () 

Enables / disables a 'sky box'

Enables / disables a 'sky box' i.e. a 6-sided box at constant distance from the camera representing the sky. You could create a sky box yourself using the standard mesh and entity methods, but this creates a plane which the camera can never get closer or further away from - it moves with the camera. (NB you could create this effect by creating a world box which was attached to the same SceneNodeCameraThe material you use for the skybox can either contain layers which are single textures, or they can be cubic textures, i.e. made up of 6 images, one for each plane of the cube. See the TextureUnitState class for more information.

setSkyBoxEnabledSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enable

-> IO () 

Return whether a skybox is enabled

isSkyBoxEnabledSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

getSkyBoxNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Get the skybox node, if enabled.

setSkyDomeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enable - True to enable the skydome, false to disable it

-> String

materialName - The name of the material the dome will use

-> Float

curvature - The curvature of the dome. Good values are between 2 and 65. Higher values are more curved leading to a smoother effect, lower values are less curved meaning more distortion at the horizons but a better distance effect.

-> Float

tiling - How many times to tile the texture(s) across the dome.

-> Float

distance - Distance in world coorinates from the camera to each plane of the box the dome is rendered on. The default is normally OK.

-> Bool

drawFirst - If true, the dome is drawn before all other geometry in the scene, without updating the depth buffer. This is the safest rendering method since all other objects will always appear in front of the sky. However this is not the most efficient way if most of the sky is often occluded by other objects. If this is the case, you can set this parameter to false meaning it draws after all other geometry which can be an optimisation - however you must ensure that the distance value is large enough that no objects will 'poke through' the sky when it is rendered.

-> Quaternion

orientation - Optional parameter to specify the orientation of the dome. By default the top of the dome is deemed to be in the +y direction, and the front at the -z direction. You can use this parameter to rotate the sky if you want.

-> Int

xsegments

-> Int

ysegments

-> Int

ysegments_keep

-> String

groupName - The name of the resource group to which to assign the plane mesh.

-> IO () 

Enables / disables a 'sky dome'

Enables / disables a 'sky dome' i.e. an illusion of a curved sky. A sky dome is actually formed by 5 sides of a cube, but with texture coordinates generated such that the surface appears curved like a dome. Sky domes are appropriate where you need a realistic looking sky where the scene is not going to be fogged, and there is always a floor of some sort to prevent the viewer looking below the horizon (the distortion effect below the horizon can be pretty horrible, and there is never anyhting directly below the viewer). If you need a complete wrap-around background, use the setSkyBox method instead. You can actually combine a sky box and a sky dome if you want, to give a positional backdrop with an overlayed curved cloud layer. Sky domes work well with 2D repeating textures like clouds. You can change the apparant curvature of the sky depending on how your scene is viewed - lower curvatures are better for open scenes like landscapes, whilst higher curvatures are better for say FPS levels where you don't see a lot of the sky at once and the exaggerated curve looks good.

setSkyDomeEnabledSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enable

-> IO () 

Return whether a skydome is enabled

isSkyDomeEnabledSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

getSkyDomeNodeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Get the sky dome node, if enabled.

getFogColourSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Colour 

Returns the fog colour for the scene.

getFogStartSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

Returns the fog start distance for the scene.

getFogEndSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

Returns the fog end distance for the scene.

getFogDensitySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

Returns the fog density for the scene.

createBillboardSetSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name - The name to give to this billboard set. Must be unique.

-> Int

poolSize - The initial size of the pool of billboards (see BillboardSet for more information)

-> IO HG3DClass 

Creates a new BillboardSetThis method creates a new BillboardSetSceneManagerSceneManagerSceneManager::clearSceneSee the BillboardSetBillboardSet

createBillboardSet2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Int

poolSize - The initial size of the pool of billboards (see BillboardSet for more information)

-> IO HG3DClass 

Creates a new BillboardSetBillboardSet

getBillboardSetSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Retrieves a pointer to the named BillboardSetThrows an exception if the named instance does not exist

hasBillboardSetSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a billboardset with the given name exists.

destroyBillboardSetSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

set

-> IO () 

Removes & destroys an BillboardSetSceneManagerMust only be done if the BillboardSetSceneNode

Removes & destroys an BillboardSetSceneManagerMust only be done if the BillboardSetSceneNode

destroyBillboardSet2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes & destroys all BillboardSets. Again, use caution since no BillboardSetSceneNodeSceneNodeSceneManager::clearScene

destroyAllBillboardSetsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Tells the SceneManagerThis method is mainly for debugging purposes. If you set this to true, each node will be rendered as a set of 3 axes to allow you to easily see the orientation of the nodes.

setDisplaySceneNodesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

display

-> IO () 

Returns true if all scene nodes axis are to be displayed

getDisplaySceneNodesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

createAnimationSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name - The name of the animation, must be unique within this SceneManager.

-> Float

length - The total length of the animation.

-> IO HG3DClass 

Creates an animation which can be used to animate scene nodes. An animation is a collection of tracks which over time change the position / orientation of NodeSceneNodeYou don't need to use an AnimationNodeA single animation can affect multiple NodeAnimationTrackNodeNodeSkeleton::createAnimationNote that whilst it uses the same classes, the animations created here are kept separate from the skeletal animations of meshes (each Skeleton

getAnimationSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO HG3DClass 

Looks up an AnimationThrows an exception if the named instance does not exist

hasAnimationSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether an animation with the given name exists.

destroyAnimationSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes all animations created using this SceneManager

Destroys an AnimationYou should ensure that none of your code is referencing this animation objects since the memory will be freed.

destroyAllAnimationsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Create an AnimationStateYou can create AnimationSceneNodeNodeAnimationNode::resetToInitialStateAnimation::applyAnimationStateSceneManagerRemember, AnimationStateNote that any SceneNodeNode::setInitialStateNodeSceneNodeIf the target of your animation is to be a generic AnimableValueAnimableValue::setAsBaseValue

createAnimationStateSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

animName - The name of an animation created already with createAnimation.

-> IO HG3DClass 

getAnimationStateSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

animName

-> IO HG3DClass 

Retrieves animation state as previously created using createAnimationState. Throws an exception if the named instance does not exist

hasAnimationStateSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether an animation state with the given name exists.

destroyAnimationStateSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Removes all animation states created using this SceneManager

Destroys an AnimationStateYou should ensure that none of your code is referencing this animation state object since the memory will be freed.

destroyAllAnimationStatesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Clears the 'special case' render queue list. SceneManager::addSpecialCaseRenderQueue

clearSpecialCaseRenderQueuesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Sets the way the special case render queue list is processed. SceneManager::addSpecialCaseRenderQueue

setSpecialCaseRenderQueueModeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> EnumSceneManagerSpecialCaseRenderQueueMode

mode - The mode of processing

-> IO () 

Gets the way the special case render queue list is processed.

getSpecialCaseRenderQueueModeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO EnumSceneManagerSpecialCaseRenderQueueMode 

showBoundingBoxesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

bShow

-> IO () 

Returns if all bounding boxes of scene nodes are to be displayed

Allows all bounding boxes of scene nodes to be displayed.

getShowBoundingBoxesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setShowDebugShadowsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

debug

-> IO () 

Are debug shadows shown?

Enables / disables the rendering of debug information for shadows.

getShowDebugShadowsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setShadowColourSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Colour

colour

-> IO () 

Get the colour used to modulate areas in shadow. This is only applicable for shadow techniques which involve darkening the area in shadow, as opposed to masking out the light. This colour provided is used as a modulative value to darken the areas.

Set the colour used to modulate areas in shadow. This is only applicable for shadow techniques which involve darkening the area in shadow, as opposed to masking out the light. This colour provided is used as a modulative value to darken the areas.

getShadowColourSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Colour 

setShadowDirectionalLightExtrusionDistanceSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Float

dist

-> IO () 

Gets the distance a shadow volume is extruded for a directional light.

Sets the distance a shadow volume is extruded for a directional light. Although directional lights are essentially infinite, there are many reasons to limit the shadow extrusion distance to a finite number, not least of which is compatibility with older cards (which do not support infinite positions), and shadow caster elimination. The default value is 10,000 world units. This does not apply to point lights or spotlights, since they extrude up to their attenuation range.

getShadowDirectionalLightExtrusionDistanceSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

setShadowFarDistanceSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Float

distance

-> IO () 

Gets the default maximum distance away from the camera that shadows will be visible.

Sets the default maximum distance away from the camera that shadows will be visible. You have to call this function before you create lights or the default distance of zero will be used. Shadow techniques can be expensive, therefore it is a good idea to limit them to being rendered close to the camera if possible, and to skip the expense of rendering shadows for distance objects. This method allows you to set the distance at which shadows will no longer be rendered. Each shadow technique can interpret this subtely differently. For example, one technique may use this to eliminate casters, another might use it to attenuate the shadows themselves. You should tweak this value to suit your chosen shadow technique and scene setup.

getShadowFarDistanceSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

getShadowFarDistanceSquaredSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

setShadowIndexBufferSizeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Int

size - The number of indexes; divide this by 3 to determine the number of triangles.

-> IO () 

Get the size of the shadow index buffer.

Sets the maximum size of the index buffer used to render shadow primitives. This method allows you to tweak the size of the index buffer used to render shadow primitives (including stencil shadow volumes). The default size is 51,200 entries, which is 100k of GPU memory, or enough to render approximately 17,000 triangles. You can reduce this as long as you do not have any models world geometry chunks which could require more than the amount you set. The maximum number of triangles required to render a single shadow volume (including light and dark caps when needed) will be 3x the number of edges on the light silhouette, plus the number of light-facing triangles. On average, half the triangles will be facing toward the light, but the number of triangles in the silhouette entirely depends on the mesh - angular meshes will have a higher silhouette trismesh tris ratio than a smooth mesh. You can estimate the requirements for your particular mesh by rendering it alone in a scene with shadows enabled and a single light - rotate it or the light and make a note of how high the triangle count goes (remembering to subtract the mesh triangle count)

getShadowIndexBufferSizeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Int 

setShadowTextureSizeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Int

size

-> IO () 

Set the number of textures allocated for texture-based shadows. The default number of textures assigned to deal with texture based shadows is 1; however this means you can only have one light casting shadows at the same time. You can increase this number in order to make this more flexible, but be aware of the texture memory it will use.

Set the size of the texture used for all texture-based shadows. The larger the shadow texture, the better the detail on texture based shadows, but obviously this takes more memory. The default size is 512. Sizes must be a power of 2. This is the simple form, see setShadowTextureConfig for the more complex form.

setShadowTextureCountSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Int

count

-> IO () 

Get the number of the textures allocated for texture based shadows.

getShadowTextureCountSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Int 

setShadowTextureCountPerLightTypeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> EnumLightType

type

-> Int

count

-> IO () 

Get the number of shadow textures is assigned for the given light type.

Set the number of shadow textures a light type uses. The default for all light types is 1. This means that each light uses only 1 shadow texture. Call this if you need more than 1 shadow texture per light, E.G. PSSM. This feature only works with the Integrated shadow technique. Also remember to increase the total number of shadow textures you request appropriately (e.g. via setShadowTextureCount)!!

getShadowTextureCountPerLightTypeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> EnumLightType

type

-> IO Int 

getShadowTextureSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Int

shadowIndex

-> IO SharedPtr 

Get a reference to the shadow texture currently in use at the given index. If you change shadow settings, this reference may no longer be correct, so be sure not to hold the returned reference over texture shadow configuration changes.

setShadowDirLightTextureOffsetSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Float

offset

-> IO () 

Gets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space.

Sets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space. When generating a shadow texture from a directional light, an approximation is used since it is not possible to render the entire scene to one texture. The texture is projected onto an area centred on the camera, and is the shadow far distance * 2 in length (it is square). This wastes a lot of texture space outside the frustum though, so this offset allows you to move the texture in front of the camera more. However, be aware that this can cause a little shadow jittering during rotation, and that if you move it too far then you'll start to get artefacts close to the camera. The value is represented as a proportion of the shadow far distance, and the default is 0.6.

getShadowDirLightTextureOffsetSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Float 

setShadowTextureFadeStartSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Float

fadeStart

-> IO () 

Sets the proportional distance at which texture shadows finish to fading out. To hide the edges where texture shadows end (in directional lights) Ogre

Sets the proportional distance at which texture shadows begin to fade out. To hide the edges where texture shadows end (in directional lights) Ogre

setShadowTextureFadeEndSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Float

fadeEnd

-> IO () 

Sets whether or not texture shadows should attempt to self-shadow. The default implementation of texture shadows uses a fixed-function colour texture projection approach for maximum compatibility, and as such cannot support self-shadowing. However, if you decide to implement a more complex shadowing technique using the setShadowTextureCasterMaterial and setShadowTextureReceiverMaterial there is a possibility you may be able to support self-shadowing (e.g by implementing a shader-based shadow map). In this case you might want to enable this option.

setShadowTextureSelfShadowSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

selfShadow - Whether to attempt self-shadowing with texture shadows

-> IO () 

Gets whether or not texture shadows attempt to self-shadow.

getShadowTextureSelfShadowSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setShadowTextureCasterMaterialSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Sets the default material to use for rendering shadow receivers. By default shadow receivers are rendered as a post-pass using basic modulation. This allows basic projective texture shadows, but it's possible to use more advanced shadow techniques by overriding the caster and receiver materials, for example providing vertex and fragment programs to implement shadow maps. You can rely on texture unit 0 containing the shadow texture, and for the unit to be set to use projective texturing from the light (only useful if you're using fixed-function, which is unlikely; otherwise you should rely on the texture_viewproj_matrix auto binding) Individual objects may also override the vertex program in your default material if their materials include shadow_caster_vertex_program_ref shadow_receiver_vertex_program_ref shadow_receiver_material entries, so if you use both make sure they are compatible. Only a single pass is allowed in your material, although multiple techniques may be used for hardware fallback.

Sets the default material to use for rendering shadow casters. By default shadow casters are rendered into the shadow texture using an automatically generated fixed-function pass. This allows basic projective texture shadows, but it's possible to use more advanced shadow techniques by overriding the caster and receiver materials, for example providing vertex and fragment programs to implement shadow maps. You can rely on the ambient light in the scene being set to the requested texture shadow colour, if that's useful. Individual objects may also override the vertex program in your default material if their materials include shadow_caster_vertex_program_ref, shadow_receiver_vertex_program_ref shadow_caster_material entries, so if you use both make sure they are compatible. Only a single pass is allowed in your material, although multiple techniques may be used for hardware fallback.

setShadowTextureReceiverMaterialSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Sets whether or not shadow casters should be rendered into shadow textures using their back faces rather than their front faces. Rendering back faces rather than front faces into a shadow texture can help minimise depth comparison issues, if you're using depth shadowmapping. You will probably still need some biasing but you won't need as much. For solid objects the result is the same anyway, if you have objects with holes you may want to turn this option off. The default is to enable this option.

setShadowCasterRenderBackFacesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

bf

-> IO () 

Gets whether or not shadow casters should be rendered into shadow textures using their back faces rather than their front faces.

getShadowCasterRenderBackFacesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

isShadowTechniqueStencilBasedSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setShadowUseInfiniteFarPlaneSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enable

-> IO () 

Is there a texture shadow based shadowing technique in use?

Sets whether we should use an inifinite camera far plane when rendering stencil shadows. Stencil shadow coherency is very reliant on the shadow volume not being clipped by the far plane. If this clipping happens, you get a kind of negative shadow effect. The best way to achieve coherency is to move the far plane of the camera out to infinity, thus preventing the far plane from clipping the shadow volumes. When combined with vertex program extrusion of the volume to infinity, which OgreOgreIf you disable infinite projection, or it is not available, you need to be far more careful with your light attenuation / directional light extrusion distances to avoid clipping artefacts at the far plane. Recent cards will generally support infinite far plane projection. However, we have found some cases where they do not, especially on Direct3D. There is no standard capability we can check to validate this, so we use some heuristics based on experience:

RenderSystem

Is there a stencil shadow based shadowing technique in use?

isShadowTechniqueTextureBasedSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

isShadowTechniqueModulativeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

Is there a modulative shadowing technique in use?

isShadowTechniqueAdditiveSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

Is there an additive shadowing technique in use?

isShadowTechniqueIntegratedSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

Is the shadow technique integrated into primary materials?

isShadowTechniqueInUseSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

Is there any shadowing technique in use?

setShadowUseLightClipPlanesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

enabled

-> IO () 

Gets whether when using a built-in additive shadow mode, user clip planes should be used to restrict light rendering.

Sets whether when using a built-in additive shadow mode, user clip planes should be used to restrict light rendering.

getShadowUseLightClipPlanesSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setLateMaterialResolvingSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

isLate

-> IO () 

Gets whether using late material resolving or not. setLateMaterialResolving

Sets whether to use late material resolving or not. If set, materials will be resolved from the materials at the pass-setting stage and not at the render queue building stage. This is useful when the active material scheme during the render queue building stage is different from the one during the rendering stage.

isLateMaterialResolvingSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

hasStaticGeometrySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO Bool 

Returns whether a static geometry instance with the given name exists.

destroyStaticGeometry2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Remove & destroy all StaticGeometry instances.

Remove & destroy a StaticGeometry instance.

destroyAllStaticGeometrySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Remove & destroy a InstancedGeometry instance.

destroyInstancedGeometry2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> IO () 

Remove & destroy all InstancedGeometry instances.

destroyAllInstancedGeometrySource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Destroys a MovableObjectThe MovableObject

destroyMovableObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> String

typeName

-> IO () 

Destroys a MovableObjectThe MovableObject

destroyMovableObject2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

m

-> IO () 

Destroy all MovableObjects of a given type.

destroyAllMovableObjectsByTypeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

typeName

-> IO () 

Destroy all MovableObjects.

destroyAllMovableObjectsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO () 

Get a reference to a previously created MovableObjectThrows an exception if the named instance does not exist

getMovableObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> String

typeName

-> IO HG3DClass 

hasMovableObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> String

typeName

-> IO Bool 

Returns whether a movable object instance with the given name exists.

injectMovableObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

m

-> IO () 

Extract a previously injected MovableObjectEssentially this does the same as destroyMovableObject, but only removes the instance from the internal lists, it does not attempt to destroy it.

Inject a MovableObjectThis method injects a MovableObjectMovableObjectSceneManagerMovableObjectMovableObjectIt is important that the MovableObject

extractMovableObjectSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

name

-> String

typeName

-> IO () 

Extract a previously injected MovableObjectEssentially this does the same as destroyMovableObject, but only removes the instance from the internal lists, it does not attempt to destroy it.

extractMovableObject2Source

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> HG3DClass

m

-> IO () 

Extract all injected MovableObjects of a given type. Essentially this does the same as destroyAllMovableObjectsByType, but only removes the instances from the internal lists, it does not attempt to destroy them.

extractAllMovableObjectsByTypeSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> String

typeName

-> IO () 

Sets a mask which is bitwise anded with objects own visibility masks to determine if the object is visible. Note that this is combined with any per-viewport visibility mask through an and operation. Viewport::setVisibilityMask

setVisibilityMaskSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Int

vmask

-> IO () 

Gets a mask which is bitwise anded with objects own visibility masks to determine if the object is visible.

getVisibilityMaskSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Int 

setFindVisibleObjectsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

find

-> IO () 

Gets whether the SceneManager

Sets whether the SceneManagerThis is an advanced function, you should not use this unless you know what you are doing.

getFindVisibleObjectsSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setNormaliseNormalsOnScaleSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

n

-> IO () 

Get whether to automatically normalise normals on objects whenever they are scaled.

Set whether to automatically normalise normals on objects whenever they are scaled. Scaling can distort normals so the default behaviour is to compensate for this, but it has a cost. If you would prefer to manually manage this, set this option to false and use Pass::setNormaliseNormals only when needed.

getNormaliseNormalsOnScaleSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

setFlipCullingOnNegativeScaleSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

n

-> IO () 

Get whether to automatically flip the culling mode on objects whenever they are negatively scaled.

Set whether to automatically flip the culling mode on objects whenever they are negatively scaled. Negativelyl scaling an object has the effect of flipping the triangles, so the culling mode should probably be inverted to deal with this. If you would prefer to manually manage this, set this option to false and use different materials with Pass::setCullingMode set manually as needed.

getFlipCullingOnNegativeScaleSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool 

getDestinationRenderSystemSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Get the rendersystem subclass to which the output of this Scene Manager gets sent

getCurrentViewportSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO HG3DClass 

Gets the current viewport being rendered (advanced use only, only valid during viewport update.

setCameraRelativeRenderingSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> Bool

rel

-> IO () 

Get whether to use camera-relative co-ordinates when rendering, ie to always place the camera at the origin and move the world around it.

Set whether to use camera-relative co-ordinates when rendering, ie to always place the camera at the origin and move the world around it. This is a technique to alleviate some of the precision issues associated with rendering far from the origin, where single-precision floats as used in most GPUs begin to lose their precision. Instead of including the camera translation in the view matrix, it only includes the rotation, and the world matrices of objects must be expressed relative to this. If you need this option, you will probably also need to enable double-precision mode in Ogre

getCameraRelativeRenderingSource

Arguments

:: HG3DClass

classpointer - pointer of Class instance from which this methods is called.

-> IO Bool