OGRE 2.1
Object-Oriented Graphics Rendering Engine
|
Manages the organisation and rendering of a 'scene' i.e. More...
#include <OgreSceneManager.h>
Classes | |
class | Listener |
Class that allows listening in on the various stages of SceneManager processing, so that custom behaviour can be implemented from outside. More... | |
struct | RenderContext |
struct | SkyBoxGenParameters |
struct | SkyDomeGenParameters |
struct | SkyPlaneGenParameters |
Public Types | |
typedef MapIterator< AnimationList > | AnimationIterator |
typedef VectorIterator< CameraList > | CameraIterator |
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 |
Public Member Functions | |
SceneManager (const String &instanceName, size_t numWorkerThreads, InstancingThreadedCullingMethod threadedCullingMethod) | |
Constructor. | |
virtual | ~SceneManager () |
Default destructor. | |
virtual void | _addAutotrackingSceneNode (SceneNode *source, SceneNode *target, const Vector3 &offset, const Vector3 &localDirection) |
Internal method for notifying the manager that a SceneNode is autotracking. | |
void | _addCompositorTexture (IdString name, const TextureVec *texs) |
Used by Compositor, tells of which compositor textures active, so Materials can access them. | |
void | _addWireAabb (WireAabb *wireAabb) |
virtual void | _applySceneAnimations (void) |
Internal method for applying animations to scene nodes. | |
virtual bool | _areRenderStateChangesSuppressed (void) const |
Are render state changes suppressed? | |
AxisAlignedBox | _calculateCurrentCastersBox (uint32 viewportVisibilityMask, uint8 firstRq, uint8 lastRq) const |
bool | _collectForwardPlusObjects (const Camera *camera) |
Returns true if collection code was run. | |
virtual SceneNode * | _createSceneNode (SceneNode *parent, NodeMemoryManager *nodeMemoryManager) |
virtual TagPoint * | _createTagPoint (SceneNode *parent, NodeMemoryManager *nodeMemoryManager) |
Don't call this function directly. | |
virtual void | _cullPhase01 (Camera *camera, const Camera *lodCamera, Viewport *vp, uint8 firstRq, uint8 lastRq) |
Performs the frustum culling that will later be needed by _renderPhase02. | |
void | _frameEnded (void) |
Called when the frame has fully ended (ALL passes have been executed to all RTTs) | |
ForwardPlusBase * | _getActivePassForwardPlus (void) |
uint32 | _getCombinedVisibilityMask (void) const |
Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask. | |
IlluminationRenderStage | _getCurrentRenderStage () const |
ObjectMemoryManager & | _getEntityMemoryManager (SceneMemoryMgrTypes sceneType) |
Retrieves the main entity memory manager. | |
ObjectMemoryManager & | _getLightMemoryManager (void) |
NodeMemoryManager & | _getNodeMemoryManager (SceneMemoryMgrTypes sceneType) |
NodeMemoryManager & | _getTagPointNodeMemoryManager (void) |
VisibleObjectsPerThreadArray & | _getTmpVisibleObjectsList () |
@See mTmpVisibleObjects | |
void | _handleLodEvents () |
Handle LOD events. | |
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. | |
void | _notifyEntityMaterialLodChanged (EntityMaterialLodChangedEvent &evt) |
Notify that an entity material LOD change event has occurred. | |
void | _notifyEntityMeshLodChanged (EntityMeshLodChangedEvent &evt) |
Notify that an entity mesh LOD change event has occurred. | |
void | _notifyMovableObjectLodChanged (MovableObjectLodChangedEvent &evt) |
Notify that a movable object LOD change event has occurred. | |
virtual RenderContext * | _pauseRendering () |
Pause rendering of the frame. | |
virtual void | _queueSkiesForRendering (Camera *cam) |
Internal method for queueing the sky objects with the params as previously set through setSkyBox, setSkyPlane and setSkyDome. | |
virtual void | _releaseManualHardwareResources () |
Notifies the scene manager that hardware resources were lost. | |
virtual void | _removeAutotrackingSceneNode (SceneNode *source) |
void | _removeCompositorTextures (size_t from) |
Removes all compositor textures from 'from' to end. | |
void | _removeWireAabb (WireAabb *wireAabb) |
virtual void | _renderPhase02 (Camera *camera, const Camera *lodCamera, Viewport *vp, uint8 firstRq, uint8 lastRq, bool includeOverlays) |
Prompts the class to send its contents to the renderer. | |
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. | |
virtual void | _resumeRendering (RenderContext *context) |
Resume rendering of the frame. | |
void | _setCameraInProgress (Camera *camera) |
void | _setCompositorTarget (const CompositorTexture &compoTarget) |
The compositor we are currently writing to. | |
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. | |
void | _setForwardPlusEnabledInPass (bool bEnable) |
For internal use. | |
void | _setLightCullingVisibility (Camera *camera, bool collectLights, bool isCubemap) |
See Camera::setLightCullingVisibility. | |
void | _setPrePassMode (PrePassMode mode, const TextureVec *prepassTextures, const TextureVec *prepassDepthTexture, const TextureVec *ssrTexture) |
For internal use. | |
virtual void | _setSkyBox (bool enable, const String &materialName, uint8 renderQueue, Real distance=5000, const Quaternion &orientation=Quaternion::IDENTITY, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Enables / disables a 'sky box' i.e. | |
virtual void | _setSkyDome (bool enable, const String &materialName, uint8 renderQueue, Real curvature=10, Real tiling=8, Real distance=4000, const Quaternion &orientation=Quaternion::IDENTITY, int xsegments=16, int ysegments=16, int ysegments_keep=-1, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Enables / disables a 'sky dome' i.e. | |
virtual void | _setSkyPlane (bool enable, const Plane &plane, const String &materialName, uint8 renderQueue, Real scale=1000, Real tiling=10, Real bow=0, int xsegments=1, int ysegments=1, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Enables / disables a 'sky plane' i.e. | |
void | _setViewport (Viewport *vp) |
virtual void | _suppressRenderStateChanges (bool suppress) |
Indicates to the SceneManager whether it should suppress changing the RenderSystem states when rendering objects. | |
unsigned long | _updateWorkerThread (ThreadHandle *threadHandle) |
Called from the worker thread, polls to process frustum culling requests when a sync is performed. | |
virtual void | addListener (Listener *s) |
Add a listener which will get called back on scene manager events. | |
void | addLodListener (LodListener *listener) |
Add a level of detail listener. | |
virtual void | addRenderObjectListener (RenderObjectListener *newListener) |
Registers a new Render Object Listener which will be notified when rendering an object. | |
virtual void | addRenderQueueListener (RenderQueueListener *newListener) |
Registers a new RenderQueueListener which will be notified when render queues are processed. | |
void | clearFrameData (void) |
Clears temporary buffers and other data that needs to live every frame. | |
virtual void | clearScene (bool deleteIndestructibleToo, bool reattachCameras=true) |
Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc. | |
virtual AxisAlignedBoxSceneQuery * | createAABBQuery (const AxisAlignedBox &box, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates an AxisAlignedBoxSceneQuery for this scene manager. | |
virtual v1::Animation * | createAnimation (const String &name, Real length) |
Creates an animation which can be used to animate scene nodes. | |
virtual v1::AnimationState * | createAnimationState (const String &animName) |
Create an AnimationState object for managing application of animations. | |
virtual v1::BillboardChain * | createBillboardChain () |
Create a BillboardChain, an object which you can use to render a linked chain of billboards. | |
virtual v1::BillboardSet * | createBillboardSet (unsigned int poolSize=20) |
Creates a new BillboardSet for use with this scene manager. | |
virtual Camera * | createCamera (const String &name, bool notShadowCaster=true, bool forCubemapping=false) |
Creates a camera to be managed by this scene manager. | |
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). | |
virtual v1::Entity * | createEntity (const v1::MeshPtr &pMesh, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Entity (instance of a discrete mesh). | |
virtual v1::Entity * | createEntity (PrefabType ptype, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Entity (instance of a discrete mesh) from a range of prefab shapes. | |
virtual v1::InstancedEntity * | createInstancedEntity (const String &materialName, const String &managerName) |
Creates an InstancedEntity based on an existing InstanceManager (. | |
virtual v1::InstanceManager * | createInstanceManager (const String &customName, const String &meshName, const String &groupName, v1::InstanceManager::InstancingTechnique technique, size_t numInstancesPerBatch, uint16 flags=0, unsigned short subMeshIdx=0) |
Creates an InstanceManager interface to create & manipulate instanced entities You need to call this function at least once before start calling createInstancedEntity to build up an instance based on the given mesh. | |
virtual IntersectionSceneQuery * | createIntersectionQuery (uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates an IntersectionSceneQuery for this scene manager. | |
virtual Item * | createItem (const MeshPtr &pMesh, SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Create an Item (instance of a discrete mesh). | |
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). | |
virtual Light * | createLight () |
Creates a light for use in the scene. | |
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. | |
virtual MovableObject * | createMovableObject (const String &typeName, ObjectMemoryManager *objectMemMgr, const NameValuePairList *params=0) |
Create a movable object of the type specified without a name. | |
virtual ParticleSystem * | createParticleSystem (const String &templateName) |
Creates a particle system based on a template. | |
virtual ParticleSystem * | createParticleSystem (size_t quota=500, const String &resourceGroup=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Create a blank particle system. | |
virtual PlaneBoundedVolumeListSceneQuery * | createPlaneBoundedVolumeQuery (const PlaneBoundedVolumeList &volumes, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates a PlaneBoundedVolumeListSceneQuery for this scene manager. | |
virtual RaySceneQuery * | createRayQuery (const Ray &ray, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates a RaySceneQuery for this scene manager. | |
virtual v1::Rectangle2D * | createRectangle2D (bool bQuad, SceneMemoryMgrTypes sceneType=SCENE_STATIC) |
Creates a 2D rectangle that can be displayed for screen space effects or showing a basic GUI. | |
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. | |
virtual SceneNode * | createSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Creates an instance of a SceneNode. | |
SkeletonInstance * | createSkeletonInstance (const SkeletonDef *skeletonDef) |
Creates an instance of a skeleton based on the given definition. | |
virtual SphereSceneQuery * | createSphereQuery (const Sphere &sphere, uint32 mask=QUERY_ENTITY_DEFAULT_MASK) |
Creates a SphereSceneQuery for this scene manager. | |
virtual v1::StaticGeometry * | createStaticGeometry (const String &name) |
Creates a StaticGeometry instance suitable for use with this SceneManager. | |
virtual TagPoint * | createTagPoint (void) |
Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone. | |
virtual WireAabb * | createWireAabb (void) |
Create an WireAabb. | |
void | cullLights (Camera *camera, Light::LightTypes startType, Light::LightTypes endType, LightArray &outLights) |
virtual void | destroyAllAnimations (void) |
Removes all animations created using this SceneManager. | |
virtual void | destroyAllAnimationStates (void) |
Removes all animation states created using this SceneManager. | |
virtual void | destroyAllBillboardChains (void) |
Removes & destroys all BillboardChains from the SceneManager. | |
virtual void | destroyAllBillboardSets (void) |
Removes & destroys all BillboardSets. | |
virtual void | destroyAllCameras (void) |
Removes (and destroys) all cameras from the scene. | |
virtual void | destroyAllDecals (void) |
virtual void | destroyAllEntities (void) |
Removes & destroys all Entities. | |
virtual void | destroyAllInstanceManagers (void) |
virtual void | destroyAllItems (void) |
Removes & destroys all Items. | |
virtual void | destroyAllLights (void) |
Removes and destroys all lights in the scene. | |
virtual void | destroyAllManualObjects (void) |
Removes & destroys all ManualObjects from the SceneManager. | |
virtual void | destroyAllMovableObjects (void) |
Destroy all MovableObjects. | |
virtual void | destroyAllMovableObjectsByType (const String &typeName) |
Destroy all MovableObjects of a given type. | |
virtual void | destroyAllParticleSystems (void) |
Removes & destroys all ParticleSystems from the SceneManager. | |
virtual void | destroyAllRectangle2D (void) |
Removes & destroys all Rectangle2D. | |
virtual void | destroyAllRibbonTrails (void) |
Removes & destroys all RibbonTrails from the SceneManager. | |
virtual void | destroyAllStaticGeometry (void) |
Remove & destroy all StaticGeometry instances. | |
virtual void | destroyAllWireAabbs (void) |
Removes & destroys all WireAabbs. | |
virtual void | destroyAnimation (const String &name) |
Destroys an Animation. | |
virtual void | destroyAnimationState (const String &name) |
Destroys an AnimationState. | |
virtual void | destroyBillboardChain (v1::BillboardChain *obj) |
Removes & destroys a BillboardChain from the SceneManager. | |
virtual void | destroyBillboardSet (v1::BillboardSet *set) |
Removes & destroys an BillboardSet from the SceneManager. | |
virtual void | destroyCamera (Camera *cam) |
Removes a camera from the scene. | |
virtual void | destroyDecal (Decal *decal) |
virtual void | destroyEntity (v1::Entity *ent) |
Removes & destroys an Entity from the SceneManager. | |
virtual void | destroyInstancedEntity (v1::InstancedEntity *instancedEntity) |
Removes an InstancedEntity,. | |
virtual void | destroyInstanceManager (IdString name) |
Destroys an InstanceManager if it was created with createInstanceManager() | |
virtual void | destroyInstanceManager (v1::InstanceManager *instanceManager) |
virtual void | destroyItem (Item *item) |
Removes & destroys an Item from the SceneManager. | |
virtual void | destroyLight (Light *light) |
Removes the light from the scene and destroys it based on a pointer. | |
virtual void | destroyManualObject (ManualObject *obj) |
Removes & destroys a ManualObject from the SceneManager. | |
virtual void | destroyMovableObject (MovableObject *m) |
Destroys a MovableObject. | |
virtual void | destroyMovableObject (MovableObject *m, const String &typeName) |
Destroys a MovableObject with the name specified, of the type specified. | |
virtual void | destroyParticleSystem (ParticleSystem *obj) |
Removes & destroys a ParticleSystem from the SceneManager. | |
virtual void | destroyQuery (SceneQuery *query) |
Destroys a scene query of any type. | |
virtual void | destroyRectangle2D (v1::Rectangle2D *rect) |
Removes & destroys an Entity from the SceneManager. | |
virtual void | destroyRibbonTrail (v1::RibbonTrail *obj) |
Removes & destroys a RibbonTrail from the SceneManager. | |
virtual void | destroySceneNode (SceneNode *sn) |
Destroys a SceneNode. | |
void | destroySkeletonInstance (SkeletonInstance *skeletonInstance) |
Destroys an instance of a skeleton created with @createSkeletonInstance. | |
virtual void | destroyStaticGeometry (const String &name) |
Remove & destroy a StaticGeometry instance. | |
virtual void | destroyStaticGeometry (v1::StaticGeometry *geom) |
Remove & destroy a StaticGeometry instance. | |
virtual void | destroyWireAabb (WireAabb *wireAabb) |
Removes & destroys an WireAabb from the SceneManager. | |
virtual size_t | estimateWorldGeometry (const String &filename) |
Estimate the number of loading stages required to load the named world geometry. | |
virtual size_t | estimateWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING) |
Estimate the number of loading stages required to load the named world geometry. | |
void | executeUserScalableTask (UniformScalableTask *task, bool bBlock) |
Processes a user-defined UniformScalableTask in the worker threads spawned by SceneManager. | |
virtual void | extractAllMovableObjectsByType (const String &typeName) |
Extract all injected MovableObjects of a given type. | |
virtual void | extractMovableObject (MovableObject *m) |
Extract a previously injected MovableObject. | |
virtual Camera * | findCamera (IdString name) const |
Finds the camera with the given name. | |
virtual Camera * | findCameraNoThrow (IdString name) const |
Finds the camera with the given name. | |
virtual MovableObjectVec | findMovableObjects (const String &type, const String &name) |
Finds all the movable objects with the type and name passed as parameters. | |
virtual_l1 SceneNodeList | findSceneNodes (const String &name) const |
Finds all the scene nodes with the name passed as parameter. | |
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. | |
virtual v1::Animation * | getAnimation (const String &name) const |
Looks up an Animation object previously created with createAnimation. | |
AnimationIterator | getAnimationIterator (void) |
Returns a specialised MapIterator over all animations in the scene. | |
const AnimationList & | getAnimations () const |
Returns a const version of the animation list. | |
virtual v1::AnimationState * | getAnimationState (const String &animName) const |
Retrieves animation state as previously created using createAnimationState. | |
v1::AnimationStateIterator | getAnimationStateIterator (void) |
Returns a specialised MapIterator over all animation states in the scene. | |
Camera * | getCameraInProgress (void) const |
Gets the current camera being rendered (advanced use only, only valid during viewport update. | |
CameraIterator | getCameraIterator (void) |
Returns a specialised MapIterator over all cameras in the scene. | |
const CameraList & | getCameras () const |
Returns a const version of the camera list. | |
const CompositorTexture & | getCompositorTarget (void) const |
The compositor we are currently writing to. | |
const CompositorTextureVec & | getCompositorTextures (void) const |
const AxisAlignedBox & | getCurrentCastersBox (void) const |
@See CompositorShadowNode::getCastersBox | |
const CompositorPass * | getCurrentCompositorPass (void) const |
Note: May be null. | |
const TextureVec * | getCurrentPrePassDepthTexture (void) const |
PrePassMode | getCurrentPrePassMode (void) const |
const TextureVec * | getCurrentPrePassTextures (void) const |
const CompositorShadowNode * | getCurrentShadowNode (void) const |
const TextureVec * | getCurrentSsrTexture (void) const |
Viewport * | getCurrentViewport (void) const |
Gets the current viewport being rendered (advanced use only, only valid during viewport update. | |
const TexturePtr & | getDecalsDiffuse (void) const |
const TexturePtr & | getDecalsEmissive (void) const |
const TexturePtr & | getDecalsNormals (void) const |
RenderSystem * | getDestinationRenderSystem () |
Get the rendersystem subclass to which the output of this Scene Manager gets sent. | |
virtual bool | getDisplaySceneNodes (void) const |
Returns true if all scene nodes axis are to be displayed. | |
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. | |
virtual bool | getFindVisibleObjects (void) |
Gets whether the SceneManager should search for visible objects, or whether they are being manually handled. | |
virtual bool | getFlipCullingOnNegativeScale () const |
Get whether to automatically flip the culling mode on objects whenever they are negatively scaled. | |
virtual const ColourValue & | getFogColour (void) const |
Returns the fog colour for the scene. | |
virtual Real | getFogDensity (void) const |
Returns the fog density for the scene. | |
virtual Real | getFogEnd (void) const |
Returns the fog end distance for the scene. | |
virtual FogMode | getFogMode (void) const |
Returns the fog mode for the scene. | |
virtual Real | getFogStart (void) const |
Returns the fog start distance for the scene. | |
ForwardPlusBase * | getForwardPlus (void) |
const LightListInfo & | getGlobalLightList (void) const |
virtual v1::InstanceManager * | getInstanceManager (IdString name) const |
Retrieves an existing InstanceManager by it's name. | |
InstancingThreadedCullingMethod | getInstancingThreadedCullingMethod () const |
virtual const PlaneList & | getLightClippingPlanes (const Light *l) |
Retrieve a set of clipping planes for a given light. | |
virtual const RealRect & | getLightScissorRect (const Light *l, const Camera *cam) |
Retrieve a scissor rectangle for a given light and camera. | |
void | getMinMaxDepthRange (const Frustum *shadowMapCamera, Real &outMin, Real &outMax) const |
@See CompositorShadowNode::getMinMaxDepthRange | |
virtual MovableObjectIterator | getMovableObjectIterator (const String &typeName) |
Get an iterator over all MovableObect instances of a given type. | |
const String & | getName (void) const |
Return the instance name of this SceneManager. | |
size_t | getNumCompositorTextures (void) const |
Gets the number of currently active compositor textures. | |
virtual size_t | getNumInstancesPerBatch (const String &meshName, const String &groupName, const String &materialName, v1::InstanceManager::InstancingTechnique technique, size_t numInstancesPerBatch, uint16 flags=0, unsigned short subMeshIdx=0) |
size_t | getNumWorkerThreads () const |
virtual bool | getOption (const String &strKey, void *pDestValue) |
Method for getting the value of an implementation-specific Scene Manager option. | |
virtual bool | getOptionKeys (StringVector &refKeys) |
Method for getting all the implementation-specific options of the scene manager. | |
virtual bool | getOptionValues (const String &strKey, StringVector &refValueList) |
Method for getting all possible values for a specific option. | |
Vector3 | getRelativeOrigin (void) const |
Returns the current relative origin. (Only when non-permanent) | |
RenderQueue * | getRenderQueue (void) const |
Returns the RenderQueue. | |
SceneNode * | getRootSceneNode (SceneMemoryMgrTypes sceneType=SCENE_DYNAMIC) |
Gets the SceneNode at the root of the scene hierarchy. | |
virtual_l1 SceneNode * | getSceneNode (IdType id) |
Retrieves a SceneNode based on it's ID from the scene graph. | |
virtual_l1 const SceneNode * | getSceneNode (IdType id) const |
virtual const ColourValue & | getShadowColour (void) const |
Get the colour used to modulate areas in shadow. | |
virtual Real | getShadowDirectionalLightExtrusionDistance (void) const |
Gets the distance a shadow volume is extruded for a directional light. | |
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. | |
virtual Real | getShadowFarDistance (void) const |
Gets the default maximum distance away from the camera that shadows will be visible. | |
virtual Real | getShadowFarDistanceSquared (void) const |
virtual bool | getShowBoundingBoxes () const |
Returns if all bounding boxes of scene nodes are to be displayed. | |
virtual const SkyBoxGenParameters & | getSkyBoxGenParameters (void) const |
Get the parameters used to generate the current SkyBox, if any. | |
virtual SceneNode * | getSkyBoxNode (void) const |
Get the skybox node, if enabled. | |
virtual const SkyDomeGenParameters & | getSkyDomeGenParameters (void) const |
Get the parameters used to generate the current SkyDome, if any. | |
virtual SceneNode * | getSkyDomeNode (void) const |
Get the sky dome node, if enabled. | |
virtual const SkyPlaneGenParameters & | getSkyPlaneGenParameters (void) const |
Get the parameters used to construct the SkyPlane, if any. | |
virtual SceneNode * | getSkyPlaneNode (void) const |
Get the sky plane node, if enabled. | |
virtual v1::StaticGeometry * | getStaticGeometry (const String &name) const |
Retrieve a previously created StaticGeometry instance. | |
virtual ViewPoint | getSuggestedViewpoint (bool random=false) |
Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed. | |
virtual const String & | getTypeName (void) const =0 |
Retrieve the type name of this scene manager. | |
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. | |
virtual bool | hasAnimation (const String &name) const |
Returns whether an animation with the given name exists. | |
virtual bool | hasAnimationState (const String &name) const |
Returns whether an animation state with the given name exists. | |
virtual bool | hasInstanceManager (IdString managerName) const |
Returns whether an InstanceManager with the given name exists. | |
virtual bool | hasMovableObject (MovableObject *m) |
Returns if this SceneManager contains the specified MovableObject. | |
virtual bool | hasOption (const String &strKey) const |
Method for verifying whether the scene manager has an implementation-specific option. | |
virtual bool | hasStaticGeometry (const String &name) const |
Returns whether a static geometry instance with the given name exists. | |
virtual void | injectMovableObject (MovableObject *m) |
Inject a MovableObject instance created externally. | |
bool | isCurrentShadowNodeReused (void) const |
virtual bool | isLateMaterialResolving () const |
Gets whether using late material resolving or not. | |
virtual bool | isSkyBoxEnabled (void) const |
Return whether a skybox is enabled. | |
virtual bool | isSkyDomeEnabled (void) const |
Return whether a skydome is enabled. | |
virtual bool | isSkyPlaneEnabled (void) const |
Return whether a key plane is enabled. | |
void | notifyStaticAabbDirty (MovableObject *movableObject) |
Notifies that the given MovableObject is dirty (i.e. | |
void | notifyStaticDirty (Node *node) |
Notifies that the given Node is dirty (i.e. | |
OGRE_MUTEX (sceneGraphMutex) | |
Mutex to protect the scene graph from simultaneous access from multiple threads. | |
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 | |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
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 | |
virtual void | prepareWorldGeometry (const String &filename) |
Sets the source of the 'world' geometry, i.e. | |
virtual void | prepareWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING) |
Sets the source of the 'world' geometry, i.e. | |
virtual void | registerSceneNodeListener (SceneNode *sceneNode) |
Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms. | |
virtual void | removeListener (Listener *s) |
Remove a listener. | |
void | removeLodListener (LodListener *listener) |
Remove a level of detail listener. | |
virtual void | removeRenderObjectListener (RenderObjectListener *delListener) |
Removes a listener previously added with addRenderObjectListener. | |
virtual void | removeRenderQueueListener (RenderQueueListener *delListener) |
Removes a listener previously added with addRenderQueueListener. | |
void | setAmbientLight (const ColourValue &upperHemisphere, const ColourValue &lowerHemisphere, const Vector3 &hemisphereDir, Real envmapScale=1.0f) |
Sets the ambient light level to be used for the scene. | |
void | setBuildLegacyLightList (bool bEnable) |
Enables or disables the legace 1.9 way of building light lists which can be used by HlmsLowLevel materials. | |
void | setDecalsDiffuse (const TexturePtr &tex) |
Sets the decal texture for diffuse. | |
void | setDecalsEmissive (const TexturePtr &tex) |
See SceneManager::setDecalsDiffuse. | |
void | setDecalsNormals (const TexturePtr &tex) |
Sets the decal texture normal maps. | |
virtual void | setDisplaySceneNodes (bool display) |
Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene. | |
virtual void | setFindVisibleObjects (bool find) |
Sets whether the SceneManager should search for visible objects, or whether they are being manually handled. | |
virtual void | setFlipCullingOnNegativeScale (bool n) |
Set whether to automatically flip the culling mode on objects whenever they are negatively scaled. | |
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. | |
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. | |
void | setForwardClustered (bool bEnable, uint32 width, uint32 height, uint32 numSlices, uint32 lightsPerCell, uint32 decalsPerCell, float minDistance, float maxDistance) |
virtual void | setLateMaterialResolving (bool isLate) |
Sets whether to use late material resolving or not. | |
virtual bool | setOption (const String &strKey, const void *pValue) |
Method for setting a specific option of the Scene Manager. | |
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. | |
virtual void | setShadowColour (const ColourValue &colour) |
Set the colour used to modulate areas in shadow. | |
virtual void | setShadowDirectionalLightExtrusionDistance (Real dist) |
Sets the distance a shadow volume is extruded for a directional light. | |
virtual void | setShadowDirLightTextureOffset (Real offset) |
Sets the proportional distance which a texture shadow which is generated from a directional light will be offset into the camera view to make best use of texture space. | |
virtual void | setShadowFarDistance (Real distance) |
Sets the default maximum distance away from the camera that shadows will be visible. | |
virtual void | setShadowTextureCasterMaterial (const String &name) |
Sets the default material to use for rendering shadow casters. | |
virtual void | setShadowTextureFadeEnd (Real fadeEnd) |
Sets the proportional distance at which texture shadows finish to fading out. | |
virtual void | setShadowTextureFadeStart (Real fadeStart) |
Sets the proportional distance at which texture shadows begin to fade out. | |
virtual void | setSkyBox (bool enable, const String &materialName, Real distance=5000, bool drawFirst=true, const Quaternion &orientation=Quaternion::IDENTITY, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Enables / disables a 'sky box' i.e. | |
virtual void | setSkyBoxEnabled (bool enable) |
Enables / disables a 'sky box'. | |
virtual void | setSkyDome (bool enable, const String &materialName, Real curvature=10, Real tiling=8, Real distance=4000, bool drawFirst=true, const Quaternion &orientation=Quaternion::IDENTITY, int xsegments=16, int ysegments=16, int ysegments_keep=-1, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Enables / disables a 'sky dome' i.e. | |
virtual void | setSkyDomeEnabled (bool enable) |
Enables / disables a 'sky dome'. | |
virtual void | setSkyPlane (bool enable, const Plane &plane, const String &materialName, Real scale=1000, Real tiling=10, bool drawFirst=true, Real bow=0, int xsegments=1, int ysegments=1, const String &groupName=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) |
Enables / disables a 'sky plane' i.e. | |
virtual void | setSkyPlaneEnabled (bool enable) |
Enables / disables a 'sky plane'. | |
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. | |
virtual void | setWorldGeometry (const String &filename) |
Sets the source of the 'world' geometry, i.e. | |
virtual void | setWorldGeometry (DataStreamPtr &stream, const String &typeName=BLANKSTRING) |
Sets the source of the 'world' geometry, i.e. | |
virtual void | showBoundingBoxes (bool bShow) |
Allows all bounding boxes of scene nodes to be displayed. | |
virtual void | unregisterSceneNodeListener (SceneNode *sceneNode) |
Unregisters a registered node for listening. | |
void | updateAllAnimations () |
Updates all skeletal animations in the scene. | |
void | updateAllBounds (const ObjectMemoryManagerVec &objectMemManager) |
Updates the world aabbs from all entities in the scene. | |
void | updateAllLods (const Camera *lodCamera, Real lodBias, uint8 firstRq, uint8 lastRq) |
Updates the Lod values of all objects relative to the given camera. | |
void | updateAllTagPoints (void) |
Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints. | |
void | updateAllTransforms () |
Updates the derived transforms of all nodes in the scene. | |
void | updateSceneGraph () |
Updates the scene: Perform high level culling, Node transforms and entity animations. | |
void | waitForPendingUserScalableTask () |
Blocks until the the task from processUserScalableTask finishes. | |
Static Public Attributes | |
static uint32 | QUERY_ENTITY_DEFAULT_MASK |
Default query mask for entities. | |
static uint32 | QUERY_FRUSTUM_DEFAULT_MASK |
Default query mask for frusta and cameras. | |
static uint32 | QUERY_FX_DEFAULT_MASK |
Default query mask for effects like billboardsets / particle systems. | |
static uint32 | QUERY_LIGHT_DEFAULT_MASK |
Default query mask for lights. | |
static uint32 | QUERY_STATICGEOMETRY_DEFAULT_MASK |
Default query mask for StaticGeometry. | |
Manages the organisation and rendering of a 'scene' i.e.
a collection of objects and potentially world geometry.
Ogre::SceneManager::SceneManager | ( | const String & | instanceName, |
size_t | numWorkerThreads, | ||
InstancingThreadedCullingMethod | threadedCullingMethod | ||
) |
Constructor.
|
virtual |
Default destructor.
|
virtual |
Internal method for notifying the manager that a SceneNode is autotracking.
void Ogre::SceneManager::_addCompositorTexture | ( | IdString | name, |
const TextureVec * | texs | ||
) |
Used by Compositor, tells of which compositor textures active, so Materials can access them.
If MRT, there could be more than one
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 |
Internal method for applying animations to scene nodes.
Are render state changes suppressed?
AxisAlignedBox Ogre::SceneManager::_calculateCurrentCastersBox | ( | uint32 | viewportVisibilityMask, |
uint8 | firstRq, | ||
uint8 | lastRq | ||
) | const |
Returns true if collection code was run.
When false, you cannot trust the contents of _getTmpVisibleObjectsList to be empty
|
virtual |
|
virtual |
Don't call this function directly.
|
virtual |
Performs the frustum culling that will later be needed by _renderPhase02.
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) |
Called when the frame has fully ended (ALL passes have been executed to all RTTs)
|
inline |
Internal method for getting the combination between the global visibility mask and the per-viewport visibility mask.
|
inline |
|
inline |
Retrieves the main entity memory manager.
|
inline |
|
inline |
|
inline |
|
inline |
@See mTmpVisibleObjects
void Ogre::SceneManager::_handleLodEvents | ( | ) |
Handle LOD events.
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.
mask | Some combination of GpuParamVariability which is bitwise OR'ed with the current dirty state. |
void Ogre::SceneManager::_notifyEntityMaterialLodChanged | ( | EntityMaterialLodChangedEvent & | evt | ) |
Notify that an entity material LOD change event has occurred.
void Ogre::SceneManager::_notifyEntityMeshLodChanged | ( | EntityMeshLodChangedEvent & | evt | ) |
Notify that an entity mesh LOD change event has occurred.
void Ogre::SceneManager::_notifyMovableObjectLodChanged | ( | MovableObjectLodChangedEvent & | evt | ) |
Notify that a movable object LOD change event has occurred.
|
virtual |
Pause rendering of the frame.
This has to be called when inside a renderScene call (Usually using a listener of some sort)
Internal method for queueing the sky objects with the params as previously set through setSkyBox, setSkyPlane and setSkyDome.
Notifies the scene manager that hardware resources were lost.
Removes all compositor textures from 'from' to end.
|
virtual |
Prompts the class to send its contents to the renderer.
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 |
|
virtual |
Notifies the scene manager that hardware resources should be restored.
|
virtual |
Resume rendering of the frame.
This has to be called after a _pauseRendering call
context | The rendring context, as returned by the _pauseRendering call |
void Ogre::SceneManager::_setCompositorTarget | ( | const CompositorTexture & | compoTarget | ) |
The compositor we are currently writing to.
void Ogre::SceneManager::_setCurrentCompositorPass | ( | CompositorPass * | pass | ) |
|
inline |
void Ogre::SceneManager::_setCurrentShadowNode | ( | CompositorShadowNode * | shadowNode, |
bool | isReused | ||
) |
|
virtual |
Notifies the scene manager of its destination render system.
sys | Pointer to the RenderSystem subclass to be used as a render target. |
For internal use.
void Ogre::SceneManager::_setPrePassMode | ( | PrePassMode | mode, |
const TextureVec * | prepassTextures, | ||
const TextureVec * | prepassDepthTexture, | ||
const TextureVec * | ssrTexture | ||
) |
For internal use.
|
virtual |
Enables / disables a 'sky box' i.e.
a 6-sided box at constant distance from the camera representing the sky.
enable | True to enable the skybox, false to disable it |
materialName | The name of the material the box will use |
distance | Distance in world coorinates from the camera to each plane of the box. The default is normally OK. |
renderQueue | The render queue to use when rendering this object |
orientation | Optional parameter to specify the orientation of the box. By default the 'top' of the box is deemed to be in the +y direction, and the 'front' at the -z direction. You can use this parameter to rotate the sky if you want. |
groupName | The name of the resource group to which to assign the plane mesh. |
|
virtual |
Enables / disables a 'sky dome' i.e.
an illusion of a curved sky.
enable | True to enable the skydome, false to disable it |
materialName | The name of the material the dome will use |
curvature | The curvature of the dome. Good values are between 2 and 65. Higher values are more curved leading to a smoother effect, lower values are less curved meaning more distortion at the horizons but a better distance effect. |
tiling | How many times to tile the texture(s) across the dome. |
distance | Distance in world coorinates from the camera to each plane of the box the dome is rendered on. The default is normally OK. |
renderQueue | The render queue to use when rendering this object |
orientation | Optional parameter to specify the orientation of the dome. By default the 'top' of the dome is deemed to be in the +y direction, and the 'front' at the -z direction. You can use this parameter to rotate the sky if you want. |
groupName | The name of the resource group to which to assign the plane mesh. |
|
virtual |
Enables / disables a 'sky plane' i.e.
a plane at constant distance from the camera representing the sky.
enable | True to enable the plane, false to disable it |
plane | Details of the plane, i.e. it's normal and it's distance from the camera. |
materialName | The name of the material the plane will use |
scale | The scaling applied to the sky plane - higher values mean a bigger sky plane - you may want to tweak this depending on the size of plane.d and the other characteristics of your scene |
tiling | How many times to tile the texture across the sky. Applies to all texture layers. If you need finer control use the TextureUnitState texture coordinate transformation methods. |
renderQueue | The render queue to use when rendering this object |
bow | If zero, the plane will be completely flat (like previous versions. If above zero, the plane will be curved, allowing the sky to appear below camera level. Curved sky planes are simular to skydomes, but are more compatible with fog. |
xsegments,ysegments | Determines the number of segments the plane will have to it. This is most important when you are bowing the plane, but may also be useful if you need tessellation on the plane to perform per-vertex effects. |
groupName | The name of the resource group to which to assign the plane mesh. |
Indicates to the SceneManager whether it should suppress changing the RenderSystem states when rendering objects.
suppress | If true, no RenderSystem state changes will be issued until this method is called again with a parameter of false. |
unsigned long Ogre::SceneManager::_updateWorkerThread | ( | ThreadHandle * | threadHandle | ) |
Called from the worker thread, polls to process frustum culling requests when a sync is performed.
Add a listener which will get called back on scene manager events.
void Ogre::SceneManager::addLodListener | ( | LodListener * | listener | ) |
Add a level of detail listener.
|
virtual |
Registers a new Render Object Listener which will be notified when rendering an object.
|
virtual |
Registers a new RenderQueueListener which will be notified when render queues are processed.
Clears temporary buffers and other data that needs to live every frame.
|
virtual |
Empties the entire scene, inluding all SceneNodes, Entities, Lights, BillboardSets etc.
Cameras are not deleted at this stage since they are still referenced by viewports, which are not destroyed during this process.
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.
reattachCameras | When true, all Cameras that have no parent node after clearing will be reattached to the root node. |
|
virtual |
Creates an AxisAlignedBoxSceneQuery for this scene manager.
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. |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
virtual |
Creates an animation which can be used to animate scene nodes.
name | The name of the animation, must be unique within this SceneManager. |
length | The total length of the animation. |
|
virtual |
Create an AnimationState object for managing application of animations.
animName | The name of an animation created already with createAnimation. |
|
virtual |
Create a BillboardChain, an object which you can use to render a linked chain of billboards.
|
virtual |
Creates a new BillboardSet for use with this scene manager.
poolSize | The initial size of the pool of billboards (see BillboardSet for more information) |
|
virtual |
Creates a camera to be managed by this scene manager.
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) |
|
virtual |
|
virtual |
Create an Entity (instance of a discrete mesh).
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. |
|
virtual |
Create an Entity (instance of a discrete mesh).
pMesh | The pointer to the Mesh it is to be based on. |
|
virtual |
Create an Entity (instance of a discrete mesh) from a range of prefab shapes.
ptype | The prefab type. |
|
virtual |
Creates an InstancedEntity based on an existing InstanceManager (.
materialName | Material name |
managerName | Name of the instance manager |
|
virtual |
Creates an InstanceManager interface to create & manipulate instanced entities You need to call this function at least once before start calling createInstancedEntity to build up an instance based on the given mesh.
customName | Custom name for referencing. Must be unique |
meshName | The mesh name the instances will be based upon |
groupName | The resource name where the mesh lives |
technique | Technique to use, which may be shader based, or hardware based. |
numInstancesPerBatch | Suggested number of instances per batch. The actual number may end up being lower if the technique doesn't support having so many. It can't be zero |
flags |
subMeshIdx | InstanceManager only supports using one submesh from the base mesh. This parameter says which submesh to pick (must be <= Mesh::getNumSubMeshes()) |
|
virtual |
Creates an IntersectionSceneQuery for this scene manager.
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
Reimplemented in Ogre::OctreeSceneManager, Ogre::BspSceneManager, and Ogre::PCZSceneManager.
|
virtual |
|
virtual |
Creates a light for use in the scene.
|
virtual |
Create a ManualObject, an object which you populate with geometry manually through a GL immediate-mode style interface.
|
virtual |
Create a movable object of the type specified without a name.
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. |
|
virtual |
Creates a particle system based on a template.
templateName | The name of the template to base the new instance on. |
|
virtual |
Create a blank particle system.
quota | The maximum number of particles to allow in this system. |
resourceGroup | The resource group which will be used to load dependent resources |
|
virtual |
Creates a PlaneBoundedVolumeListSceneQuery for this scene manager.
volumes | Details of the volumes which describe the region for this query. |
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
virtual |
Creates a RaySceneQuery for this scene manager.
ray | Details of the ray which describes the region for this query. |
mask | The query mask to apply to this query; can be used to filter out certain objects; see SceneQuery for details. |
Reimplemented in Ogre::OctreeSceneManager, Ogre::BspSceneManager, and Ogre::PCZSceneManager.
|
virtual |
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.
bQuad | When true, the rectangle is drawn with two triangles. When false, it is drawn as a single oversized triangle. Full screen triangles are faster than quads, but will only work correctly if they cover the entire screen, or are aided by scissor tests to clip the borders. |
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). |
|
virtual |
Create a RibbonTrail, an object which you can use to render a linked chain of billboards which follows one or more nodes.
|
virtual |
Creates an instance of a SceneNode.
SkeletonInstance * Ogre::SceneManager::createSkeletonInstance | ( | const SkeletonDef * | skeletonDef | ) |
Creates an instance of a skeleton based on the given definition.
|
virtual |
Creates a SphereSceneQuery for this scene manager.
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. |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
virtual |
Creates a StaticGeometry instance suitable for use with this SceneManager.
name | The name to give the new object |
Creates a TagPoint that can be used like a SceneNode, or be used to be attached to a Bone.
void Ogre::SceneManager::cullLights | ( | Camera * | camera, |
Light::LightTypes | startType, | ||
Light::LightTypes | endType, | ||
LightArray & | outLights | ||
) |
Removes all animations created using this SceneManager.
Removes all animation states created using this SceneManager.
Removes & destroys all BillboardChains from the SceneManager.
Removes & destroys all BillboardSets.
Removes (and destroys) all cameras from the scene.
Removes & destroys all Entities.
Removes and destroys all lights in the scene.
Reimplemented in Ogre::PCZSceneManager.
Removes & destroys all ManualObjects from the SceneManager.
Destroy all MovableObjects.
Destroy all MovableObjects of a given type.
Removes & destroys all ParticleSystems from the SceneManager.
Removes & destroys all Rectangle2D.
Removes & destroys all RibbonTrails from the SceneManager.
Remove & destroy all StaticGeometry instances.
Removes & destroys all WireAabbs.
Destroys an Animation.
Destroys an AnimationState.
|
virtual |
Removes & destroys a BillboardChain from the SceneManager.
|
virtual |
Removes & destroys an BillboardSet from the SceneManager.
Removes a camera from the scene.
cam | Pointer to the camera to remove |
|
virtual |
Removes & destroys an Entity from the SceneManager.
|
virtual |
Removes an InstancedEntity,.
instancedEntity | Instance to remove |
Destroys an InstanceManager if it was created with createInstanceManager()
name | Name of the manager to remove |
|
virtual |
Removes & destroys an Item from the SceneManager.
Removes the light from the scene and destroys it based on a pointer.
|
virtual |
Removes & destroys a ManualObject from the SceneManager.
|
virtual |
Destroys a MovableObject.
|
virtual |
Destroys a MovableObject with the name specified, of the type specified.
|
virtual |
Removes & destroys a ParticleSystem from the SceneManager.
|
virtual |
Destroys a scene query of any type.
|
virtual |
Removes & destroys an Entity from the SceneManager.
|
virtual |
Removes & destroys a RibbonTrail from the SceneManager.
Destroys a SceneNode.
Reimplemented in Ogre::PCZSceneManager.
void Ogre::SceneManager::destroySkeletonInstance | ( | SkeletonInstance * | skeletonInstance | ) |
Destroys an instance of a skeleton created with @createSkeletonInstance.
Remove & destroy a StaticGeometry instance.
|
virtual |
Remove & destroy a StaticGeometry instance.
Removes & destroys an WireAabb from the SceneManager.
Estimate the number of loading stages required to load the named world geometry.
Reimplemented in Ogre::BspSceneManager.
|
inlinevirtual |
Estimate the number of loading stages required to load the named world geometry.
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. |
Reimplemented in Ogre::BspSceneManager.
void Ogre::SceneManager::executeUserScalableTask | ( | UniformScalableTask * | task, |
bool | bBlock | ||
) |
Processes a user-defined UniformScalableTask in the worker threads spawned by SceneManager.
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. |
Extract all injected MovableObjects of a given type.
|
virtual |
Extract a previously injected MovableObject.
Finds the camera with the given name.
Throws if not found.
name | Hash of the name of the camera to find |
Finds the camera with the given name.
Returns null pointer if not found.
name | Hash of the name of the camera to find |
|
virtual |
Finds all the movable objects with the type and name passed as parameters.
virtual_l1 SceneNodeList Ogre::SceneManager::findSceneNodes | ( | const String & | name | ) | const |
Finds all the scene nodes with the name passed as parameter.
|
inline |
|
inline |
Returns the ambient light level to be used for the scene.
|
virtual |
Looks up an Animation object previously created with createAnimation.
|
inline |
Returns a specialised MapIterator over all animations in the scene.
|
inline |
Returns a const version of the animation list.
|
virtual |
Retrieves animation state as previously created using createAnimationState.
|
inline |
Returns a specialised MapIterator over all animation states in the scene.
Gets the current camera being rendered (advanced use only, only valid during viewport update.
|
inline |
Returns a specialised MapIterator over all cameras in the scene.
|
inline |
Returns a const version of the camera list.
|
inline |
The compositor we are currently writing to.
|
inline |
const AxisAlignedBox & Ogre::SceneManager::getCurrentCastersBox | ( | void | ) | const |
@See CompositorShadowNode::getCastersBox
|
inline |
Note: May be null.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Gets the current viewport being rendered (advanced use only, only valid during viewport update.
|
inline |
|
inline |
|
inline |
RenderSystem * Ogre::SceneManager::getDestinationRenderSystem | ( | ) |
Get the rendersystem subclass to which the output of this Scene Manager gets sent.
Returns true if all scene nodes axis are to be displayed.
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.
Gets whether the SceneManager should search for visible objects, or whether they are being manually handled.
Get whether to automatically flip the culling mode on objects whenever they are negatively scaled.
|
virtual |
Returns the fog colour for the scene.
Returns the fog density for the scene.
Returns the fog end distance for the scene.
Returns the fog mode for the scene.
Returns the fog start distance for the scene.
|
inline |
|
inline |
|
virtual |
Retrieves an existing InstanceManager by it's name.
|
inline |
Retrieve a set of clipping planes for a given light.
|
virtual |
Retrieve a scissor rectangle for a given light and camera.
void Ogre::SceneManager::getMinMaxDepthRange | ( | const Frustum * | shadowMapCamera, |
Real & | outMin, | ||
Real & | outMax | ||
) | const |
@See CompositorShadowNode::getMinMaxDepthRange
|
virtual |
Get an iterator over all MovableObect instances of a given type.
Return the instance name of this SceneManager.
Gets the number of currently active compositor textures.
|
virtual |
|
inline |
|
inlinevirtual |
Method for getting the value of an implementation-specific Scene Manager option.
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 |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
inlinevirtual |
Method for getting all the implementation-specific options of the scene manager.
refKeys | A reference to a list that will be filled with all the available options. |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
inlinevirtual |
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.
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. |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
Returns the current relative origin. (Only when non-permanent)
|
inline |
Returns the RenderQueue.
SceneNode * Ogre::SceneManager::getRootSceneNode | ( | SceneMemoryMgrTypes | sceneType = SCENE_DYNAMIC | ) |
Gets the SceneNode at the root of the scene hierarchy.
virtual_l1 SceneNode * Ogre::SceneManager::getSceneNode | ( | IdType | id | ) |
Retrieves a SceneNode based on it's ID from the scene graph.
virtual_l1 const SceneNode * Ogre::SceneManager::getSceneNode | ( | IdType | id | ) | const |
|
virtual |
Get the colour used to modulate areas in shadow.
Gets the distance a shadow volume is extruded for a directional light.
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.
Gets the default maximum distance away from the camera that shadows will be visible.
Returns if all bounding boxes of scene nodes are to be displayed.
|
inlinevirtual |
Get the parameters used to generate the current SkyBox, if any.
Get the skybox node, if enabled.
|
inlinevirtual |
Get the parameters used to generate the current SkyDome, if any.
Get the sky dome node, if enabled.
|
inlinevirtual |
Get the parameters used to construct the SkyPlane, if any.
Get the sky plane node, if enabled.
|
virtual |
Retrieve a previously created StaticGeometry instance.
Asks the SceneManager to provide a suggested viewpoint from which the scene should be viewed.
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. |
Reimplemented in Ogre::BspSceneManager.
Retrieve the type name of this scene manager.
Implemented in Ogre::DefaultSceneManager, Ogre::BspSceneManager, Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
inline |
Gets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible.
Returns whether an animation with the given name exists.
Returns whether an animation state with the given name exists.
Returns whether an InstanceManager with the given name exists.
|
virtual |
Returns if this SceneManager contains the specified MovableObject.
Method for verifying whether the scene manager has an implementation-specific option.
strKey | The name of the option to check for. |
Returns whether a static geometry instance with the given name exists.
|
virtual |
Inject a MovableObject instance created externally.
Gets whether using late material resolving or not.
Return whether a skybox is enabled.
Return whether a skydome is enabled.
Return whether a key plane is enabled.
void Ogre::SceneManager::notifyStaticAabbDirty | ( | MovableObject * | movableObject | ) |
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
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.
Ogre::SceneManager::OGRE_MUTEX | ( | sceneGraphMutex | ) |
Mutex to protect the scene graph from simultaneous access from multiple threads.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
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.
|
virtual |
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.
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. |
Node listeners need to be registered with us so that they can be successfully called when calling updateAllTransforms.
@See updateAllTransforms
void Ogre::SceneManager::removeLodListener | ( | LodListener * | listener | ) |
Remove a level of detail listener.
|
virtual |
Removes a listener previously added with addRenderObjectListener.
|
virtual |
Removes a listener previously added with addRenderQueueListener.
void Ogre::SceneManager::setAmbientLight | ( | const ColourValue & | upperHemisphere, |
const ColourValue & | lowerHemisphere, | ||
const Vector3 & | hemisphereDir, | ||
Real | envmapScale = 1.0f |
||
) |
Sets the ambient light level to be used for the scene.
Setting upperHemisphere = lowerHemisphere is effectively a traditional fixed-colour ambient light.
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. |
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.
|
inline |
Sets the decal texture for diffuse.
Should be a RGBA8 or similar colour format.
You still need to enable a Forward+ solution that supports decals, such as SceneManager::setForwardClusted; otherwise decals won't be rendered.
tex | Null pointer to disable diffuse texture for all decals, globablly. |
|
inline |
See SceneManager::setDecalsDiffuse.
Setting this texture to the same as diffuse incurs in a performance optimization.
|
inline |
Sets the decal texture normal maps.
Should be RG8_SNORM or BC5_SNORM.
tex | Null pointer to disable normal map textures for all decals, globally. |
Tells the SceneManager whether it should render the SceneNodes which make up the scene as well as the objects in the scene.
Sets whether the SceneManager should search for visible objects, or whether they are being manually handled.
Set whether to automatically flip the culling mode on objects whenever they are negatively scaled.
void Ogre::SceneManager::setFog | ( | FogMode | mode = FOG_NONE , |
const ColourValue & | colour = ColourValue::White , |
||
Real | expDensity = 0.001 , |
||
Real | linearStart = 0.0 , |
||
Real | linearEnd = 1.0 |
||
) |
Sets the fogging mode applied to the scene.
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. |
void Ogre::SceneManager::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.
See the Forward3D sample for more information.
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. |
void Ogre::SceneManager::setForwardClustered | ( | bool | bEnable, |
uint32 | width, | ||
uint32 | height, | ||
uint32 | numSlices, | ||
uint32 | lightsPerCell, | ||
uint32 | decalsPerCell, | ||
float | minDistance, | ||
float | maxDistance | ||
) |
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.
|
inlinevirtual |
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.
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 |
Reimplemented in Ogre::OctreeSceneManager, and Ogre::PCZSceneManager.
|
virtual |
Set whether to use relative offset co-ordinates when rendering, ie offset to subtract to the camera, lights & objects.
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.
|
virtual |
Set the colour used to modulate areas in shadow.
Sets the distance a shadow volume is extruded for a directional light.
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.
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.
Sets the default material to use for rendering shadow casters.
Sets the proportional distance at which texture shadows finish to fading out.
Sets the proportional distance at which texture shadows begin to fade out.
|
virtual |
Enables / disables a 'sky box' i.e.
a 6-sided box at constant distance from the camera representing the sky.
enable | True to enable the skybox, false to disable it |
materialName | The name of the material the box will use |
distance | Distance in world coorinates from the camera to each plane of the box. The default is normally OK. |
drawFirst | If true, the box is drawn before all other geometry in the scene, without updating the depth buffer. This is the safest rendering method since all other objects will always appear in front of the sky. However this is not the most efficient way if most of the sky is often occluded by other objects. If this is the case, you can set this parameter to false meaning it draws after all other geometry which can be an optimisation - however you must ensure that the distance value is large enough that no objects will 'poke through' the sky box when it is rendered. |
orientation | Optional parameter to specify the orientation of the box. By default the 'top' of the box is deemed to be in the +y direction, and the 'front' at the -z direction. You can use this parameter to rotate the sky if you want. |
groupName | The name of the resource group to which to assign the plane mesh. |
Enables / disables a 'sky box'.
|
virtual |
Enables / disables a 'sky dome' i.e.
an illusion of a curved sky.
enable | True to enable the skydome, false to disable it |
materialName | The name of the material the dome will use |
curvature | The curvature of the dome. Good values are between 2 and 65. Higher values are more curved leading to a smoother effect, lower values are less curved meaning more distortion at the horizons but a better distance effect. |
tiling | How many times to tile the texture(s) across the dome. |
distance | Distance in world coorinates from the camera to each plane of the box the dome is rendered on. The default is normally OK. |
drawFirst | If true, the dome is drawn before all other geometry in the scene, without updating the depth buffer. This is the safest rendering method since all other objects will always appear in front of the sky. However this is not the most efficient way if most of the sky is often occluded by other objects. If this is the case, you can set this parameter to false meaning it draws after all other geometry which can be an optimisation - however you must ensure that the distance value is large enough that no objects will 'poke through' the sky when it is rendered. |
orientation | Optional parameter to specify the orientation of the dome. By default the 'top' of the dome is deemed to be in the +y direction, and the 'front' at the -z direction. You can use this parameter to rotate the sky if you want. |
groupName | The name of the resource group to which to assign the plane mesh. |
Enables / disables a 'sky dome'.
|
virtual |
Enables / disables a 'sky plane' i.e.
a plane at constant distance from the camera representing the sky.
enable | True to enable the plane, false to disable it |
plane | Details of the plane, i.e. it's normal and it's distance from the camera. |
materialName | The name of the material the plane will use |
scale | The scaling applied to the sky plane - higher values mean a bigger sky plane - you may want to tweak this depending on the size of plane.d and the other characteristics of your scene |
tiling | How many times to tile the texture across the sky. Applies to all texture layers. If you need finer control use the TextureUnitState texture coordinate transformation methods. |
drawFirst | If true, the plane is drawn before all other geometry in the scene, without updating the depth buffer. This is the safest rendering method since all other objects will always appear in front of the sky. However this is not the most efficient way if most of the sky is often occluded by other objects. If this is the case, you can set this parameter to false meaning it draws after all other geometry which can be an optimisation - however you must ensure that the plane.d value is large enough that no objects will 'poke through' the sky plane when it is rendered. |
bow | If zero, the plane will be completely flat (like previous versions. If above zero, the plane will be curved, allowing the sky to appear below camera level. Curved sky planes are simular to skydomes, but are more compatible with fog. |
xsegments,ysegments | Determines the number of segments the plane will have to it. This is most important when you are bowing the plane, but may also be useful if you need tessellation on the plane to perform per-vertex effects. |
groupName | The name of the resource group to which to assign the plane mesh. |
Enables / disables a 'sky plane'.
|
inline |
Sets a mask which is bitwise 'and'ed with objects own visibility masks to determine if the object is visible.
References Ogre::VisibilityFlags::RESERVED_VISIBILITY_FLAGS.
Sets the source of the 'world' geometry, i.e.
the large, mainly static geometry making up the world e.g. rooms, landscape etc.
Reimplemented in Ogre::BspSceneManager.
|
virtual |
Sets the source of the 'world' geometry, i.e.
the large, mainly static geometry making up the world e.g. rooms, landscape etc.
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. |
Reimplemented in Ogre::BspSceneManager.
Allows all bounding boxes of scene nodes to be displayed.
Unregisters a registered node for listening.
@See registerSceneNodeListener
void Ogre::SceneManager::updateAllAnimations | ( | ) |
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.
Updates the world aabbs from all entities in the scene.
Ought to be called right after updateAllTransforms. @See updateAllTransforms
void Ogre::SceneManager::updateAllLods | ( | const Camera * | lodCamera, |
Real | lodBias, | ||
uint8 | firstRq, | ||
uint8 | lastRq | ||
) |
Updates the Lod values of all objects relative to the given camera.
Updates all TagPoints, both TagPoints that are children of bones, and TagPoints that are children of other TagPoints.
void Ogre::SceneManager::updateAllTransforms | ( | ) |
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.
void Ogre::SceneManager::updateSceneGraph | ( | ) |
Updates the scene: Perform high level culling, Node transforms and entity animations.
void Ogre::SceneManager::waitForPendingUserScalableTask | ( | ) |
Blocks until the the task from processUserScalableTask finishes.
|
static |
Default query mask for entities.
|
static |
Default query mask for frusta and cameras.
|
static |
Default query mask for effects like billboardsets / particle systems.
|
static |
Default query mask for lights.
|
static |
Default query mask for StaticGeometry.