OGRE-Next  2.3
Object-Oriented Graphics Rendering Engine
Ogre::PCZone Class Referenceabstract

Portal-Connected Zone datastructure for managing scene nodes. More...

#include <OgrePCZone.h>

+ Inheritance diagram for Ogre::PCZone:

Public Types

enum  NODE_LIST_TYPE { HOME_NODE_LIST = 1 , VISITOR_NODE_LIST = 2 }
 

Public Member Functions

 PCZone (PCZSceneManager *, const String &)
 
virtual ~PCZone ()
 
virtual void _addAntiPortal (AntiPortal *newAntiPortal)
 Add an anti portal to the zone. More...
 
virtual void _addNode (PCZSceneNode *)=0
 Adds an SceneNode to this PCZone. More...
 
virtual void _addPortal (Portal *newPortal)
 Add a portal to the zone. More...
 
virtual void _checkLightAgainstPortals (PCZLight *, unsigned long, PCZFrustum *, Portal *)=0
 (recursive) Check the given light against all portals in the zone More...
 
virtual void _checkNodeAgainstPortals (PCZSceneNode *, Portal *)=0
 (recursive) Check the given node against all portals in the zone More...
 
virtual void _clearNodeLists (short nodeListTypes)
 Remove all nodes from the node reference list and clear it. More...
 
virtual void _findNodes (const AxisAlignedBox &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude)=0
 
virtual void _findNodes (const PlaneBoundedVolume &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude)=0
 
virtual void _findNodes (const Ray &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude)=0
 
virtual void _findNodes (const Sphere &t, PCZSceneNodeList &list, PortalList &visitedPortals, bool includeVisitors, bool recurseThruPortals, PCZSceneNode *exclude)=0
 
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 void createNodeZoneData (PCZSceneNode *)
 Create zone specific data for a node. More...
 
virtual void dirtyNodeByMovingPortals (void)=0
 Mark nodes dirty base on moving portals. More...
 
virtual PortalfindMatchingPortal (Portal *)
 Find a matching portal (for connecting portals) More...
 
virtual void findVisibleNodes (PCZCamera *, NodeList &visibleNodeList, RenderQueue *queue, VisibleObjectsBoundsInfo *visibleBounds, bool onlyShadowCasters, bool displayNodes, bool showBoundingBoxes)=0
 Find and add visible objects to the render queue. More...
 
virtual void getAABB (AxisAlignedBox &)
 Get the world coordinate aabb of the zone. 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)
 
virtual void notifyBeginRenderScene (void)=0
 Called when a _renderScene is called in the SceneManager. More...
 
virtual void notifyCameraCreated (Camera *c)=0
 Called when the scene manager creates a camera in order to store the first camera created as the primary one, for determining error metrics and the 'home' terrain page. More...
 
virtual void notifyWorldGeometryRenderQueue (uint8 qid)=0
 Called by PCZSM during setWorldGeometryRenderQueue() More...
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete (void *ptr, void *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info More...
 
void * operator new (size_t sz, void *ptr)
 placement operator new More...
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info More...
 
virtual void removeNode (PCZSceneNode *)=0
 Removes all references to a SceneNode from this PCZone. More...
 
virtual bool requiresZoneSpecificNodeData (void)=0
 Indicates whether or not this zone requires zone-specific data for each scene node. More...
 
virtual void setEnclosureNode (PCZSceneNode *)=0
 Set the enclosure node for this PCZone. More...
 
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...
 
virtual bool setOption (const String &, const void *)=0
 Sets the options for the Zone. More...
 
void setPortalsUpdated (bool updated)
 
void setUserData (void *userData)
 
virtual void setZoneGeometry (const String &filename, PCZSceneNode *parentNode)=0
 Called by PCZSM during setZoneGeometry() More...
 
virtual PCZoneupdateNodeHomeZone (PCZSceneNode *pczsn, bool allowBackTouces)=0
 Update a node's home zone. More...
 
virtual void updatePortalsZoneData (void)=0
 Update the zone data for each portal. More...
 

Public Attributes

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

Detailed Description

Portal-Connected Zone datastructure for managing scene nodes.

Member Enumeration Documentation

◆ NODE_LIST_TYPE

Enumerator
HOME_NODE_LIST 
VISITOR_NODE_LIST 

Constructor & Destructor Documentation

◆ PCZone()

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

◆ ~PCZone()

virtual Ogre::PCZone::~PCZone ( )
virtual

Member Function Documentation

◆ _addAntiPortal()

virtual void Ogre::PCZone::_addAntiPortal ( AntiPortal newAntiPortal)
virtual

Add an anti portal to the zone.

◆ _addNode()

virtual void Ogre::PCZone::_addNode ( PCZSceneNode )
pure virtual

Adds an SceneNode to this PCZone.

Remarks
The PCZSceneManager calls this function to add a node to the zone. Home or Visitor list is selected based on the node's home zone

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _addPortal()

virtual void Ogre::PCZone::_addPortal ( Portal newPortal)
virtual

Add a portal to the zone.

◆ _checkLightAgainstPortals()

virtual void Ogre::PCZone::_checkLightAgainstPortals ( PCZLight ,
unsigned long  ,
PCZFrustum ,
Portal  
)
pure virtual

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _checkNodeAgainstPortals()

virtual void Ogre::PCZone::_checkNodeAgainstPortals ( PCZSceneNode ,
Portal  
)
pure virtual

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _clearNodeLists()

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

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

Reimplemented in Ogre::OctreeZone.

◆ _findNodes() [1/4]

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _findNodes() [2/4]

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _findNodes() [3/4]

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _findNodes() [4/4]

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ _removeAntiPortal()

virtual void Ogre::PCZone::_removeAntiPortal ( AntiPortal removeAntiPortal)
virtual

Remove an anti portal from the zone.

◆ _removePortal()

virtual void Ogre::PCZone::_removePortal ( Portal removePortal)
virtual

Remove a portal from the zone.

◆ createNodeZoneData()

virtual void Ogre::PCZone::createNodeZoneData ( PCZSceneNode )
virtual

Create zone specific data for a node.

Reimplemented in Ogre::OctreeZone.

◆ dirtyNodeByMovingPortals()

virtual void Ogre::PCZone::dirtyNodeByMovingPortals ( void  )
pure virtual

Mark nodes dirty base on moving portals.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ findMatchingPortal()

virtual Portal* Ogre::PCZone::findMatchingPortal ( Portal )
virtual

Find a matching portal (for connecting portals)

◆ findVisibleNodes()

virtual void Ogre::PCZone::findVisibleNodes ( PCZCamera ,
NodeList visibleNodeList,
RenderQueue queue,
VisibleObjectsBoundsInfo *  visibleBounds,
bool  onlyShadowCasters,
bool  displayNodes,
bool  showBoundingBoxes 
)
pure 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)

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ getAABB()

