OGRE 14.5
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 ()
void _addNode (PCZSceneNode *) override
 Adds an SceneNode to this OctreeZone.
void _checkLightAgainstPortals (PCZLight *, unsigned long, PCZFrustum *, Portal *) override
 (recursive) Check the given light against all portals in the zone
void _checkNodeAgainstPortals (PCZSceneNode *, Portal *) override
 (recursive) Check the given node against all portals in the zone
void _clearNodeLists (short nodeListTypes) override
 Remove all nodes from the node reference list and clear it.
void _findNodes (const AxisAlignedBox &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude) override
 Functions for finding Nodes that intersect various shapes.
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.
void createNodeZoneData (PCZSceneNode *) override
 Create zone specific data for a node.
void dirtyNodeByMovingPortals (void) override
 Mark nodes dirty base on moving portals.
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.
void getAABB (AxisAlignedBox &) override
 Get the world coordinate aabb of the zone.
void init (AxisAlignedBox &box, int depth)
 Init function carried over from OctreeSceneManager.
void notifyBeginRenderScene (void) override
 Called when a _renderScene is called in the SceneManager.
void notifyCameraCreated (Camera *c) override
 Called when the scene manager creates a camera because some zone managers (like TerrainZone) need the camera info.
void notifyWorldGeometryRenderQueue (uint8 qid) override
 Called by PCZSM during setWorldGeometryRenderQueue().
void removeNode (PCZSceneNode *) override
 Removes all references to a SceneNode from this Zone.
void removeNodeFromOctree (PCZSceneNode *)
 Removes the node from the octree it is in.
bool requiresZoneSpecificNodeData (void) override
 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.
void setEnclosureNode (PCZSceneNode *) override
 Set the enclosure node for this OctreeZone.
bool setOption (const String &, const void *) override
 Sets the given option for the Zone.
void setZoneGeometry (const String &filename, PCZSceneNode *parentNode) override
 Called by PCZSM during setZoneGeometry().
PCZone * updateNodeHomeZone (PCZSceneNode *pczsn, bool allowBackTouces) override
 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) override
 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()

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.

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.

References Ogre::PCZone::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.

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.

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: