OGRE 1.12.10
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
Ogre::OctreeZone Class Reference

#include <OgreOctreeZone.h>

Inheritance diagram for Ogre::OctreeZone:

Public Member Functions

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

Constructor & Destructor Documentation

◆ OctreeZone()

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

◆ ~OctreeZone()

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

Member Function Documentation

◆ setEnclosureNode()

virtual void Ogre::OctreeZone::setEnclosureNode ( PCZSceneNode * )
virtual

Set the enclosure node for this OctreeZone.

Implements Ogre::PCZone.

◆ _addNode()

virtual void Ogre::OctreeZone::_addNode ( PCZSceneNode * )
virtual

Adds an SceneNode to this OctreeZone.

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

Implements Ogre::PCZone.

◆ removeNode()

virtual void Ogre::OctreeZone::removeNode ( PCZSceneNode * )
virtual

Removes all references to a SceneNode from this Zone.

Implements Ogre::PCZone.

◆ _clearNodeLists()

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

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

Reimplemented from Ogre::PCZone.

◆ requiresZoneSpecificNodeData()

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

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

Implements Ogre::PCZone.

◆ createNodeZoneData()

virtual void Ogre::OctreeZone::createNodeZoneData ( PCZSceneNode * )
virtual

Create zone specific data for a node.

Reimplemented from Ogre::PCZone.

◆ _checkNodeAgainstPortals()

virtual void Ogre::OctreeZone::_checkNodeAgainstPortals ( PCZSceneNode * ,
Portal *  )
virtual

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

Implements Ogre::PCZone.

◆ _checkLightAgainstPortals()

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

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

Implements Ogre::PCZone.

◆ updatePortalsZoneData()

void Ogre::OctreeZone::updatePortalsZoneData ( void )
virtual

Update the zone data for each portal.

Implements Ogre::PCZone.

◆ dirtyNodeByMovingPortals()

void Ogre::OctreeZone::dirtyNodeByMovingPortals ( void )
virtual

Mark nodes dirty base on moving portals.

Implements Ogre::PCZone.

◆ updateNodeHomeZone()

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

Update a node's home zone.

Implements Ogre::PCZone.

References Ogre::PCZone::PCZone().

◆ findVisibleNodes()

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

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]

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

Functions for finding Nodes that intersect various shapes.

Implements Ogre::PCZone.

◆ _findNodes() [2/4]

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

Implements Ogre::PCZone.

◆ _findNodes() [3/4]

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

Implements Ogre::PCZone.

◆ _findNodes() [4/4]

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

Implements Ogre::PCZone.

◆ setOption()

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

Sets the given option for the Zone.

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

Implements Ogre::PCZone.

◆ notifyCameraCreated()

virtual void Ogre::OctreeZone::notifyCameraCreated ( Camera * c)
virtual

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

Implements Ogre::PCZone.

◆ notifyWorldGeometryRenderQueue()

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

Called by PCZSM during setWorldGeometryRenderQueue().

Implements Ogre::PCZone.

◆ notifyBeginRenderScene()

virtual void Ogre::OctreeZone::notifyBeginRenderScene ( void )
virtual

Called when a _renderScene is called in the SceneManager.

Implements Ogre::PCZone.

◆ setZoneGeometry()

virtual void Ogre::OctreeZone::setZoneGeometry ( const String & filename,
PCZSceneNode * parentNode )
virtual

Called by PCZSM during setZoneGeometry().

Implements Ogre::PCZone.

◆ getAABB()

virtual void Ogre::OctreeZone::getAABB ( AxisAlignedBox & )
virtual

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: