Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# Ogre::SceneManager Class Reference

Manages the rendering of a 'scene' i.e. More...

`#include <OgreSceneManager.h>`

Inheritance diagram for Ogre::SceneManager:

[legend]
List of all members.

## Public Types

typedef MapIterator< SceneLightList > | LightIterator
typedef MapIterator< EntityList > | EntityIterator
typedef MapIterator< CameraList > | CameraIterator
typedef MapIterator< BillboardSetList > | BillboardSetIterator
typedef MapIterator< AnimationList > | AnimationIterator
enum | IlluminationRenderStage { IRS_NONE, IRS_AMBIENT, IRS_PER_LIGHT, IRS_DECAL, IRS_RENDER_TO_TEXTURE, IRS_RENDER_MODULATIVE_PASS }
| Describes the stage of rendering when performing complex illumination. More...
enum | PrefabType { PT_PLANE }
| Prefab shapes available without loading a model. More...

## Public Methods

| SceneManager ()
| Default constructor.
virtual | ~SceneManager ()
| Default destructor.
virtual Camera * | createCamera (const String &name)
| Creates a camera to be managed by this scene manager.
virtual Camera * | getCamera (const String &name)
| Retrieves a pointer to the named camera.
virtual void | removeCamera (Camera *cam)
| Removes a camera from the scene.
virtual void | removeCamera (const String &name)
| Removes a camera from the scene.
virtual void | removeAllCameras (void)
| Removes (and destroys) all cameras from the scene.
virtual Light * | createLight (const String &name)
| Creates a light for use in the scene.
virtual Light * | getLight (const String &name)
| Returns a pointer to the named Light which has previously been added to the scene.
virtual void | removeLight (const String &name)
| Removes the named light from the scene and destroys it.
virtual void | removeLight (Light *light)
| Removes the light from the scene and destroys it based on a pointer.
virtual void | removeAllLights (void)
| Removes and destroys all lights in the scene.
virtual void | _populateLightList (const Vector3 &position, Real radius, LightList &destList)
| Populate a light list with an ordered set of the lights which are closest to the position specified.
virtual Material * | createMaterial (const String &name)
| Creates a new material with default settings with the specified name.
virtual Material * | getDefaultMaterialSettings (void)
| Returns a pointer to the default Material settings.
virtual Material * | getMaterial (const String &name)
| Gets a reference to a named Material.
virtual Material * | getMaterial (int handle)
| Gets a reference to a material by it's numerical handle.
virtual SceneNode * | createSceneNode (void)
| Creates an instance of a SceneNode.
virtual SceneNode * | createSceneNode (const String &name)
| Creates an instance of a SceneNode with a given name.
virtual void | destroySceneNode (const String &name)
| Destroys a SceneNode with a given name.
virtual SceneNode * | getRootSceneNode (void) const
| Gets the SceneNode at the root of the scene hierarchy.
virtual SceneNode * | getSceneNode (const String &name) const
| Retrieves a named SceneNode from the scene graph.
virtual Entity * | createEntity (const String &entityName, const String &meshName)
| Create an Entity (instance of a discrete mesh).
virtual Entity * | createEntity (const String &entityName, PrefabType ptype)
| Create an Entity (instance of a discrete mesh) from a range of prefab shapes.
virtual Entity * | getEntity (const String &name)
| Retrieves a pointer to the named Entity.
virtual void | removeEntity (Entity *ent)
| Removes & destroys an Entity from the SceneManager.
virtual void | removeEntity (const String &name)
| Removes & destroys an Entity from the SceneManager by name.
virtual void | removeAllEntities (void)
| Removes & destroys all Entities.
virtual void | clearScene (void)
| Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc.
void | setAmbientLight (const ColourValue &colour)
| Sets the ambient light level to be used for the scene.
const ColourValue & | getAmbientLight (void) const
| Returns the ambient light level to be used for the scene.
virtual void | setWorldGeometry (const String &filename)
| Sets the source of the 'world' geometry, i.e.
virtual ViewPoint | getSuggestedViewpoint (bool random=false)
| Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed.
virtual bool | setOption (const String &strKey, const void *pValue)
| Method for setting a specific option of the Scene Manager.
virtual bool | getOption (const String &strKey, void *pDestValue)
| Method for getting the value of an implementation-specific Scene Manager option.
virtual bool | hasOption (const String &strKey) const
| Method for verifying wether the scene manager has an implementation-specific option.
virtual bool | getOptionValues (const String &strKey, std::list< SDDataChunk > &refValueList)
| Method for getting all possible values for a specific option.
virtual bool | getOptionKeys (std::list< String > &refKeys)
| Method for getting all the implementation-specific options of the scene manager.
virtual void | _updateSceneGraph (Camera *cam)
| Internal method for updating the scene graph ie the tree of SceneNode instances managed by this class.
virtual void | _findVisibleObjects (Camera *cam, bool onlyShadowCasters)
| Internal method which parses the scene to find visible objects to render.
virtual void | _applySceneAnimations (void)
| Internal method for applying animations to scene nodes.
virtual void | _renderVisibleObjects (void)
| Sends visible objects found in _findVisibleObjects to the rendering engine.
virtual void | _renderScene (Camera *camera, Viewport *vp, bool includeOverlays)
| Prompts the class to send its contents to the renderer.
virtual void | _queueSkiesForRendering (Camera *cam)
| Internal method for queueing the sky objects with the params as previously set through setSkyBox, setSkyPlane and setSkyDome.
virtual void | _setDestinationRenderSystem (RenderSystem *sys)
| Notifies the scene manager of its destination render system.
virtual void | setSkyPlane (bool enable, const Plane &plane, const String &materialName, Real scale=1000, Real tiling=10, bool drawFirst=true, Real bow=0, int xsegments=1, int ysegments=1)
| Enables / disables a 'sky plane' i.e.
virtual void | setSkyBox (bool enable, const String &materialName, Real distance=5000, bool drawFirst=true, const Quaternion &orientation=Quaternion::IDENTITY)
| Enables / disables a 'sky box' i.e.
virtual void | setSkyDome (bool enable, const String &materialName, Real curvature=10, Real tiling=8, Real distance=4000, bool drawFirst=true, const Quaternion &orientation=Quaternion::IDENTITY, int xsegments=16, int ysegments=16, int ysegments_keep=-1)
| Enables / disables a 'sky dome' i.e.
void | setFog (FogMode mode=FOG_NONE, const ColourValue &colour=ColourValue::White, Real expDensity=0.001, Real linearStart=0.0, Real linearEnd=1.0)
| Sets the fogging mode applied to the scene.
virtual FogMode | getFogMode (void) const
| Returns the fog mode for the scene.
virtual const ColourValue & | getFogColour (void) const
| Returns the fog colour for the scene.
virtual Real | getFogStart (void) const
| Returns the fog start distance for the scene.
virtual Real | getFogEnd (void) const
| Returns the fog end distance for the scene.
virtual Real | getFogDensity (void) const
| Returns the fog density for the scene.
virtual BillboardSet * | createBillboardSet (const String &name, unsigned int poolSize=20)
| Creates a new BillboardSet for use with this scene manager.
virtual BillboardSet * | getBillboardSet (const String &name)
| Retrieves a pointer to the named BillboardSet.
virtual void | removeBillboardSet (BillboardSet *set)
| Removes & destroys an BillboardSet from the SceneManager.
virtual void | removeBillboardSet (const String &name)
| Removes & destroys an BillboardSet from the SceneManager by name.
virtual void | removeAllBillboardSets (void)
| Removes & destroys all BillboardSets.
virtual void | setDisplaySceneNodes (bool display)
| Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene.
virtual Animation * | createAnimation (const String &name, Real length)
| Creates an animation which can be used to animate scene nodes.
virtual Animation * | getAnimation (const String &name) const
| Looks up an Animation object previously created with createAnimation.
virtual void | destroyAnimation (const String &name)
| Destroys an Animation.
virtual void | destroyAllAnimations (void)
| Removes all animations created using this SceneManager.
virtual AnimationState * | createAnimationState (const String &animName)
| Create an AnimationState object for managing application of animations.
virtual AnimationState * | getAnimationState (const String &animName)
| Retrieves animation state as previously created using createAnimationState.
virtual void | destroyAnimationState (const String &name)
| Destroys an AnimationState.
virtual void | destroyAllAnimationStates (void)
| Removes all animation states created using this SceneManager.
virtual void | manualRender (RenderOperation *rend, Pass *pass, Viewport *vp, const Matrix4 &worldMatrix, const Matrix4 &viewMatrix, const Matrix4 &projMatrix, bool doBeginEndFrame=false)
| Manual rendering method, for advanced users only.
virtual Overlay * | createOverlay (const String &name, ushort zorder=100)
| Creates a new Overlay.
virtual Overlay * | getOverlay (const String &name)
| Gets a pointer to the named Overlay, previously created using createOverlay.
virtual void | destroyOverlay (const String &name)
| Destroys the named Overlay.
virtual void | destroyAllOverlays (void)
| Destroys all the overlays.
virtual void | addRenderQueueListener (RenderQueueListener *newListener)
| Registers a new RenderQueueListener which will be notified when render queues are processed.
virtual void | removeRenderQueueListener (RenderQueueListener *delListener)
| Removes a listener previously added with addRenderQueueListener.
void | showBoundingBoxes (bool bShow)
| Allows all bounding boxes of scene nodes to be displayed.
bool | getShowBoundingBoxes () const
| Returns if all bounding boxes of scene nodes are to be displayed.
void | _notifyAutotrackingSceneNode (SceneNode *node, bool autoTrack)
| Internal method for notifying the manager that a SceneNode is autotracking.
virtual AxisAlignedBoxSceneQuery * | createAABBQuery (const AxisAlignedBox &box, unsigned long mask=0xFFFFFFFF)
| Creates an AxisAlignedBoxSceneQuery for this scene manager.
virtual SphereSceneQuery * | createSphereQuery (const Sphere &sphere, unsigned long mask=0xFFFFFFFF)
| Creates a SphereSceneQuery for this scene manager.
virtual PlaneBoundedVolumeListSceneQuery * | createPlaneBoundedVolumeQuery (const PlaneBoundedVolumeList &volumes, unsigned long mask=0xFFFFFFFF)
| Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.
virtual RaySceneQuery * | createRayQuery (const Ray &ray, unsigned long mask=0xFFFFFFFF)
| Creates a RaySceneQuery for this scene manager.
virtual IntersectionSceneQuery * | createIntersectionQuery (unsigned long mask=0xFFFFFFFF)
| Creates an IntersectionSceneQuery for this scene manager.
virtual void | destroyQuery (SceneQuery *query)
| Destroys a scene query of any type.
LightIterator | getLightIterator (void)
| Returns a specialised MapIterator over all lights in the scene.
EntityIterator | getEntityIterator (void)
| Returns a specialised MapIterator over all entities in the scene.
CameraIterator | getCameraIterator (void)
| Returns a specialised MapIterator over all cameras in the scene.
BillboardSetIterator | getBillboardSetIterator (void)
| Returns a specialised MapIterator over all BillboardSets in the scene.
AnimationIterator | getAnimationIterator (void)
| Returns a specialised MapIterator over all animations in the scene.
AnimationStateIterator | getAnimationStateIterator (void)
| Returns a specialised MapIterator over all animation states in the scene.
virtual void | setShadowTechnique (ShadowTechnique technique)
| Sets the general shadow technique to be used in this scene.
virtual ShadowTechnique | getShadowTechnique (void) const
| Gets the current shadow technique.
virtual void | setShowDebugShadows (bool debug)
| Enables / disables the rendering of debug information for shadows.
virtual bool | getShowDebugShadows (void) const
| Are debug shadows shown?
virtual void | setShadowColour (const ColourValue &colour)
| Set the colour used to modulate areas in shadow.
virtual const ColourValue & | getShadowColour (void) const
| Get the colour used to modulate areas in shadow.
virtual void | setShadowDirectionalLightExtrusionDistance (Real dist)
| Sets the distance a shadow volume is extruded for a directional light.
virtual Real | getShadowDirectionalLightExtrusionDistance (void) const
| Gets the distance a shadow volume is extruded for a directional light.
virtual void | setShadowFarDistance (Real distance)
| Sets the maximum distance away from the camera that shadows will be visible.
virtual Real | getShadowFarDistance (void) const
| Gets the maximum distance away from the camera that shadows will be visible.
virtual void | setShadowIndexBufferSize (size_t size)
| Sets the maximum size of the index buffer used to render shadow primitives.
virtual size_t | getShadowIndexBufferSize (void) const
| Get the size of the shadow index buffer.
virtual void | setShadowTextureSize (unsigned short size)
| Set the size of the texture used for texture-based shadows.
unsigned short | getShadowTextureSize (void) const
| Get the size of the texture used for texture based shadows.
virtual void | setShadowTextureCount (unsigned short count)
| Set the number of textures allocated for texture-based shadows.
unsigned short | getShadowTextureCount (void) const
| Get the number of the textures allocated for texture based shadows.
virtual void | setShadowTextureSettings (unsigned short size, unsigned short count)
| Sets the size and count of textures used in texture-based shadows.
virtual void | setShadowDirLightTextureOffset (Real offset)
| 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.
virtual void | setShadowTextureFadeStart (Real fadeStart)
| Sets the proportional distance at which texture shadows begin to fade out.
virtual void | setShadowTextureFadeEnd (Real fadeEnd)
| Sets the proportional distance at which texture shadows finish to fading out.
virtual void | setShadowUseInfiniteFarPlane (bool enable)
| Sets whether we should use an inifinite camera far plane when rendering stencil shadows.

## Protected Types

typedef std::map< std::string, Camera *, std::less< std::string > > | CameraList
typedef std::map< std::string, Light *, std::less< std::string > > | SceneLightList
typedef std::map< std::string, Entity *, std::less< std::string > > | EntityList
typedef std::map< std::string, BillboardSet *, std::less< std::string > > | BillboardSetList
typedef std::map< String, SceneNode * > | SceneNodeList
typedef std::set< SceneNode * > | AutoTrackingSceneNodes
| Autotracking scene nodes.
typedef std::map< String, Animation * > | AnimationList
| Storage of animations, lookup by name.
typedef std::vector< RenderQueueListener * > | RenderQueueListenerList
typedef std::vector< RenderTexture * > | ShadowTextureList
typedef std::vector< ShadowCaster * > | ShadowCasterList
enum | BoxPlane { BP_FRONT = 0, BP_BACK = 1, BP_LEFT = 2, BP_RIGHT = 3, BP_UP = 4, BP_DOWN = 5 }

## Protected Methods

virtual void | initRenderQueue (void)
| Internal method for initialising the render queue.
virtual RenderQueue * | getRenderQueue (void)
| Retrieves the internal render queue.
virtual Pass * | setPass (Pass *pass)
| Internal method for setting up the renderstate for a rendering pass.
Pass * | deriveShadowCasterPass (Pass *pass)
| Internal method for turning a regular pass into a shadow caster pass.
Pass * | deriveShadowReceiverPass (Pass *pass)
| Internal method for turning a regular pass into a shadow receiver pass.
bool | validatePassForRendering (Pass *pass)
| Internal method to validate whether a Pass should be allowed to render.
bool | validateRenderableForRendering (Pass *pass, Renderable *rend)
| Internal method to validate whether a Renderable should be allowed to render.
Mesh * | createSkyboxPlane (BoxPlane bp, Real distance, const Quaternion &orientation)
Mesh * | createSkydomePlane (BoxPlane bp, Real curvature, Real tiling, Real distance, const Quaternion &orientation, int xsegments=16, int ysegments=16, int ySegmentsToKeep=-1)
void | useRenderableViewProjMode (Renderable *pRend)
| Internal method used by _renderVisibleObjects to deal with renderables which override the camera's own view / projection materices.
bool | fireRenderQueueStarted (RenderQueueGroupID id)
| Internal method for firing the queue start event, returns true if queue is to be skipped.
bool | fireRenderQueueEnded (RenderQueueGroupID id)
| Internal method for firing the queue end event, returns true if queue is to be repeated.
virtual void | setViewport (Viewport *vp)
| Internal method for setting the destination viewport for the next render.
virtual void | renderSingleObject (Renderable *rend, Pass *pass, bool doLightIteration, const LightList *manualLightList=0)
| Internal utility method for rendering a single object.
virtual void | findLightsAffectingFrustum (const Camera *camera)
| Internal method for locating a list of lights which could be affecting the frustum.
virtual void | initShadowVolumeMaterials (void)
| Internal method for setting up materials for shadows.
virtual void | createShadowTextures (unsigned short size, unsigned short count)
| Internal method for creating shadow textures (texture-based shadows).
virtual void | prepareShadowTextures (Camera *cam, Viewport *vp)
| Internal method for preparing shadow textures ready for use in a regular render.
virtual void | renderShadowVolumesToStencil (const Light *light, const Camera *cam)
| Internal method for rendering all the objects for a given light into the stencil buffer.
virtual void | setShadowVolumeStencilState (bool secondpass, bool zfail, bool twosided)
| Internal utility method for setting stencil state for rendering shadow volumes.
void | renderSingleShadowVolumeToStencil (ShadowRenderable *sr, bool zfail, bool stencil2sided, const LightList *manualLightList, bool bSecondPass)
| Render a single shadow volume to the stencil buffer.
virtual const ShadowCasterList & | findShadowCastersForLight (const Light *light, const Camera *camera)
| Internal method for locating a list of shadow casters which could be affecting the frustum for a given light.
virtual void | renderQueueGroupObjects (RenderQueueGroup *group)
| Render the objects in a given queue group.
virtual void | renderBasicQueueGroupObjects (RenderQueueGroup *pGroup)
| Render a group in the ordinary way.
virtual void | renderAdditiveStencilShadowedQueueGroupObjects (RenderQueueGroup *group)
| Render a group with the added complexity of additive stencil shadows.
virtual void | renderModulativeStencilShadowedQueueGroupObjects (RenderQueueGroup *group)
| Render a group with the added complexity of additive stencil shadows.
virtual void | renderTextureShadowCasterQueueGroupObjects (RenderQueueGroup *group)
| Render a group rendering only shadow casters.
virtual void | renderTextureShadowReceiverQueueGroupObjects (RenderQueueGroup *group)
| Render a group rendering only shadow receivers.
virtual void | renderModulativeTextureShadowedQueueGroupObjects (RenderQueueGroup *group)
| Render a group with the added complexity of additive stencil shadows.
virtual void | renderObjects (const RenderPriorityGroup::SolidRenderablePassMap &objs, bool doLightIteration, const LightList *manualLightList=0)
| Render a set of objects, see renderSingleObject for param definitions.
virtual void | renderObjects (const RenderPriorityGroup::TransparentRenderablePassList &objs, bool doLightIteration, const LightList *manualLightList=0)
| Render a set of objects, see renderSingleObject for param definitions.
virtual void | renderTransparentShadowCasterObjects (const RenderPriorityGroup::TransparentRenderablePassList &objs, bool doLightIteration, const LightList *manualLightList=0)
| Render those objects in the transparent pass list which have shadow casting forced on.

