OGRE  13.6
Object-Oriented Graphics Rendering Engine
Ogre::OctreeZone Class Reference

#include <OgreOctreeZone.h>

+ Inheritance diagram for Ogre::OctreeZone:

Public Member Functions

 OctreeZone (PCZSceneManager *, const String &)
 
virtual ~OctreeZone ()
 
void _addNode (PCZSceneNode *) override
 Adds an SceneNode to this OctreeZone. More...
 
void _checkLightAgainstPortals (PCZLight *, unsigned long, PCZFrustum *, Portal *) override
 (recursive) Check the given light against all portals in the zone More...
 
void _checkNodeAgainstPortals (PCZSceneNode *, Portal *) override
 (recursive) Check the given node against all portals in the zone More...
 
void _clearNodeLists (short nodeListTypes) override
 Remove all nodes from the node reference list and clear it. More...
 
void _findNodes (const AxisAlignedBox &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude) override
 Functions for finding Nodes that intersect various shapes. More...
 
void _findNodes (const PlaneBoundedVolume &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude) override
 
void _findNodes (const Ray &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude) override
 
void _findNodes (const Sphere &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude) override
 
void addNodeToOctree (PCZSceneNode *, Octree *octree, int depth=0)
 Adds the Octree Node, starting at the given octree, and recursing at max to the specified depth. More...
 
void createNodeZoneData (PCZSceneNode *) override
 Create zone specific data for a node. More...
 
void dirtyNodeByMovingPortals (void) override
 Mark nodes dirty base on moving portals. More...
 
void findVisibleNodes (PCZCamera *, NodeList &visibleNodeList, RenderQueue *queue, VisibleObjectsBoundsInfo *visibleBounds, bool onlyShadowCasters, bool displayNodes, bool showBoundingBoxes) override
 Find and add visible objects to the render queue. More...
 
void getAABB (AxisAlignedBox &) override
 Get the world coordinate aabb of the zone. More...
 
void init (AxisAlignedBox &box, int depth)
 Init function carried over from OctreeSceneManager. More...
 
void notifyBeginRenderScene (void) override
 Called when a _renderScene is called in the SceneManager. More...
 
void notifyCameraCreated (Camera *c) override
 Called when the scene manager creates a camera because some zone managers (like TerrainZone) need the camera info. More...
 
void notifyWorldGeometryRenderQueue (uint8 qid) override
 Called by PCZSM during setWorldGeometryRenderQueue() More...
 
void removeNode (PCZSceneNode *) override
 Removes all references to a SceneNode from this Zone. More...
 
void removeNodeFromOctree (PCZSceneNode *)
 Removes the node from the octree it is in. More...
 
bool requiresZoneSpecificNodeData (void) override
 Indicates whether or not this zone requires zone-specific data for each scene node. More...
 
void resize (const AxisAlignedBox &box)
 Resizes the octree to the given size. More...
 
void setEnclosureNode (PCZSceneNode *) override
 Set the enclosure node for this OctreeZone. More...
 
bool setOption (const String &, const void *) override
 Sets the given option for the Zone. More...
 
void setZoneGeometry (const String &filename, PCZSceneNode *parentNode) override
 Called by PCZSM during setZoneGeometry() More...
 
PCZoneupdateNodeHomeZone (PCZSceneNode *pczsn, bool allowBackTouces) override
 Update a node's home zone. More...
 
void updateNodeOctant (OctreeZoneData *zoneData)
 Checks the given OctreeNode, and determines if it needs to be moved to a different octant. More...
 
void updatePortalsZoneData (void) override
 Update the zone data for each portal. More...
 
- Public Member Functions inherited from Ogre::PCZone
 PCZone (PCZSceneManager *, const String &)
 
virtual ~PCZone ()
 
virtual void _addAntiPortal (AntiPortal *newAntiPortal)
 Add an anti portal to the zone. More...
 
virtual void _addPortal (Portal *newPortal)
 Add a portal to the zone. More...
 
virtual void _removeAntiPortal (AntiPortal *removeAntiPortal)
 Remove an anti portal from the zone. More...
 
virtual void _removePortal (Portal *removePortal)
 Remove a portal from the zone. More...
 
virtual PortalfindMatchingPortal (Portal *)
 Find a matching portal (for connecting portals) More...
 
