OGRE  1.8
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::PCZone Class Referenceabstract

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

#include <OgrePCZone.h>

+ Inheritance diagram for Ogre::PCZone:
+ Collaboration diagram for Ogre::PCZone:

Classes

struct  PortalSortDistance
 Binary pradicate for portal <-> camera distance sorting. More...
 

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)
 
virtual void _addNode (PCZSceneNode *)=0
 Adds an SceneNode to this PCZone. More...
 
virtual void _addPortal (Portal *newPortal)
 
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 Sphere &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 _removeAntiPortal (AntiPortal *removeAntiPortal)
 
virtual void _removePortal (Portal *removePortal)
 
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 &)
 
SceneNodegetEnclosureNode (void)
 
unsigned long getLastVisibleFrame (void)
 
PCZCameragetLastVisibleFromCamera ()
 
const StringgetName (void) const
 
bool getPortalsUpdated (void)
 
void * getUserData (void)
 
const StringgetZoneTypeName () const
 
bool hasSky (void)
 
virtual void notifyBeginRenderScene (void)=0
 
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
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, void *)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
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 * operator new (size_t sz, void *ptr)
 placement operator new More...
 
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info More...
 
void * operator new[] (size_t sz)
 
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)
 
void setLastVisibleFromCamera (PCZCamera *camera)
 
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
 
virtual PCZoneupdateNodeHomeZone (PCZSceneNode *pczsn, bool allowBackTouces)=0
 
virtual void updatePortalsZoneData (void)=0
 

Public Attributes

AntiPortalList mAntiPortals
 
PCZSceneManagermPCZSM
 
PortalList mPortals
 list of Portals which this zone contains (each portal leads to another zone) More...
 

Protected Attributes

SceneNodemEnclosureNode
 
bool mHasSky
 
PCZSceneNodeList mHomeNodeList
 
unsigned long mLastVisibleFrame
 
PCZCameramLastVisibleFromCamera
 
String mName
 
bool mPortalsUpdated
 
void * mUserData
 
PCZSceneNodeList mVisitorNodeList
 
String mZoneTypeName
 Zone type name. More...
 

Detailed Description

Portal-Connected Zone datastructure for managing scene nodes.

Remarks

Definition at line 82 of file OgrePCZone.h.

Member Enumeration Documentation

Enumerator
HOME_NODE_LIST 
VISITOR_NODE_LIST 

Definition at line 86 of file OgrePCZone.h.

Constructor & Destructor Documentation

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

Member Function Documentation

virtual void Ogre::PCZone::_addAntiPortal ( AntiPortal newAntiPortal)
virtual
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::OctreeZone, and Ogre::DefaultZone.

virtual void Ogre::PCZone::_addPortal ( Portal newPortal)
virtual
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::OctreeZone, and Ogre::DefaultZone.

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

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

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

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

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

Reimplemented in Ogre::OctreeZone.

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

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

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

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

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

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

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

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

virtual void Ogre::PCZone::_removeAntiPortal ( AntiPortal removeAntiPortal)
virtual
virtual void Ogre::PCZone::_removePortal ( Portal removePortal)
virtual
virtual void Ogre::PCZone::createNodeZoneData ( PCZSceneNode )
virtual

create zone specific data for a node

Reimplemented in Ogre::OctreeZone.

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

Mark nodes dirty base on moving portals.

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

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

find a matching portal (for connecting portals)

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::OctreeZone, and Ogre::DefaultZone.

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

Reimplemented in Ogre::OctreeZone.

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

Definition at line 103 of file OgrePCZone.h.

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

Definition at line 117 of file OgrePCZone.h.

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

Definition at line 123 of file OgrePCZone.h.

const String& Ogre::PCZone::getName ( void  ) const
inline

Definition at line 99 of file OgrePCZone.h.

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

Definition at line 245 of file OgrePCZone.h.

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

Definition at line 247 of file OgrePCZone.h.

const String& Ogre::PCZone::getZoneTypeName ( ) const
inline

Definition at line 96 of file OgrePCZone.h.

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

Definition at line 111 of file OgrePCZone.h.

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

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

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::OctreeZone, and Ogre::DefaultZone.

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

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

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

Definition at line 95 of file OgreMemoryAllocatedObject.h.

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

Definition at line 101 of file OgreMemoryAllocatedObject.h.

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

Definition at line 107 of file OgreMemoryAllocatedObject.h.

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

Definition at line 112 of file OgreMemoryAllocatedObject.h.

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

Definition at line 118 of file OgreMemoryAllocatedObject.h.

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

Definition at line 67 of file OgreMemoryAllocatedObject.h.

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

Definition at line 72 of file OgreMemoryAllocatedObject.h.

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

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

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

Definition at line 85 of file OgreMemoryAllocatedObject.h.

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

Definition at line 90 of file OgreMemoryAllocatedObject.h.

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

Removes all references to a SceneNode from this PCZone.

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

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::OctreeZone, and Ogre::DefaultZone.

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

Set the enclosure node for this PCZone.

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

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

if sky should be drawn with this zone

Definition at line 107 of file OgrePCZone.h.

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

Definition at line 114 of file OgrePCZone.h.

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

Definition at line 120 of file OgrePCZone.h.

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

Sets the options for the Zone.

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

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

Definition at line 244 of file OgrePCZone.h.

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

Definition at line 248 of file OgrePCZone.h.

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

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

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

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

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

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

Member Data Documentation

AntiPortalList Ogre::PCZone::mAntiPortals

Definition at line 252 of file OgrePCZone.h.

SceneNode* Ogre::PCZone::mEnclosureNode
protected

Definition at line 283 of file OgrePCZone.h.

bool Ogre::PCZone::mHasSky
protected

Definition at line 281 of file OgrePCZone.h.

PCZSceneNodeList Ogre::PCZone::mHomeNodeList
protected

Definition at line 285 of file OgrePCZone.h.

unsigned long Ogre::PCZone::mLastVisibleFrame
protected

Definition at line 277 of file OgrePCZone.h.

PCZCamera* Ogre::PCZone::mLastVisibleFromCamera
protected

Definition at line 279 of file OgrePCZone.h.

String Ogre::PCZone::mName
protected

Definition at line 273 of file OgrePCZone.h.

PCZSceneManager* Ogre::PCZone::mPCZSM

Definition at line 254 of file OgrePCZone.h.

PortalList Ogre::PCZone::mPortals

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

Definition at line 251 of file OgrePCZone.h.

bool Ogre::PCZone::mPortalsUpdated
protected

Definition at line 289 of file OgrePCZone.h.

void* Ogre::PCZone::mUserData
protected

Definition at line 292 of file OgrePCZone.h.

PCZSceneNodeList Ogre::PCZone::mVisitorNodeList
protected

Definition at line 287 of file OgrePCZone.h.

String Ogre::PCZone::mZoneTypeName
protected

Zone type name.

Definition at line 275 of file OgrePCZone.h.


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