## Protected Attributes

RenderQueue * | mRenderQueue
| Queue of objects for rendering.
ColourValue | mAmbientLight
| Current ambient light, cached for RenderSystem.
RenderSystem * | mDestRenderSystem
| The rendering system to send the scene to.
CameraList | mCameras
| Central list of cameras - for easy memory management and lookup.
SceneLightList | mLights
| Central list of lights - for easy memory management and lookup.
EntityList | mEntities
| Central list of entities - for easy memory management and lookup.
BillboardSetList | mBillboardSets
| Central list of billboard sets - for easy memory management and lookup.
SceneNodeList | mSceneNodes
| Central list of SceneNodes - for easy memory management.
Camera * | mCameraInProgress
| Camera in progress.
Viewport * | mCurrentViewport
| Current Viewport.
SceneNode * | mSceneRoot
| Root scene node.
AutoTrackingSceneNodes | mAutoTrackingSceneNodes
Entity * | mSkyPlaneEntity
Entity * | mSkyDomeEntity [5]
Entity * | mSkyBoxEntity [6]
SceneNode * | mSkyPlaneNode
SceneNode * | mSkyDomeNode
SceneNode * | mSkyBoxNode
bool | mSkyPlaneEnabled
bool | mSkyPlaneDrawFirst
Plane | mSkyPlane
bool | mSkyBoxEnabled
bool | mSkyBoxDrawFirst
Quaternion | mSkyBoxOrientation
bool | mSkyDomeEnabled
bool | mSkyDomeDrawFirst
Quaternion | mSkyDomeOrientation
FogMode | mFogMode
ColourValue | mFogColour
Real | mFogStart
Real | mFogEnd
Real | mFogDensity
Pass * | mShadowCasterPlainBlackPass
| A pass designed to let us render shadow colour on white for texture shadows.
Pass * | mShadowReceiverPass
| A pass designed to let us render shadow receivers for texture shadows.
bool | mDisplayNodes
AnimationList | mAnimationsList
AnimationStateSet | mAnimationStates
bool | mCamChanged
| Controller flag for determining if we need to set view/proj matrices.
RenderQueueListenerList | mRenderQueueListeners
bool | mShowBoundingBoxes
| Flag that indicates if all of the scene node's bounding boxes should be shown as a wireframe.
AutoParamDataSource | mAutoParamDataSource
| Utility class for calculating automatic parameters for gpu programs.
ShadowTechnique | mShadowTechnique
bool | mDebugShadows
ColourValue | mShadowColour
Pass * | mShadowDebugPass
Pass * | mShadowStencilPass
Pass * | mShadowModulativePass
bool | mShadowMaterialInitDone
LightList | mLightsAffectingFrustum
HardwareIndexBufferSharedPtr | mShadowIndexBuffer
size_t | mShadowIndexBufferSize
Rectangle2D * | mFullScreenQuad
Real | mShadowDirLightExtrudeDist
IlluminationRenderStage | mIlluminationStage
unsigned short | mShadowTextureSize
unsigned short | mShadowTextureCount
ShadowTextureList | mShadowTextures
RenderTexture * | mCurrentShadowTexture
bool | mShadowUseInfiniteFarPlane
ShadowCasterList | mShadowCasterList
SphereSceneQuery * | mShadowCasterSphereQuery
AxisAlignedBoxSceneQuery * | mShadowCasterAABBQuery
Real | mShadowFarDist
Real | mShadowFarDistSquared
Real | mShadowTextureOffset
Real | mShadowTextureFadeStart
Real | mShadowTextureFadeEnd
GpuProgramParametersSharedPtr | mInfiniteExtrusionParams
GpuProgramParametersSharedPtr | mFiniteExtrusionParams
ShadowCasterSceneQueryListener | mShadowCasterQueryListener

## Friends

class | DefaultIntersectionSceneQuery
class | DefaultRaySceneQuery
class | DefaultSphereSceneQuery
class | DefaultAxisAlignedBoxSceneQuery
class | DefaultPlaneBoundedVolumeListSceneQuery

## Detailed Description

Manages the rendering of a 'scene' i.e.

a collection of primitives.

Remarks:
  This class defines the basic behaviour of the 'Scene Manager' family. These classes will organise the objects in the scene and send them to the rendering system, a subclass of RenderSystem. This basic superclass does no sorting, culling or organising of any sort.

  Subclasses may use various techniques to organise the scene depending on how they are designed (e.g. BSPs, octrees etc). As with other classes, methods preceded with '_' are designed to be called by other classes in the Ogre system, not by user applications, although this is not forbidden.

Author:
  Steve Streeting

Version:
  1.0

Definition at line 77 of file OgreSceneManager.h.

## Member Typedef Documentation

typedef MapIterator<AnimationList> Ogre::SceneManager::AnimationIterator

| Definition at line 1402 of file OgreSceneManager.h.

typedef std::map<String, Animation*> Ogre::SceneManager::AnimationList`[protected]`

| Storage of animations, lookup by name. Definition at line 284 of file OgreSceneManager.h.

typedef std::set<SceneNode*> Ogre::SceneManager::AutoTrackingSceneNodes`[protected]`

| Autotracking scene nodes. Definition at line 169 of file OgreSceneManager.h.

typedef MapIterator<BillboardSetList> Ogre::SceneManager::BillboardSetIterator

| Definition at line 1401 of file OgreSceneManager.h.

typedef std::map<std::string, BillboardSet*, std::less<std::string> > Ogre::SceneManager::BillboardSetList`[protected]`

| Definition at line 144 of file OgreSceneManager.h.

typedef MapIterator<CameraList> Ogre::SceneManager::CameraIterator

| Definition at line 1400 of file OgreSceneManager.h.

typedef std::map<std::string, Camera*, std::less<std::string> > Ogre::SceneManager::CameraList`[protected]`

| Definition at line 125 of file OgreSceneManager.h.

typedef MapIterator<EntityList> Ogre::SceneManager::EntityIterator

| Definition at line 1399 of file OgreSceneManager.h.

typedef std::map<std::string, Entity*, std::less<std::string> > Ogre::SceneManager::EntityList`[protected]`

| Definition at line 138 of file OgreSceneManager.h.

typedef MapIterator<SceneLightList> Ogre::SceneManager::LightIterator

| Definition at line 1398 of file OgreSceneManager.h.

typedef std::vector<RenderQueueListener*> Ogre::SceneManager::RenderQueueListenerList`[protected]`

| Definition at line 295 of file OgreSceneManager.h.

typedef std::map<std::string, Light*, std::less<std::string> > Ogre::SceneManager::SceneLightList`[protected]`

| Definition at line 131 of file OgreSceneManager.h.

typedef std::map<String, SceneNode*> Ogre::SceneManager::SceneNodeList`[protected]`

| Definition at line 150 of file OgreSceneManager.h.

typedef std::vector<ShadowCaster*> Ogre::SceneManager::ShadowCasterList`[protected]`

| Definition at line 374 of file OgreSceneManager.h. Referenced by renderShadowVolumesToStencil().

typedef std::vector<RenderTexture*> Ogre::SceneManager::ShadowTextureList`[protected]`

| Definition at line 342 of file OgreSceneManager.h.

## Member Enumeration Documentation

enum Ogre::SceneManager::BoxPlane`[protected]`

Enumeration values:

  BP_FRONT |
  BP_BACK |
  BP_LEFT |
  BP_RIGHT |
  BP_UP |
  BP_DOWN |

Definition at line 255 of file OgreSceneManager.h.

Referenced by setSkyBox(), and setSkyDome().

enum Ogre::SceneManager::IlluminationRenderStage

Describes the stage of rendering when performing complex illumination.

Enumeration values:

  IRS_NONE | No special illumination stage.
  IRS_AMBIENT | Ambient stage, when background light is added.
  IRS_PER_LIGHT | Diffuse / specular stage, when individual light contributions are added.
  IRS_DECAL | Decal stage, when texture detail is added to the lit base.
  IRS_RENDER_TO_TEXTURE | Render to texture stage, used for texture based shadows.
  IRS_RENDER_MODULATIVE_PASS | Modulative render from shadow texture stage.

Definition at line 98 of file OgreSceneManager.h.

Referenced by prepareShadowTextures().

enum Ogre::SceneManager::PrefabType

Prefab shapes available without loading a model.

Note:
  Minimal implementation at present.

Todo:
  Add more prefabs (teapots, teapots!!!)

Enumeration values:

  PT_PLANE |

Definition at line 682 of file OgreSceneManager.h.

## Constructor & Destructor Documentation

Ogre::SceneManager::SceneManager | ( |  | ) |

| Default constructor. Definition at line 66 of file OgreSceneManager.cpp. References Ogre::FOG_NONE, mSceneRoot, mSkyBoxEntity, mSkyDomeEntity, and Ogre::SHADOWTYPE_NONE.

Ogre::SceneManager::~SceneManager | ( |  | ) | `[virtual]`

| Default destructor. Definition at line 120 of file OgreSceneManager.cpp. References clearScene(), mFullScreenQuad, mRenderQueue, mSceneRoot, mShadowCasterAABBQuery, mShadowCasterSphereQuery, and removeAllCameras().

## Member Function Documentation

void Ogre::SceneManager::_applySceneAnimations | ( | void |  | ) | `[virtual]`

Internal method for applying animations to scene nodes.

Remarks:
  Uses the internally stored AnimationState objects to apply animation to SceneNodes.

Definition at line 2311 of file OgreSceneManager.cpp.

References Ogre::Animation::_getTrackList(), Ogre::Animation::apply(), getAnimation(), mAnimationStates, and Ogre::Node::resetToInitialState().

Referenced by _renderScene().

void Ogre::SceneManager::_findVisibleObjects | ( | Camera * | cam,
|  | bool | onlyShadowCasters
| ) | `[virtual]`

Internal method which parses the scene to find visible objects to render.

Remarks:
  If you're implementing a custom scene manager, this is the most important method to override since it's here you can apply your custom world partitioning scheme. Once you have added the appropriate objects to the render queue, you can let the default SceneManager objects _renderVisibleObjects handle the actual rendering of the objects you pick.

  Any visible objects will be added to a rendering queue, which is indexed by material in order to ensure objects with the same material are rendered together to minimise render state changes.

Reimplemented in Ogre::BspSceneManager, and Ogre::OctreeSceneManager.

Definition at line 1316 of file OgreSceneManager.cpp.

References Ogre::SceneNode::_findVisibleObjects(), getRenderQueue(), mDisplayNodes, and mSceneRoot.

Referenced by _renderScene().

void Ogre::SceneManager::_notifyAutotrackingSceneNode | ( | SceneNode * | node,
|  | bool | autoTrack
| ) |

| Internal method for notifying the manager that a SceneNode is autotracking. Definition at line 2614 of file OgreSceneManager.cpp. References mAutoTrackingSceneNodes. Referenced by Ogre::SceneNode::setAutoTracking().

void Ogre::SceneManager::_populateLightList | ( | const Vector3 & | position,
|  | Real | radius,
|  | LightList & | destList
| ) | `[virtual]`

Populate a light list with an ordered set of the lights which are closest to the position specified.

Remarks:
  Note that since directional lights have no position, they are always considered closer than any point lights and as such will always take precedence.

  Subclasses of the default SceneManager may wish to take into account other issues such as possible visibility of the light if that information is included in their data structures. This basic scenemanager simply orders by distance, eliminating those lights which are out of range.

  The number of items in the list max exceed the maximum number of lights supported by the renderer, but the extraneous ones will never be used. In fact the limit will be imposed by Pass::getMaxSimultaneousLights.

Parameters:

  position | The position at which to evaluate the list of lights
  radius | The bounding radius to test
  destList | List to be populated with ordered set of lights; will be cleared by this method before population.

Definition at line 308 of file OgreSceneManager.cpp.

References Ogre::Light::getAttenuationRange(), Ogre::Light::getDerivedPosition(), Ogre::Light::getType(), Ogre::MovableObject::isVisible(), Ogre::LightList, mLights, Ogre::Real, and Ogre::Light::tempSquareDist.

Referenced by Ogre::SceneNode::findLights().

void Ogre::SceneManager::_queueSkiesForRendering | ( | Camera * | cam | ) | `[virtual]`

Internal method for queueing the sky objects with the params as previously set through setSkyBox, setSkyPlane and setSkyDome.

Definition at line 2497 of file OgreSceneManager.cpp.

References Ogre::RenderQueue::addRenderable(), Ogre::Camera::getDerivedPosition(), getRenderQueue(), Ogre::Entity::getSubEntity(), mSkyBoxDrawFirst, mSkyBoxEntity, mSkyBoxNode, mSkyDomeDrawFirst, mSkyDomeEntity, mSkyDomeNode, mSkyPlaneDrawFirst, mSkyPlaneEntity, mSkyPlaneNode, Ogre::RENDER_QUEUE_SKIES_EARLY, Ogre::RENDER_QUEUE_SKIES_LATE, RENDERABLE_DEFAULT_PRIORITY, Ogre::RenderQueueGroupID, Ogre::Node::setPosition(), and Ogre::uint.

Referenced by _renderScene().

void Ogre::SceneManager::_renderScene | ( | Camera * | camera,
|  | Viewport * | vp,
|  | bool | includeOverlays
| ) | `[virtual]`

Prompts the class to send its contents to the renderer.

Remarks:
  This method prompts the scene manager to send the contents of the scene it manages to the rendering pipeline, possibly preceded by some sorting, culling or other scene management tasks. Note that this method is not normally called directly by the user application; it is called automatically by the Ogre rendering loop.

Parameters:

  camera | Pointer to a camera from whose viewpoint the scene is to be rendered.
  vp | The target viewport
  includeOverlays | Whether or not overlay objects should be rendered

Reimplemented in Ogre::TerrainSceneManager.

Definition at line 732 of file OgreSceneManager.cpp.

References _applySceneAnimations(), Ogre::Camera::_autoTrack(), Ogre::RenderSystem::_beginFrame(), Ogre::RenderSystem::_beginGeometryCount(), Ogre::RenderSystem::_endFrame(), _findVisibleObjects(), Ogre::RenderSystem::_getFaceCount(), Ogre::Camera::_notifyRenderedFaces(), _queueSkiesForRendering(), _renderVisibleObjects(), Ogre::RenderSystem::_setRasterisationMode(), _updateSceneGraph(), Ogre::RenderQueue::clear(), Ogre::RenderSystem::enableClipPlane(), findLightsAffectingFrustum(), Ogre::RenderSystem::getCapabilities(), Ogre::Camera::getDetailLevel(), Ogre::Frustum::getFarClipDistance(), Ogre::Viewport::getOverlaysEnabled(), getRenderQueue(), Ogre::Viewport::getTarget(), Ogre::Camera::getWindowPlanes(), Ogre::RenderSystemCapabilities::hasCapability(), initShadowVolumeMaterials(), IRS_RENDER_TO_TEXTURE, Ogre::Frustum::isReflected(), Ogre::Camera::isWindowSet(), mAmbientLight, mAutoParamDataSource, mAutoTrackingSceneNodes, mCamChanged, mCameraInProgress, mDestRenderSystem, mIlluminationStage, mShadowDirLightExtrudeDist, mShadowTechnique, mShadowUseInfiniteFarPlane, prepareShadowTextures(), Ogre::RSC_INFINITE_FAR_PLANE, Ogre::RSC_USER_CLIP_PLANES, Ogre::AutoParamDataSource::setAmbientLightColour(), Ogre::RenderSystem::setClipPlane(), Ogre::AutoParamDataSource::setCurrentCamera(), Ogre::AutoParamDataSource::setCurrentRenderTarget(), Ogre::Frustum::setFarClipDistance(), Ogre::RenderSystem::setInvertVertexWinding(), Ogre::AutoParamDataSource::setShadowDirLightExtrusionDistance(), setViewport(), Ogre::SHADOWTYPE_NONE, Ogre::SHADOWTYPE_STENCIL_ADDITIVE, Ogre::SHADOWTYPE_STENCIL_MODULATIVE, Ogre::SHADOWTYPE_TEXTURE_MODULATIVE, and Ogre::ushort.

Referenced by Ogre::Camera::_renderScene().

void Ogre::SceneManager::_renderVisibleObjects | ( | void |  | ) | `[virtual]`

Sends visible objects found in _findVisibleObjects to the rendering engine.

Reimplemented in Ogre::BspSceneManager, and Ogre::TerrainSceneManager.

Definition at line 1324 of file OgreSceneManager.cpp.

References Ogre::RenderQueue::_getQueueGroupIterator(), fireRenderQueueEnded(), fireRenderQueueStarted(), getRenderQueue(), Ogre::RenderQueueGroupID, and renderQueueGroupObjects().

Referenced by _renderScene().

void Ogre::SceneManager::_setDestinationRenderSystem | ( | RenderSystem * | sys | ) | `[virtual]`