SceneNodegetEnclosureNode (void)
 Get a pointer to the enclosure node for this PCZone. More...
 
unsigned long getLastVisibleFrame (void)
 Get the lastVisibleFrame counter value. More...
 
PCZCameragetLastVisibleFromCamera ()
 Get the lastVisibleFromCamera pointer. More...
 
const StringgetName (void) const
 
bool getPortalsUpdated (void)
 
void * getUserData (void)
 Get & set the user data. More...
 
const StringgetZoneTypeName () const
 
bool hasSky (void)
 
void setHasSky (bool yesno)
 If sky should be drawn with this zone. More...
 
void setLastVisibleFrame (unsigned long frameCount)
 Set the lastVisibleFrame counter. More...
 
void setLastVisibleFromCamera (PCZCamera *camera)
 Set the lastVisibleFromCamera pointer. More...
 
void setPortalsUpdated (bool updated)
 
void setUserData (void *userData)
 

Additional Inherited Members

- Public Types inherited from Ogre::PCZone
enum  NODE_LIST_TYPE { HOME_NODE_LIST = 1 , VISITOR_NODE_LIST = 2 }
 
- Public Attributes inherited from Ogre::PCZone
AntiPortalList mAntiPortals
 
PCZSceneManagermPCZSM
 Pointer to the pcz scene manager that created this zone. More...
 
PortalList mPortals
 List of Portals which this zone contains (each portal leads to another zone) More...
 

Constructor & Destructor Documentation

◆ OctreeZone()

Ogre::OctreeZone::OctreeZone ( PCZSceneManager ,
const String  
)

◆ ~OctreeZone()

virtual Ogre::OctreeZone::~OctreeZone ( )
virtual

Member Function Documentation

◆ setEnclosureNode()

void Ogre::OctreeZone::setEnclosureNode ( PCZSceneNode )
overridevirtual

Set the enclosure node for this OctreeZone.

Implements Ogre::PCZone.

◆ _addNode()

void Ogre::OctreeZone::_addNode ( PCZSceneNode )
overridevirtual

Adds an SceneNode to this OctreeZone.

Remarks
The PCZSceneManager calls this function to add a node to the zone.

Implements Ogre::PCZone.

◆ removeNode()

void Ogre::OctreeZone::removeNode ( PCZSceneNode )
overridevirtual

Removes all references to a SceneNode from this Zone.

Implements Ogre::PCZone.

◆ _clearNodeLists()

void Ogre::OctreeZone::_clearNodeLists ( short  nodeListTypes)
overridevirtual

Remove all nodes from the node reference list and clear it.

Reimplemented from Ogre::PCZone.

◆ requiresZoneSpecificNodeData()

bool Ogre::OctreeZone::requiresZoneSpecificNodeData ( void  )
overridevirtual

Indicates whether or not this zone requires zone-specific data for each scene node.

Implements Ogre::PCZone.

◆ createNodeZoneData()

void Ogre::OctreeZone::createNodeZoneData ( PCZSceneNode )
overridevirtual

Create zone specific data for a node.

Reimplemented from Ogre::PCZone.

◆ _checkNodeAgainstPortals()

void Ogre::OctreeZone::_checkNodeAgainstPortals ( PCZSceneNode ,
Portal  
)
overridevirtual

(recursive) Check the given node against all portals in the zone

Implements Ogre::PCZone.

◆ _checkLightAgainstPortals()

void Ogre::OctreeZone::_checkLightAgainstPortals ( PCZLight ,
unsigned long  ,
PCZFrustum ,
Portal  
)
overridevirtual

(recursive) Check the given light against all portals in the zone

Implements Ogre::PCZone.

◆ updatePortalsZoneData()

void Ogre::OctreeZone::updatePortalsZoneData ( void  )
overridevirtual

Update the zone data for each portal.

Implements Ogre::PCZone.

◆ dirtyNodeByMovingPortals()

void Ogre::OctreeZone::dirtyNodeByMovingPortals ( void  )
overridevirtual

Mark nodes dirty base on moving portals.

Implements Ogre::PCZone.

◆ updateNodeHomeZone()

PCZone* Ogre::OctreeZone::updateNodeHomeZone ( PCZSceneNode pczsn,
bool  allowBackTouces 
)
overridevirtual

Update a node's home zone.

Implements Ogre::PCZone.

