OGRE: Ogre::DefaultSceneManager Class Reference

| OGRE 2.2.4 Object-Oriented Graphics Rendering Engine

Public Types | Public Member Functions | Static Public Attributes | List of all members
Ogre::DefaultSceneManager Class Reference
Core | Component » Scene

Default scene manager. More...

`#include <OgreSceneManagerEnumerator.h>`

Inheritance diagram for Ogre::DefaultSceneManager:
[legend]

## Public Types
typedef MapIterator< AnimationList > | AnimationIterator
typedef VectorIterator< CameraList > | CameraIterator
enum | EnvFeatures { EnvFeatures_DiffuseGiFromReflectionProbe = 1u << 0u }
enum | IlluminationRenderStage { IRS_NONE, IRS_RENDER_TO_TEXTURE }
| Describes the stage of rendering when performing complex illumination. More...
typedef VectorIterator< MovableObjectVec > | MovableObjectIterator
typedef vector< MovableObject * >::type | MovableObjectVec
enum | PrefabType { PT_PLANE, PT_CUBE, PT_SPHERE }
| Prefab shapes available without loading a model. More...
typedef vector< SceneNode * >::type | SceneNodeList
enum | SkyMethod { SkyCubemap, SkyEquirectangular }

## Public Member Functions
| DefaultSceneManager (const String &name, size_t numWorkerThreads)
| ~DefaultSceneManager ()
virtual void | _addAutotrackingSceneNode (SceneNode *source, SceneNode *target, const Vector3 &offset, const Vector3 &localDirection)
| Internal method for notifying the manager that a SceneNode is autotracking. More...
void | _addCompositorTexture (IdString name, TextureGpu *tex)
| Used by Compositor, tells of which compositor textures active, so Materials can access them. More...
void | _addWireAabb (WireAabb *wireAabb)
virtual void | _applySceneAnimations (void)
| Internal method for applying animations to scene nodes. More...
virtual bool | _areRenderStateChangesSuppressed (void) const
| Are render state changes suppressed? More...
AxisAlignedBox | _calculateCurrentCastersBox (uint32 viewportVisibilityMask, uint8 firstRq, uint8 lastRq) const
bool | _collectForwardPlusObjects (const Camera *camera)
| Returns true if collection code was run. More...
virtual InternalCubemapProbe * | _createCubemapProbe (SceneMemoryMgrTypes sceneType)
virtual SceneNode * | _createSceneNode (SceneNode *parent, NodeMemoryManager *nodeMemoryManager)
virtual TagPoint * | _createTagPoint (SceneNode *parent, NodeMemoryManager *nodeMemoryManager)
| Don't call this function directly. More...
virtual void | _cullPhase01 (Camera *cullCamera, Camera *renderCamera, const Camera *lodCamera, uint8 firstRq, uint8 lastRq, bool reuseCullData)
| Performs the frustum culling that will later be needed by _renderPhase02. More...
virtual void | _destroyAllCubemapProbes (void)
virtual void | _destroyCubemapProbe (InternalCubemapProbe *probe)
void | _frameEnded (void)
| Called when the frame has fully ended (ALL passes have been executed to all RTTs) More...
ForwardPlusBase * | _getActivePassForwardPlus (void)
AutoParamDataSource * | _getAutoParamDataSource (void) const
uint32 | _getCombinedVisibilityMask (void) const
| Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask. More...
IlluminationRenderStage | _getCurrentRenderStage () const
ObjectMemoryManager & | _getEntityMemoryManager (SceneMemoryMgrTypes sceneType)
| Retrieves the main entity memory manager. More...
ObjectMemoryManager & | _getLightMemoryManager (void)
NodeMemoryManager & | _getNodeMemoryManager (SceneMemoryMgrTypes sceneType)
NodeMemoryManager & | _getTagPointNodeMemoryManager (void)
VisibleObjectsPerThreadArray & | _getTmpVisibleObjectsList ()
| @See mTmpVisibleObjects More...
void | _handleLodEvents ()
| Handle LOD events. More...
virtual void | _markGpuParamsDirty (uint16 mask)
| Method to allow you to mark gpu parameters as dirty, causing them to be updated according to the mask that you set when updateGpuProgramParameters is next called. More...
void | _notifyEntityMaterialLodChanged (EntityMaterialLodChangedEvent &evt)
| Notify that an entity material LOD change event has occurred. More...
void | _notifyEntityMeshLodChanged (EntityMeshLodChangedEvent &evt)
| Notify that an entity mesh LOD change event has occurred. More...
void | _notifyMovableObjectLodChanged (MovableObjectLodChangedEvent &evt)
| Notify that a movable object LOD change event has occurred. More...
virtual RenderContext * | _pauseRendering ()
| Pause rendering of the frame. More...
virtual void | _releaseManualHardwareResources ()
| Notifies the scene manager that hardware resources were lost. More...
virtual void | _removeAutotrackingSceneNode (SceneNode *source)
void | _removeCompositorTextures (size_t from)
| Removes all compositor textures from 'from' to end. More...
void | _removeWireAabb (WireAabb *wireAabb)
virtual void | _renderPhase02 (Camera *camera, const Camera *lodCamera, uint8 firstRq, uint8 lastRq, bool includeOverlays)
| Prompts the class to send its contents to the renderer. More...
virtual void | _renderSingleObject (Renderable *pRend, const MovableObject *pMovableObject, bool casterPass, bool dualParaboloid)
virtual void | _restoreManualHardwareResources ()
| Notifies the scene manager that hardware resources should be restored. More...
virtual void | _resumeRendering (RenderContext *context)
| Resume rendering of the frame. More...
void | _setCamerasInProgress (const CamerasInProgress &cameras)
void | _setCurrentCompositorPass (CompositorPass *pass)
void | _setCurrentRenderStage (IlluminationRenderStage stage)
void | _setCurrentShadowNode (CompositorShadowNode *shadowNode, bool isReused)
virtual void | _setDestinationRenderSystem (RenderSystem *sys)
| Notifies the scene manager of its destination render system. More...
void | _setForwardPlusEnabledInPass (bool bEnable)
| For internal use. More...
void | _setLightCullingVisibility (Camera *camera, bool collectLights, bool isCubemap)
| See Camera::setLightCullingVisibility. More...
void | _setPrePassMode (PrePassMode mode, const TextureGpuVec &prepassTextures, TextureGpu *prepassDepthTexture, TextureGpu *ssrTexture)
| For internal use. More...
void | _setRefractions (TextureGpu *depthTextureNoMsaa, TextureGpu *refractionsTexture)
virtual void | _suppressRenderStateChanges (bool suppress)
| Indicates to the SceneManager whether it should suppress changing the RenderSystem states when rendering objects. More...
unsigned long | _updateWorkerThread (ThreadHandle *threadHandle)
| Called from the worker thread, polls to process frustum culling requests when a sync is performed. More...
virtual void | addListener (Listener *s)
| Add a listener which will get called back on scene manager events. More...
void | addLodListener (LodListener *listener)
| Add a level of detail listener. More...
virtual void | addRenderObjectListener (RenderObjectListener *newListener)
| Registers a new Render Object Listener which will be notified when rendering an object. More...
virtual void | addRenderQueueListener (RenderQueueListener *newListener)
| Registers a new RenderQueueListener which will be notified when render queues are processed. More...
void | clearFrameData (void)
| Clears temporary buffers and other data that needs to live every frame. More...
virtual void | clearScene (bool deleteIndestructibleToo, bool reattachCameras=true)
| Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc. More...
virtual AxisAlignedBoxSceneQuery * | createAABBQuery (const AxisAlignedBox &box, uint32 mask=QUERY_ENTITY_DEFAULT_MASK)
| Creates an AxisAlignedBoxSceneQuery for this scene manager. More...
virtual v1::Animation * | createAnimation (const String &name, Real length)
| Creates an animation which can be used to animate scene nodes. More...
virtual v1::AnimationState * | createAnimationState (const String &animName)
| Create an AnimationState object for managing application of animations. More...
virtual v1::BillboardChain * | createBillboardChain ()
| Create a BillboardChain, an object which you can use to render a linked chain of billboards. More...
virtual v1::BillboardSet * | createBillboardSet (unsigned int poolSize=20)
| Creates a new BillboardSet for use with this scene manager. More...
virtual Camera * | createCamera (const String &name, bool notShadowCaster=true, bool forCubemapping=false)
| Creates a camera to be managed by this scene manager. More...
virtual Decal * | createDecal (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
virtual v1::Entity * | createEntity (const String &meshName, const String &groupName=ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Create an Entity (instance of a discrete mesh). More...
virtual v1::Entity * | createEntity (const v1::MeshPtr &pMesh, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Create an Entity (instance of a discrete mesh). More...
virtual v1::Entity * | createEntity (PrefabType ptype, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Create an Entity (instance of a discrete mesh) from a range of prefab shapes. More...
virtual IntersectionSceneQuery * | createIntersectionQuery (uint32 mask=QUERY_ENTITY_DEFAULT_MASK)
| Creates an IntersectionSceneQuery for this scene manager. More...
virtual Item * | createItem (const MeshPtr &pMesh, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Create an Item (instance of a discrete mesh). More...
virtual Item * | createItem (const String &meshName, const String &groupName=ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Create an Item (instance of a discrete mesh). More...
virtual Light * | createLight ()
| Creates a light for use in the scene. More...
virtual ManualObject * | createManualObject (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface. More...
virtual MovableObject * | createMovableObject (const String &typeName, ObjectMemoryManager *objectMemMgr, const NameValuePairList *params=0)
| Create a movable object of the type specified without a name. More...
virtual ParticleSystem * | createParticleSystem (const String &templateName)
| Creates a particle system based on a template. More...
virtual ParticleSystem * | createParticleSystem (size_t quota=500, const String &resourceGroup=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME)
| Create a blank particle system. More...
virtual PlaneBoundedVolumeListSceneQuery * | createPlaneBoundedVolumeQuery (const PlaneBoundedVolumeList &volumes, uint32 mask=QUERY_ENTITY_DEFAULT_MASK)
| Creates a PlaneBoundedVolumeListSceneQuery for this scene manager. More...
virtual RaySceneQuery * | createRayQuery (const Ray &ray, uint32 mask=QUERY_ENTITY_DEFAULT_MASK)
| Creates a RaySceneQuery for this scene manager. More...
virtual Rectangle2D * | createRectangle2D (SceneMemoryMgrTypes sceneType=SCENE_STATIC)
| Creates a 2D rectangle that can be displayed for screen space effects or showing a basic GUI. More...
virtual v1::RibbonTrail * | createRibbonTrail ()
| Create a RibbonTrail, an object which you can use to render a linked chain of billboards which follows one or more nodes. More...
virtual SceneNode * | createSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Creates an instance of a SceneNode. More...
SkeletonInstance * | createSkeletonInstance (const SkeletonDef *skeletonDef)
| Creates an instance of a skeleton based on the given definition. More...
virtual SphereSceneQuery * | createSphereQuery (const Sphere &sphere, uint32 mask=QUERY_ENTITY_DEFAULT_MASK)
| Creates a SphereSceneQuery for this scene manager. More...
virtual v1::StaticGeometry * | createStaticGeometry (const String &name)
| Creates a StaticGeometry instance suitable for use with this SceneManager. More...
virtual TagPoint * | createTagPoint (void)
| Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone. More...
virtual WireAabb * | createWireAabb (void)
| Create an WireAabb. More...
void | cullLights (Camera *camera, Light::LightTypes startType, Light::LightTypes endType, LightArray &outLights)
void | defragmentMemoryPools (void)
| Triggers on demand a defragmentation of the pools, so that all slots become contiguous in memory. More...
virtual void | destroyAllAnimations (void)
| Removes all animations created using this SceneManager. More...
virtual void | destroyAllAnimationStates (void)
| Removes all animation states created using this SceneManager. More...
virtual void | destroyAllBillboardChains (void)
| Removes & destroys all BillboardChains from the SceneManager. More...
virtual void | destroyAllBillboardSets (void)
| Removes & destroys all BillboardSets. More...
virtual void | destroyAllCameras (void)
| Removes (and destroys) all cameras from the scene. More...
virtual void | destroyAllDecals (void)
virtual void | destroyAllEntities (void)
| Removes & destroys all Entities. More...
virtual void | destroyAllItems (void)
| Removes & destroys all Items. More...
virtual void | destroyAllLights (void)
| Removes and destroys all lights in the scene. More...
virtual void | destroyAllManualObjects (void)
| Removes & destroys all ManualObjects from the SceneManager. More...
virtual void | destroyAllMovableObjects (void)
| Destroy all MovableObjects. More...
virtual void | destroyAllMovableObjectsByType (const String &typeName)
| Destroy all MovableObjects of a given type. More...
virtual void | destroyAllParticleSystems (void)
| Removes & destroys all ParticleSystems from the SceneManager. More...
virtual void | destroyAllRectangle2D (void)
| Removes & destroys all Rectangle2D. More...
virtual void | destroyAllRibbonTrails (void)
| Removes & destroys all RibbonTrails from the SceneManager. More...
virtual void | destroyAllStaticGeometry (void)
| Remove & destroy all StaticGeometry instances. More...
virtual void | destroyAllWireAabbs (void)
| Removes & destroys all WireAabbs. More...
virtual void | destroyAnimation (const String &name)
| Destroys an Animation. More...
virtual void | destroyAnimationState (const String &name)
| Destroys an AnimationState. More...
virtual void | destroyBillboardChain (v1::BillboardChain *obj)
| Removes & destroys a BillboardChain from the SceneManager. More...
virtual void | destroyBillboardSet (v1::BillboardSet *set)
| Removes & destroys an BillboardSet from the SceneManager. More...
virtual void | destroyCamera (Camera *cam)
| Removes a camera from the scene. More...
virtual void | destroyDecal (Decal *decal)
virtual void | destroyEntity (v1::Entity *ent)
| Removes & destroys an Entity from the SceneManager. More...
virtual void | destroyItem (Item *item)
| Removes & destroys an Item from the SceneManager. More...
virtual void | destroyLight (Light *light)
| Removes the light from the scene and destroys it based on a pointer. More...
virtual void | destroyManualObject (ManualObject *obj)
| Removes & destroys a ManualObject from the SceneManager. More...
virtual void | destroyMovableObject (MovableObject *m)
| Destroys a MovableObject. More...
virtual void | destroyMovableObject (MovableObject *m, const String &typeName)
| Destroys a MovableObject with the name specified, of the type specified. More...
virtual void | destroyParticleSystem (ParticleSystem *obj)
| Removes & destroys a ParticleSystem from the SceneManager. More...
virtual void | destroyQuery (SceneQuery *query)
| Destroys a scene query of any type. More...
virtual void | destroyRectangle2D (Rectangle2D *rect)
| Removes & destroys an Entity from the SceneManager. More...
virtual void | destroyRibbonTrail (v1::RibbonTrail *obj)
| Removes & destroys a RibbonTrail from the SceneManager. More...
virtual void | destroySceneNode (SceneNode *sn)
| Destroys a SceneNode. More...
void | destroySkeletonInstance (SkeletonInstance *skeletonInstance)
| Destroys an instance of a skeleton created with @createSkeletonInstance. More...
virtual void | destroyStaticGeometry (const String &name)
| Remove & destroy a StaticGeometry instance. More...
virtual void | destroyStaticGeometry (v1::StaticGeometry *geom)
| Remove & destroy a StaticGeometry instance. More...
virtual void | destroyWireAabb (WireAabb *wireAabb)
| Removes & destroys an WireAabb from the SceneManager. More...
virtual size_t | estimateWorldGeometry (const String &filename)
| Estimate the number of loading stages required to load the named world geometry. More...
virtual size_t | estimateWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING)
| Estimate the number of loading stages required to load the named world geometry. More...
void | executeUserScalableTask (UniformScalableTask *task, bool bBlock)
| Processes a user-defined UniformScalableTask in the worker threads spawned by SceneManager. More...
virtual void | extractAllMovableObjectsByType (const String &typeName)
| Extract all injected MovableObjects of a given type. More...
virtual void | extractMovableObject (MovableObject *m)
| Extract a previously injected MovableObject. More...
virtual Camera * | findCamera (IdString name) const
| Finds the camera with the given name. More...
virtual Camera * | findCameraNoThrow (IdString name) const
| Finds the camera with the given name. More...
virtual MovableObjectVec | findMovableObjects (const String &type, const String &name)
| Finds all the movable objects with the type and name passed as parameters. More...
virtual_l1 SceneNodeList | findSceneNodes (const String &name) const
| Finds all the scene nodes with the name passed as parameter. More...
const Vector3 & | getAmbientLightHemisphereDir (void) const
const ColourValue & | getAmbientLightLowerHemisphere (void) const
const ColourValue & | getAmbientLightUpperHemisphere (void) const
| Returns the ambient light level to be used for the scene. More...
virtual v1::Animation * | getAnimation (const String &name) const
| Looks up an Animation object previously created with createAnimation. More...
AnimationIterator | getAnimationIterator (void)
| Returns a specialised MapIterator over all animations in the scene. More...
const AnimationList & | getAnimations () const
| Returns a const version of the animation list. More...
virtual v1::AnimationState * | getAnimationState (const String &animName) const
| Retrieves animation state as previously created using createAnimationState. More...
v1::AnimationStateIterator | getAnimationStateIterator (void)
| Returns a specialised MapIterator over all animation states in the scene. More...
CameraIterator | getCameraIterator (void)
| Returns a specialised MapIterator over all cameras in the scene. More...
const CameraList & | getCameras () const
| Returns a const version of the camera list. More...
CamerasInProgress | getCamerasInProgress (void) const
| Gets the current camera being rendered (advanced use only, only valid during viewport update. More...
const CompositorTextureVec & | getCompositorTextures (void) const
const AxisAlignedBox & | getCurrentCastersBox (void) const
| @See CompositorShadowNode::getCastersBox More...
const CompositorPass * | getCurrentCompositorPass (void) const
| Note: May be null. More...
TextureGpu * | getCurrentPassDepthTextureNoMsaa (void) const
TextureGpu * | getCurrentPrePassDepthTexture (void) const
PrePassMode | getCurrentPrePassMode (void) const
const TextureGpuVec & | getCurrentPrePassTextures (void) const
TextureGpu * | getCurrentRefractionsTexture (void) const
const CompositorShadowNode * | getCurrentShadowNode (void) const
TextureGpu * | getCurrentSsrTexture (void) const
Viewport * | getCurrentViewport0 (void) const
| Gets the current viewport being rendered (advanced use only, only valid during viewport update. More...
TextureGpu * | getDecalsDiffuse (void) const
TextureGpu * | getDecalsEmissive (void) const
TextureGpu * | getDecalsNormals (void) const
RenderSystem * | getDestinationRenderSystem ()
| Get the rendersystem subclass to which the output of this Scene Manager gets sent. More...
virtual bool | getDisplaySceneNodes (void) const
| Returns true if all scene nodes axis are to be displayed. More...
SceneNode * | getDummySceneNode (void) const
| Unlike mNodeMemoryManager->_getDummyNode(), this dummy node is fully allocated, which makes it possible to actually attach objects to this dummy, while we guarantee the dummy won't change its transform. More...
uint32 | getEnvFeatures (void) const
virtual bool | getFindVisibleObjects (void)
| Gets whether the SceneManager should search for visible objects, or whether they are being manually handled. More...
virtual bool | getFlipCullingOnNegativeScale () const
| Get whether to automatically flip the culling mode on objects whenever they are negatively scaled. More...
virtual const ColourValue & | getFogColour (void) const
| Returns the fog colour for the scene. More...
virtual Real | getFogDensity (void) const
| Returns the fog density for the scene. More...
virtual Real | getFogEnd (void) const
| Returns the fog end distance for the scene. More...
virtual FogMode | getFogMode (void) const
| Returns the fog mode for the scene. More...
virtual Real | getFogStart (void) const
| Returns the fog start distance for the scene. More...
ForwardPlusBase * | getForwardPlus (void)
const LightListInfo & | getGlobalLightList (void) const
IdType | getId () const
| Get the unique id of this object. More...
virtual const PlaneList & | getLightClippingPlanes (const Light *l)
| Retrieve a set of clipping planes for a given light. More...
virtual_l2 uint32 | getLightMask (void) const
| Gets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light. More...
virtual const RealRect & | getLightScissorRect (const Light *l, const Camera *cam)
| Retrieve a scissor rectangle for a given light and camera. More...
void | getMinMaxDepthRange (const Frustum *shadowMapCamera, Real &outMin, Real &outMax) const
| @See CompositorShadowNode::getMinMaxDepthRange More...
virtual MovableObjectIterator | getMovableObjectIterator (const String &typeName)
| Get an iterator over all MovableObect instances of a given type. More...
const String & | getName (void) const
| Return the instance name of this SceneManager. More...
size_t | getNumCompositorTextures (void) const
| Gets the number of currently active compositor textures. More...
size_t | getNumWorkerThreads () const
virtual bool | getOption (const String &strKey, void *pDestValue)
| Method for getting the value of an implementation-specific Scene Manager option. More...
virtual bool | getOptionKeys (StringVector &refKeys)
| Method for getting all the implementation-specific options of the scene manager. More...
virtual bool | getOptionValues (const String &strKey, StringVector &refValueList)
| Method for getting all possible values for a specific option. More...
RadialDensityMask * | getRadialDensityMask (void) const
Vector3 | getRelativeOrigin (void) const
| Returns the current relative origin. (Only when non-permanent) More...
RenderQueue * | getRenderQueue (void) const
| Returns the RenderQueue. More...
SceneNode * | getRootSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC)
| Gets the SceneNode at the root of the scene hierarchy. More...
virtual_l1 SceneNode * | getSceneNode (IdType id)
| Retrieves a SceneNode based on it's ID from the scene graph. More...
virtual_l1 const SceneNode * | getSceneNode (IdType id) const
virtual const ColourValue & | getShadowColour (void) const
| Get the colour used to modulate areas in shadow. More...
virtual Real | getShadowDirectionalLightExtrusionDistance (void) const
| Gets the distance a shadow volume is extruded for a directional light. More...
virtual Real | getShadowDirLightTextureOffset (void) const
| Gets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space. More...
virtual Real | getShadowFarDistance (void) const
| Gets the default maximum distance away from the camera that shadows will be visible. More...
virtual Real | getShadowFarDistanceSquared (void) const
virtual bool | getShowBoundingBoxes () const
| Returns if all bounding boxes of scene nodes are to be displayed. More...
Rectangle2D * | getSky (void)
MaterialPtr | getSkyMaterial (void)
SkyMethod | getSkyMethod (void) const
const float * | getSphericalHarmonics (void) const
virtual v1::StaticGeometry * | getStaticGeometry (const String &name) const
| Retrieve a previously created StaticGeometry instance. More...
virtual ViewPoint | getSuggestedViewpoint (bool random=false)
| Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed. More...
const String & | getTypeName (void) const
| Retrieve the type name of this scene manager. More...
virtual_l2 uint32 | getVisibilityMask (void) const
| Gets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible. More...
virtual bool | hasAnimation (const String &name) const
| Returns whether an animation with the given name exists. More...
virtual bool | hasAnimationState (const String &name) const
| Returns whether an animation state with the given name exists. More...
virtual bool | hasMovableObject (MovableObject *m)
| Returns if this SceneManager contains the specified MovableObject. More...
virtual bool | hasOption (const String &strKey) const
| Method for verifying whether the scene manager has an implementation-specific option. More...
virtual bool | hasStaticGeometry (const String &name) const
| Returns whether a static geometry instance with the given name exists. More...
virtual void | injectMovableObject (MovableObject *m)
| Inject a MovableObject instance created externally. More...
bool | isCurrentShadowNodeReused (void) const
bool | isDecalsDiffuseEmissiveMerged (void) const
virtual bool | isLateMaterialResolving () const
| Gets whether using late material resolving or not. More...
bool | isSkyEnabled (void) const
bool | isUsingInstancedStereo (void) const
void | notifyStaticAabbDirty (MovableObject *movableObject)
| Notifies that the given MovableObject is dirty (i.e. More...
void | notifyStaticDirty (Node *node)
| Notifies that the given Node is dirty (i.e. More...
| OGRE_MUTEX (sceneGraphMutex)
| Mutex to protect the scene graph from simultaneous access from multiple threads. More...
void | operator delete (void *ptr)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete (void *ptr, void *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz)
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
bool | operator() (const IdObject &left, const IdObject &right)
bool | operator() (const IdObject *left, const IdObject *right)
virtual void | prepareWorldGeometry (const String &filename)
| Sets the source of the 'world' geometry, i.e. More...
virtual void | prepareWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING)
| Sets the source of the 'world' geometry, i.e. More...
virtual void | registerSceneNodeListener (SceneNode *sceneNode)
| Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms. More...
virtual void | removeListener (Listener *s)
| Remove a listener. More...
void | removeLodListener (LodListener *listener)
| Remove a level of detail listener. More...
virtual void | removeRenderObjectListener (RenderObjectListener *delListener)
| Removes a listener previously added with addRenderObjectListener. More...
virtual void | removeRenderQueueListener (RenderQueueListener *delListener)
| Removes a listener previously added with addRenderQueueListener. More...
void | setAmbientLight (const ColourValue &upperHemisphere, const ColourValue &lowerHemisphere, const Vector3 &hemisphereDir, Real envmapScale=1.0f, uint32 envFeatures=0xffffffff)
| Sets the ambient light level to be used for the scene. More...
void | setBuildLegacyLightList (bool bEnable)
| Enables or disables the legace 1.9 way of building light lists which can be used by HlmsLowLevel materials. More...
void | setDecalsDiffuse (TextureGpu *tex)
| Sets the decal texture for diffuse. More...
void | setDecalsEmissive (TextureGpu *tex)
| See SceneManager::setDecalsDiffuse. More...
void | setDecalsNormals (TextureGpu *tex)
| Sets the decal texture normal maps. More...
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. More...
virtual void | setFindVisibleObjects (bool find)
| Sets whether the SceneManager should search for visible objects, or whether they are being manually handled. More...
virtual void | setFlipCullingOnNegativeScale (bool n)
| Set whether to automatically flip the culling mode on objects whenever they are negatively scaled. More...
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. More...
void | setForward3D (bool bEnable, uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, float minDistance, float maxDistance)
| Enables or disables the Forward3D implementation for using many non-shadowed lights in the scene. More...
void | setForwardClustered (bool bEnable, uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, uint32 decalsPerCell, uint32 cubemapProbesPerCel, float minDistance, float maxDistance)
virtual void | setLateMaterialResolving (bool isLate)
| Sets whether to use late material resolving or not. More...
virtual_l2 void | setLightMask (uint32 mask)
| Sets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light. More...
virtual bool | setOption (const String &strKey, const void *pValue)
| Method for setting a specific option of the Scene Manager. More...
void | setRadialDensityMask (bool bEnabled, const float radius[3])
| Draws a Radial Density Mask to lower the quality around the edges in VR. More...
virtual void | setRelativeOrigin (const Vector3 &relativeOrigin, bool bPermanent)
| Set whether to use relative offset co-ordinates when rendering, ie offset to subtract to the camera, lights & objects. More...
virtual void | setShadowColour (const ColourValue &colour)
| Set the colour used to modulate areas in shadow. More...
virtual void | setShadowDirectionalLightExtrusionDistance (Real dist)
| Sets the distance a shadow volume is extruded for a directional light. More...
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. More...
virtual void | setShadowFarDistance (Real distance)
| Sets the default maximum distance away from the camera that shadows will be visible. More...
virtual void | setShadowTextureCasterMaterial (const String &name)
| Sets the default material to use for rendering shadow casters. More...
virtual void | setShadowTextureFadeEnd (Real fadeEnd)
| Sets the proportional distance at which texture shadows finish to fading out. More...
virtual void | setShadowTextureFadeStart (Real fadeStart)
| Sets the proportional distance at which texture shadows begin to fade out. More...
void | setSky (bool bEnabled, SkyMethod skyMethod, const String &texName, const String &resourceGroup)
void | setSky (bool bEnabled, SkyMethod skyMethod, TextureGpu *texture)
| Sets a sky, to use a particular material based on SkyMethod. More...
void | setSphericalHarmonics (Vector3 ambientSphericalHarmonics[9])
virtual_l2 void | setVisibilityMask (uint32 vmask)
| Sets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible. More...
virtual void | setWorldGeometry (const String &filename)
| Sets the source of the 'world' geometry, i.e. More...
virtual void | setWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING)
| Sets the source of the 'world' geometry, i.e. More...
virtual void | showBoundingBoxes (bool bShow)
| Allows all bounding boxes of scene nodes to be displayed. More...
void | shrinkToFitMemoryPools (void)
| Defragments memory, then reallocates a smaller pool that tightly fits the current number of objects. More...
virtual void | unregisterSceneNodeListener (SceneNode *sceneNode)
| Unregisters a registered node for listening. More...
void | updateAllAnimations ()
| Updates all skeletal animations in the scene. More...
void | updateAllBounds (const ObjectMemoryManagerVec &objectMemManager)
| Updates the world aabbs from all entities in the scene. More...
void | updateAllLods (const Camera *lodCamera, Real lodBias, uint8 firstRq, uint8 lastRq)
| Updates the Lod values of all objects relative to the given camera. More...
void | updateAllTagPoints (void)
| Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints. More...
void | updateAllTransforms ()
| Updates the derived transforms of all nodes in the scene. More...
void | updateSceneGraph ()
| Updates the scene: Perform high level culling, Node transforms and entity animations. More...
void | waitForPendingUserScalableTask ()
| Blocks until the the task from processUserScalableTask finishes. More...

## Static Public Attributes
static uint32 | QUERY_ENTITY_DEFAULT_MASK
| Default query mask for entities. More...
static uint32 | QUERY_FRUSTUM_DEFAULT_MASK
| Default query mask for frusta and cameras. More...
static uint32 | QUERY_FX_DEFAULT_MASK
| Default query mask for effects like billboardsets / particle systems. More...
static uint32 | QUERY_LIGHT_DEFAULT_MASK
| Default query mask for lights. More...
static uint32 | QUERY_STATICGEOMETRY_DEFAULT_MASK
| Default query mask for StaticGeometry. More...

## Detailed Description

Default scene manager.

## Member Typedef Documentation

## ◆ AnimationIterator

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

## ◆ CameraIterator

typedef VectorIterator<CameraList> Ogre::SceneManager::CameraIterator
| inherited

## ◆ MovableObjectIterator

typedef VectorIterator<MovableObjectVec> Ogre::SceneManager::MovableObjectIterator
| inherited

## ◆ MovableObjectVec

typedef vector<MovableObject*>::type Ogre::SceneManager::MovableObjectVec
| inherited

## ◆ SceneNodeList

typedef vector<SceneNode*>::type Ogre::SceneManager::SceneNodeList
| inherited

## Member Enumeration Documentation

## ◆ EnvFeatures

enum Ogre::SceneManager::EnvFeatures
| inherited

Enumerator
EnvFeatures_DiffuseGiFromReflectionProbe | Normally environmental cubemap probes are used for specular reflection When this flag is present, the higest mip is used as an approximation for diffuse indirect illumination. Do not set this flag if you don't want this behavior (i.e. because the diffuse GI is already gathered from another source of information)

## ◆ IlluminationRenderStage

enum Ogre::SceneManager::IlluminationRenderStage
| inherited

Describes the stage of rendering when performing complex illumination.

Enumerator
IRS_NONE | No special illumination stage.
IRS_RENDER_TO_TEXTURE | Render to texture stage, used for texture based shadows.

## ◆ PrefabType

enum Ogre::SceneManager::PrefabType
| inherited

Prefab shapes available without loading a model.

Note
  Minimal implementation at present.

Enumerator
PT_PLANE |
PT_CUBE |
PT_SPHERE |

## ◆ SkyMethod

enum Ogre::SceneManager::SkyMethod
| inherited

Enumerator
SkyCubemap |
SkyEquirectangular |

## Constructor & Destructor Documentation

## ◆ DefaultSceneManager()

Ogre::DefaultSceneManager::DefaultSceneManager | ( | const String & | name,
|  | size_t | numWorkerThreads
| ) |  |

## ◆ ~DefaultSceneManager()

Ogre::DefaultSceneManager::~DefaultSceneManager | ( |  | ) |

## Member Function Documentation

## ◆ _addAutotrackingSceneNode()

virtual void Ogre::SceneManager::_addAutotrackingSceneNode | ( | SceneNode * | source,
|  | SceneNode * | target,
|  | const Vector3 & | offset,
|  | const Vector3 & | localDirection
| ) |  |
| virtualinherited

Internal method for notifying the manager that a SceneNode is autotracking.

## ◆ _addCompositorTexture()

void Ogre::SceneManager::_addCompositorTexture | ( | IdString | name,
|  | TextureGpu * | tex
| ) |  |
| inherited

Used by Compositor, tells of which compositor textures active, so Materials can access them.

If MRT, there could be more than one

Parameters

  name | Name of the texture(s) as referenced in the compositor (may not be the texture's real name in case it's just one)
  tex | The actual texture(s) associated with that name

## ◆ _addWireAabb()

void Ogre::SceneManager::_addWireAabb | ( | WireAabb * | wireAabb | ) |
| inherited

## ◆ _applySceneAnimations()

virtual void Ogre::SceneManager::_applySceneAnimations | ( | void |  | ) |
| virtualinherited

Internal method for applying animations to scene nodes.

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

## ◆ _areRenderStateChangesSuppressed()

virtual bool Ogre::SceneManager::_areRenderStateChangesSuppressed | ( | void |  | ) | const
| inlinevirtualinherited

Are render state changes suppressed?

See also
  _suppressRenderStateChanges

## ◆ _calculateCurrentCastersBox()

AxisAlignedBox Ogre::SceneManager::_calculateCurrentCastersBox | ( | uint32 | viewportVisibilityMask,
|  | uint8 | firstRq,
|  | uint8 | lastRq
| ) |  | const
| inherited

## ◆ _collectForwardPlusObjects()

bool Ogre::SceneManager::_collectForwardPlusObjects | ( | const Camera * | camera | ) |
| inherited

Returns true if collection code was run.

When false, you cannot trust the contents of _getTmpVisibleObjectsList to be empty

## ◆ _createCubemapProbe()

virtual InternalCubemapProbe* Ogre::SceneManager::_createCubemapProbe | ( | SceneMemoryMgrTypes | sceneType | ) |
| virtualinherited

## ◆ _createSceneNode()

virtual SceneNode* Ogre::SceneManager::_createSceneNode | ( | SceneNode * | parent,
|  | NodeMemoryManager * | nodeMemoryManager
| ) |  |
| virtualinherited

See also
  createSceneNode. This functions exists to satisfy
  SceneNode::createChildImpl Don't call this function directly

  Parent to the scene node we're creating.

## ◆ _createTagPoint()

virtual TagPoint* Ogre::SceneManager::_createTagPoint | ( | SceneNode * | parent,
|  | NodeMemoryManager * | nodeMemoryManager
| ) |  |
| virtualinherited

Don't call this function directly.

See also
  TagPoint::createChildTagPoint

## ◆ _cullPhase01()

virtual void Ogre::SceneManager::_cullPhase01 | ( | Camera * | cullCamera,
|  | Camera * | renderCamera,
|  | const Camera * | lodCamera,
|  | uint8 | firstRq,
|  | uint8 | lastRq,
|  | bool | reuseCullData
| ) |  |
| virtualinherited

Performs the frustum culling that will later be needed by _renderPhase02.

Remarks
  @See CompositorShadowNode to understand why rendering is split in two phases

Parameters

  camera | Pointer to a camera from whose viewpoint the scene is to be rendered.
  vp | The target viewport
  firstRq | first render queue ID to render (gets clamped if too big)
  lastRq | last render queue ID to render (gets clamped if too big)

## ◆ _destroyAllCubemapProbes()

virtual void Ogre::SceneManager::_destroyAllCubemapProbes | ( | void |  | ) |
| virtualinherited

## ◆ _destroyCubemapProbe()

virtual void Ogre::SceneManager::_destroyCubemapProbe | ( | InternalCubemapProbe * | probe | ) |
| virtualinherited

## ◆ _frameEnded()

void Ogre::SceneManager::_frameEnded | ( | void |  | ) |
| inherited

Called when the frame has fully ended (ALL passes have been executed to all RTTs)

## ◆ _getActivePassForwardPlus()

ForwardPlusBase* Ogre::SceneManager::_getActivePassForwardPlus | ( | void |  | ) |
| inlineinherited

## ◆ _getAutoParamDataSource()

AutoParamDataSource* Ogre::SceneManager::_getAutoParamDataSource | ( | void |  | ) | const
| inlineinherited

## ◆ _getCombinedVisibilityMask()

uint32 Ogre::SceneManager::_getCombinedVisibilityMask | ( | void |  | ) | const
| inherited

Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask.

## ◆ _getCurrentRenderStage()

IlluminationRenderStage Ogre::SceneManager::_getCurrentRenderStage | ( |  | ) | const
| inlineinherited

## ◆ _getEntityMemoryManager()

ObjectMemoryManager& Ogre::SceneManager::_getEntityMemoryManager | ( | SceneMemoryMgrTypes | sceneType | ) |
| inlineinherited

Retrieves the main entity memory manager.

Remarks
  Some Scene Managers may have more than one memory manager (e.g. one per octant in an Octree implementation). At end of scene graph update the scene manager may move the object created with the main memory manager into another another one.

## ◆ _getLightMemoryManager()

ObjectMemoryManager& Ogre::SceneManager::_getLightMemoryManager | ( | void |  | ) |
| inlineinherited

## ◆ _getNodeMemoryManager()

NodeMemoryManager& Ogre::SceneManager::_getNodeMemoryManager | ( | SceneMemoryMgrTypes | sceneType | ) |
| inlineinherited

## ◆ _getTagPointNodeMemoryManager()

NodeMemoryManager& Ogre::SceneManager::_getTagPointNodeMemoryManager | ( | void |  | ) |
| inlineinherited

## ◆ _getTmpVisibleObjectsList()

VisibleObjectsPerThreadArray& Ogre::SceneManager::_getTmpVisibleObjectsList | ( |  | ) |
| inlineinherited

@See mTmpVisibleObjects

## ◆ _handleLodEvents()

void Ogre::SceneManager::_handleLodEvents | ( |  | ) |
| inherited

Handle LOD events.

## ◆ _markGpuParamsDirty()

virtual void Ogre::SceneManager::_markGpuParamsDirty | ( | uint16 | mask | ) |
| virtualinherited

Method to allow you to mark gpu parameters as dirty, causing them to be updated according to the mask that you set when updateGpuProgramParameters is next called.

Only really useful if you're controlling parameter state in inner rendering loop callbacks.

Parameters

  mask | Some combination of GpuParamVariability which is bitwise OR'ed with the current dirty state.

## ◆ _notifyEntityMaterialLodChanged()

void Ogre::SceneManager::_notifyEntityMaterialLodChanged | ( | EntityMaterialLodChangedEvent & | evt | ) |
| inherited

Notify that an entity material LOD change event has occurred.

## ◆ _notifyEntityMeshLodChanged()

void Ogre::SceneManager::_notifyEntityMeshLodChanged | ( | EntityMeshLodChangedEvent & | evt | ) |
| inherited

Notify that an entity mesh LOD change event has occurred.

## ◆ _notifyMovableObjectLodChanged()

void Ogre::SceneManager::_notifyMovableObjectLodChanged | ( | MovableObjectLodChangedEvent & | evt | ) |
| inherited

Notify that a movable object LOD change event has occurred.

## ◆ _pauseRendering()

virtual RenderContext* Ogre::SceneManager::_pauseRendering | ( |  | ) |
| virtualinherited

Pause rendering of the frame.

This has to be called when inside a renderScene call (Usually using a listener of some sort)

## ◆ _releaseManualHardwareResources()

virtual void Ogre::SceneManager::_releaseManualHardwareResources | ( |  | ) |
| virtualinherited

Notifies the scene manager that hardware resources were lost.

Remarks
  Called automatically by RenderSystem if hardware resources were lost and can not be restored using some internal mechanism. Among affected resources are manual meshes without loaders, manual textures without loaders, ManualObjects, etc.

## ◆ _removeAutotrackingSceneNode()

virtual void Ogre::SceneManager::_removeAutotrackingSceneNode | ( | SceneNode * | source | ) |
| virtualinherited

## ◆ _removeCompositorTextures()

void Ogre::SceneManager::_removeCompositorTextures | ( | size_t | from | ) |
| inherited

Removes all compositor textures from 'from' to end.

## ◆ _removeWireAabb()

void Ogre::SceneManager::_removeWireAabb | ( | WireAabb * | wireAabb | ) |
| inherited

## ◆ _renderPhase02()

virtual void Ogre::SceneManager::_renderPhase02 | ( | Camera * | camera,
|  | const Camera * | lodCamera,
|  | uint8 | firstRq,
|  | uint8 | lastRq,
|  | bool | includeOverlays
| ) |  |
| virtualinherited

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. You must have called _cullPhase01 before calling this function. 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.
  lodCamera | Pointer to a camera from whose LOD calculations will be based upon. Can't be null; can be equal to @camera.
  vp | The target viewport
  firstRq | first render queue ID to render (gets clamped if too big)
  lastRq | last render queue ID to render (gets clamped if too big)
  includeOverlays | Whether or not overlay objects should be rendered

## ◆ _renderSingleObject()

virtual void Ogre::SceneManager::_renderSingleObject | ( | Renderable * | pRend,
|  | const MovableObject * | pMovableObject,
|  | bool | casterPass,
|  | bool | dualParaboloid
| ) |  |
| virtualinherited

## ◆ _restoreManualHardwareResources()

virtual void Ogre::SceneManager::_restoreManualHardwareResources | ( |  | ) |
| virtualinherited

Notifies the scene manager that hardware resources should be restored.

Remarks
  Called automatically by RenderSystem if hardware resources were lost and can not be restored using some internal mechanism. Among affected resources are manual meshes without loaders, manual textures without loaders, ManualObjects, etc.

## ◆ _resumeRendering()

virtual void Ogre::SceneManager::_resumeRendering | ( | RenderContext * | context | ) |
| virtualinherited

Resume rendering of the frame.

This has to be called after a _pauseRendering call

Parameters

  context | The rendring context, as returned by the _pauseRendering call

## ◆ _setCamerasInProgress()

void Ogre::SceneManager::_setCamerasInProgress | ( | const CamerasInProgress & | cameras | ) |
| inlineinherited

## ◆ _setCurrentCompositorPass()

void Ogre::SceneManager::_setCurrentCompositorPass | ( | CompositorPass * | pass | ) |
| inherited

## ◆ _setCurrentRenderStage()

void Ogre::SceneManager::_setCurrentRenderStage | ( | IlluminationRenderStage | stage | ) |
| inlineinherited

## ◆ _setCurrentShadowNode()

void Ogre::SceneManager::_setCurrentShadowNode | ( | CompositorShadowNode * | shadowNode,
|  | bool | isReused
| ) |  |
| inherited

## ◆ _setDestinationRenderSystem()

virtual void Ogre::SceneManager::_setDestinationRenderSystem | ( | RenderSystem * | sys | ) |
| virtualinherited

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.

## ◆ _setForwardPlusEnabledInPass()

void Ogre::SceneManager::_setForwardPlusEnabledInPass | ( | bool | bEnable | ) |
| inherited

For internal use.

See also
  CompositorPassSceneDef::mEnableForwardPlus

## ◆ _setLightCullingVisibility()

void Ogre::SceneManager::_setLightCullingVisibility | ( | Camera * | camera,
|  | bool | collectLights,
|  | bool | isCubemap
| ) |  |
| inherited

See Camera::setLightCullingVisibility.

## ◆ _setPrePassMode()

void Ogre::SceneManager::_setPrePassMode | ( | PrePassMode | mode,
|  | const TextureGpuVec & | prepassTextures,
|  | TextureGpu * | prepassDepthTexture,
|  | TextureGpu * | ssrTexture
| ) |  |
| inherited

For internal use.

See also
  CompositorPassSceneDef::mPrePassMode

## ◆ _setRefractions()

void Ogre::SceneManager::_setRefractions | ( | TextureGpu * | depthTextureNoMsaa,
|  | TextureGpu * | refractionsTexture
| ) |  |
| inherited

## ◆ _suppressRenderStateChanges()

virtual void Ogre::SceneManager::_suppressRenderStateChanges | ( | bool | suppress | ) |
| virtualinherited

Indicates to the SceneManager whether it should suppress changing the RenderSystem states when rendering objects.

Remarks
  This method allows you to tell the SceneManager not to change any RenderSystem state until you tell it to. This method is only intended for advanced use, don't use it if you're unsure of the effect. The only RenderSystems calls made are to set the world matrix for each object (note - view an projection matrices are NOT SET - they are under your control) and to render the object; it is up to the caller to do everything else, including enabling any vertex / fragment programs and updating their parameter state, and binding parameters to the RenderSystem.

Note
  Calling this implicitly disables shadow processing since no shadows can be rendered without changing state.

Parameters

  suppress | If true, no RenderSystem state changes will be issued until this method is called again with a parameter of false.

## ◆ _updateWorkerThread()

unsigned long Ogre::SceneManager::_updateWorkerThread | ( | ThreadHandle * | threadHandle | ) |
| inherited

Called from the worker thread, polls to process frustum culling requests when a sync is performed.

## ◆ addListener()

virtual void Ogre::SceneManager::addListener | ( | Listener * | s | ) |
| virtualinherited

Add a listener which will get called back on scene manager events.

## ◆ addLodListener()

void Ogre::SceneManager::addLodListener | ( | LodListener * | listener | ) |
| inherited

Add a level of detail listener.

## ◆ addRenderObjectListener()

virtual void Ogre::SceneManager::addRenderObjectListener | ( | RenderObjectListener * | newListener | ) |
| virtualinherited

Registers a new Render Object Listener which will be notified when rendering an object.

## ◆ addRenderQueueListener()

virtual void Ogre::SceneManager::addRenderQueueListener | ( | RenderQueueListener * | newListener | ) |
| virtualinherited

Registers a new RenderQueueListener which will be notified when render queues are processed.

## ◆ clearFrameData()

void Ogre::SceneManager::clearFrameData | ( | void |  | ) |
| inherited

Clears temporary buffers and other data that needs to live every frame.

## ◆ clearScene()

virtual void Ogre::SceneManager::clearScene | ( | bool | deleteIndestructibleToo,
|  | bool | reattachCameras = `true`
| ) |  |
| virtualinherited

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.

Remarks
  When an indestructible SceneNode has a destructible parent, the parent will be destroyed and thus the former SceneNode will be parent-less, i.e. be at the same level as root. Note that parent-less SceneNodes can still render to the scene (this behavior is different from Ogre 1.x)

Parameters

  deleteIndestructibleToo | If a node is marked as indestructible, it won't be deleted unless deleteIndestructibleToo is marked as true. Note that some Ogre compoenents mark some of their objects as internal to prevent them from becoming dangling pointers.

If you don't know what to put here, set it to false.

Parameters

  reattachCameras | When true, all Cameras that have no parent node after clearing will be reattached to the root node.

## ◆ createAABBQuery()

virtual AxisAlignedBoxSceneQuery* Ogre::SceneManager::createAABBQuery | ( | const AxisAlignedBox & | box,
|  | uint32 | mask = `QUERY_ENTITY_DEFAULT_MASK`
| ) |  |
| virtualinherited

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.

## ◆ createAnimation()

virtual v1::Animation* Ogre::SceneManager::createAnimation | ( | const String & | name,
|  | Real | length
| ) |  |
| virtualinherited

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.

## ◆ createAnimationState()

virtual v1::AnimationState* Ogre::SceneManager::createAnimationState | ( | const String & | animName | ) |
| virtualinherited

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.

  If the target of your animation is to be a generic AnimableValue, you should ensure that it has a base value set (unlike nodes this has no default).

See also
  AnimableValue::setAsBaseValue.

Parameters

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

## ◆ createBillboardChain()

virtual v1::BillboardChain* Ogre::SceneManager::createBillboardChain | ( |  | ) |
| virtualinherited

Create a BillboardChain, an object which you can use to render a linked chain of billboards.

## ◆ createBillboardSet()

virtual v1::BillboardSet* Ogre::SceneManager::createBillboardSet | ( | unsigned int | poolSize = `20` | ) |
| virtualinherited

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

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

See also
  BillboardSet

## ◆ createCamera()

virtual Camera* Ogre::SceneManager::createCamera | ( | const String & | name,
|  | bool | notShadowCaster = `true`,
|  | bool | forCubemapping = `false`
| ) |  |
| virtualinherited

Creates a camera to be managed by this scene manager.

Remarks
  This camera is automatically added to the scene by being attached to the Root Scene Node before returning. If you want to use your own SceneNode for this camera, you'll have to detach it first (can be done via camera->detachFromParent();)

Parameters

  name | Name to give the new camera. Must be unique.
  notShadowCaster | True if this camera should be considered when creating the global light list of culled lights against all cameras. For example, cameras used for shadow mapping shouldn't be taken into account (set to false)
  forCubemapping | True this camera will be used at least once in one of its passes as a cubemap (thus having to change the orientation but not position mid-rendering)

## ◆ createDecal()

virtual Decal* Ogre::SceneManager::createDecal | ( | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC` | ) |
| virtualinherited

## ◆ createEntity() [1/3]

virtual v1::Entity* Ogre::SceneManager::createEntity | ( | const String & | meshName,
|  | const String & | groupName = `ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME`,
|  | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`
| ) |  |
| virtualinherited

Create an Entity (instance of a discrete mesh).

Parameters

  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.

## ◆ createEntity() [2/3]

virtual v1::Entity* Ogre::SceneManager::createEntity | ( | const v1::MeshPtr & | pMesh,
|  | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`
| ) |  |
| virtualinherited

Create an Entity (instance of a discrete mesh).

Parameters

  pMesh | The pointer to the Mesh it is to be based on.

## ◆ createEntity() [3/3]

virtual v1::Entity* Ogre::SceneManager::createEntity | ( | PrefabType | ptype,
|  | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`
| ) |  |
| virtualinherited

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

Parameters

  ptype | The prefab type.

## ◆ createIntersectionQuery()

virtual IntersectionSceneQuery* Ogre::SceneManager::createIntersectionQuery | ( | uint32 | mask = `QUERY_ENTITY_DEFAULT_MASK` | ) |
| virtualinherited

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.

## ◆ createItem() [1/2]

virtual Item* Ogre::SceneManager::createItem | ( | const MeshPtr & | pMesh,
|  | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`
| ) |  |
| virtualinherited

Create an Item (instance of a discrete mesh).

Parameters

  pMesh | The pointer to the Mesh it is to be based on.

## ◆ createItem() [2/2]

virtual Item* Ogre::SceneManager::createItem | ( | const String & | meshName,
|  | const String & | groupName = `ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME`,
|  | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC`
| ) |  |
| virtualinherited

Create an Item (instance of a discrete mesh).

Parameters

  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.

## ◆ createLight()

virtual Light* Ogre::SceneManager::createLight | ( |  | ) |
| virtualinherited

Creates a light for use in the scene.

Remarks
  The direction and position of a light is managed via the scene node it is attached to. Make sure that you have attached the light to a scene node (SceneNode::attachObject) before* calling Light::setDirection or Light::setPosition.

## ◆ createManualObject()

virtual ManualObject* Ogre::SceneManager::createManualObject | ( | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC` | ) |
| virtualinherited

Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface.

## ◆ createMovableObject()

virtual MovableObject* Ogre::SceneManager::createMovableObject | ( | const String & | typeName,
|  | ObjectMemoryManager * | objectMemMgr,
|  | const NameValuePairList * | params = `0`
| ) |  |
| virtualinherited

Create a movable object of the type specified without a name.

Remarks
  This is the generalised form of MovableObject creation where you can create a MovableObject of any specialised type generically, including any new types registered using plugins. The name is generated automatically.

Parameters

  typeName | The type of object to create
  objectMemMgr | Memory Manager that will hold ObjectData data.
  params | Optional name/value pair list to give extra parameters to the created object.

## ◆ createParticleSystem() [1/2]

virtual ParticleSystem* Ogre::SceneManager::createParticleSystem | ( | const String & | templateName | ) |
| virtualinherited

Creates a particle system based on a template.

Remarks
  This method creates a new ParticleSystem instance based on the named template (defined through ParticleSystemManager::createTemplate) and returns a pointer to the caller. The caller should not delete this object, it will be freed at system shutdown, or can be released earlier using the destroyParticleSystem method.

  Each system created from a template takes the template's settings at the time of creation, but is completely separate from the template from there on.

  Creating a particle system does not make it a part of the scene. As with other MovableObject subclasses, a ParticleSystem is not rendered until it is attached to a SceneNode.

  This is probably the more useful particle system creation method since it does not require manual setup of the system. Note that the initial quota is based on the template but may be changed later.

Parameters

  templateName | The name of the template to base the new instance on.

## ◆ createParticleSystem() [2/2]

virtual ParticleSystem* Ogre::SceneManager::createParticleSystem | ( | size_t | quota = `500`,
|  | const String & | resourceGroup = `ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME`
| ) |  |
| virtualinherited

Create a blank particle system.

Remarks
  This method creates a new, blank ParticleSystem instance and returns a pointer to it. The caller should not delete this object, it will be freed at system shutdown, or can be released earlier using the destroyParticleSystem method.

  The instance returned from this method won't actually do anything because on creation a particle system has no emitters. The caller should manipulate the instance through it's ParticleSystem methods to actually create a real particle effect.

  Creating a particle system does not make it a part of the scene. As with other MovableObject subclasses, a ParticleSystem is not rendered until it is attached to a SceneNode.

Parameters

  quota | The maximum number of particles to allow in this system.
  resourceGroup | The resource group which will be used to load dependent resources

## ◆ createPlaneBoundedVolumeQuery()

virtual PlaneBoundedVolumeListSceneQuery* Ogre::SceneManager::createPlaneBoundedVolumeQuery | ( | const PlaneBoundedVolumeList & | volumes,
|  | uint32 | mask = `QUERY_ENTITY_DEFAULT_MASK`
| ) |  |
| virtualinherited

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.

## ◆ createRayQuery()

virtual RaySceneQuery* Ogre::SceneManager::createRayQuery | ( | const Ray & | ray,
|  | uint32 | mask = `QUERY_ENTITY_DEFAULT_MASK`
| ) |  |
| virtualinherited

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.

## ◆ createRectangle2D()

virtual Rectangle2D* Ogre::SceneManager::createRectangle2D | ( | SceneMemoryMgrTypes | sceneType = `SCENE_STATIC` | ) |
| virtualinherited

Creates a 2D rectangle that can be displayed for screen space effects or showing a basic GUI.

Notice that due to engine's requirements, you need to attach this object to a scene node in order to be rendered correctly.

  You can use the Root scene node. However if you're planning on also using setRelativeOrigin, beware that this would break the permanent setting and you should then use a dummy scene node for your rectangles.

Remarks
  The Rectangle2D will request to use identity view and projection matrices, but only low level materials will honour that request. PBS shaders will ignore it (thus the rectangle will be drawn in 3D space) and other Hlms types may work differently and you'll have to check its documentation.

Parameters

  sceneType | Whether you will be moving the Rectangle2D's scene node around. Unless you're planning to use this Rectangle2D for 3D purposes, it is highly recomended that you use SCENE_STATIC (you can safely use SCENE_STATIC and change Rectangle2D::setCorners and Rectangle2D::setNormal every frame).

Returns
  The Rectangle2D.

## ◆ createRibbonTrail()

virtual v1::RibbonTrail* Ogre::SceneManager::createRibbonTrail | ( |  | ) |
| virtualinherited

Create a RibbonTrail, an object which you can use to render a linked chain of billboards which follows one or more nodes.

## ◆ createSceneNode()

virtual SceneNode* Ogre::SceneManager::createSceneNode | ( | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC` | ) |
| virtualinherited

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. @params sceneType Dynamic if this node is to be updated frequently. Static if you don't plan to be updating this node in a long time (performance optimization).

## ◆ createSkeletonInstance()

SkeletonInstance* Ogre::SceneManager::createSkeletonInstance | ( | const SkeletonDef * | skeletonDef | ) |
| inherited

Creates an instance of a skeleton based on the given definition.

## ◆ createSphereQuery()

virtual SphereSceneQuery* Ogre::SceneManager::createSphereQuery | ( | const Sphere & | sphere,
|  | uint32 | mask = `QUERY_ENTITY_DEFAULT_MASK`
| ) |  |
| virtualinherited

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.

## ◆ createStaticGeometry()

virtual v1::StaticGeometry* Ogre::SceneManager::createStaticGeometry | ( | const String & | name | ) |
| virtualinherited

Creates a StaticGeometry instance suitable for use with this SceneManager.

Remarks
  StaticGeometry is a way of batching up geometry into a more efficient form at the expense of being able to move it. Please read the StaticGeometry class documentation for full information.

Parameters

  name | The name to give the new object

Returns
  The new StaticGeometry instance

## ◆ createTagPoint()

virtual TagPoint* Ogre::SceneManager::createTagPoint | ( | void |  | ) |
| virtualinherited

Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone.

See also
  Bone::addTagPoint

## ◆ createWireAabb()

virtual WireAabb* Ogre::SceneManager::createWireAabb | ( | void |  | ) |
| virtualinherited

Create an WireAabb.

## ◆ cullLights()

void Ogre::SceneManager::cullLights | ( | Camera * | camera,
|  | Light::LightTypes | startType,
|  | Light::LightTypes | endType,
|  | LightArray & | outLights
| ) |  |
| inherited

## ◆ defragmentMemoryPools()

void Ogre::SceneManager::defragmentMemoryPools | ( | void |  | ) |
| inherited

Triggers on demand a defragmentation of the pools, so that all slots become contiguous in memory.

ArrayMemoryManager::destroySlot already does this when the number of fragmented slots reaches mCleanupThreshold

## ◆ destroyAllAnimations()

virtual void Ogre::SceneManager::destroyAllAnimations | ( | void |  | ) |
| virtualinherited

Removes all animations created using this SceneManager.

## ◆ destroyAllAnimationStates()

virtual void Ogre::SceneManager::destroyAllAnimationStates | ( | void |  | ) |
| virtualinherited

Removes all animation states created using this SceneManager.

## ◆ destroyAllBillboardChains()

virtual void Ogre::SceneManager::destroyAllBillboardChains | ( | void |  | ) |
| virtualinherited

Removes & destroys all BillboardChains from the SceneManager.

## ◆ destroyAllBillboardSets()

virtual void Ogre::SceneManager::destroyAllBillboardSets | ( | void |  | ) |
| virtualinherited

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

## ◆ destroyAllCameras()

virtual void Ogre::SceneManager::destroyAllCameras | ( | void |  | ) |
| virtualinherited

Removes (and destroys) all cameras from the scene.

Remarks
  Some cameras are internal created to dealing with texture shadow, or compositor nodes. They aren't supposed to be destroyed outside. So, while you are using texture shadow, don't call this method.

## ◆ destroyAllDecals()

virtual void Ogre::SceneManager::destroyAllDecals | ( | void |  | ) |
| virtualinherited

## ◆ destroyAllEntities()

virtual void Ogre::SceneManager::destroyAllEntities | ( | void |  | ) |
| virtualinherited

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

## ◆ destroyAllItems()

virtual void Ogre::SceneManager::destroyAllItems | ( | void |  | ) |
| virtualinherited

Removes & destroys all Items.

## ◆ destroyAllLights()

virtual void Ogre::SceneManager::destroyAllLights | ( | void |  | ) |
| virtualinherited

Removes and destroys all lights in the scene.

## ◆ destroyAllManualObjects()

virtual void Ogre::SceneManager::destroyAllManualObjects | ( | void |  | ) |
| virtualinherited

Removes & destroys all ManualObjects from the SceneManager.

## ◆ destroyAllMovableObjects()

virtual void Ogre::SceneManager::destroyAllMovableObjects | ( | void |  | ) |
| virtualinherited

Destroy all MovableObjects.

## ◆ destroyAllMovableObjectsByType()

virtual void Ogre::SceneManager::destroyAllMovableObjectsByType | ( | const String & | typeName | ) |
| virtualinherited

Destroy all MovableObjects of a given type.

## ◆ destroyAllParticleSystems()

virtual void Ogre::SceneManager::destroyAllParticleSystems | ( | void |  | ) |
| virtualinherited

Removes & destroys all ParticleSystems from the SceneManager.

## ◆ destroyAllRectangle2D()

virtual void Ogre::SceneManager::destroyAllRectangle2D | ( | void |  | ) |
| virtualinherited

Removes & destroys all Rectangle2D.

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

See also
  SceneManager::clearScene

## ◆ destroyAllRibbonTrails()

virtual void Ogre::SceneManager::destroyAllRibbonTrails | ( | void |  | ) |
| virtualinherited

Removes & destroys all RibbonTrails from the SceneManager.

## ◆ destroyAllStaticGeometry()

virtual void Ogre::SceneManager::destroyAllStaticGeometry | ( | void |  | ) |
| virtualinherited

Remove & destroy all StaticGeometry instances.

## ◆ destroyAllWireAabbs()

virtual void Ogre::SceneManager::destroyAllWireAabbs | ( | void |  | ) |
| virtualinherited

Removes & destroys all WireAabbs.

## ◆ destroyAnimation()

virtual void Ogre::SceneManager::destroyAnimation | ( | const String & | name | ) |
| virtualinherited

Destroys an Animation.

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

## ◆ destroyAnimationState()

virtual void Ogre::SceneManager::destroyAnimationState | ( | const String & | name | ) |
| virtualinherited

Destroys an AnimationState.

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

## ◆ destroyBillboardChain()

virtual void Ogre::SceneManager::destroyBillboardChain | ( | v1::BillboardChain * | obj | ) |
| virtualinherited

Removes & destroys a BillboardChain from the SceneManager.

## ◆ destroyBillboardSet()

virtual void Ogre::SceneManager::destroyBillboardSet | ( | v1::BillboardSet * | set | ) |
| virtualinherited

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.

## ◆ destroyCamera()

virtual void Ogre::SceneManager::destroyCamera | ( | Camera * | cam | ) |
| virtualinherited

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

## ◆ destroyDecal()

virtual void Ogre::SceneManager::destroyDecal | ( | Decal * | decal | ) |
| virtualinherited

## ◆ destroyEntity()

virtual void Ogre::SceneManager::destroyEntity | ( | v1::Entity * | ent | ) |
| virtualinherited

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

## ◆ destroyItem()

virtual void Ogre::SceneManager::destroyItem | ( | Item * | item | ) |
| virtualinherited

Removes & destroys an Item from the SceneManager.

## ◆ destroyLight()

virtual void Ogre::SceneManager::destroyLight | ( | Light * | light | ) |
| virtualinherited

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.

## ◆ destroyManualObject()

virtual void Ogre::SceneManager::destroyManualObject | ( | ManualObject * | obj | ) |
| virtualinherited

Removes & destroys a ManualObject from the SceneManager.

## ◆ destroyMovableObject() [1/2]

virtual void Ogre::SceneManager::destroyMovableObject | ( | MovableObject * | m | ) |
| virtualinherited

Destroys a MovableObject.

Remarks
  The MovableObject will automatically detach itself from any nodes on destruction.

## ◆ destroyMovableObject() [2/2]

virtual void Ogre::SceneManager::destroyMovableObject | ( | MovableObject * | m,
|  | const String & | typeName
| ) |  |
| virtualinherited

Destroys a MovableObject with the name specified, of the type specified.

Remarks
  The MovableObject will automatically detach itself from any nodes on destruction.

## ◆ destroyParticleSystem()

virtual void Ogre::SceneManager::destroyParticleSystem | ( | ParticleSystem * | obj | ) |
| virtualinherited

Removes & destroys a ParticleSystem from the SceneManager.

## ◆ destroyQuery()

virtual void Ogre::SceneManager::destroyQuery | ( | SceneQuery * | query | ) |
| virtualinherited

Destroys a scene query of any type.

## ◆ destroyRectangle2D()

virtual void Ogre::SceneManager::destroyRectangle2D | ( | Rectangle2D * | rect | ) |
| virtualinherited

Removes & destroys an Entity from the SceneManager.

Warning
  It may be safer to wait to clear the whole scene if you are unsure use clearScene.

See also
  SceneManager::clearScene

## ◆ destroyRibbonTrail()

virtual void Ogre::SceneManager::destroyRibbonTrail | ( | v1::RibbonTrail * | obj | ) |
| virtualinherited

Removes & destroys a RibbonTrail from the SceneManager.

## ◆ destroySceneNode()

virtual void Ogre::SceneManager::destroySceneNode | ( | SceneNode * | sn | ) |
| virtualinherited

Destroys a SceneNode.

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.

## ◆ destroySkeletonInstance()

void Ogre::SceneManager::destroySkeletonInstance | ( | SkeletonInstance * | skeletonInstance | ) |
| inherited

Destroys an instance of a skeleton created with @createSkeletonInstance.

## ◆ destroyStaticGeometry() [1/2]

virtual void Ogre::SceneManager::destroyStaticGeometry | ( | const String & | name | ) |
| virtualinherited

Remove & destroy a StaticGeometry instance.

## ◆ destroyStaticGeometry() [2/2]

virtual void Ogre::SceneManager::destroyStaticGeometry | ( | v1::StaticGeometry * | geom | ) |
| virtualinherited

Remove & destroy a StaticGeometry instance.

## ◆ destroyWireAabb()

virtual void Ogre::SceneManager::destroyWireAabb | ( | WireAabb * | wireAabb | ) |
| virtualinherited

Removes & destroys an WireAabb from the SceneManager.

## ◆ estimateWorldGeometry() [1/2]

virtual size_t Ogre::SceneManager::estimateWorldGeometry | ( | const String & | filename | ) |
| inlinevirtualinherited

Estimate the number of loading stages required to load the named world geometry.

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

Note
  The default is to return 0, ie to not report progress.

## ◆ estimateWorldGeometry() [2/2]

virtual size_t Ogre::SceneManager::estimateWorldGeometry | ( | DataStreamPtr & | stream,
|  | const String & | typeName = `BLANKSTRING`
| ) |  |
| inlinevirtualinherited

Estimate the number of loading stages required to load the named world geometry.

Remarks
  Operates just like the version of this method which takes a filename, but operates on a stream instead. Note that since the stream is updated, you'll need to reset the stream or reopen it when it comes to loading it for real.

Parameters

  stream | Data stream containing data to load
  typeName | String identifying the type of world geometry contained in the stream - not required if this manager only supports one type of world geometry.

## ◆ executeUserScalableTask()

void Ogre::SceneManager::executeUserScalableTask | ( | UniformScalableTask * | task,
|  | bool | bBlock
| ) |  |
| inherited

Processes a user-defined UniformScalableTask in the worker threads spawned by SceneManager.

Remarks
  If 'bBlock' is false, it is user responsibility to call waitForPendingUserScalableTask before the next call to either processUserScalableTask or renderOneFrame.

Parameters

  task | Task to perform. Pointer must be valid at least until the task is finished
  bBlock | True if you want the function to block until the task is done. False if you want to do something in between, in this case you MUST call waitForPendingUserScalableTask later.

## ◆ extractAllMovableObjectsByType()

virtual void Ogre::SceneManager::extractAllMovableObjectsByType | ( | const String & | typeName | ) |
| virtualinherited

Extract all injected MovableObjects of a given type.

Remarks
  Essentially this does the same as destroyAllMovableObjectsByType, but only removes the instances from the internal lists, it does not attempt to destroy them.

## ◆ extractMovableObject()

virtual void Ogre::SceneManager::extractMovableObject | ( | MovableObject * | m | ) |
| virtualinherited

Extract a previously injected MovableObject.

Remarks
  Essentially this does the same as destroyMovableObject, but only removes the instance from the internal lists, it does not attempt to destroy it.

## ◆ findCamera()

virtual Camera* Ogre::SceneManager::findCamera | ( | IdString | name | ) | const
| virtualinherited

Finds the camera with the given name.

Throws if not found.

Parameters

  name | Hash of the name of the camera to find

Returns
  Camera pointer

## ◆ findCameraNoThrow()

virtual Camera* Ogre::SceneManager::findCameraNoThrow | ( | IdString | name | ) | const
| virtualinherited

Finds the camera with the given name.

Returns null pointer if not found.

Parameters

  name | Hash of the name of the camera to find

Returns
  Camera pointer. Null if not found.

## ◆ findMovableObjects()

virtual MovableObjectVec Ogre::SceneManager::findMovableObjects | ( | const String & | type,
|  | const String & | name
| ) |  |
| virtualinherited

Finds all the movable objects with the type and name passed as parameters.

## ◆ findSceneNodes()

virtual_l1 SceneNodeList Ogre::SceneManager::findSceneNodes | ( | const String & | name | ) | const
| inherited

Finds all the scene nodes with the name passed as parameter.

## ◆ getAmbientLightHemisphereDir()

const Vector3& Ogre::SceneManager::getAmbientLightHemisphereDir | ( | void |  | ) | const
| inlineinherited

## ◆ getAmbientLightLowerHemisphere()

const ColourValue& Ogre::SceneManager::getAmbientLightLowerHemisphere | ( | void |  | ) | const
| inlineinherited

## ◆ getAmbientLightUpperHemisphere()

const ColourValue& Ogre::SceneManager::getAmbientLightUpperHemisphere | ( | void |  | ) | const
| inlineinherited

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

## ◆ getAnimation()

virtual v1::Animation* Ogre::SceneManager::getAnimation | ( | const String & | name | ) | const
| virtualinherited

Looks up an Animation object previously created with createAnimation.

Note
  Throws an exception if the named instance does not exist

## ◆ getAnimationIterator()

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

Returns a specialised MapIterator over all animations in the scene.

## ◆ getAnimations()

const AnimationList& Ogre::SceneManager::getAnimations | ( |  | ) | const
| inlineinherited

Returns a const version of the animation list.

## ◆ getAnimationState()

virtual v1::AnimationState* Ogre::SceneManager::getAnimationState | ( | const String & | animName | ) | const
| virtualinherited

Retrieves animation state as previously created using createAnimationState.

Note
  Throws an exception if the named instance does not exist

## ◆ getAnimationStateIterator()

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

Returns a specialised MapIterator over all animation states in the scene.

## ◆ getCameraIterator()

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

Returns a specialised MapIterator over all cameras in the scene.

## ◆ getCameras()

const CameraList& Ogre::SceneManager::getCameras | ( |  | ) | const
| inlineinherited

Returns a const version of the camera list.

## ◆ getCamerasInProgress()

CamerasInProgress Ogre::SceneManager::getCamerasInProgress | ( | void |  | ) | const
| inlineinherited

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

## ◆ getCompositorTextures()

const CompositorTextureVec& Ogre::SceneManager::getCompositorTextures | ( | void |  | ) | const
| inlineinherited

See also
  CompositorPassDef::mExposedTextures for the textures that are available in the current compositor pass. The compositor script keyword is "expose".

## ◆ getCurrentCastersBox()

const AxisAlignedBox& Ogre::SceneManager::getCurrentCastersBox | ( | void |  | ) | const
| inherited

@See CompositorShadowNode::getCastersBox

Remarks
  Returns a null box if no active shadow node.

## ◆ getCurrentCompositorPass()

const CompositorPass* Ogre::SceneManager::getCurrentCompositorPass | ( | void |  | ) | const
| inlineinherited

Note: May be null.

## ◆ getCurrentPassDepthTextureNoMsaa()

TextureGpu* Ogre::SceneManager::getCurrentPassDepthTextureNoMsaa | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentPrePassDepthTexture()

TextureGpu* Ogre::SceneManager::getCurrentPrePassDepthTexture | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentPrePassMode()

PrePassMode Ogre::SceneManager::getCurrentPrePassMode | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentPrePassTextures()

const TextureGpuVec& Ogre::SceneManager::getCurrentPrePassTextures | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentRefractionsTexture()

TextureGpu* Ogre::SceneManager::getCurrentRefractionsTexture | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentShadowNode()

const CompositorShadowNode* Ogre::SceneManager::getCurrentShadowNode | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentSsrTexture()

TextureGpu* Ogre::SceneManager::getCurrentSsrTexture | ( | void |  | ) | const
| inlineinherited

## ◆ getCurrentViewport0()

Viewport* Ogre::SceneManager::getCurrentViewport0 | ( | void |  | ) | const
| inlineinherited

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

## ◆ getDecalsDiffuse()

TextureGpu* Ogre::SceneManager::getDecalsDiffuse | ( | void |  | ) | const
| inlineinherited

## ◆ getDecalsEmissive()

TextureGpu* Ogre::SceneManager::getDecalsEmissive | ( | void |  | ) | const
| inlineinherited

## ◆ getDecalsNormals()

TextureGpu* Ogre::SceneManager::getDecalsNormals | ( | void |  | ) | const
| inlineinherited

## ◆ getDestinationRenderSystem()

RenderSystem* Ogre::SceneManager::getDestinationRenderSystem | ( |  | ) |
| inherited

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

## ◆ getDisplaySceneNodes()

virtual bool Ogre::SceneManager::getDisplaySceneNodes | ( | void |  | ) | const
| inlinevirtualinherited

Returns true if all scene nodes axis are to be displayed.

## ◆ getDummySceneNode()

SceneNode* Ogre::SceneManager::getDummySceneNode | ( | void |  | ) | const
| inlineinherited

Unlike mNodeMemoryManager->_getDummyNode(), this dummy node is fully allocated, which makes it possible to actually attach objects to this dummy, while we guarantee the dummy won't change its transform.

## ◆ getEnvFeatures()

uint32 Ogre::SceneManager::getEnvFeatures | ( | void |  | ) | const
| inlineinherited

## ◆ getFindVisibleObjects()

virtual bool Ogre::SceneManager::getFindVisibleObjects | ( | void |  | ) |
| inlinevirtualinherited

Gets whether the SceneManager should search for visible objects, or whether they are being manually handled.

## ◆ getFlipCullingOnNegativeScale()

virtual bool Ogre::SceneManager::getFlipCullingOnNegativeScale | ( |  | ) | const
| inlinevirtualinherited

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

## ◆ getFogColour()

virtual const ColourValue& Ogre::SceneManager::getFogColour | ( | void |  | ) | const
| virtualinherited

Returns the fog colour for the scene.

## ◆ getFogDensity()

virtual Real Ogre::SceneManager::getFogDensity | ( | void |  | ) | const
| virtualinherited

Returns the fog density for the scene.

## ◆ getFogEnd()

virtual Real Ogre::SceneManager::getFogEnd | ( | void |  | ) | const
| virtualinherited

Returns the fog end distance for the scene.

## ◆ getFogMode()

virtual FogMode Ogre::SceneManager::getFogMode | ( | void |  | ) | const
| virtualinherited

Returns the fog mode for the scene.

## ◆ getFogStart()

virtual Real Ogre::SceneManager::getFogStart | ( | void |  | ) | const
| virtualinherited

Returns the fog start distance for the scene.

## ◆ getForwardPlus()

ForwardPlusBase* Ogre::SceneManager::getForwardPlus | ( | void |  | ) |
| inlineinherited

## ◆ getGlobalLightList()

const LightListInfo& Ogre::SceneManager::getGlobalLightList | ( | void |  | ) | const
| inlineinherited

## ◆ getId()

IdType Ogre::IdObject::getId | ( |  | ) | const
| inlineinherited

Get the unique id of this object.

## ◆ getLightClippingPlanes()

virtual const PlaneList& Ogre::SceneManager::getLightClippingPlanes | ( | const Light * | l | ) |
| virtualinherited

Retrieve a set of clipping planes for a given light.

## ◆ getLightMask()

virtual_l2 uint32 Ogre::SceneManager::getLightMask | ( | void |  | ) | const
| inlineinherited

Gets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light.

## ◆ getLightScissorRect()

virtual const RealRect& Ogre::SceneManager::getLightScissorRect | ( | const Light * | l,
|  | const Camera * | cam
| ) |  |
| virtualinherited

Retrieve a scissor rectangle for a given light and camera.

## ◆ getMinMaxDepthRange()

void Ogre::SceneManager::getMinMaxDepthRange | ( | const Frustum * | shadowMapCamera,
|  | Real & | outMin,
|  | Real & | outMax
| ) |  | const
| inherited

@See CompositorShadowNode::getMinMaxDepthRange

Remarks
  Outputs 0 & 100000 if no active shadow node or camera not found.

## ◆ getMovableObjectIterator()

virtual MovableObjectIterator Ogre::SceneManager::getMovableObjectIterator | ( | const String & | typeName | ) |
| virtualinherited

Get an iterator over all MovableObect instances of a given type.

Note
  The iterator returned from this method is not thread safe, do not use this if you are creating or deleting objects of this type in another thread.

## ◆ getName()

const String& Ogre::SceneManager::getName | ( | void |  | ) | const
| inlineinherited

Return the instance name of this SceneManager.

## ◆ getNumCompositorTextures()

size_t Ogre::SceneManager::getNumCompositorTextures | ( | void |  | ) | const
| inlineinherited

Gets the number of currently active compositor textures.

## ◆ getNumWorkerThreads()

size_t Ogre::SceneManager::getNumWorkerThreads | ( |  | ) | const
| inlineinherited

## ◆ getOption()

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

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 failure, false is returned and pDestValue is set to NULL.

## ◆ getOptionKeys()

virtual bool Ogre::SceneManager::getOptionKeys | ( | StringVector & | refKeys | ) |
| inlinevirtualinherited

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 failure, false is returned.

## ◆ getOptionValues()

virtual bool Ogre::SceneManager::getOptionValues | ( | const String & | strKey,
|  | StringVector & | refValueList
| ) |  |
| inlinevirtualinherited

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 failure, false is returned.

## ◆ getRadialDensityMask()

RadialDensityMask* Ogre::SceneManager::getRadialDensityMask | ( | void |  | ) | const
| inlineinherited

## ◆ getRelativeOrigin()

Vector3 Ogre::SceneManager::getRelativeOrigin | ( | void |  | ) | const
| inherited

Returns the current relative origin. (Only when non-permanent)

## ◆ getRenderQueue()

RenderQueue* Ogre::SceneManager::getRenderQueue | ( | void |  | ) | const
| inlineinherited

Returns the RenderQueue.

## ◆ getRootSceneNode()

SceneNode* Ogre::SceneManager::getRootSceneNode | ( | SceneMemoryMgrTypes | sceneType = `SCENE_DYNAMIC` | ) |
| inherited

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. There is actually an extra Root Node so that static objects can be attached to it. Note however, static nodes can be children of a dynamic root node.

## ◆ getSceneNode() [1/2]

virtual_l1 SceneNode* Ogre::SceneManager::getSceneNode | ( | IdType | id | ) |
| inherited

Retrieves a SceneNode based on it's ID from the scene graph.

Remarks

Note
  Returns null if the ID does not exist
  It is a linear search O(N), retrieves the first node found with that name (it's not unique)

## ◆ getSceneNode() [2/2]

virtual_l1 const SceneNode* Ogre::SceneManager::getSceneNode | ( | IdType | id | ) | const
| inherited

## ◆ getShadowColour()

virtual const ColourValue& Ogre::SceneManager::getShadowColour | ( | void |  | ) | const
| virtualinherited

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.

## ◆ getShadowDirectionalLightExtrusionDistance()

virtual Real Ogre::SceneManager::getShadowDirectionalLightExtrusionDistance | ( | void |  | ) | const
| virtualinherited

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

## ◆ getShadowDirLightTextureOffset()

virtual Real Ogre::SceneManager::getShadowDirLightTextureOffset | ( | void |  | ) | const
| inlinevirtualinherited

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

## ◆ getShadowFarDistance()

virtual Real Ogre::SceneManager::getShadowFarDistance | ( | void |  | ) | const
| inlinevirtualinherited

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

## ◆ getShadowFarDistanceSquared()

virtual Real Ogre::SceneManager::getShadowFarDistanceSquared | ( | void |  | ) | const
| inlinevirtualinherited

## ◆ getShowBoundingBoxes()

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

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

## ◆ getSky()

Rectangle2D* Ogre::SceneManager::getSky | ( | void |  | ) |
| inlineinherited

## ◆ getSkyMaterial()

MaterialPtr Ogre::SceneManager::getSkyMaterial | ( | void |  | ) |
| inlineinherited

## ◆ getSkyMethod()

SkyMethod Ogre::SceneManager::getSkyMethod | ( | void |  | ) | const
| inlineinherited

## ◆ getSphericalHarmonics()

const float* Ogre::SceneManager::getSphericalHarmonics | ( | void |  | ) | const
| inlineinherited

## ◆ getStaticGeometry()

virtual v1::StaticGeometry* Ogre::SceneManager::getStaticGeometry | ( | const String & | name | ) | const
| virtualinherited

Retrieve a previously created StaticGeometry instance.

Note
  Throws an exception if the named instance does not exist

## ◆ getSuggestedViewpoint()

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

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 failure, false is returned.

## ◆ getTypeName()

const String& Ogre::DefaultSceneManager::getTypeName | ( | void |  | ) | const
| virtual

Retrieve the type name of this scene manager.

Remarks
  This method has to be implemented by subclasses. It should return the type name of this SceneManager which agrees with the type name of the SceneManagerFactory which created it.

Implements Ogre::SceneManager.

## ◆ getVisibilityMask()

virtual_l2 uint32 Ogre::SceneManager::getVisibilityMask | ( | void |  | ) | const
| inlineinherited

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

## ◆ hasAnimation()

virtual bool Ogre::SceneManager::hasAnimation | ( | const String & | name | ) | const
| virtualinherited

Returns whether an animation with the given name exists.

## ◆ hasAnimationState()

virtual bool Ogre::SceneManager::hasAnimationState | ( | const String & | name | ) | const
| virtualinherited

Returns whether an animation state with the given name exists.

## ◆ hasMovableObject()

virtual bool Ogre::SceneManager::hasMovableObject | ( | MovableObject * | m | ) |
| virtualinherited

Returns if this SceneManager contains the specified MovableObject.

## ◆ hasOption()

virtual bool Ogre::SceneManager::hasOption | ( | const String & | strKey | ) | const
| inlinevirtualinherited

Method for verifying whether 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.

## ◆ hasStaticGeometry()

virtual bool Ogre::SceneManager::hasStaticGeometry | ( | const String & | name | ) | const
| virtualinherited

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

## ◆ injectMovableObject()

virtual void Ogre::SceneManager::injectMovableObject | ( | MovableObject * | m | ) |
| virtualinherited

Inject a MovableObject instance created externally.

Remarks
  This method 'injects' a MovableObject instance created externally into the MovableObject instance registry held in the SceneManager. You might want to use this if you have a MovableObject which you don't want to register a factory for; for example a MovableObject which cannot be generally constructed by clients.

Note
  It is important that the MovableObject has a unique name for the type, and that its getMovableType() method returns a proper type name.

## ◆ isCurrentShadowNodeReused()

bool Ogre::SceneManager::isCurrentShadowNodeReused | ( | void |  | ) | const
| inlineinherited

## ◆ isDecalsDiffuseEmissiveMerged()

bool Ogre::SceneManager::isDecalsDiffuseEmissiveMerged | ( | void |  | ) | const
| inherited

## ◆ isLateMaterialResolving()

virtual bool Ogre::SceneManager::isLateMaterialResolving | ( |  | ) | const
| inlinevirtualinherited

Gets whether using late material resolving or not.

See also
  setLateMaterialResolving

## ◆ isSkyEnabled()

bool Ogre::SceneManager::isSkyEnabled | ( | void |  | ) | const
| inlineinherited

## ◆ isUsingInstancedStereo()

bool Ogre::SceneManager::isUsingInstancedStereo | ( | void |  | ) | const
| inherited

## ◆ notifyStaticAabbDirty()

void Ogre::SceneManager::notifyStaticAabbDirty | ( | MovableObject * | movableObject | ) |
| inherited

Notifies that the given MovableObject is dirty (i.e.

the AABBs have changed). Note that the parent SceneNodes of this/these objects are not updated and you will have to call

See also
  notifyStaticDirty on the SceneNode if the position/rotation/scale have changed.

## ◆ notifyStaticDirty()

void Ogre::SceneManager::notifyStaticDirty | ( | Node * | node | ) |
| inherited

Notifies that the given Node is dirty (i.e.

the position, orientation and/or scale has changed). The call will cascade to all children of the input node.

Remarks
  Implies a call to

See also
  notifyStaticAabbDirty if the node or any of its children has a MovableObject attached.

  Calling notifyStaticDirty( getRootSceneNode( SCENE_STATIC ) ) should flush the entire static system. It might be slower, but it is useful when you're witnessing artifacts after making changes to the static environment and don't know for sure which objects need to be updated.

## ◆ OGRE_MUTEX()

Ogre::SceneManager::OGRE_MUTEX | ( | sceneGraphMutex |  | ) |
| inherited

Mutex to protect the scene graph from simultaneous access from multiple threads.

Remarks
  If you are updating the scene in a separate thread from the rendering thread, then you should lock this mutex before making any changes to the scene graph - that means creating, modifying or deleting a scene node, or attaching / detaching objects. It is your responsibility to take out this lock, the detail methods on the nodes will not do it for you (for the reasons discussed below).

  Note that locking this mutex will prevent the scene being rendered until it is unlocked again. Therefore you should do this sparingly. Try to create any objects you need separately and fully prepare them before doing all your scene graph work in one go, thus keeping this lock for the shortest time possible.

Note
  A single global lock is used rather than a per-node lock since it keeps the number of locks required during rendering down to a minimum. Obtaining a lock, even if there is no contention, is not free so for performance it is good to do it as little as possible. Since modifying the scene in a separate thread is a fairly rare occurrence (relative to rendering), it is better to keep the locking required during rendering lower than to make update locks more granular.

## ◆ operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |
| inlineinherited

## ◆ operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |
| inlineinherited

## ◆ operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |
| inlineinherited

## ◆ operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |
| inlineinherited

## ◆ operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |
| inlineinherited

## ◆ operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |
| inlineinherited

## ◆ operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |
| inlineinherited

operator new, with debug line info

## ◆ operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |
| inlineinherited

placement operator new

## ◆ operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) |
| inlineinherited

## ◆ operator new[]() [2/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |
| inlineinherited

array operator new, with debug line info

## ◆ operator()() [1/2]

bool Ogre::IdObject::operator() | ( | const IdObject & | left,
|  | const IdObject & | right
| ) |  |
| inlineinherited

## ◆ operator()() [2/2]

bool Ogre::IdObject::operator() | ( | const IdObject * | left,
|  | const IdObject * | right
| ) |  |
| inlineinherited

## ◆ prepareWorldGeometry() [1/2]

virtual void Ogre::SceneManager::prepareWorldGeometry | ( | const String & | filename | ) |
| virtualinherited

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

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

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

## ◆ prepareWorldGeometry() [2/2]

virtual void Ogre::SceneManager::prepareWorldGeometry | ( | DataStreamPtr & | stream,
|  | const String & | typeName = `BLANKSTRING`
| ) |  |
| virtualinherited

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

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

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 stream to this method and it will attempt to load the world-level geometry for use. If the manager can only handle one input format the typeName parameter is not required. The stream passed will be read (and it's state updated).

Parameters

  stream | Data stream containing data to load
  typeName | String identifying the type of world geometry contained in the stream - not required if this manager only supports one type of world geometry.

## ◆ registerSceneNodeListener()

virtual void Ogre::SceneManager::registerSceneNodeListener | ( | SceneNode * | sceneNode | ) |
| virtualinherited

Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms.

@See updateAllTransforms

## ◆ removeListener()

virtual void Ogre::SceneManager::removeListener | ( | Listener * | s | ) |
| virtualinherited

Remove a listener.

## ◆ removeLodListener()

void Ogre::SceneManager::removeLodListener | ( | LodListener * | listener | ) |
| inherited

Remove a level of detail listener.

Remarks
  Do not call from inside an LodListener callback method.

## ◆ removeRenderObjectListener()

virtual void Ogre::SceneManager::removeRenderObjectListener | ( | RenderObjectListener * | delListener | ) |
| virtualinherited

Removes a listener previously added with addRenderObjectListener.

## ◆ removeRenderQueueListener()

virtual void Ogre::SceneManager::removeRenderQueueListener | ( | RenderQueueListener * | delListener | ) |
| virtualinherited

Removes a listener previously added with addRenderQueueListener.

## ◆ setAmbientLight()

void Ogre::SceneManager::setAmbientLight | ( | const ColourValue & | upperHemisphere,
|  | const ColourValue & | lowerHemisphere,
|  | const Vector3 & | hemisphereDir,
|  | Real | envmapScale = `1.0f`,
|  | uint32 | envFeatures = `0xffffffff`
| ) |  |
| inherited

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

Remarks
  Ambient lighting is a cheap fake to compensate the lack of global illumination. Hemisphere ambient lighting will set the final ambient light to the following formula: float w = dot( objNormal, hemisphereDir ) * 0.5 + 0.5; finalAmbient = lerp( lowerHemisphere, upperHemisphere, w );

Setting upperHemisphere = lowerHemisphere is effectively a traditional fixed-colour ambient light.

  Tip: Set the upperHemisphere to a cold colour (e.g. blueish sky) and lowerHemisphere to a warm colour (e.g. sun-yellowish, orange) and the hemisphereDir in the opposite direction of your main directional light for a convincing look.

  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.

  For compatibility reasons with legacy (e.g. low level materials) upperHemisphere's colour is the old ambient colour from 1.x

Parameters

  upperHemisphere | Ambient colour when the surface normal is close to hemisphereDir
  lowerHemisphere | Ambient colour when the surface normal is pointing away from hemisphereDir
  hemisphereDir | Hemisphere's direction reference to compare the surface normal to. The internal vector will be normalized.
  envmapScale | Global scale to apply to all environment maps (for relevant Hlms implementations, like PBS). The value will be stored in upperHemisphere.a Use 1.0 to disable.
  envFeatures | Bitmask. See SceneManager::EnvFeatures

## ◆ setBuildLegacyLightList()

void Ogre::SceneManager::setBuildLegacyLightList | ( | bool | bEnable | ) |
| inherited

Enables or disables the legace 1.9 way of building light lists which can be used by HlmsLowLevel materials.

This light list can be turned on regardless of any Forward* mode but it consumes a lot of performance and is only used by HlmsLowLevel materials that need ligting.

## ◆ setDecalsDiffuse()

void Ogre::SceneManager::setDecalsDiffuse | ( | TextureGpu * | tex | ) |
| inherited

Sets the decal texture for diffuse.

Should be a RGBA8 or similar colour format.

Remarks
  If the emissive texture (see SceneManager::setDecalsEmissive) is the same as the diffuse, Hlms can perform a performance optimization and use fewer texture slots.

You still need to enable a Forward+ solution that supports decals, such as SceneManager::setForwardClusted; otherwise decals won't be rendered.

Parameters

  tex | Null pointer to disable diffuse texture for all decals, globablly.

## ◆ setDecalsEmissive()

void Ogre::SceneManager::setDecalsEmissive | ( | TextureGpu * | tex | ) |
| inherited

See SceneManager::setDecalsDiffuse.

Setting this texture to the same as diffuse incurs in a performance optimization.

## ◆ setDecalsNormals()

void Ogre::SceneManager::setDecalsNormals | ( | TextureGpu * | tex | ) |
| inherited

Sets the decal texture normal maps.

Should be RG8_SNORM or BC5_SNORM.

See also
  SceneManager::setDecalsDiffuse

Parameters

  tex | Null pointer to disable normal map textures for all decals, globally.

## ◆ setDisplaySceneNodes()

virtual void Ogre::SceneManager::setDisplaySceneNodes | ( | bool | display | ) |
| virtualinherited

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.

## ◆ setFindVisibleObjects()

virtual void Ogre::SceneManager::setFindVisibleObjects | ( | bool | find | ) |
| inlinevirtualinherited

Sets whether the SceneManager should search for visible objects, or whether they are being manually handled.

Remarks
  This is an advanced function, you should not use this unless you know what you are doing.

## ◆ setFlipCullingOnNegativeScale()

virtual void Ogre::SceneManager::setFlipCullingOnNegativeScale | ( | bool | n | ) |
| inlinevirtualinherited

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

Remarks
  Negativelyl scaling an object has the effect of flipping the triangles, so the culling mode should probably be inverted to deal with this. If you would prefer to manually manage this, set this option to 'false' and use different materials with Pass::setCullingMode set manually as needed.

## ◆ setFog()

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`
| ) |  |
| inherited

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.

## ◆ setForward3D()

void Ogre::SceneManager::setForward3D | ( | bool | bEnable,
|  | uint32 | width,
|  | uint32 | height,
|  | uint32 | numSlices,
|  | uint32 | lightsPerCell,
|  | float | minDistance,
|  | float | maxDistance
| ) |  |
| inherited

Enables or disables the Forward3D implementation for using many non-shadowed lights in the scene.

See the Forward3D sample for more information.

Remarks
  The Hlms implementation must support this feature in order to work. Calling this function can recreate resources (even if called multiple times with the same exact paramters). Don't do it often.

Parameters

  bEnable | True to enable it. False to disable it.
  width | The width of the view-space grid. Recommended value is 4 unless numSlices is very small.
  height | The height of the view-space grid. Recommended value is 4 unless numSlices is very small.
  numSlices | The number of slices. Each additional slice consumes much more memory. The width and height is doubled on each slice. It's like mipmapping but on reverse.
  lightsPerCell | The maximum number of lights a cell in the grid can hold.
  decalsPerCell | Maximum number of decals a cell in the grid can hold. 0 to disable decals.
  minDistance | Bias towards the camera for grid.
  maxDistance | How far the grid array can go.

## ◆ setForwardClustered()

void Ogre::SceneManager::setForwardClustered | ( | bool | bEnable,
|  | uint32 | width,
|  | uint32 | height,
|  | uint32 | numSlices,
|  | uint32 | lightsPerCell,
|  | uint32 | decalsPerCell,
|  | uint32 | cubemapProbesPerCel,
|  | float | minDistance,
|  | float | maxDistance
| ) |  |
| inherited

## ◆ setLateMaterialResolving()

virtual void Ogre::SceneManager::setLateMaterialResolving | ( | bool | isLate | ) |
| inlinevirtualinherited

Sets whether to use late material resolving or not.

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

## ◆ setLightMask()

virtual_l2 void Ogre::SceneManager::setLightMask | ( | uint32 | mask | ) |
| inlineinherited

Sets a mask which is bitwise 'and'ed with lights' own light masks to determine if the light should be casting light.

Remarks
  Note that this is combined with any per-pass light mask through an 'and' operation.

See also
  CompositorPassSceneDef::mLightVisibilityMask
  Viewport::getLightVisibilityMask

## ◆ setOption()

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

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 failure, false is returned.

## ◆ setRadialDensityMask()

void Ogre::SceneManager::setRadialDensityMask | ( | bool | bEnabled,
|  | const float | radius[3]
| ) |  |
| inherited

Draws a Radial Density Mask to lower the quality around the edges in VR.

Remarks
  You can control the order in which this RDM appears (to actually work as an optimization it must be the first thing being rendered!) and its visibility flags by calling:
  RadialDensityMask *rdm = sceneManager->getRadialDensityMask()
  rdm->getRectangle()->setRenderQueueGroup( rqId )
  rdm->getRectangle()->setRenderQueueSubGroup( rqSubGroupId )
  rdm->getRectangle()->setVisibilityFlags( mask )

Parameters

  bEnabled |
  radius | Three sets of radiuses in clip space (i.e. in range [0; 1]) around each eye's center All pixels inside radius[0] are rendered at full rate All pixels between radius[0] & radius[1] are masked at half rate All pixels between radius[1] & radius[2] are masked at quarter rate All pixels beyond radius[2] are masked at 1/16th rate

## ◆ setRelativeOrigin()

virtual void Ogre::SceneManager::setRelativeOrigin | ( | const Vector3 & | relativeOrigin,
|  | bool | bPermanent
| ) |  |
| virtualinherited

Set whether to use relative offset co-ordinates when rendering, ie offset to subtract to the camera, lights & objects.

Remarks
  This is a technique to alleviate some of the precision issues associated with rendering far from the origin, where single-precision floats as used in most GPUs begin to lose their precision. The origin "translates" to this new relativeOffset. Any previous non-permanent origin is overriden

  All that this function performs is just offseting the root scene node, and as such, will force to update the static nodes as well. Call this at a low frequency (i.e. when camera has gone too far from origin)

Note
  If you need this option, you will probably also need to enable double-precision mode in Ogre (OGRE_DOUBLE_PRECISION), since even though this will alleviate the rendering precision, the source camera and object positions will still suffer from precision issues leading to jerky movement.

Parameters

  bPermanent | When false, it only affects the root nodes (static & dynamic) so that everything is shifted by the relative origin, causing world & view matrices to contain smaller values. This improves the quality of skeletal animations and "Z fighting"-like artifacts because vertices don't snap to the right place. However, it won't fix the jittering of objects observed while translating them by small increments, including camera movement.

Setting this value to true will force the SceneManager to propagate the change as much as possible to child nodes (including attached Cameras), causing the change to become permanent/irreversible. This achieves greater quality since translating objects or camera by small amounts now gets more accuracy. @See propagateRelativeOrigin.

## ◆ setShadowColour()

virtual void Ogre::SceneManager::setShadowColour | ( | const ColourValue & | colour | ) |
| virtualinherited

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.

## ◆ setShadowDirectionalLightExtrusionDistance()

virtual void Ogre::SceneManager::setShadowDirectionalLightExtrusionDistance | ( | Real | dist | ) |
| virtualinherited

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.

## ◆ setShadowDirLightTextureOffset()

virtual void Ogre::SceneManager::setShadowDirLightTextureOffset | ( | Real | offset | ) |
| inlinevirtualinherited

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.

## ◆ setShadowFarDistance()

virtual void Ogre::SceneManager::setShadowFarDistance | ( | Real | distance | ) |
| virtualinherited

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

You have to call this function before you create lights or the default distance of zero will be used.

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.

## ◆ setShadowTextureCasterMaterial()

virtual void Ogre::SceneManager::setShadowTextureCasterMaterial | ( | const String & | name | ) |
| virtualinherited

Sets the default material to use for rendering shadow casters.

Remarks
  By default shadow casters are rendered into the shadow texture using an automatically generated fixed-function pass. This allows basic projective texture shadows, but it's possible to use more advanced shadow techniques by overriding the caster materials, for example providing vertex and fragment programs to implement shadow maps.

  You can rely on the ambient light in the scene being set to the requested texture shadow colour, if that's useful.

Note
  Individual objects may also override the vertex program in your default material if their materials include shadow_caster_vertex_program_ref, shadow_caster_material entries, so if you use both make sure they are compatible.
  Only a single pass is allowed in your material, although multiple techniques may be used for hardware fallback.

## ◆ setShadowTextureFadeEnd()

virtual void Ogre::SceneManager::setShadowTextureFadeEnd | ( | Real | fadeEnd | ) |
| inlinevirtualinherited

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.

## ◆ setShadowTextureFadeStart()

virtual void Ogre::SceneManager::setShadowTextureFadeStart | ( | Real | fadeStart | ) |
| inlinevirtualinherited

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

## ◆ setSky() [1/2]

void Ogre::SceneManager::setSky | ( | bool | bEnabled,
|  | SkyMethod | skyMethod,
|  | const String & | texName,
|  | const String & | resourceGroup
| ) |  |
| inherited

## ◆ setSky() [2/2]

void Ogre::SceneManager::setSky | ( | bool | bEnabled,
|  | SkyMethod | skyMethod,
|  | TextureGpu * | texture
| ) |  |
| inherited

Sets a sky, to use a particular material based on SkyMethod.

Remarks
  You can control the order in which the sky appears (for best performance render the sky LAST i.e. after all opaque objects, but before transparent objects).

You can control the order of the sky and its visibility flags by calling:

Rectangle2D *sky = sceneManager->getSky()
sky->setRenderQueueGroup( rqId )
sky->setRenderQueueSubGroup( rqSubGroupId )
sky->setVisibilityFlags( mask )

Parameters

  bEnabled |
  skyMethod |
  texture |

## ◆ setSphericalHarmonics()

void Ogre::SceneManager::setSphericalHarmonics | ( | Vector3 | ambientSphericalHarmonics[9] | ) |
| inherited

## ◆ setVisibilityMask()

virtual_l2 void Ogre::SceneManager::setVisibilityMask | ( | uint32 | vmask | ) |
| inlineinherited

Sets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible.

Remarks
  Note that this is combined with any per-viewport visibility mask through an 'and' operation.

See also
  Viewport::setVisibilityMask

References Ogre::VisibilityFlags::RESERVED_VISIBILITY_FLAGS.

## ◆ setWorldGeometry() [1/2]

virtual void Ogre::SceneManager::setWorldGeometry | ( | const String & | filename | ) |
| virtualinherited

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

## ◆ setWorldGeometry() [2/2]

virtual void Ogre::SceneManager::setWorldGeometry | ( | DataStreamPtr & | stream,
|  | const String & | typeName = `BLANKSTRING`
| ) |  |
| virtualinherited

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 stream to this method and it will attempt to load the world-level geometry for use. If the manager can only handle one input format the typeName parameter is not required. The stream passed will be read (and it's state updated).

Parameters

  stream | Data stream containing data to load
  typeName | String identifying the type of world geometry contained in the stream - not required if this manager only supports one type of world geometry.

## ◆ showBoundingBoxes()

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

Allows all bounding boxes of scene nodes to be displayed.

## ◆ shrinkToFitMemoryPools()

void Ogre::SceneManager::shrinkToFitMemoryPools | ( | void |  | ) |
| inherited

Defragments memory, then reallocates a smaller pool that tightly fits the current number of objects.

Useful when you know you won't be creating more slots and you need to reclaim memory.

## ◆ unregisterSceneNodeListener()

virtual void Ogre::SceneManager::unregisterSceneNodeListener | ( | SceneNode * | sceneNode | ) |
| virtualinherited

Unregisters a registered node for listening.

@See registerSceneNodeListener

## ◆ updateAllAnimations()

void Ogre::SceneManager::updateAllAnimations | ( |  | ) |
| inherited

Updates all skeletal animations in the scene.

This is typically called once per frame during render, but the user might want to manually call this function.

Remarks
  mSkeletonAnimManagerCulledList must be set. @See updateAllTransforms remarks

## ◆ updateAllBounds()

void Ogre::SceneManager::updateAllBounds | ( | const ObjectMemoryManagerVec & | objectMemManager | ) |
| inherited

Updates the world aabbs from all entities in the scene.

Ought to be called right after updateAllTransforms. @See updateAllTransforms

Remarks
  @See MovableObject::updateAllBounds Don't call this function from another thread other than Ogre's main one (we use worker threads that may be in use for something else, and touching the sync barrier could deadlock in the best of cases).

## ◆ updateAllLods()

void Ogre::SceneManager::updateAllLods | ( | const Camera * | lodCamera,
|  | Real | lodBias,
|  | uint8 | firstRq,
|  | uint8 | lastRq
| ) |  |
| inherited

Updates the Lod values of all objects relative to the given camera.

## ◆ updateAllTagPoints()

void Ogre::SceneManager::updateAllTagPoints | ( | void |  | ) |
| inherited

Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints.

Remarks
  mTagPointNodeMemoryManagerUpdateList must be set.

See also
  updateAllTransforms remarks

## ◆ updateAllTransforms()

void Ogre::SceneManager::updateAllTransforms | ( |  | ) |
| inherited

Updates the derived transforms of all nodes in the scene.

This is typically called once per frame during render, but the user may want to manually call this function.

Remarks
  mEntitiesMemoryManagerUpdateList must be set. It contains multiple memory manager containing all objects to be updated (i.e. Entities & Lights are both MovableObjects but are kept separate) Don't call this function from another thread other than Ogre's main one (we use worker threads that may be in use for something else, and touching the sync barrier could deadlock in the best of cases).

## ◆ updateSceneGraph()

void Ogre::SceneManager::updateSceneGraph | ( |  | ) |
| inherited

Updates the scene: Perform high level culling, Node transforms and entity animations.

## ◆ waitForPendingUserScalableTask()

void Ogre::SceneManager::waitForPendingUserScalableTask | ( |  | ) |
| inherited

Blocks until the the task from processUserScalableTask finishes.

Remarks
  Do NOT call this function if you passed bBlock = true to processUserScalableTask

## Member Data Documentation

## ◆ QUERY_ENTITY_DEFAULT_MASK

uint32 Ogre::SceneManager::QUERY_ENTITY_DEFAULT_MASK
| staticinherited

Default query mask for entities.

See also
  SceneQuery

## ◆ QUERY_FRUSTUM_DEFAULT_MASK

uint32 Ogre::SceneManager::QUERY_FRUSTUM_DEFAULT_MASK
| staticinherited

Default query mask for frusta and cameras.

See also
  SceneQuery

## ◆ QUERY_FX_DEFAULT_MASK

uint32 Ogre::SceneManager::QUERY_FX_DEFAULT_MASK
| staticinherited

Default query mask for effects like billboardsets / particle systems.

See also
  SceneQuery

## ◆ QUERY_LIGHT_DEFAULT_MASK

uint32 Ogre::SceneManager::QUERY_LIGHT_DEFAULT_MASK
| staticinherited

Default query mask for lights.

See also
  SceneQuery

## ◆ QUERY_STATICGEOMETRY_DEFAULT_MASK

uint32 Ogre::SceneManager::QUERY_STATICGEOMETRY_DEFAULT_MASK
| staticinherited

Default query mask for StaticGeometry.

See also
  SceneQuery

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

- OgreSceneManagerEnumerator.h