Notifies the scene manager of its destination render system.

Remarks:
  Called automatically by RenderSystem::addSceneManager this method simply notifies the manager of the render system to which its output must be directed.

Parameters:

  sys | Pointer to the RenderSystem subclass to be used as a render target.

Definition at line 893 of file OgreSceneManager.cpp.

References mDestRenderSystem.

Referenced by Ogre::SceneManagerEnumerator::setSceneManager().

void Ogre::SceneManager::_updateSceneGraph | ( | Camera * | cam | ) | `[virtual]`

Internal method for updating the scene graph ie the tree of SceneNode instances managed by this class.

Remarks:
  This must be done before issuing objects to the rendering pipeline, since derived transformations from parent nodes are not updated until required. This SceneManager is a basic implementation which simply updates all nodes from the root. This ensures the scene is up to date but requires all the nodes to be updated even if they are not visible. Subclasses could trim this such that only potentially visible nodes are updated.

Reimplemented in Ogre::OctreeSceneManager.

Definition at line 1305 of file OgreSceneManager.cpp.

References Ogre::SceneNode::_update(), and mSceneRoot.

Referenced by _renderScene().

void Ogre::SceneManager::addRenderQueueListener | ( | RenderQueueListener * | newListener | ) | `[virtual]`

| Registers a new RenderQueueListener which will be notified when render queues are processed. Definition at line 2551 of file OgreSceneManager.cpp. References mRenderQueueListeners.

void Ogre::SceneManager::clearScene | ( | void |  | ) | `[virtual]`

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.

Reimplemented in Ogre::OctreeSceneManager, and Ogre::TerrainSceneManager.

Definition at line 457 of file OgreSceneManager.cpp.

References destroyAllAnimations(), Ogre::SceneNode::detachAllObjects(), mAutoTrackingSceneNodes, mSceneNodes, mSceneRoot, mSkyBoxEnabled, mSkyBoxNode, mSkyDomeEnabled, mSkyDomeNode, mSkyPlaneEnabled, mSkyPlaneNode, removeAllBillboardSets(), Ogre::Node::removeAllChildren(), removeAllEntities(), and removeAllLights().

Referenced by ~SceneManager().

AxisAlignedBoxSceneQuery * Ogre::SceneManager::createAABBQuery | ( | const AxisAlignedBox & | box,
|  | unsigned long | mask = 0xFFFFFFFF
| ) | `[virtual]`

Creates an AxisAlignedBoxSceneQuery for this scene manager.

Remarks:
  This method creates a new instance of a query object for this scene manager, for an axis aligned box region. See SceneQuery and AxisAlignedBoxSceneQuery for full details.

  The instance returned from this method must be destroyed by calling SceneManager::destroyQuery when it is no longer required.

Parameters:

  box | Details of the box which describes the region for this query.
  mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details.

Definition at line 3704 of file OgreSceneManager.cpp.

References DefaultAxisAlignedBoxSceneQuery, Ogre::AxisAlignedBoxSceneQuery::setBox(), and Ogre::SceneQuery::setQueryMask().

Referenced by findShadowCastersForLight().

Animation * Ogre::SceneManager::createAnimation | ( | const String & | name,
|  | Real | length
| ) | `[virtual]`

Creates an animation which can be used to animate scene nodes.

Remarks:
  An animation is a collection of 'tracks' which over time change the position / orientation of Node objects. In this case, the animation will likely have tracks to modify the position / orientation of SceneNode objects, e.g. to make objects move along a path.

  You don't need to use an Animation object to move objects around - you can do it yourself using the methods of the Node in your FrameListener class. However, when you need relatively complex scripted animation, this is the class to use since it will interpolate between keyframes for you and generally make the whole process easier to manage.

  A single animation can affect multiple Node objects (each AnimationTrack affects a single Node). In addition, through animation blending a single Node can be affected by multiple animations, athough this is more useful when performing skeletal animation (see Skeleton::createAnimation).

  Note that whilst it uses the same classes, the animations created here are kept separate from the skeletal animations of meshes (each Skeleton owns those animations).

Parameters:

  name | The name of the animation, must be unique within this SceneManager.
  length | The total length of the animation.

Definition at line 2162 of file OgreSceneManager.cpp.

References Except, mAnimationsList, Ogre::Real, and Ogre::String.

AnimationState * Ogre::SceneManager::createAnimationState | ( | const String & | animName | ) | `[virtual]`

Create an AnimationState object for managing application of animations.

Remarks:
  You can create Animation objects for animating SceneNode obejcts using the createAnimation method. However, in order to actually apply those animations you have to call methods on Node and Animation in a particular order (namely Node::resetToInitialState and Animation::apply). To make this easier and to help track the current time position of animations, the AnimationState object is provided. So if you don't want to control animation application manually, call this method, update the returned object as you like every frame and let SceneManager apply the animation state for you.

  Remember, AnimationState objects are disabled by default at creation time. Turn them on when you want them using their setEnabled method.

  Note that any SceneNode affected by this automatic animation will have it's state reset to it's initial position before application of the animation. Unless specifically modified using Node::setInitialState the Node assumes it's initial state is at the origin. If you want the base state of the SceneNode to be elsewhere, make your changes to the node using the standard transform methods, then call setInitialState to 'bake' this reference position into the node.

Parameters:

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

Definition at line 2238 of file OgreSceneManager.cpp.

References Except, getAnimation(), Ogre::Animation::getLength(), mAnimationStates, and Ogre::String.

BillboardSet * Ogre::SceneManager::createBillboardSet | ( | const String & | name,
|  | unsigned int | poolSize = 20
| ) | `[virtual]`

Creates a new BillboardSet for use with this scene manager.

Remarks:
  This method creates a new BillboardSet which is registered with the SceneManager. The SceneManager will destroy this object when it shuts down or when the SceneManager::clearScene method is called, so the caller does not have to worry about destroying this object (in fact, it definitely should not do this).

  See the BillboardSet documentations for full details of the returned class.

Parameters:

  name | The name to give to this billboard set. Must be unique.
  poolSize | The initial size of the pool of billboards (see BillboardSet for more information)

See also:
  BillboardSet

Definition at line 2100 of file OgreSceneManager.cpp.

References Except, mBillboardSets, and Ogre::String.

Camera * Ogre::SceneManager::createCamera | ( | const String & | name | ) | `[virtual]`

Creates a camera to be managed by this scene manager.

Remarks:
  This camera must be added to the scene at a later time using the attachObject method of the SceneNode class.

Parameters:

  name | Name to give the new camera.

Reimplemented in Ogre::OctreeSceneManager, and Ogre::TerrainSceneManager.

Definition at line 150 of file OgreSceneManager.cpp.

References Except, mCameras, and Ogre::String.

Referenced by createShadowTextures().

Entity * Ogre::SceneManager::createEntity | ( | const String & | entityName,
|  | PrefabType | ptype
| ) | `[virtual]`

Create an Entity (instance of a discrete mesh) from a range of prefab shapes.

Parameters:

  entityName | The name to be given to the entity (must be unique).
  ptype | The prefab type.

Definition at line 349 of file OgreSceneManager.cpp.

References createEntity(), PT_PLANE, and Ogre::String.

Entity * Ogre::SceneManager::createEntity | ( | const String & | entityName,
|  | const String & | meshName
| ) | `[virtual]`

Create an Entity (instance of a discrete mesh).

Parameters:

  entityName | The name to be given to the entity (must be unique).
  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.

Definition at line 363 of file OgreSceneManager.cpp.

References Except, mEntities, and Ogre::String.

Referenced by Ogre::Entity::clone(), createEntity(), Ogre::OverlayManager::parseNewMesh(), setSkyBox(), setSkyDome(), and setSkyPlane().

IntersectionSceneQuery * Ogre::SceneManager::createIntersectionQuery | ( | unsigned long | mask = 0xFFFFFFFF | ) | `[virtual]`

Creates an IntersectionSceneQuery for this scene manager.

Remarks:
  This method creates a new instance of a query object for locating intersecting objects. See SceneQuery and IntersectionSceneQuery for full details.

  The instance returned from this method must be destroyed by calling SceneManager::destroyQuery when it is no longer required.

Parameters:

  mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details.

Reimplemented in Ogre::BspSceneManager, and Ogre::OctreeSceneManager.

Definition at line 3742 of file OgreSceneManager.cpp.

References DefaultIntersectionSceneQuery, and Ogre::SceneQuery::setQueryMask().

Light * Ogre::SceneManager::createLight | ( | const String & | name | ) | `[virtual]`

Creates a light for use in the scene.

Remarks:
  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 manages their existence.

Parameters:

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

Definition at line 231 of file OgreSceneManager.cpp.

References Except, mLights, and Ogre::String.

Material * Ogre::SceneManager::createMaterial | ( | const String & | name | ) | `[virtual]`

Creates a new material with default settings with the specified name.

See also:
  SceneManager::getDefaultMaterialSettings

Definition at line 486 of file OgreSceneManager.cpp.

References Ogre::String.

Referenced by Ogre::Quake3Shader::createAsMaterial(), Ogre::BspLevel::loadQuake3Level(), and Ogre::TerrainSceneManager::setupTerrainMaterial().

Overlay * Ogre::SceneManager::createOverlay | ( | const String & | name,
|  | ushort | zorder = 100
| ) | `[virtual]`

Creates a new Overlay.

Remarks:
  Overlays can be used to render heads-up-displays (HUDs), menu systems, cockpits and any other 2D or 3D object you need to appear above the rest of the scene. See the Overlay class for more information.

  NOTE: after creation, the Overlay is initially hidden. You can create as many overlays as you like ready to be displayed whenever. Just call Overlay::show to display the overlay.

Parameters:

  name | The name to give the overlay, must be unique.
  zorder | The zorder of the overlay relative to it's peers, higher zorders appear on top of lower ones.

Definition at line 2366 of file OgreSceneManager.cpp.

References Ogre::Overlay::setZOrder(), Ogre::String, and Ogre::ushort.

PlaneBoundedVolumeListSceneQuery * Ogre::SceneManager::createPlaneBoundedVolumeQuery | ( | const PlaneBoundedVolumeList & | volumes,
|  | unsigned long | mask = 0xFFFFFFFF
| ) | `[virtual]`

Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.

Remarks:
  This method creates a new instance of a query object for this scene manager, for a region enclosed by a set of planes (normals pointing inwards). See SceneQuery and PlaneBoundedVolumeListSceneQuery for full details.

  The instance returned from this method must be destroyed by calling SceneManager::destroyQuery when it is no longer required.

Parameters:

  volumes | Details of the volumes which describe the region for this query.
  mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details.

Reimplemented in Ogre::OctreeSceneManager.

Definition at line 3722 of file OgreSceneManager.cpp.

References DefaultPlaneBoundedVolumeListSceneQuery, Ogre::PlaneBoundedVolumeList, Ogre::SceneQuery::setQueryMask(), and Ogre::PlaneBoundedVolumeListSceneQuery::setVolumes().

RaySceneQuery * Ogre::SceneManager::createRayQuery | ( | const Ray & | ray,
|  | unsigned long | mask = 0xFFFFFFFF
| ) | `[virtual]`

Creates a RaySceneQuery for this scene manager.

Remarks:
  This method creates a new instance of a query object for this scene manager, looking for objects which fall along a ray. See SceneQuery and RaySceneQuery for full details.

  The instance returned from this method must be destroyed by calling SceneManager::destroyQuery when it is no longer required.

Parameters:

  ray | Details of the ray which describes the region for this query.
  mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details.

Reimplemented in Ogre::OctreeSceneManager, and Ogre::TerrainSceneManager.

Definition at line 3733 of file OgreSceneManager.cpp.

References DefaultRaySceneQuery, Ogre::SceneQuery::setQueryMask(), and Ogre::RaySceneQuery::setRay().

SceneNode * Ogre::SceneManager::createSceneNode | ( | const String & | name | ) | `[virtual]`

Creates an instance of a SceneNode with a given name.

Remarks:
  Note that this does not add the SceneNode to the scene hierarchy. This method is for convenience, since it allows an instance to be created for which the SceneManager is responsible for allocating and releasing memory, which is convenient in complex scenes.

  To include the returned SceneNode in the scene, use the addChild method of the SceneNode which is to be it's parent.

  Note that this method takes a name parameter, which makes the node easier to retrieve directly again later.

Reimplemented in Ogre::BspSceneManager, and Ogre::OctreeSceneManager.

Definition at line 520 of file OgreSceneManager.cpp.

References Except, Ogre::Node::getName(), mSceneNodes, and Ogre::String.

SceneNode * Ogre::SceneManager::createSceneNode | ( | void |  | ) | `[virtual]`

Creates an instance of a SceneNode.

Remarks:
  Note that this does not add the SceneNode to the scene hierarchy. This method is for convenience, since it allows an instance to be created for which the SceneManager is responsible for allocating and releasing memory, which is convenient in complex scenes.

  To include the returned SceneNode in the scene, use the addChild method of the SceneNode which is to be it's parent.

  Note 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.

Reimplemented in Ogre::BspSceneManager, and Ogre::OctreeSceneManager.

Definition at line 512 of file OgreSceneManager.cpp.

References Ogre::Node::getName(), and mSceneNodes.

Referenced by Ogre::SceneNode::createChildImpl(), Ogre::OverlayManager::parseNewMesh(), setSkyBox(), setSkyDome(), and setSkyPlane().

void Ogre::SceneManager::createShadowTextures | ( | unsigned short | size,
|  | unsigned short | count
| ) | `[protected, virtual]`

Internal method for creating shadow textures (texture-based shadows).

Definition at line 3481 of file OgreSceneManager.cpp.

References Ogre::RenderTarget::addViewport(), createCamera(), Ogre::RenderSystem::createRenderTexture(), Ogre::Pass::createTextureUnitState(), Ogre::RenderSystem::destroyRenderTexture(), Ogre::Viewport::getCamera(), Ogre::RenderTarget::getName(), Ogre::Technique::getPass(), Ogre::Material::getTechnique(), Ogre::RenderTarget::getViewport(), mDestRenderSystem, mShadowTechnique, mShadowTextureCount, mShadowTextures, mShadowTextureSize, Ogre::Pass::removeAllTextureUnitStates(), removeCamera(), Ogre::Frustum::setAspectRatio(), Ogre::RenderTarget::setAutoUpdated(), Ogre::Viewport::setClearEveryFrame(), Ogre::Viewport::setOverlaysEnabled(), Ogre::TextureUnitState::setProjectiveTexturing(), Ogre::TextureUnitState::setTextureAddressingMode(), Ogre::SHADOWTYPE_TEXTURE_MODULATIVE, Ogre::String, and Ogre::Material::touch().

Referenced by setShadowTechnique(), setShadowTextureCount(), setShadowTextureSettings(), and setShadowTextureSize().

Mesh * Ogre::SceneManager::createSkyboxPlane | ( | BoxPlane | bp,
|  | Real | distance,
|  | const Quaternion & | orientation
| ) | `[protected]`

| Definition at line 1161 of file OgreSceneManager.cpp. References BP_BACK, BP_DOWN, BP_FRONT, BP_LEFT, BP_RIGHT, BP_UP, Ogre::MeshManager::createPlane(), Ogre::Plane::d, Ogre::ResourceManager::getByName(), Ogre::Plane::normal, Ogre::Real, Ogre::String, and Ogre::ResourceManager::unload(). Referenced by setSkyBox().

Mesh * Ogre::SceneManager::createSkydomePlane | ( | BoxPlane | bp,
|  | Real | curvature,
|  | Real | tiling,
|  | Real | distance,
|  | const Quaternion & | orientation,
|  | int | xsegments = 16,
|  | int | ysegments = 16,
|  | int | ySegmentsToKeep = -1
| ) | `[protected]`

| Definition at line 1231 of file OgreSceneManager.cpp. References BP_BACK, BP_DOWN, BP_FRONT, BP_LEFT, BP_RIGHT, BP_UP, Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::Plane::d, Ogre::ResourceManager::getByName(), Ogre::Plane::normal, Ogre::Real, Ogre::String, and Ogre::ResourceManager::unload(). Referenced by setSkyDome().

SphereSceneQuery * Ogre::SceneManager::createSphereQuery | ( | const Sphere & | sphere,
|  | unsigned long | mask = 0xFFFFFFFF
| ) | `[virtual]`

Creates a SphereSceneQuery for this scene manager.

Remarks:
  This method creates a new instance of a query object for this scene manager, for a spherical region. See SceneQuery and SphereSceneQuery for full details.

  The instance returned from this method must be destroyed by calling SceneManager::destroyQuery when it is no longer required.

Parameters:

  sphere | Details of the sphere which describes the region for this query.
  mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details.

Definition at line 3713 of file OgreSceneManager.cpp.

References DefaultSphereSceneQuery, Ogre::SceneQuery::setQueryMask(), and Ogre::SphereSceneQuery::setSphere().

Referenced by findShadowCastersForLight().

Pass * Ogre::SceneManager::deriveShadowCasterPass | ( | Pass * | pass | ) | `[protected]`

Internal method for turning a regular pass into a shadow caster pass.

Remarks:
  This is only used for texture shadows, basically we're trying to ensure that objects are rendered solid black. This method will usually return the standard solid black pass for all fixed function passes, but will merge in a vertex program and fudge the AutpoParamDataSource to set black lighting for passes with vertex programs.

Definition at line 3038 of file OgreSceneManager.cpp.

References Ogre::Pass::getShadowCasterVertexProgramName(), Ogre::Pass::getShadowCasterVertexProgramParameters(), Ogre::Pass::getVertexProgram(), Ogre::Pass::hasVertexProgram(), Ogre::Resource::isLoaded(), Ogre::GpuProgram::load(), mShadowCasterPlainBlackPass, Ogre::Pass::setVertexProgram(), Ogre::Pass::setVertexProgramParameters(), and Ogre::SHADOWTYPE_TEXTURE_MODULATIVE.