◆ findVisibleNodes()

void Ogre::OctreeZone::findVisibleNodes ( PCZCamera ,
NodeList visibleNodeList,
RenderQueue queue,
VisibleObjectsBoundsInfo visibleBounds,
bool  onlyShadowCasters,
bool  displayNodes,
bool  showBoundingBoxes 
)
overridevirtual

Find and add visible objects to the render queue.

Remarks
Starts with objects in the zone and proceeds through visible portals
This is a recursive call (the main call should be to _findVisibleObjects)

Implements Ogre::PCZone.

◆ _findNodes() [1/4]

void Ogre::OctreeZone::_findNodes ( const AxisAlignedBox t,
PCZSceneNodeList list,
PortalList visitedPortals,
bool  includeVisitors,
bool  recurseThruPortals,
PCZSceneNode exclude 
)
overridevirtual

Functions for finding Nodes that intersect various shapes.

Implements Ogre::PCZone.

◆ _findNodes() [2/4]

void Ogre::OctreeZone::_findNodes ( const Sphere t,
PCZSceneNodeList list,
PortalList visitedPortals,
bool  includeVisitors,
bool  recurseThruPortals,
PCZSceneNode exclude 
)
overridevirtual

Implements Ogre::PCZone.

◆ _findNodes() [3/4]

void Ogre::OctreeZone::_findNodes ( const PlaneBoundedVolume t,
PCZSceneNodeList list,
PortalList visitedPortals,
bool  includeVisitors,
bool  recurseThruPortals,
PCZSceneNode exclude 
)
overridevirtual

Implements Ogre::PCZone.

◆ _findNodes() [4/4]

void Ogre::OctreeZone::_findNodes ( const Ray t,
PCZSceneNodeList list,
PortalList visitedPortals,
bool  includeVisitors,
bool  recurseThruPortals,
PCZSceneNode exclude 
)
overridevirtual

Implements Ogre::PCZone.

◆ setOption()

bool Ogre::OctreeZone::setOption ( const String ,
const void *   
)
overridevirtual

Sets the given option for the Zone.

Remarks
Options are: "Size", AxisAlignedBox *; "Depth", int *; "ShowOctree", bool *;

Implements Ogre::PCZone.

◆ notifyCameraCreated()

void Ogre::OctreeZone::notifyCameraCreated ( Camera c)
overridevirtual

Called when the scene manager creates a camera because some zone managers (like TerrainZone) need the camera info.

Implements Ogre::PCZone.

◆ notifyWorldGeometryRenderQueue()

void Ogre::OctreeZone::notifyWorldGeometryRenderQueue ( uint8  qid)
overridevirtual

Called by PCZSM during setWorldGeometryRenderQueue()

Implements Ogre::PCZone.

◆ notifyBeginRenderScene()

void Ogre::OctreeZone::notifyBeginRenderScene ( void  )
overridevirtual

Called when a _renderScene is called in the SceneManager.

Implements Ogre::PCZone.

◆ setZoneGeometry()

void Ogre::OctreeZone::setZoneGeometry ( const String filename,
PCZSceneNode parentNode 
)
overridevirtual

Called by PCZSM during setZoneGeometry()

Implements Ogre::PCZone.

◆ getAABB()

void Ogre::OctreeZone::getAABB ( AxisAlignedBox )
overridevirtual

Get the world coordinate aabb of the zone.

Reimplemented from Ogre::PCZone.

◆ init()

void Ogre::OctreeZone::init ( AxisAlignedBox box,
int  depth 
)

Init function carried over from OctreeSceneManager.

◆ resize()

void Ogre::OctreeZone::resize ( const AxisAlignedBox box)

Resizes the octree to the given size.

◆ updateNodeOctant()

void Ogre::OctreeZone::updateNodeOctant ( OctreeZoneData zoneData)

Checks the given OctreeNode, and determines if it needs to be moved to a different octant.

◆ removeNodeFromOctree()

void Ogre::OctreeZone::removeNodeFromOctree ( PCZSceneNode )

Removes the node from the octree it is in.

◆ addNodeToOctree()

void Ogre::OctreeZone::addNodeToOctree ( PCZSceneNode ,
Octree octree,
int  depth = 0 
)

Adds the Octree Node, starting at the given octree, and recursing at max to the specified depth.


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