virtual void Ogre::PCZone::getAABB ( AxisAlignedBox )
virtual

Get the world coordinate aabb of the zone.

Reimplemented in Ogre::OctreeZone.

◆ getEnclosureNode()

SceneNode* Ogre::PCZone::getEnclosureNode ( void  )
inline

Get a pointer to the enclosure node for this PCZone.

◆ getLastVisibleFrame()

unsigned long Ogre::PCZone::getLastVisibleFrame ( void  )
inline

Get the lastVisibleFrame counter value.

◆ getLastVisibleFromCamera()

PCZCamera* Ogre::PCZone::getLastVisibleFromCamera ( )
inline

Get the lastVisibleFromCamera pointer.

◆ getName()

const String& Ogre::PCZone::getName ( void  ) const
inline
Returns
the name of the zone

◆ getPortalsUpdated()

bool Ogre::PCZone::getPortalsUpdated ( void  )
inline

◆ getUserData()

void* Ogre::PCZone::getUserData ( void  )
inline

Get & set the user data.

◆ getZoneTypeName()

const String& Ogre::PCZone::getZoneTypeName ( ) const
inline
Returns
The zone type name (ex: "ZoneType_Terrain")

◆ hasSky()

bool Ogre::PCZone::hasSky ( void  )
inline
Returns
Whether or not this zone has sky

◆ notifyBeginRenderScene()

virtual void Ogre::PCZone::notifyBeginRenderScene ( void  )
pure virtual

Called when a _renderScene is called in the SceneManager.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ notifyCameraCreated()

virtual void Ogre::PCZone::notifyCameraCreated ( Camera c)
pure virtual

Called when the scene manager creates a camera in order to store the first camera created as the primary one, for determining error metrics and the 'home' terrain page.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ notifyWorldGeometryRenderQueue()

virtual void Ogre::PCZone::notifyWorldGeometryRenderQueue ( uint8  qid)
pure virtual

Called by PCZSM during setWorldGeometryRenderQueue()

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ operator delete() [1/3]

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

◆ operator delete() [2/3]

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

◆ operator delete() [3/3]

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

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

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

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

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

◆ operator new() [1/3]

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

◆ operator new() [2/3]

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

operator new, with debug line info

◆ operator new() [3/3]

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

placement operator new

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

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

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

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

array operator new, with debug line info

◆ removeNode()

virtual void Ogre::PCZone::removeNode ( PCZSceneNode )
pure virtual

Removes all references to a SceneNode from this PCZone.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ requiresZoneSpecificNodeData()

virtual bool Ogre::PCZone::requiresZoneSpecificNodeData ( void  )
pure virtual

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

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ setEnclosureNode()

virtual void Ogre::PCZone::setEnclosureNode ( PCZSceneNode )
pure virtual

Set the enclosure node for this PCZone.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ setHasSky()

void Ogre::PCZone::setHasSky ( bool  yesno)
inline

If sky should be drawn with this zone.

◆ setLastVisibleFrame()

void Ogre::PCZone::setLastVisibleFrame ( unsigned long  frameCount)
inline

Set the lastVisibleFrame counter.

◆ setLastVisibleFromCamera()

void Ogre::PCZone::setLastVisibleFromCamera ( PCZCamera camera)
inline

Set the lastVisibleFromCamera pointer.

◆ setOption()

virtual bool Ogre::PCZone::setOption ( const String ,
const void *   
)
pure virtual

Sets the options for the Zone.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ setPortalsUpdated()

void Ogre::PCZone::setPortalsUpdated ( bool  updated)
inline

◆ setUserData()

void Ogre::PCZone::setUserData ( void *  userData)
inline

◆ setZoneGeometry()

virtual void Ogre::PCZone::setZoneGeometry ( const String filename,
PCZSceneNode parentNode 
)
pure virtual

Called by PCZSM during setZoneGeometry()

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ updateNodeHomeZone()

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

Update a node's home zone.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

◆ updatePortalsZoneData()

virtual void Ogre::PCZone::updatePortalsZoneData ( void  )
pure virtual

Update the zone data for each portal.

Implemented in Ogre::DefaultZone, and Ogre::OctreeZone.

Member Data Documentation

◆ mAntiPortals

AntiPortalList Ogre::PCZone::mAntiPortals

◆ mPCZSM

PCZSceneManager* Ogre::PCZone::mPCZSM

Pointer to the pcz scene manager that created this zone.

◆ mPortals

PortalList Ogre::PCZone::mPortals

List of Portals which this zone contains (each portal leads to another zone)


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