Referenced by setPass().

Pass * Ogre::SceneManager::deriveShadowReceiverPass | ( | Pass * | pass | ) | `[protected]`

Internal method for turning a regular pass into a shadow receiver pass.

Remarks:
  This is only used for texture shadows, basically we're trying to ensure that objects are rendered with a projective texture. This method will usually return a standard single-texture pass for all fixed function passes, but will merge in a vertex program for passes with vertex programs.

Definition at line 3080 of file OgreSceneManager.cpp.

References Ogre::Pass::getShadowReceiverVertexProgramName(), Ogre::Pass::getShadowReceiverVertexProgramParameters(), Ogre::Pass::getVertexProgram(), Ogre::Pass::hasVertexProgram(), Ogre::Resource::isLoaded(), Ogre::GpuProgram::load(), mShadowReceiverPass, Ogre::Pass::setVertexProgram(), Ogre::Pass::setVertexProgramParameters(), and Ogre::SHADOWTYPE_TEXTURE_MODULATIVE.

Referenced by setPass().

void Ogre::SceneManager::destroyAllAnimations | ( | void |  | ) | `[virtual]`

| Removes all animations created using this SceneManager. Definition at line 2224 of file OgreSceneManager.cpp. References destroyAllAnimationStates(), and mAnimationsList. Referenced by clearScene().

void Ogre::SceneManager::destroyAllAnimationStates | ( | void |  | ) | `[virtual]`

| Removes all animation states created using this SceneManager. Definition at line 2306 of file OgreSceneManager.cpp. References mAnimationStates. Referenced by destroyAllAnimations().

void Ogre::SceneManager::destroyAllOverlays | ( | void |  | ) | `[virtual]`

| Destroys all the overlays. Definition at line 2442 of file OgreSceneManager.cpp.

void Ogre::SceneManager::destroyAnimation | ( | const String & | name | ) | `[virtual]`

Destroys an Animation.

Remarks:
  You should ensure that none of your code is referencing this animation objects since the memory will be freed.

Definition at line 2190 of file OgreSceneManager.cpp.

References Except, mAnimationsList, mAnimationStates, and Ogre::String.

void Ogre::SceneManager::destroyAnimationState | ( | const String & | name | ) | `[virtual]`

Destroys an AnimationState.

Remarks:
  You should ensure that none of your code is referencing this animation state object since the memory will be freed.

Definition at line 2290 of file OgreSceneManager.cpp.

References Except, mAnimationStates, and Ogre::String.

void Ogre::SceneManager::destroyOverlay | ( | const String & | name | ) | `[virtual]`

| Destroys the named Overlay. Definition at line 2416 of file OgreSceneManager.cpp. References Except, and Ogre::String.

void Ogre::SceneManager::destroyQuery | ( | SceneQuery * | query | ) | `[virtual]`

| Destroys a scene query of any type. Definition at line 3750 of file OgreSceneManager.cpp.

void Ogre::SceneManager::destroySceneNode | ( | const String & | name | ) | `[virtual]`

Destroys a SceneNode with a given name.

Remarks:
  This allows you to physically delete an individual SceneNode if you want to. Note that this is not normally recommended, it's better to allow SceneManager to delete the nodes when the scene is cleared.

Reimplemented in Ogre::OctreeSceneManager.

Definition at line 536 of file OgreSceneManager.cpp.

References Except, Ogre::SceneNode::getAutoTrackTarget(), mAutoTrackingSceneNodes, mSceneNodes, Ogre::SceneNode::setAutoTracking(), and Ogre::String.

Referenced by Ogre::SceneNode::removeAndDestroyAllChildren(), and Ogre::SceneNode::removeAndDestroyChild().

void Ogre::SceneManager::findLightsAffectingFrustum | ( | const Camera * | camera | ) | `[protected, virtual]`

Internal method for locating a list of lights which could be affecting the frustum.

Remarks:
  Custom scene managers are encouraged to override this method to make use of their scene partitioning scheme to more efficiently locate lights, and to eliminate lights which may be occluded by word geometry.

Definition at line 2682 of file OgreSceneManager.cpp.

References Ogre::Light::getAttenuationRange(), Ogre::Light::getDerivedPosition(), Ogre::Light::getType(), Ogre::Frustum::isVisible(), mLights, mLightsAffectingFrustum, Ogre::Sphere::setCenter(), and Ogre::Sphere::setRadius().

Referenced by _renderScene().

const SceneManager::ShadowCasterList & Ogre::SceneManager::findShadowCastersForLight | ( | const Light * | light,
|  | const Camera * | camera
| ) | `[protected, virtual]`

Internal method for locating a list of shadow casters which could be affecting the frustum for a given light.

Remarks:
  Custom scene managers are encouraged to override this method to add optimisations, and to add their own custom shadow casters (perhaps for world geometry)

Definition at line 2771 of file OgreSceneManager.cpp.

References Ogre::Light::_getFrustumClipVolumes(), createAABBQuery(), createSphereQuery(), Ogre::RegionSceneQuery::execute(), Ogre::Light::getAttenuationRange(), Ogre::Light::getDerivedPosition(), Ogre::Light::getDirection(), Ogre::Light::getPosition(), Ogre::Light::getType(), Ogre::Frustum::getWorldSpaceCorners(), Ogre::Frustum::isVisible(), Ogre::Vector3::makeCeil(), Ogre::Vector3::makeFloor(), mShadowCasterAABBQuery, mShadowCasterList, mShadowCasterQueryListener, mShadowCasterSphereQuery, mShadowDirLightExtrudeDist, mShadowFarDistSquared, Ogre::PlaneBoundedVolumeList, Ogre::SceneManager::ShadowCasterSceneQueryListener::prepare(), Ogre::AxisAlignedBoxSceneQuery::setBox(), Ogre::AxisAlignedBox::setExtents(), and Ogre::SphereSceneQuery::setSphere().

Referenced by renderShadowVolumesToStencil().

bool Ogre::SceneManager::fireRenderQueueEnded | ( | RenderQueueGroupID | id | ) | `[protected]`

| Internal method for firing the queue end event, returns true if queue is to be repeated. Definition at line 2584 of file OgreSceneManager.cpp. References mRenderQueueListeners, and Ogre::RenderQueueGroupID. Referenced by _renderVisibleObjects().

bool Ogre::SceneManager::fireRenderQueueStarted | ( | RenderQueueGroupID | id | ) | `[protected]`

| Internal method for firing the queue start event, returns true if queue is to be skipped. Definition at line 2571 of file OgreSceneManager.cpp. References mRenderQueueListeners, and Ogre::RenderQueueGroupID. Referenced by _renderVisibleObjects().

const ColourValue & Ogre::SceneManager::getAmbientLight | ( | void |  | ) | const

| Returns the ambient light level to be used for the scene. Definition at line 2052 of file OgreSceneManager.cpp. References mAmbientLight.

Animation * Ogre::SceneManager::getAnimation | ( | const String & | name | ) | const`[virtual]`

| Looks up an Animation object previously created with createAnimation. Definition at line 2178 of file OgreSceneManager.cpp. References Except, mAnimationsList, and Ogre::String. Referenced by _applySceneAnimations(), and createAnimationState().

AnimationIterator Ogre::SceneManager::getAnimationIterator | ( | void |  | ) |

| Returns a specialised MapIterator over all animations in the scene. Definition at line 1421 of file OgreSceneManager.h.

AnimationState * Ogre::SceneManager::getAnimationState | ( | const String & | animName | ) | `[virtual]`

| Retrieves animation state as previously created using createAnimationState. Definition at line 2275 of file OgreSceneManager.cpp. References Except, mAnimationStates, and Ogre::String.

AnimationStateIterator Ogre::SceneManager::getAnimationStateIterator | ( | void |  | ) |

| Returns a specialised MapIterator over all animation states in the scene. Definition at line 1425 of file OgreSceneManager.h. References Ogre::AnimationStateIterator.

BillboardSet * Ogre::SceneManager::getBillboardSet | ( | const String & | name | ) | `[virtual]`

| Retrieves a pointer to the named BillboardSet. Definition at line 2117 of file OgreSceneManager.cpp. References mBillboardSets, and Ogre::String.

BillboardSetIterator Ogre::SceneManager::getBillboardSetIterator | ( | void |  | ) |

| Returns a specialised MapIterator over all BillboardSets in the scene. Definition at line 1417 of file OgreSceneManager.h.

Camera * Ogre::SceneManager::getCamera | ( | const String & | name | ) | `[virtual]`

| Retrieves a pointer to the named camera. Definition at line 169 of file OgreSceneManager.cpp. References mCameras, and Ogre::String. Referenced by Ogre::OctreeSceneManager::_findVisibleObjects().

CameraIterator Ogre::SceneManager::getCameraIterator | ( | void |  | ) |

| Returns a specialised MapIterator over all cameras in the scene. Definition at line 1413 of file OgreSceneManager.h.

Material * Ogre::SceneManager::getDefaultMaterialSettings | ( | void |  | ) | `[virtual]`

Returns a pointer to the default Material settings.

Remarks:
  Ogre comes configured with a set of defaults for newly created materials. If you wish to have a different set of defaults, simply call this method and change the returned Material's settings. All materials created from then on will be configured with the new defaults you have specified.

  The default settings begin as a single Technique with a single, non-programmable Pass:

  - ambient = ColourValue::White
  - diffuse = ColourValue::White
  - specular = ColourValue::Black
  - emmissive = ColourValue::Black
  - shininess = 0
  - No texture unit settings (& hence no textures)
  - SourceBlendFactor = SBF_ONE
  - DestBlendFactor = SBF_ZERO (no blend, replace with new colour)
  - Depth buffer checking on
  - Depth buffer writing on
  - Depth buffer comparison function = CMPF_LESS_EQUAL
  - Colour buffer writing on for all channels
  - Culling mode = CULL_CLOCKWISE
  - Ambient lighting = ColourValue(0.5, 0.5, 0.5) (mid-grey)
  - Dynamic lighting enabled
  - Gourad shading mode
  - Bilinear texture filtering

Definition at line 495 of file OgreSceneManager.cpp.

Entity * Ogre::SceneManager::getEntity | ( | const String & | name | ) | `[virtual]`

| Retrieves a pointer to the named Entity. Definition at line 390 of file OgreSceneManager.cpp. References mEntities, and Ogre::String.

EntityIterator Ogre::SceneManager::getEntityIterator | ( | void |  | ) |

| Returns a specialised MapIterator over all entities in the scene. Definition at line 1409 of file OgreSceneManager.h. Referenced by Ogre::OctreeIntersectionSceneQuery::execute().

const ColourValue & Ogre::SceneManager::getFogColour | ( | void |  | ) | const`[virtual]`

| Returns the fog colour for the scene. Definition at line 2080 of file OgreSceneManager.cpp. References mFogColour. Referenced by Ogre::TerrainSceneManager::setupTerrainMaterial().

Real Ogre::SceneManager::getFogDensity | ( | void |  | ) | const`[virtual]`

| Returns the fog density for the scene. Definition at line 2095 of file OgreSceneManager.cpp. References mFogDensity, and Ogre::Real. Referenced by Ogre::TerrainSceneManager::setupTerrainMaterial().

Real Ogre::SceneManager::getFogEnd | ( | void |  | ) | const`[virtual]`

| Returns the fog end distance for the scene. Definition at line 2090 of file OgreSceneManager.cpp. References mFogEnd, and Ogre::Real.

FogMode Ogre::SceneManager::getFogMode | ( | void |  | ) | const`[virtual]`

| Returns the fog mode for the scene. Definition at line 2075 of file OgreSceneManager.cpp. References Ogre::FogMode, and mFogMode. Referenced by Ogre::TerrainSceneManager::setupTerrainMaterial().

Real Ogre::SceneManager::getFogStart | ( | void |  | ) | const`[virtual]`

| Returns the fog start distance for the scene. Definition at line 2085 of file OgreSceneManager.cpp. References mFogStart, and Ogre::Real.

Light * Ogre::SceneManager::getLight | ( | const String & | name | ) | `[virtual]`

| Returns a pointer to the named Light which has previously been added to the scene. Definition at line 248 of file OgreSceneManager.cpp. References mLights, and Ogre::String.

LightIterator Ogre::SceneManager::getLightIterator | ( | void |  | ) |

| Returns a specialised MapIterator over all lights in the scene. Definition at line 1405 of file OgreSceneManager.h.

Material * Ogre::SceneManager::getMaterial | ( | int | handle | ) | `[virtual]`

Gets a reference to a material by it's numerical handle.

Remarks:
  Numerical handles are assigned on creation of a material, or when a copy is registered with the SceneManager using the addMaterial method.

Definition at line 506 of file OgreSceneManager.cpp.

Material * Ogre::SceneManager::getMaterial | ( | const String & | name | ) | `[virtual]`

| Gets a reference to a named Material. Definition at line 500 of file OgreSceneManager.cpp. References Ogre::String. Referenced by Ogre::BspLevel::loadQuake3Level(), Ogre::BspSceneManager::processVisibleLeaf(), setSkyBox(), setSkyDome(), and setSkyPlane().

virtual bool Ogre::SceneManager::getOption | ( | const String & | strKey,
|  | void * | pDestValue
| ) | `[virtual]`

Method for getting the value of an implementation-specific Scene Manager option.

Parameters:

  strKey | The name of the option
  pDestValue | A pointer to a memory location where the value will be copied. Currently, the memory will be allocated by the scene manager, but this may change

Returns:
  On success, true is returned and pDestValue points to the value of the given option.

  On failiure, false is returned and pDestValue is set to NULL.

Reimplemented in Ogre::OctreeSceneManager.

Definition at line 813 of file OgreSceneManager.h.

References Ogre::String.

virtual bool Ogre::SceneManager::getOptionKeys | ( | std::list< String > & | refKeys | ) | `[virtual]`

Method for getting all the implementation-specific options of the scene manager.

Parameters:

  refKeys | A reference to a list that will be filled with all the available options.

Returns:
  On success, true is returned. On failiure, false is returned.

Reimplemented in Ogre::OctreeSceneManager.

Definition at line 847 of file OgreSceneManager.h.

virtual bool Ogre::SceneManager::getOptionValues | ( | const String & | strKey,
|  | std::list< SDDataChunk > & | refValueList
| ) | `[virtual]`

Method for getting all possible values for a specific option.

When this list is too large (i.e. the option expects, for example, a float), the return value will be true, but the list will contain just one element whose size will be set to 0. Otherwise, the list will be filled with all the possible values the option can accept.

Parameters:

  strKey | The name of the option to get the values for.
  refValueList | A reference to a list that will be filled with the available values.

Returns:
  On success (the option exists), true is returned.

  On failiure, false is returned.

Reimplemented in Ogre::OctreeSceneManager.

Definition at line 839 of file OgreSceneManager.h.

References Ogre::String.

Overlay * Ogre::SceneManager::getOverlay | ( | const String & | name | ) | `[virtual]`

| Gets a pointer to the named Overlay, previously created using createOverlay. Definition at line 2391 of file OgreSceneManager.cpp. References Except, and Ogre::String.

RenderQueue * Ogre::SceneManager::getRenderQueue | ( | void |  | ) | `[protected, virtual]`

| Retrieves the internal render queue. Definition at line 131 of file OgreSceneManager.cpp. References initRenderQueue(), and mRenderQueue. Referenced by _findVisibleObjects(), Ogre::OctreeSceneManager::_findVisibleObjects(), _queueSkiesForRendering(), _renderScene(), _renderVisibleObjects(), Ogre::BspSceneManager::processVisibleLeaf(), and setShadowTechnique().

SceneNode * Ogre::SceneManager::getRootSceneNode | ( | void |  | ) | const`[virtual]`

Gets the SceneNode at the root of the scene hierarchy.

Remarks:
  The entire scene is held as a hierarchy of nodes, which allows things like relative transforms, general changes in rendering state etc (See the SceneNode class for more info). In this basic SceneManager class, the application using Ogre is free to structure this hierarchy however it likes, since it has no real significance apart from making transforms relative to each node (more specialised subclasses will provide utility methods for building specific node structures e.g. loading a BSP tree).

  However, in all cases there is only ever one root node of the hierarchy, and this method returns a pointer to it.

Definition at line 570 of file OgreSceneManager.cpp.

References mSceneRoot.

Referenced by Ogre::TerrainSceneManager::setupTerrainPages().

SceneNode * Ogre::SceneManager::getSceneNode | ( | const String & | name | ) | const`[virtual]`

Retrieves a named SceneNode from the scene graph.

Remarks:
  If you chose to name a SceneNode as you created it, or if you happened to make a note of the generated name, you can look it up wherever it is in the scene graph using this method.

Definition at line 575 of file OgreSceneManager.cpp.

References Except, mSceneNodes, and Ogre::String.

Referenced by Ogre::OctreeSceneManager::destroySceneNode().

const ColourValue & Ogre::SceneManager::getShadowColour | ( | void |  | ) | const`[virtual]`

Get the colour used to modulate areas in shadow.

Remarks:
  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.

Definition at line 3419 of file OgreSceneManager.cpp.

References mShadowColour.

Real Ogre::SceneManager::getShadowDirectionalLightExtrusionDistance | ( | void |  | ) | const`[virtual]`

| Gets the distance a shadow volume is extruded for a directional light. Definition at line 3435 of file OgreSceneManager.cpp. References mShadowDirLightExtrudeDist, and Ogre::Real.

virtual Real Ogre::SceneManager::getShadowFarDistance | ( | void |  | ) | const`[virtual]`

| Gets the maximum distance away from the camera that shadows will be visible. Definition at line 1519 of file OgreSceneManager.h. References Ogre::Real.

virtual size_t Ogre::SceneManager::getShadowIndexBufferSize | ( | void |  | ) | const`[virtual]`

| Get the size of the shadow index buffer. Definition at line 1549 of file OgreSceneManager.h.

virtual ShadowTechnique Ogre::SceneManager::getShadowTechnique | ( | void |  | ) | const`[virtual]`

| Gets the current shadow technique. Definition at line 1464 of file OgreSceneManager.h. References Ogre::ShadowTechnique. Referenced by Ogre::Entity::updateAnimation().

unsigned short Ogre::SceneManager::getShadowTextureCount | ( | void |  | ) | const

| Get the number of the textures allocated for texture based shadows. Definition at line 1569 of file OgreSceneManager.h.

unsigned short Ogre::SceneManager::getShadowTextureSize | ( | void |  | ) | const

| Get the size of the texture used for texture based shadows. Definition at line 1559 of file OgreSceneManager.h.

bool Ogre::SceneManager::getShowBoundingBoxes | ( |  | ) | const

| Returns if all bounding boxes of scene nodes are to be displayed. Definition at line 2609 of file OgreSceneManager.cpp. References mShowBoundingBoxes. Referenced by Ogre::SceneNode::_findVisibleObjects().

virtual bool Ogre::SceneManager::getShowDebugShadows | ( | void |  | ) | const`[virtual]`

| Are debug shadows shown? Definition at line 1469 of file OgreSceneManager.h.

ViewPoint Ogre::SceneManager::getSuggestedViewpoint | ( | bool | random = false | ) | `[virtual]`

Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed.

Remarks:
  Typically this method returns the origin unless a) world geometry has been loaded using SceneManager::setWorldGeometry and b) that world geometry has suggested 'start' points. If there is more than one viewpoint which the scene manager can suggest, it will always suggest the first one unless the random parameter is true.

Parameters:

  random | If true, and there is more than one possible suggestion, a random one will be used. If false the same one will always be suggested.

Returns:
  On success, true is returned.

  On failiure, false is returned.

Reimplemented in Ogre::BspSceneManager.

Definition at line 2057 of file OgreSceneManager.cpp.

References Ogre::ViewPoint::orientation, and Ogre::ViewPoint::position.

virtual bool Ogre::SceneManager::hasOption | ( | const String & | strKey | ) | const`[virtual]`

Method for verifying wether the scene manager has an implementation-specific option.

Parameters:

  strKey | The name of the option to check for.

Returns:
  If the scene manager contains the given option, true is returned.

Remarks:
  If it does not, false is returned.

Definition at line 824 of file OgreSceneManager.h.

References Ogre::String.

void Ogre::SceneManager::initRenderQueue | ( | void |  | ) | `[protected, virtual]`

Internal method for initialising the render queue.

Remarks:
  Subclasses can use this to install their own RenderQueue implementation.

Definition at line 140 of file OgreSceneManager.cpp.

References Ogre::RenderQueue::getQueueGroup(), mRenderQueue, Ogre::RENDER_QUEUE_BACKGROUND, Ogre::RENDER_QUEUE_OVERLAY, Ogre::RENDER_QUEUE_SKIES_EARLY, Ogre::RENDER_QUEUE_SKIES_LATE, and Ogre::RenderQueueGroup::setShadowsEnabled().

Referenced by getRenderQueue().

void Ogre::SceneManager::initShadowVolumeMaterials | ( | void |  | ) | `[protected, virtual]`

Internal method for setting up materials for shadows.

Definition at line 2842 of file OgreSceneManager.cpp.

References Ogre::Material::compile(), Ogre::Pass::createTextureUnitState(), Ogre::CULL_NONE, Ogre::RenderSystem::getCapabilities(), Ogre::Technique::getPass(), Ogre::Material::getTechnique(), Ogre::Pass::getVertexProgramParameters(), Ogre::RenderSystemCapabilities::hasCapability(), Ogre::LBS_CURRENT, Ogre::LBS_MANUAL, Ogre::LBX_MODULATE, Ogre::Image::load(), Ogre::Texture::loadImage(), mDestRenderSystem, mFiniteExtrusionParams, mFullScreenQuad, mInfiniteExtrusionParams, mShadowCasterPlainBlackPass, mShadowColour, mShadowDebugPass, mShadowMaterialInitDone, mShadowModulativePass, mShadowReceiverPass, mShadowStencilPass, Ogre::RSC_VERTEX_PROGRAM, Ogre::SBF_DEST_COLOUR, Ogre::SBF_ZERO, Ogre::SBT_ADD, Ogre::Pass::setAmbient(), Ogre::TextureUnitState::setColourOperationEx(), Ogre::Rectangle2D::setCorners(), Ogre::Pass::setCullingMode(), Ogre::Pass::setDepthCheckEnabled(), Ogre::Pass::setDepthWriteEnabled(), Ogre::Pass::setDiffuse(), Ogre::Pass::setLightingEnabled(), Ogre::Pass::setSceneBlending(), Ogre::Pass::setSelfIllumination(), Ogre::Pass::setSpecular(), Ogre::TextureUnitState::setTextureAddressingMode(), Ogre::Pass::setVertexProgram(), Ogre::SPOT_SHADOW_FADE_PNG, SPOT_SHADOW_FADE_PNG_SIZE, and Ogre::TEX_TYPE_2D.

Referenced by _renderScene(), and setShadowColour().

void Ogre::SceneManager::manualRender | ( | RenderOperation * | rend,
|  | Pass * | pass,
|  | Viewport * | vp,
|  | const Matrix4 & | worldMatrix,
|  | const Matrix4 & | viewMatrix,
|  | const Matrix4 & | projMatrix,
|  | bool | doBeginEndFrame = false
| ) | `[virtual]`

Manual rendering method, for advanced users only.

Remarks:
  This method allows you to send rendering commands through the pipeline on demand, bypassing OGRE's normal world processing. You should only use this if you really know what you're doing; OGRE does lots of things for you that you really should let it do. However, there are times where it may be useful to have this manual interface, for example overlaying something on top of the scene rendered by OGRE.

  Because this is an instant rendering method, timing is important. The best time to call it is from a RenderTargetListener event handler.

  Don't call this method a lot, it's designed for rare (1 or 2 times per frame) use. Calling it regularly per frame will cause frame rate drops!

Parameters:

  rend | A RenderOperation object describing the rendering op
  pass | The Pass to use for this render
  vp | Pointer to the viewport to render to
  worldMatrix | The transform to apply from object to world space
  viewMatrix | The transform to apply from world to view space
  projMatrix | The transform to apply from view to screen space
  doBeginEndFrame | If true, beginFrame() and endFrame() are called, otherwise not. You should leave this as false if you are calling this within the main render loop.

Definition at line 2345 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_beginFrame(), Ogre::RenderSystem::_endFrame(), Ogre::RenderSystem::_render(), Ogre::RenderSystem::_setProjectionMatrix(), Ogre::RenderSystem::_setViewMatrix(), Ogre::RenderSystem::_setViewport(), Ogre::RenderSystem::_setWorldMatrix(), mDestRenderSystem, and setPass().

void Ogre::SceneManager::prepareShadowTextures | ( | Camera * | cam,
|  | Viewport * | vp
| ) | `[protected, virtual]`

Internal method for preparing shadow textures ready for use in a regular render.

Definition at line 3561 of file OgreSceneManager.cpp.

References Ogre::Vector3::crossProduct(), Ogre::Vector3::dotProduct(), Ogre::FOG_LINEAR, Ogre::Quaternion::FromAxes(), Ogre::Viewport::getCamera(), Ogre::MovableObject::getCastShadows(), Ogre::Light::getDerivedDirection(), Ogre::Camera::getDerivedDirection(), Ogre::Light::getDerivedPosition(), Ogre::Camera::getDerivedPosition(), Ogre::Frustum::getNearClipDistance(), Ogre::Light::getSpotlightOuterAngle(), Ogre::Light::getType(), Ogre::RenderTarget::getViewport(), IlluminationRenderStage, IRS_RENDER_TO_TEXTURE, mIlluminationStage, mLightsAffectingFrustum, mShadowDirLightExtrudeDist, mShadowFarDist, mShadowReceiverPass, mShadowTechnique, mShadowTextureFadeEnd, mShadowTextureFadeStart, mShadowTextureOffset, mShadowTextures, mShadowTextureSize, Ogre::Vector3::normalise(), Ogre::PT_ORTHOGRAPHIC, Ogre::PT_PERSPECTIVE, Ogre::Real, Ogre::Viewport::setBackgroundColour(), Ogre::Camera::setDirection(), Ogre::Pass::setFog(), Ogre::Frustum::setFOVy(), Ogre::Frustum::setNearClipDistance(), Ogre::Camera::setOrientation(), Ogre::Camera::setPosition(), Ogre::Frustum::setProjectionType(), Ogre::SHADOWTYPE_TEXTURE_MODULATIVE, Ogre::RenderTarget::update(), Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

Referenced by _renderScene().

void Ogre::SceneManager::removeAllBillboardSets | ( | void |  | ) | `[virtual]`

Removes & destroys all BillboardSets.

Warning:
  Again, use caution since no BillboardSet must be referred to elsewhere e.g. attached to a SceneNode otherwise a crash is likely. Use clearScene if you are unsure (it clears SceneNode entries too.)

See also:
  SceneManager::clearScene

Definition at line 446 of file OgreSceneManager.cpp.

References mBillboardSets.

Referenced by clearScene().

void Ogre::SceneManager::removeAllCameras | ( | void |  | ) | `[virtual]`

| Removes (and destroys) all cameras from the scene. Definition at line 217 of file OgreSceneManager.cpp. References Ogre::RenderSystem::_notifyCameraRemoved(), mCameras, and mDestRenderSystem. Referenced by ~SceneManager().

void Ogre::SceneManager::removeAllEntities | ( | void |  | ) | `[virtual]`

Removes & destroys all Entities.

Warning:
  Again, use caution since no Entity must be referred to elsewhere e.g. attached to a SceneNode otherwise a crash is likely. Use clearScene if you are unsure (it clears SceneNode entries too.)

See also:
  SceneManager::clearScene

Definition at line 434 of file OgreSceneManager.cpp.

References mEntities.

Referenced by clearScene().

void Ogre::SceneManager::removeAllLights | ( | void |  | ) | `[virtual]`

| Removes and destroys all lights in the scene. Definition at line 292 of file OgreSceneManager.cpp. References mLights. Referenced by clearScene().

void Ogre::SceneManager::removeBillboardSet | ( | const String & | name | ) | `[virtual]`

Removes & destroys an BillboardSet from the SceneManager by name.

Warning:
  Must only be done if the BillboardSet is not attached to a SceneNode. It may be safer to wait to clear the whole scene. If you are unsure, use clearScene.

Definition at line 2146 of file OgreSceneManager.cpp.

References mBillboardSets, and Ogre::String.

void Ogre::SceneManager::removeBillboardSet | ( | BillboardSet * | set | ) | `[virtual]`

Removes & destroys an BillboardSet from the SceneManager.

Warning:
  Must only be done if the BillboardSet is not attached to a SceneNode. It may be safer to wait to clear the whole scene. If you are unsure, use clearScene.

Definition at line 2130 of file OgreSceneManager.cpp.

References mBillboardSets.

void Ogre::SceneManager::removeCamera | ( | const String & | name | ) | `[virtual]`

Removes a camera from the scene.

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

Definition at line 202 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_notifyCameraRemoved(), mCameras, mDestRenderSystem, and Ogre::String.

void Ogre::SceneManager::removeCamera | ( | Camera * | cam | ) | `[virtual]`

Removes a camera from the scene.

Remarks:
  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) are used.

Parameters:

  cam | Pointer to the camera to remove

Definition at line 183 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_notifyCameraRemoved(), mCameras, and mDestRenderSystem.

Referenced by createShadowTextures().

void Ogre::SceneManager::removeEntity | ( | const String & | name | ) | `[virtual]`

Removes & destroys an Entity from the SceneManager by name.

Warning:
  Must only be done if the Entity is not attached to a SceneNode. It may be safer to wait to clear the whole scene if you are unsure use clearScene.

See also:
  SceneManager::clearScene

Definition at line 421 of file OgreSceneManager.cpp.

References mEntities, and Ogre::String.

void Ogre::SceneManager::removeEntity | ( | Entity * | ent | ) | `[virtual]`

Removes & destroys an Entity from the SceneManager.

Warning:
  Must only be done if the Entity is not attached to a SceneNode. It may be safer to wait to clear the whole scene if you are unsure use clearScene.

See also:
  SceneManager::clearScene

Definition at line 404 of file OgreSceneManager.cpp.

References mEntities.

Referenced by setSkyBox(), setSkyDome(), and setSkyPlane().

void Ogre::SceneManager::removeLight | ( | Light * | light | ) | `[virtual]`

Removes the light from the scene and destroys it based on a pointer.

Remarks:
  Any pointers held to this light after calling this method will be invalid.

Definition at line 262 of file OgreSceneManager.cpp.

References mLights.

void Ogre::SceneManager::removeLight | ( | const String & | name | ) | `[virtual]`

Removes the named light from the scene and destroys it.

Remarks:
  Any pointers held to this light after calling this method will be invalid.

Definition at line 279 of file OgreSceneManager.cpp.

References mLights, and Ogre::String.

void Ogre::SceneManager::removeRenderQueueListener | ( | RenderQueueListener * | delListener | ) | `[virtual]`

| Removes a listener previously added with addRenderQueueListener. Definition at line 2556 of file OgreSceneManager.cpp. References mRenderQueueListeners.

void Ogre::SceneManager::renderAdditiveStencilShadowedQueueGroupObjects | ( | RenderQueueGroup * | group | ) | `[protected, virtual]`

Render a group with the added complexity of additive stencil shadows.

Definition at line 1367 of file OgreSceneManager.cpp.

References Ogre::RenderPriorityGroup::_getSolidPasses(), Ogre::RenderPriorityGroup::_getSolidPassesDecal(), Ogre::RenderPriorityGroup::_getSolidPassesDiffuseSpecular(), Ogre::RenderPriorityGroup::_getSolidPassesNoShadow(), Ogre::RenderPriorityGroup::_getTransparentPasses(), Ogre::RenderSystem::_setDepthBufferParams(), Ogre::RenderSystem::clearFrameBuffer(), Ogre::CMPF_EQUAL, Ogre::FBT_STENCIL, Ogre::MovableObject::getCastShadows(), Ogre::RenderQueueGroup::getIterator(), IRS_AMBIENT, IRS_DECAL, IRS_NONE, IRS_PER_LIGHT, Ogre::LightList, mCameraInProgress, mDestRenderSystem, mIlluminationStage, mLightsAffectingFrustum, renderObjects(), renderShadowVolumesToStencil(), Ogre::RenderSystem::setStencilBufferParams(), Ogre::RenderSystem::setStencilCheckEnabled(), and Ogre::RenderPriorityGroup::sort().

Referenced by renderQueueGroupObjects().

void Ogre::SceneManager::renderBasicQueueGroupObjects | ( | RenderQueueGroup * | pGroup | ) | `[protected, virtual]`

| Render a group in the ordinary way. Definition at line 1825 of file OgreSceneManager.cpp. References Ogre::RenderPriorityGroup::_getSolidPasses(), Ogre::RenderPriorityGroup::_getTransparentPasses(), Ogre::RenderQueueGroup::getIterator(), mCameraInProgress, renderObjects(), and Ogre::RenderPriorityGroup::sort(). Referenced by renderQueueGroupObjects().

void Ogre::SceneManager::renderModulativeStencilShadowedQueueGroupObjects | ( | RenderQueueGroup * | group | ) | `[protected, virtual]`

Render a group with the added complexity of additive stencil shadows.

Definition at line 1451 of file OgreSceneManager.cpp.

References Ogre::RenderPriorityGroup::_getSolidPasses(), Ogre::RenderPriorityGroup::_getSolidPassesNoShadow(), Ogre::RenderPriorityGroup::_getTransparentPasses(), Ogre::RenderSystem::_setDepthBufferParams(), Ogre::RenderSystem::clearFrameBuffer(), Ogre::CMPF_NOT_EQUAL, Ogre::FBT_STENCIL, Ogre::MovableObject::getCastShadows(), Ogre::RenderQueueGroup::getIterator(), mCameraInProgress, mDestRenderSystem, mFullScreenQuad, mLightsAffectingFrustum, mShadowModulativePass, renderObjects(), renderShadowVolumesToStencil(), renderSingleObject(), setPass(), Ogre::RenderSystem::setStencilBufferParams(), Ogre::RenderSystem::setStencilCheckEnabled(), and Ogre::RenderPriorityGroup::sort().

Referenced by renderQueueGroupObjects().

void Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects | ( | RenderQueueGroup * | group | ) | `[protected, virtual]`

Render a group with the added complexity of additive stencil shadows.

Definition at line 1566 of file OgreSceneManager.cpp.

References Ogre::RenderPriorityGroup::_getSolidPasses(), Ogre::RenderPriorityGroup::_getSolidPassesNoShadow(), Ogre::RenderPriorityGroup::_getTransparentPasses(), Ogre::Pass::_load(), Ogre::Pass::createTextureUnitState(), Ogre::Viewport::getCamera(), Ogre::MovableObject::getCastShadows(), Ogre::RenderQueueGroup::getIterator(), Ogre::RenderTarget::getName(), Ogre::Pass::getNumTextureUnitStates(), Ogre::RenderQueueGroup::getShadowsEnabled(), Ogre::Pass::getTextureUnitState(), Ogre::Light::getType(), Ogre::RenderTarget::getViewport(), IRS_NONE, IRS_RENDER_MODULATIVE_PASS, Ogre::LBO_ADD, mAutoParamDataSource, mCameraInProgress, mCurrentShadowTexture, mIlluminationStage, mLightsAffectingFrustum, mShadowReceiverPass, mShadowTextures, Ogre::Pass::removeTextureUnitState(), renderObjects(), renderTextureShadowReceiverQueueGroupObjects(), Ogre::TextureUnitState::setColourOperation(), Ogre::TextureUnitState::setProjectiveTexturing(), Ogre::TextureUnitState::setTextureAddressingMode(), Ogre::TextureUnitState::setTextureName(), Ogre::AutoParamDataSource::setTextureProjector(), and Ogre::RenderPriorityGroup::sort().

Referenced by renderQueueGroupObjects().

void Ogre::SceneManager::renderObjects | ( | const RenderPriorityGroup::TransparentRenderablePassList & | objs,
|  | bool | doLightIteration,
|  | const LightList * | manualLightList = 0
| ) | `[protected, virtual]`

| Render a set of objects, see renderSingleObject for param definitions. Definition at line 1765 of file OgreSceneManager.cpp. References Ogre::LightList, renderSingleObject(), and setPass().

void Ogre::SceneManager::renderObjects | ( | const RenderPriorityGroup::SolidRenderablePassMap & | objs,
|  | bool | doLightIteration,
|  | const LightList * | manualLightList = 0
| ) | `[protected, virtual]`

Render a set of objects, see renderSingleObject for param definitions.

Definition at line 1733 of file OgreSceneManager.cpp.

References Ogre::LightList, renderSingleObject(), setPass(), validatePassForRendering(), and validateRenderableForRendering().

Referenced by renderAdditiveStencilShadowedQueueGroupObjects(), renderBasicQueueGroupObjects(), renderModulativeStencilShadowedQueueGroupObjects(), renderModulativeTextureShadowedQueueGroupObjects(), renderTextureShadowCasterQueueGroupObjects(), and renderTextureShadowReceiverQueueGroupObjects().

void Ogre::SceneManager::renderQueueGroupObjects | ( | RenderQueueGroup * | group | ) | `[protected, virtual]`

Render the objects in a given queue group.

Definition at line 1787 of file OgreSceneManager.cpp.

References Ogre::RenderQueueGroup::getShadowsEnabled(), IRS_RENDER_TO_TEXTURE, mIlluminationStage, mShadowTechnique, renderAdditiveStencilShadowedQueueGroupObjects(), renderBasicQueueGroupObjects(), renderModulativeStencilShadowedQueueGroupObjects(), renderModulativeTextureShadowedQueueGroupObjects(), renderTextureShadowCasterQueueGroupObjects(), Ogre::SHADOWTYPE_STENCIL_ADDITIVE, Ogre::SHADOWTYPE_STENCIL_MODULATIVE, and Ogre::SHADOWTYPE_TEXTURE_MODULATIVE.

Referenced by _renderVisibleObjects().

void Ogre::SceneManager::renderShadowVolumesToStencil | ( | const Light * | light,
|  | const Camera * | cam
| ) | `[protected, virtual]`

Internal method for rendering all the objects for a given light into the stencil buffer.

Parameters:

  light | The light source
  cam | The camera being viewed from

Definition at line 3124 of file OgreSceneManager.cpp.

References Ogre::GpuProgram::_getBindingDelegate(), Ogre::Light::_getNearClipVolume(), Ogre::RenderSystem::_setColourBufferWriteEnabled(), Ogre::RenderSystem::_setDepthBufferFunction(), Ogre::RenderSystem::_setDepthBufferParams(), Ogre::RenderSystem::_setDepthBufferWriteEnabled(), Ogre::RenderSystem::bindGpuProgram(), Ogre::CMPF_ALWAYS_FAIL, Ogre::CMPF_LESS, findShadowCastersForLight(), Ogre::Viewport::getActualDimensions(), Ogre::Light::getAttenuationRange(), Ogre::RenderSystem::getCapabilities(), Ogre::ShadowCaster::getDarkCapBounds(), Ogre::Light::getDerivedPosition(), Ogre::ShadowCaster::getLastShadowVolumeRenderableIterator(), Ogre::ShadowCaster::getLightCapBounds(), Ogre::ShadowRenderable::getLightCapRenderable(), Ogre::ShadowCaster::getPointExtrusionDistance(), Ogre::ShadowCaster::getShadowVolumeRenderableIterator(), Ogre::Light::getType(), Ogre::Pass::getVertexProgram(), Ogre::ShadowCaster::getWorldBoundingBox(), Ogre::GPT_FRAGMENT_PROGRAM, Ogre::GPT_VERTEX_PROGRAM, Ogre::RenderSystemCapabilities::hasCapability(), Ogre::PlaneBoundedVolume::intersects(), Ogre::ShadowRenderable::isLightCapSeparate(), Ogre::ShadowRenderable::isVisible(), Ogre::Frustum::isVisible(), Ogre::LightList, mCurrentViewport, mDestRenderSystem, mFiniteExtrusionParams, mInfiniteExtrusionParams, mShadowDebugPass, mShadowDirLightExtrudeDist, mShadowIndexBuffer, mShadowStencilPass, mShadowTechnique, mShadowUseInfiniteFarPlane, Ogre::Frustum::projectSphere(), Ogre::Real, renderSingleShadowVolumeToStencil(), Ogre::RSC_INFINITE_FAR_PLANE, Ogre::RSC_SCISSOR_TEST, Ogre::RSC_STENCIL_WRAP, Ogre::RSC_TWO_SIDED_STENCIL, Ogre::RSC_VERTEX_PROGRAM, Ogre::RenderSystem::setScissorTest(), Ogre::RenderSystem::setStencilCheckEnabled(), Ogre::Pass::setVertexProgram(), Ogre::Pass::setVertexProgramParameters(), ShadowCasterList, Ogre::SRF_EXTRUDE_TO_INFINITY, Ogre::SRF_INCLUDE_DARK_CAP, Ogre::SRF_INCLUDE_LIGHT_CAP, and Ogre::RenderSystem::unbindGpuProgram().

Referenced by renderAdditiveStencilShadowedQueueGroupObjects(), and renderModulativeStencilShadowedQueueGroupObjects().

void Ogre::SceneManager::renderSingleObject | ( | Renderable * | rend,
|  | Pass * | pass,
|  | bool | doLightIteration,
|  | const LightList * | manualLightList = 0
| ) | `[protected, virtual]`

Internal utility method for rendering a single object.

Remarks:
  Assumes that the pass has already been set up.

Parameters:

  rend | The renderable to issue to the pipeline
  pass | The pass which is being used
  doLightIteration | If true, this method will issue the renderable to the pipeline possibly multiple times, if the pass indicates it should be done once per light
  manualLightList | Only applicable if doLightIteration is false, this method allows you to pass in a previously determined set of lights which will be used for a single render of this object.

Definition at line 1870 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_render(), Ogre::RenderSystem::_setRasterisationMode(), Ogre::RenderSystem::_setTextureUnitSettings(), Ogre::RenderSystem::_setWorldMatrices(), Ogre::RenderSystem::_setWorldMatrix(), Ogre::Pass::_updateAutoParamsLightsOnly(), Ogre::Pass::_updateAutoParamsNoLights(), Ogre::RenderSystem::_useLights(), Ogre::RenderSystem::bindGpuProgramParameters(), Ogre::Renderable::getClipPlanes(), Ogre::Camera::getDetailLevel(), Ogre::Pass::getFragmentProgramParameters(), Ogre::Pass::getLightingEnabled(), Ogre::Renderable::getLights(), Ogre::Pass::getMaxSimultaneousLights(), Ogre::Renderable::getNormaliseNormals(), Ogre::Renderable::getNumWorldTransforms(), Ogre::Pass::getOnlyLightType(), Ogre::Renderable::getRenderDetail(), Ogre::Renderable::getRenderOperation(), Ogre::Pass::getRunOncePerLight(), Ogre::Pass::getRunOnlyForOneLightType(), Ogre::Pass::getTextureUnitStateIterator(), Ogre::Pass::getVertexProgramParameters(), Ogre::Renderable::getWorldTransforms(), Ogre::GPT_FRAGMENT_PROGRAM, Ogre::GPT_VERTEX_PROGRAM, Ogre::Pass::hasFragmentProgram(), Ogre::Pass::hasVertexProgram(), Ogre::TextureUnitState::hasViewRelativeTextureCoordinateGeneration(), Ogre::Pass::isProgrammable(), Ogre::LightList, mAutoParamDataSource, mCameraInProgress, mDestRenderSystem, Ogre::SceneDetailLevel, Ogre::RenderSystem::setClipPlanes(), Ogre::AutoParamDataSource::setCurrentLightList(), Ogre::AutoParamDataSource::setCurrentRenderable(), Ogre::RenderSystem::setNormaliseNormals(), Ogre::RenderOperation::srcRenderable, and useRenderableViewProjMode().

Referenced by renderModulativeStencilShadowedQueueGroupObjects(), renderObjects(), renderSingleShadowVolumeToStencil(), and renderTransparentShadowCasterObjects().

void Ogre::SceneManager::renderSingleShadowVolumeToStencil | ( | ShadowRenderable * | sr,
|  | bool | zfail,
|  | bool | stencil2sided,
|  | const LightList * | manualLightList,
|  | bool | bSecondPass
| ) | `[protected]`

Render a single shadow volume to the stencil buffer.

Definition at line 3342 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_setColourBufferWriteEnabled(), Ogre::LightList, mDebugShadows, mDestRenderSystem, mShadowDebugPass, mShadowStencilPass, renderSingleObject(), setPass(), setShadowVolumeStencilState(), and Ogre::RenderSystem::setStencilBufferParams().

Referenced by renderShadowVolumesToStencil().

void Ogre::SceneManager::renderTextureShadowCasterQueueGroupObjects | ( | RenderQueueGroup * | group | ) | `[protected, virtual]`

Render a group rendering only shadow casters.

Definition at line 1528 of file OgreSceneManager.cpp.

References Ogre::RenderPriorityGroup::_getSolidPasses(), Ogre::RenderPriorityGroup::_getSolidPassesNoShadow(), Ogre::RenderPriorityGroup::_getTransparentPasses(), Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::RenderQueueGroup::getIterator(), Ogre::LightList, mAmbientLight, mAutoParamDataSource, mCameraInProgress, mDestRenderSystem, mShadowColour, Ogre::ColourValue::r, renderObjects(), renderTransparentShadowCasterObjects(), Ogre::RenderSystem::setAmbientLight(), Ogre::AutoParamDataSource::setAmbientLightColour(), and Ogre::RenderPriorityGroup::sort().

Referenced by renderQueueGroupObjects().

void Ogre::SceneManager::renderTextureShadowReceiverQueueGroupObjects | ( | RenderQueueGroup * | group | ) | `[protected, virtual]`

Render a group rendering only shadow receivers.

Definition at line 1676 of file OgreSceneManager.cpp.

References Ogre::RenderPriorityGroup::_getSolidPasses(), Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::RenderQueueGroup::getIterator(), Ogre::LightList, mAmbientLight, mAutoParamDataSource, mDestRenderSystem, Ogre::ColourValue::r, renderObjects(), Ogre::RenderSystem::setAmbientLight(), and Ogre::AutoParamDataSource::setAmbientLightColour().

Referenced by renderModulativeTextureShadowedQueueGroupObjects().

void Ogre::SceneManager::renderTransparentShadowCasterObjects | ( | const RenderPriorityGroup::TransparentRenderablePassList & | objs,
|  | bool | doLightIteration,
|  | const LightList * | manualLightList = 0
| ) | `[protected, virtual]`

Render those objects in the transparent pass list which have shadow casting forced on.

Remarks:
  This function is intended to be used to render the shadows of transparent objects which have transparency_casts_shadows set to 'on' in their material

Definition at line 1847 of file OgreSceneManager.cpp.

References Ogre::Technique::getParent(), Ogre::Pass::getParent(), Ogre::Material::getTransparencyCastsShadows(), Ogre::LightList, renderSingleObject(), and setPass().

Referenced by renderTextureShadowCasterQueueGroupObjects().

void Ogre::SceneManager::setAmbientLight | ( | const ColourValue & | colour | ) |

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

Remarks:
  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 Material which has lighting enabled (see Material::setLightingEnabled) will not be visible unless you have some dynamic lights in your scene.

Definition at line 2046 of file OgreSceneManager.cpp.

References Ogre::ColourValue::b, Ogre::ColourValue::g, mAmbientLight, mDestRenderSystem, Ogre::ColourValue::r, and Ogre::RenderSystem::setAmbientLight().

void Ogre::SceneManager::setDisplaySceneNodes | ( | bool | display | ) | `[virtual]`

Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene.

Remarks:
  This 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.

Definition at line 2157 of file OgreSceneManager.cpp.

References mDisplayNodes.

void Ogre::SceneManager::setFog | ( | FogMode | mode = FOG_NONE,
|  | const ColourValue & | colour = ColourValue::White,
|  | Real | expDensity = 0.001,
|  | Real | linearStart = 0.0,
|  | Real | linearEnd = 1.0
| ) |

Sets the fogging mode applied to the scene.

Remarks:
  This method sets up the scene-wide fogging effect. These settings apply to all geometry rendered, UNLESS the material with which it is rendered has it's own fog settings (see Material::setFog).

Parameters:

  mode | Set up the mode of fog as described in the FogMode enum, or set to FOG_NONE to turn off.
  colour | The colour of the fog. Either set this to the same as your viewport background colour, or to blend in with a skydome or skybox.
  expDensity | The density of the fog in FOG_EXP or FOG_EXP2 mode, as a value between 0 and 1. The default is 0.001.
  linearStart | Distance in world units at which linear fog starts to encroach. Only applicable if mode is FOG_LINEAR.
  linearEnd | Distance in world units at which linear fog becomes completely opaque. Only applicable if mode is FOG_LINEAR.

Definition at line 2066 of file OgreSceneManager.cpp.

References Ogre::FogMode, mFogColour, mFogDensity, mFogEnd, mFogMode, mFogStart, and Ogre::Real.

virtual bool Ogre::SceneManager::setOption | ( | const String & | strKey,
|  | const void * | pValue
| ) | `[virtual]`

Method for setting a specific option of the Scene Manager.

These options are usually specific for a certain implemntation of the Scene Manager class, and may (and probably will) not exist across different implementations.

Parameters:

  strKey | The name of the option to set
  pValue | A pointer to the value - the size should be calculated by the scene manager based on the key

Returns:
  On success, true is returned.

  On failiure, false is returned.

Reimplemented in Ogre::OctreeSceneManager, and Ogre::TerrainSceneManager.

Definition at line 798 of file OgreSceneManager.h.

References Ogre::String.

Pass * Ogre::SceneManager::setPass | ( | Pass * | pass | ) | `[protected, virtual]`

Internal method for setting up the renderstate for a rendering pass.

Parameters:

  pass | The Pass details to set.

Returns:
  A Pass object that was used instead of the one passed in, can happen when rendering shadow passes

Definition at line 589 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_disableTextureUnitsFrom(), Ogre::GpuProgram::_getBindingDelegate(), Ogre::RenderSystem::_setColourBufferWriteEnabled(), Ogre::RenderSystem::_setCullingMode(), Ogre::RenderSystem::_setDepthBias(), Ogre::RenderSystem::_setDepthBufferCheckEnabled(), Ogre::RenderSystem::_setDepthBufferFunction(), Ogre::RenderSystem::_setDepthBufferWriteEnabled(), Ogre::RenderSystem::_setFog(), Ogre::RenderSystem::_setSceneBlending(), Ogre::RenderSystem::_setSurfaceParams(), Ogre::RenderSystem::_setTextureUnitSettings(), Ogre::RenderSystem::bindGpuProgram(), deriveShadowCasterPass(), deriveShadowReceiverPass(), Ogre::FogMode, Ogre::Pass::getAmbient(), Ogre::Pass::getColourWriteEnabled(), Ogre::Pass::getCullingMode(), Ogre::Pass::getDepthBias(), Ogre::Pass::getDepthCheckEnabled(), Ogre::Pass::getDepthFunction(), Ogre::Pass::getDepthWriteEnabled(), Ogre::Pass::getDestBlendFactor(), Ogre::Pass::getDiffuse(), Ogre::Pass::getFogColour(), Ogre::Pass::getFogDensity(), Ogre::Pass::getFogEnd(), Ogre::Pass::getFogMode(), Ogre::Pass::getFogOverride(), Ogre::Pass::getFogStart(), Ogre::Pass::getFragmentProgram(), Ogre::Pass::getLightingEnabled(), Ogre::Pass::getNumTextureUnitStates(), Ogre::GpuProgram::getPassSurfaceAndLightStates(), Ogre::Pass::getSelfIllumination(), Ogre::Pass::getShadingMode(), Ogre::Pass::getShininess(), Ogre::Pass::getSourceBlendFactor(), Ogre::Pass::getSpecular(), Ogre::Pass::getTextureUnitStateIterator(), Ogre::Pass::getVertexProgram(), Ogre::GPT_FRAGMENT_PROGRAM, Ogre::GPT_VERTEX_PROGRAM, Ogre::Pass::hasFragmentProgram(), Ogre::Pass::hasVertexProgram(), IRS_RENDER_MODULATIVE_PASS, IRS_RENDER_TO_TEXTURE, mDestRenderSystem, mFogColour, mFogDensity, mFogEnd, mFogMode, mFogStart, mIlluminationStage, Ogre::Real, Ogre::RenderSystem::setLightingEnabled(), Ogre::RenderSystem::setShadingType(), and Ogre::RenderSystem::unbindGpuProgram().

Referenced by manualRender(), renderModulativeStencilShadowedQueueGroupObjects(), renderObjects(), renderSingleShadowVolumeToStencil(), Ogre::BspSceneManager::renderStaticGeometry(), and renderTransparentShadowCasterObjects().

void Ogre::SceneManager::setShadowColour | ( | const ColourValue & | colour | ) | `[virtual]`

Set the colour used to modulate areas in shadow.

Remarks:
  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.

Definition at line 3408 of file OgreSceneManager.cpp.

References Ogre::Pass::getTextureUnitState(), initShadowVolumeMaterials(), Ogre::LBS_CURRENT, Ogre::LBS_MANUAL, Ogre::LBX_MODULATE, mShadowCasterPlainBlackPass, mShadowColour, mShadowModulativePass, and Ogre::TextureUnitState::setColourOperationEx().

void Ogre::SceneManager::setShadowDirectionalLightExtrusionDistance | ( | Real | dist | ) | `[virtual]`

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

Remarks:
  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.

Definition at line 3430 of file OgreSceneManager.cpp.

References mShadowDirLightExtrudeDist, and Ogre::Real.

virtual void Ogre::SceneManager::setShadowDirLightTextureOffset | ( | Real | offset | ) | `[virtual]`

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.

Remarks:
  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.

Definition at line 1591 of file OgreSceneManager.h.

References Ogre::Real.

void Ogre::SceneManager::setShadowFarDistance | ( | Real | distance | ) | `[virtual]`

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

Remarks:
  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.

Note:
  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.

Definition at line 3424 of file OgreSceneManager.cpp.

References mShadowFarDist, mShadowFarDistSquared, and Ogre::Real.

void Ogre::SceneManager::setShadowIndexBufferSize | ( | size_t | size | ) | `[virtual]`

Sets the maximum size of the index buffer used to render shadow primitives.

Remarks:
  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 tris/mesh 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)

Parameters:

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

Definition at line 3440 of file OgreSceneManager.cpp.

References Ogre::SharedPtr< HardwareIndexBuffer >::isNull(), mShadowIndexBuffer, and mShadowIndexBufferSize.

void Ogre::SceneManager::setShadowTechnique | ( | ShadowTechnique | technique | ) | `[virtual]`

Sets the general shadow technique to be used in this scene.

Remarks:
  There are multiple ways to generate shadows in a scene, and each has strengths and weaknesses.
  - Stencil-based approaches can be used to draw very long, extreme shadows without loss of precision and the 'additive' version can correctly show the shadowing of complex effects like bump mapping because they physically exclude the light from those areas. However, the edges are very sharp and stencils cannot handle transparency, and they involve a fair amount of CPU work in order to calculate the shadow volumes, especially when animated objects are involved.
  - Texture-based approaches are good for handling transparency (they can, for example, correctly shadow a mesh which uses alpha to represent holes), and they require little CPU overhead, and can happily shadow geometry which is deformed by a vertex program, unlike stencil shadows. However, they have a fixed precision which can introduce 'jaggies' at long range and have fillrate issues of their own.

  We support 2 kinds of stencil shadows, and 2 kinds of texture-based shadows, and one simple decal approach. The 2 stencil approaches differ in the amount of multipass work that is required - the modulative approach simply 'darkens' areas in shadow after the main render, which is the least expensive, whilst the additive approach has to perform a render per light and adds the cumulative effect, whcih is more expensive but more accurate. The texture based shadows both work in roughly the same way, the only difference is that the shadowmap approach is slightly more accurate, but requires a more recent graphics card.

  Note that because mixing many shadow techniques can cause problems, only one technique is supported at once. Also, you should call this method at the start of the scene setup.

Parameters:

  technique | The shadowing technique to use for the scene.

Definition at line 2626 of file OgreSceneManager.cpp.

References createShadowTextures(), Ogre::RenderSystem::getCapabilities(), getRenderQueue(), Ogre::RenderSystemCapabilities::hasCapability(), Ogre::SharedPtr< HardwareIndexBuffer >::isNull(), mDestRenderSystem, mShadowIndexBuffer, mShadowIndexBufferSize, mShadowTechnique, mShadowTextureCount, mShadowTextureSize, Ogre::RSC_HWSTENCIL, Ogre::RenderQueue::setSplitNoShadowPasses(), Ogre::RenderQueue::setSplitPassesByLightingType(), Ogre::ShadowTechnique, Ogre::SHADOWTYPE_NONE, Ogre::SHADOWTYPE_STENCIL_ADDITIVE, Ogre::SHADOWTYPE_STENCIL_MODULATIVE, and Ogre::SHADOWTYPE_TEXTURE_MODULATIVE.

void Ogre::SceneManager::setShadowTextureCount | ( | unsigned short | count | ) | `[virtual]`

Set the number of textures allocated for texture-based shadows.

Remarks:
  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.

Definition at line 3461 of file OgreSceneManager.cpp.

References createShadowTextures(), mShadowTextureCount, and mShadowTextureSize.

virtual void Ogre::SceneManager::setShadowTextureFadeEnd | ( | Real | fadeEnd | ) | `[virtual]`

Sets the proportional distance at which texture shadows finish to fading out.

Remarks:
  To hide the edges where texture shadows end (in directional lights) Ogre will fade out the shadow in the distance. This value is a proportional distance of the entire shadow visibility distance at which the shadow is completely invisible. The default is 0.9.

Definition at line 1608 of file OgreSceneManager.h.

References Ogre::Real.

virtual void Ogre::SceneManager::setShadowTextureFadeStart | ( | Real | fadeStart | ) | `[virtual]`

Sets the proportional distance at which texture shadows begin to fade out.

Remarks:
  To hide the edges where texture shadows end (in directional lights) Ogre will fade out the shadow in the distance. This value is a proportional distance of the entire shadow visibility distance at which the shadow begins to fade out. The default is 0.7

Definition at line 1599 of file OgreSceneManager.h.

References Ogre::Real.

void Ogre::SceneManager::setShadowTextureSettings | ( | unsigned short | size,
|  | unsigned short | count
| ) | `[virtual]`

Sets the size and count of textures used in texture-based shadows.

Remarks:

See also:
  setShadowTextureSize and setShadowTextureCount for details, this method just allows you to change both at once, which can save on reallocation if the textures have already been created.

Definition at line 3468 of file OgreSceneManager.cpp.

References createShadowTextures(), mShadowTextureCount, mShadowTextures, and mShadowTextureSize.

void Ogre::SceneManager::setShadowTextureSize | ( | unsigned short | size | ) | `[virtual]`

Set the size of the texture used for texture-based shadows.

Remarks:
  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.

Definition at line 3454 of file OgreSceneManager.cpp.

References createShadowTextures(), mShadowTextureCount, and mShadowTextureSize.

virtual void Ogre::SceneManager::setShadowUseInfiniteFarPlane | ( | bool | enable | ) | `[virtual]`

Sets whether we should use an inifinite camera far plane when rendering stencil shadows.

Remarks:
  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 Ogre does when available, this results in very robust shadow volumes. For this reason, when you enable stencil shadows, Ogre automatically changes your camera settings to project to infinity if the card supports it. You can disable this behaviour if you like by calling this method; although you can never enable infinite projection if the card does not support it.

  If 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.

Note:
  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:
  - OpenGL always seems to support it no matter what the card
  - Direct3D on non-vertex program capable systems (including vertex program capable cards on Direct3D7) does not support it
  - Direct3D on GeForce3 and GeForce4 Ti does not seem to support infinite projection
  Therefore in the RenderSystem implementation, we may veto the use of an infinite far plane based on these heuristics.

Definition at line 1647 of file OgreSceneManager.h.

void Ogre::SceneManager::setShadowVolumeStencilState | ( | bool | secondpass,
|  | bool | zfail,
|  | bool | twosided
| ) | `[protected, virtual]`

Internal utility method for setting stencil state for rendering shadow volumes.

Parameters:

  secondpass | Is this the second pass?
  zfail | Should we be using the zfail method?
  twosided | Should we use a 2-sided stencil?

Definition at line 3371 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_setCullingMode(), Ogre::CMPF_ALWAYS_PASS, Ogre::CULL_ANTICLOCKWISE, Ogre::CULL_CLOCKWISE, Ogre::CULL_NONE, mDestRenderSystem, Ogre::RenderSystem::setStencilBufferParams(), Ogre::SOP_DECREMENT, Ogre::SOP_DECREMENT_WRAP, Ogre::SOP_INCREMENT, Ogre::SOP_INCREMENT_WRAP, and Ogre::SOP_KEEP.

Referenced by renderSingleShadowVolumeToStencil().

virtual void Ogre::SceneManager::setShowDebugShadows | ( | bool | debug | ) | `[virtual]`

| Enables / disables the rendering of debug information for shadows. Definition at line 1467 of file OgreSceneManager.h.

void Ogre::SceneManager::setSkyBox | ( | bool | enable,
|  | const String & | materialName,
|  | Real | distance = 5000,
|  | bool | drawFirst = true,
|  | const Quaternion & | orientation = Quaternion::IDENTITY
| ) | `[virtual]`

Enables / disables a 'sky box' i.e.

a 6-sided box at constant distance from the camera representing the sky.

Remarks:
  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 SceneNode as the Camera too, but this would only apply to a single camera whereas this skybox applies to any camera using this scene manager).

  The 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.

Parameters:

  enable | True to enable the skybox, false to disable it
  materialName | The name of the material the box will use
  distance | Distance in world coorinates from the camera to each plane of the box. The default is normally OK.

  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.

  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.

Definition at line 1016 of file OgreSceneManager.cpp.

References Ogre::SceneNode::attachObject(), BoxPlane, Ogre::Material::clone(), Ogre::Material::copyDetailsTo(), createEntity(), createSceneNode(), createSkyboxPlane(), Ogre::SceneNode::detachAllObjects(), Except, Ogre::Material::getBestTechnique(), Ogre::ResourceManager::getByName(), getMaterial(), Ogre::Material::getName(), Ogre::Resource::getName(), Ogre::Technique::getPass(), Ogre::Pass::getTextureUnitState(), Ogre::Material::load(), mSkyBoxDrawFirst, mSkyBoxEnabled, mSkyBoxEntity, mSkyBoxNode, Ogre::Real, removeEntity(), Ogre::MovableObject::setCastShadows(), Ogre::TextureUnitState::setCurrentFrame(), Ogre::Material::setDepthWriteEnabled(), Ogre::Entity::setMaterialName(), Ogre::TextureUnitState::setTextureAddressingMode(), and Ogre::String.

void Ogre::SceneManager::setSkyDome | ( | bool | enable,
|  | const String & | materialName,
|  | Real | curvature = 10,
|  | Real | tiling = 8,
|  | Real | distance = 4000,
|  | bool | drawFirst = true,
|  | const Quaternion & | orientation = Quaternion::IDENTITY,
|  | int | xsegments = 16,
|  | int | ysegments = 16,
|  | int | ysegments_keep = -1
| ) | `[virtual]`

Enables / disables a 'sky dome' i.e.

an illusion of a curved sky.

Remarks:
  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.

Parameters:

  enable | True to enable the skydome, false to disable it
  materialName | The name of the material the dome will use
  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.
  tiling | How many times to tile the texture(s) across the dome.
  distance | Distance in world coorinates from the camera to each plane of the box the dome is rendered on. The default is normally OK.

  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.

  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.

Definition at line 1098 of file OgreSceneManager.cpp.

References Ogre::SceneNode::attachObject(), BoxPlane, BP_UP, createEntity(), createSceneNode(), createSkydomePlane(), Ogre::SceneNode::detachAllObjects(), Except, getMaterial(), Ogre::Material::getName(), Ogre::Resource::getName(), Ogre::Material::load(), mSkyDomeDrawFirst, mSkyDomeEnabled, mSkyDomeEntity, mSkyDomeNode, Ogre::Real, removeEntity(), Ogre::MovableObject::setCastShadows(), Ogre::Material::setDepthWriteEnabled(), Ogre::Entity::setMaterialName(), and Ogre::String.

Referenced by Ogre::Quake3Shader::createAsMaterial().

void Ogre::SceneManager::setSkyPlane | ( | bool | enable,
|  | const Plane & | plane,
|  | const String & | materialName,
|  | Real | scale = 1000,
|  | Real | tiling = 10,
|  | bool | drawFirst = true,
|  | Real | bow = 0,
|  | int | xsegments = 1,
|  | int | ysegments = 1
| ) | `[virtual]`

Enables / disables a 'sky plane' i.e.

a plane at constant distance from the camera representing the sky.

Remarks:
  You can create sky planes 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 plane which was attached to the same SceneNode as the Camera too, but this would only apply to a single camera whereas this plane applies to any camera using this scene manager).

Note:
  To apply scaling, scrolls etc to the sky texture(s) you should use the TextureUnitState class methods.

Parameters:

  enable | True to enable the plane, false to disable it
  plane | Details of the plane, i.e. it's normal and it's distance from the camera.
  materialName | The name of the material the plane will use
  scale | The scaling applied to the sky plane - higher values mean a bigger sky plane - you may want to tweak this depending on the size of plane.d and the other characteristics of your scene
  tiling | How many times to tile the texture across the sky. Applies to all texture layers. If you need finer control use the TextureUnitState texture coordinate transformation methods.

  drawFirst

  If true, the plane 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 plane.d value is large enough that no objects will 'poke through' the sky plane when it is rendered.

  bow | If zero, the plane will be completely flat (like previous versions. If above zero, the plane will be curved, allowing the sky to appear below camera level. Curved sky planes are simular to skydomes, but are more compatable with fog.
  xsegments, ysegments | Determines the number of segments the plane will have to it. This is most important when you are bowing the plane, but may also be useful if you need tesselation on the plane to perform per-vertex effects.

Definition at line 932 of file OgreSceneManager.cpp.

References Ogre::SceneNode::attachObject(), createEntity(), createSceneNode(), Ogre::Vector3::crossProduct(), Ogre::SceneNode::detachAllObjects(), Except, getMaterial(), Ogre::Material::load(), mSkyPlane, mSkyPlaneDrawFirst, mSkyPlaneEnabled, mSkyPlaneEntity, mSkyPlaneNode, Ogre::Plane::normal, Ogre::Real, removeEntity(), Ogre::MovableObject::setCastShadows(), Ogre::Material::setDepthWriteEnabled(), Ogre::Entity::setMaterialName(), and Ogre::String.

void Ogre::SceneManager::setViewport | ( | Viewport * | vp | ) | `[protected, virtual]`

| Internal method for setting the destination viewport for the next render. Definition at line 2597 of file OgreSceneManager.cpp. References Ogre::RenderSystem::_setViewport(), mCurrentViewport, and mDestRenderSystem. Referenced by _renderScene().

void Ogre::SceneManager::setWorldGeometry | ( | const String & | filename | ) | `[virtual]`

Sets the source of the 'world' geometry, i.e.

the large, mainly static geometry making up the world e.g. rooms, landscape etc.

Remarks:
  Depending on the type of SceneManager (subclasses will be specialised for particular world geometry types) you have requested via the Root or SceneManagerEnumerator classes, you can pass a filename to this method and it will attempt to load the world-level geometry for use. If you try to load an inappropriate type of world data an exception will be thrown. The default SceneManager cannot handle any sort of world geometry and so will always throw an exception. However subclasses like BspSceneManager can load particular types of world geometry e.g. "q3dm1.bsp".

  World geometry will be loaded via the 'common' resource paths and archives set in the ResourceManager class.

Reimplemented in Ogre::BspSceneManager, and Ogre::TerrainSceneManager.

Definition at line 901 of file OgreSceneManager.cpp.

References Except, and Ogre::String.

void Ogre::SceneManager::showBoundingBoxes | ( | bool | bShow | ) |

| Allows all bounding boxes of scene nodes to be displayed. Definition at line 2604 of file OgreSceneManager.cpp. References mShowBoundingBoxes.

void Ogre::SceneManager::useRenderableViewProjMode | ( | Renderable * | pRend | ) | `[protected]`

Internal method used by _renderVisibleObjects to deal with renderables which override the camera's own view / projection materices.

Definition at line 2458 of file OgreSceneManager.cpp.

References Ogre::RenderSystem::_setProjectionMatrix(), Ogre::RenderSystem::_setViewMatrix(), Ogre::Frustum::getProjectionMatrix(), Ogre::Frustum::getViewMatrix(), mCamChanged, mCameraInProgress, mDestRenderSystem, Ogre::Renderable::useIdentityProjection(), and Ogre::Renderable::useIdentityView().

Referenced by renderSingleObject().

bool Ogre::SceneManager::validatePassForRendering | ( | Pass * | pass | ) | `[protected]`

Internal method to validate whether a Pass should be allowed to render.

Remarks:
  Called just before a pass is about to be used for rendering a group to allow the SceneManager to omit it if required. A return value of false skips this pass.

Definition at line 1704 of file OgreSceneManager.cpp.

References Ogre::Pass::getIndex(), IRS_RENDER_MODULATIVE_PASS, IRS_RENDER_TO_TEXTURE, and mIlluminationStage.

Referenced by renderObjects().

bool Ogre::SceneManager::validateRenderableForRendering | ( | Pass * | pass,
|  | Renderable * | rend
| ) | `[protected]`

Internal method to validate whether a Renderable should be allowed to render.

Remarks:
  Called just before a pass is about to be used for rendering a Renderable to allow the SceneManager to omit it if required. A return value of false skips it.

Definition at line 1718 of file OgreSceneManager.cpp.

References Ogre::Renderable::getCastsShadows(), IRS_RENDER_MODULATIVE_PASS, mIlluminationStage, mShadowTechnique, and Ogre::SHADOWTYPE_TEXTURE_MODULATIVE.

Referenced by renderObjects().

## Friends And Related Function Documentation

friend class DefaultAxisAlignedBoxSceneQuery`[friend]`

| Definition at line 82 of file OgreSceneManager.h. Referenced by createAABBQuery().

friend class DefaultIntersectionSceneQuery`[friend]`

| Definition at line 79 of file OgreSceneManager.h. Referenced by createIntersectionQuery(), and Ogre::OctreeSceneManager::createIntersectionQuery().

friend class DefaultPlaneBoundedVolumeListSceneQuery`[friend]`

| Definition at line 83 of file OgreSceneManager.h. Referenced by createPlaneBoundedVolumeQuery().

friend class DefaultRaySceneQuery`[friend]`

| Definition at line 80 of file OgreSceneManager.h. Referenced by createRayQuery().

friend class DefaultSphereSceneQuery`[friend]`

| Definition at line 81 of file OgreSceneManager.h. Referenced by createSphereQuery().

## Member Data Documentation

ColourValue Ogre::SceneManager::mAmbientLight`[protected]`

| Current ambient light, cached for RenderSystem. Definition at line 120 of file OgreSceneManager.h. Referenced by _renderScene(), getAmbientLight(), renderTextureShadowCasterQueueGroupObjects(), renderTextureShadowReceiverQueueGroupObjects(), and setAmbientLight().

AnimationList Ogre::SceneManager::mAnimationsList`[protected]`

| Definition at line 285 of file OgreSceneManager.h. Referenced by createAnimation(), destroyAllAnimations(), destroyAnimation(), and getAnimation().

AnimationStateSet Ogre::SceneManager::mAnimationStates`[protected]`

| Definition at line 286 of file OgreSceneManager.h. Referenced by _applySceneAnimations(), createAnimationState(), destroyAllAnimationStates(), destroyAnimation(), destroyAnimationState(), and getAnimationState().

AutoParamDataSource Ogre::SceneManager::mAutoParamDataSource`[protected]`

| Utility class for calculating automatic parameters for gpu programs. Definition at line 325 of file OgreSceneManager.h. Referenced by _renderScene(), renderModulativeTextureShadowedQueueGroupObjects(), renderSingleObject(), renderTextureShadowCasterQueueGroupObjects(), and renderTextureShadowReceiverQueueGroupObjects().

AutoTrackingSceneNodes Ogre::SceneManager::mAutoTrackingSceneNodes`[protected]`

| Definition at line 170 of file OgreSceneManager.h. Referenced by _notifyAutotrackingSceneNode(), _renderScene(), clearScene(), and destroySceneNode().

BillboardSetList Ogre::SceneManager::mBillboardSets`[protected]`

| Central list of billboard sets - for easy memory management and lookup. Definition at line 148 of file OgreSceneManager.h. Referenced by createBillboardSet(), getBillboardSet(), removeAllBillboardSets(), and removeBillboardSet().

bool Ogre::SceneManager::mCamChanged`[protected]`

| Controller flag for determining if we need to set view/proj matrices. Definition at line 293 of file OgreSceneManager.h. Referenced by _renderScene(), and useRenderableViewProjMode().

Camera* Ogre::SceneManager::mCameraInProgress`[protected]`

Camera in progress.

Definition at line 161 of file OgreSceneManager.h.

Referenced by _renderScene(), renderAdditiveStencilShadowedQueueGroupObjects(), renderBasicQueueGroupObjects(), renderModulativeStencilShadowedQueueGroupObjects(), renderModulativeTextureShadowedQueueGroupObjects(), renderSingleObject(), Ogre::BspSceneManager::renderStaticGeometry(), renderTextureShadowCasterQueueGroupObjects(), and useRenderableViewProjMode().

CameraList Ogre::SceneManager::mCameras`[protected]`

| Central list of cameras - for easy memory management and lookup. Definition at line 129 of file OgreSceneManager.h. Referenced by createCamera(), Ogre::OctreeSceneManager::createCamera(), getCamera(), removeAllCameras(), and removeCamera().

RenderTexture* Ogre::SceneManager::mCurrentShadowTexture`[protected]`

| Definition at line 344 of file OgreSceneManager.h. Referenced by renderModulativeTextureShadowedQueueGroupObjects().

Viewport* Ogre::SceneManager::mCurrentViewport`[protected]`

| Current Viewport. Definition at line 163 of file OgreSceneManager.h. Referenced by renderShadowVolumesToStencil(), and setViewport().

bool Ogre::SceneManager::mDebugShadows`[protected]`

| Definition at line 328 of file OgreSceneManager.h. Referenced by renderSingleShadowVolumeToStencil().

RenderSystem* Ogre::SceneManager::mDestRenderSystem`[protected]`

The rendering system to send the scene to.

Definition at line 123 of file OgreSceneManager.h.

Referenced by _renderScene(), Ogre::TerrainSceneManager::_renderVisibleObjects(), _setDestinationRenderSystem(), createShadowTextures(), initShadowVolumeMaterials(), manualRender(), removeAllCameras(), removeCamera(), renderAdditiveStencilShadowedQueueGroupObjects(), renderModulativeStencilShadowedQueueGroupObjects(), renderShadowVolumesToStencil(), renderSingleObject(), renderSingleShadowVolumeToStencil(), Ogre::BspSceneManager::renderStaticGeometry(), renderTextureShadowCasterQueueGroupObjects(), renderTextureShadowReceiverQueueGroupObjects(), setAmbientLight(), setPass(), setShadowTechnique(), setShadowVolumeStencilState(), Ogre::TerrainSceneManager::setupTerrainMaterial(), Ogre::TerrainSceneManager::setUseLODMorph(), setViewport(), and useRenderableViewProjMode().

bool Ogre::SceneManager::mDisplayNodes`[protected]`

| Definition at line 281 of file OgreSceneManager.h. Referenced by _findVisibleObjects(), and setDisplaySceneNodes().

EntityList Ogre::SceneManager::mEntities`[protected]`

Central list of entities - for easy memory management and lookup.

Definition at line 142 of file OgreSceneManager.h.

Referenced by createEntity(), Ogre::DefaultPlaneBoundedVolumeListSceneQuery::execute(), Ogre::DefaultSphereSceneQuery::execute(), Ogre::DefaultRaySceneQuery::execute(), Ogre::DefaultAxisAlignedBoxSceneQuery::execute(), Ogre::DefaultIntersectionSceneQuery::execute(), getEntity(), removeAllEntities(), and removeEntity().

GpuProgramParametersSharedPtr Ogre::SceneManager::mFiniteExtrusionParams`[protected]`

| Definition at line 384 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials(), and renderShadowVolumesToStencil().

ColourValue Ogre::SceneManager::mFogColour`[protected]`

| Definition at line 195 of file OgreSceneManager.h. Referenced by getFogColour(), setFog(), and setPass().

Real Ogre::SceneManager::mFogDensity`[protected]`

| Definition at line 198 of file OgreSceneManager.h. Referenced by getFogDensity(), setFog(), and setPass().

Real Ogre::SceneManager::mFogEnd`[protected]`

| Definition at line 197 of file OgreSceneManager.h. Referenced by getFogEnd(), setFog(), and setPass().

FogMode Ogre::SceneManager::mFogMode`[protected]`

| Definition at line 194 of file OgreSceneManager.h. Referenced by getFogMode(), setFog(), and setPass().

Real Ogre::SceneManager::mFogStart`[protected]`

| Definition at line 196 of file OgreSceneManager.h. Referenced by getFogStart(), setFog(), and setPass().

Rectangle2D* Ogre::SceneManager::mFullScreenQuad`[protected]`

| Definition at line 337 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials(), renderModulativeStencilShadowedQueueGroupObjects(), and ~SceneManager().

IlluminationRenderStage Ogre::SceneManager::mIlluminationStage`[protected]`

| Definition at line 339 of file OgreSceneManager.h. Referenced by _renderScene(), prepareShadowTextures(), renderAdditiveStencilShadowedQueueGroupObjects(), renderModulativeTextureShadowedQueueGroupObjects(), renderQueueGroupObjects(), setPass(), validatePassForRendering(), and validateRenderableForRendering().

GpuProgramParametersSharedPtr Ogre::SceneManager::mInfiniteExtrusionParams`[protected]`

| Definition at line 383 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials(), and renderShadowVolumesToStencil().

SceneLightList Ogre::SceneManager::mLights`[protected]`

| Central list of lights - for easy memory management and lookup. Definition at line 135 of file OgreSceneManager.h. Referenced by _populateLightList(), createLight(), findLightsAffectingFrustum(), getLight(), removeAllLights(), and removeLight().

LightList Ogre::SceneManager::mLightsAffectingFrustum`[protected]`

| Definition at line 334 of file OgreSceneManager.h. Referenced by findLightsAffectingFrustum(), prepareShadowTextures(), renderAdditiveStencilShadowedQueueGroupObjects(), renderModulativeStencilShadowedQueueGroupObjects(), and renderModulativeTextureShadowedQueueGroupObjects().

RenderQueue* Ogre::SceneManager::mRenderQueue`[protected]`

| Queue of objects for rendering. Definition at line 117 of file OgreSceneManager.h. Referenced by getRenderQueue(), initRenderQueue(), and ~SceneManager().

RenderQueueListenerList Ogre::SceneManager::mRenderQueueListeners`[protected]`

| Definition at line 296 of file OgreSceneManager.h. Referenced by addRenderQueueListener(), fireRenderQueueEnded(), fireRenderQueueStarted(), and removeRenderQueueListener().

SceneNodeList Ogre::SceneManager::mSceneNodes`[protected]`

Central list of SceneNodes - for easy memory management.

Note:
  Note that this list is used only for memory management; the structure of the scene is held using the hierarchy of SceneNodes starting with the root node. However you can look up nodes this way.

Definition at line 158 of file OgreSceneManager.h.

Referenced by clearScene(), createSceneNode(), Ogre::OctreeSceneManager::createSceneNode(), Ogre::BspSceneManager::createSceneNode(), destroySceneNode(), and getSceneNode().

SceneNode* Ogre::SceneManager::mSceneRoot`[protected]`

| Root scene node. Definition at line 166 of file OgreSceneManager.h. Referenced by _findVisibleObjects(), _updateSceneGraph(), clearScene(), getRootSceneNode(), Ogre::OctreeSceneManager::init(), SceneManager(), and ~SceneManager().

AxisAlignedBoxSceneQuery* Ogre::SceneManager::mShadowCasterAABBQuery`[protected]`

| Definition at line 377 of file OgreSceneManager.h. Referenced by findShadowCastersForLight(), and ~SceneManager().

ShadowCasterList Ogre::SceneManager::mShadowCasterList`[protected]`

| Definition at line 375 of file OgreSceneManager.h. Referenced by findShadowCastersForLight().

Pass* Ogre::SceneManager::mShadowCasterPlainBlackPass`[protected]`

| A pass designed to let us render shadow colour on white for texture shadows. Definition at line 216 of file OgreSceneManager.h. Referenced by deriveShadowCasterPass(), initShadowVolumeMaterials(), and setShadowColour().

ShadowCasterSceneQueryListener Ogre::SceneManager::mShadowCasterQueryListener`[protected]`

| Definition at line 417 of file OgreSceneManager.h. Referenced by findShadowCastersForLight().

SphereSceneQuery* Ogre::SceneManager::mShadowCasterSphereQuery`[protected]`

| Definition at line 376 of file OgreSceneManager.h. Referenced by findShadowCastersForLight(), and ~SceneManager().

ColourValue Ogre::SceneManager::mShadowColour`[protected]`

| Definition at line 329 of file OgreSceneManager.h. Referenced by getShadowColour(), initShadowVolumeMaterials(), renderTextureShadowCasterQueueGroupObjects(), and setShadowColour().

Pass* Ogre::SceneManager::mShadowDebugPass`[protected]`

| Definition at line 330 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials(), renderShadowVolumesToStencil(), and renderSingleShadowVolumeToStencil().

Real Ogre::SceneManager::mShadowDirLightExtrudeDist`[protected]`

| Definition at line 338 of file OgreSceneManager.h. Referenced by _renderScene(), findShadowCastersForLight(), getShadowDirectionalLightExtrusionDistance(), prepareShadowTextures(), renderShadowVolumesToStencil(), and setShadowDirectionalLightExtrusionDistance().

Real Ogre::SceneManager::mShadowFarDist`[protected]`

| Definition at line 378 of file OgreSceneManager.h. Referenced by prepareShadowTextures(), and setShadowFarDistance().

Real Ogre::SceneManager::mShadowFarDistSquared`[protected]`

| Definition at line 379 of file OgreSceneManager.h. Referenced by findShadowCastersForLight(), and setShadowFarDistance().

HardwareIndexBufferSharedPtr Ogre::SceneManager::mShadowIndexBuffer`[protected]`

| Definition at line 335 of file OgreSceneManager.h. Referenced by renderShadowVolumesToStencil(), setShadowIndexBufferSize(), and setShadowTechnique().

size_t Ogre::SceneManager::mShadowIndexBufferSize`[protected]`

| Definition at line 336 of file OgreSceneManager.h. Referenced by setShadowIndexBufferSize(), and setShadowTechnique().

bool Ogre::SceneManager::mShadowMaterialInitDone`[protected]`

| Definition at line 333 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials().

Pass* Ogre::SceneManager::mShadowModulativePass`[protected]`

| Definition at line 332 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials(), renderModulativeStencilShadowedQueueGroupObjects(), and setShadowColour().

Pass* Ogre::SceneManager::mShadowReceiverPass`[protected]`

| A pass designed to let us render shadow receivers for texture shadows. Definition at line 218 of file OgreSceneManager.h. Referenced by deriveShadowReceiverPass(), initShadowVolumeMaterials(), prepareShadowTextures(), and renderModulativeTextureShadowedQueueGroupObjects().

Pass* Ogre::SceneManager::mShadowStencilPass`[protected]`

| Definition at line 331 of file OgreSceneManager.h. Referenced by initShadowVolumeMaterials(), renderShadowVolumesToStencil(), and renderSingleShadowVolumeToStencil().

ShadowTechnique Ogre::SceneManager::mShadowTechnique`[protected]`

| Definition at line 327 of file OgreSceneManager.h. Referenced by _renderScene(), createShadowTextures(), prepareShadowTextures(), renderQueueGroupObjects(), renderShadowVolumesToStencil(), setShadowTechnique(), and validateRenderableForRendering().

unsigned short Ogre::SceneManager::mShadowTextureCount`[protected]`

| Definition at line 341 of file OgreSceneManager.h. Referenced by createShadowTextures(), setShadowTechnique(), setShadowTextureCount(), setShadowTextureSettings(), and setShadowTextureSize().

Real Ogre::SceneManager::mShadowTextureFadeEnd`[protected]`

| Definition at line 382 of file OgreSceneManager.h. Referenced by prepareShadowTextures().

Real Ogre::SceneManager::mShadowTextureFadeStart`[protected]`

| Definition at line 381 of file OgreSceneManager.h. Referenced by prepareShadowTextures().

Real Ogre::SceneManager::mShadowTextureOffset`[protected]`

| Definition at line 380 of file OgreSceneManager.h. Referenced by prepareShadowTextures().

ShadowTextureList Ogre::SceneManager::mShadowTextures`[protected]`

| Definition at line 343 of file OgreSceneManager.h. Referenced by createShadowTextures(), prepareShadowTextures(), renderModulativeTextureShadowedQueueGroupObjects(), and setShadowTextureSettings().

unsigned short Ogre::SceneManager::mShadowTextureSize`[protected]`

| Definition at line 340 of file OgreSceneManager.h. Referenced by createShadowTextures(), prepareShadowTextures(), setShadowTechnique(), setShadowTextureCount(), setShadowTextureSettings(), and setShadowTextureSize().

bool Ogre::SceneManager::mShadowUseInfiniteFarPlane`[protected]`

| Definition at line 345 of file OgreSceneManager.h. Referenced by _renderScene(), and renderShadowVolumesToStencil().

bool Ogre::SceneManager::mShowBoundingBoxes`[protected]`

| Flag that indicates if all of the scene node's bounding boxes should be shown as a wireframe. Definition at line 307 of file OgreSceneManager.h. Referenced by getShowBoundingBoxes(), Ogre::BspSceneManager::processVisibleLeaf(), showBoundingBoxes(), and Ogre::OctreeSceneManager::walkOctree().

bool Ogre::SceneManager::mSkyBoxDrawFirst`[protected]`

| Definition at line 187 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), and setSkyBox().

bool Ogre::SceneManager::mSkyBoxEnabled`[protected]`

| Definition at line 186 of file OgreSceneManager.h. Referenced by Ogre::BspSceneManager::BspSceneManager(), clearScene(), and setSkyBox().

Entity* Ogre::SceneManager::mSkyBoxEntity[6]`[protected]`

| Definition at line 176 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), SceneManager(), and setSkyBox().

SceneNode* Ogre::SceneManager::mSkyBoxNode`[protected]`

| Definition at line 180 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), clearScene(), and setSkyBox().

Quaternion Ogre::SceneManager::mSkyBoxOrientation`[protected]`

| Definition at line 188 of file OgreSceneManager.h.

bool Ogre::SceneManager::mSkyDomeDrawFirst`[protected]`

| Definition at line 191 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), and setSkyDome().

bool Ogre::SceneManager::mSkyDomeEnabled`[protected]`

| Definition at line 190 of file OgreSceneManager.h. Referenced by Ogre::BspSceneManager::BspSceneManager(), clearScene(), and setSkyDome().

Entity* Ogre::SceneManager::mSkyDomeEntity[5]`[protected]`

| Definition at line 175 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), SceneManager(), and setSkyDome().

SceneNode* Ogre::SceneManager::mSkyDomeNode`[protected]`

| Definition at line 179 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), clearScene(), and setSkyDome().

Quaternion Ogre::SceneManager::mSkyDomeOrientation`[protected]`

| Definition at line 192 of file OgreSceneManager.h.

Plane Ogre::SceneManager::mSkyPlane`[protected]`

| Definition at line 184 of file OgreSceneManager.h. Referenced by setSkyPlane().

bool Ogre::SceneManager::mSkyPlaneDrawFirst`[protected]`

| Definition at line 183 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), and setSkyPlane().

bool Ogre::SceneManager::mSkyPlaneEnabled`[protected]`

| Definition at line 182 of file OgreSceneManager.h. Referenced by Ogre::BspSceneManager::BspSceneManager(), clearScene(), and setSkyPlane().

Entity* Ogre::SceneManager::mSkyPlaneEntity`[protected]`

| Definition at line 174 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), and setSkyPlane().

SceneNode* Ogre::SceneManager::mSkyPlaneNode`[protected]`

| Definition at line 178 of file OgreSceneManager.h. Referenced by _queueSkiesForRendering(), clearScene(), and setSkyPlane().

The documentation for this class was generated from the following files:

- OgreSceneManager.h
- OgreSceneManager.cpp

Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:34 2004