OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
Portal-Connected Zone datastructure for managing scene nodes. More...
#include <OgrePCZone.h>
Public Types | |
enum | NODE_LIST_TYPE { HOME_NODE_LIST = 1 , VISITOR_NODE_LIST = 2 } |
Public Attributes | |
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) | |
Portal-Connected Zone datastructure for managing scene nodes.
Portal Connected Zones are spatial constructs for partitioning space into cross connected zones. Each zone is connected to other zones using Portal nodes.
Zones contain references to nodes which touch them. However, zones do not care how nodes are arranged hierarchically. Whether or not a node is referenced as being part of a zone is entirely determined by the user or by the node crossing a portal into or out-of the zone.
Nodes can be referenced by several zones at once, but only one zone is considered the "home" zone of the node. Home zone is determined by location of the centerpoint of the node. Nodes can "touch" other zones if the node BV intersects a portal (this is also called "visiting" a zone). Nodes keep a pointer to their home zone and a list of references to zones they are "visiting".
Ogre::PCZone::PCZone | ( | PCZSceneManager * | , |
const String & | |||
) |
|
virtual |
Get a pointer to the enclosure node for this PCZone.
Set the lastVisibleFrame counter.
Get the lastVisibleFrame counter value.
Set the lastVisibleFromCamera pointer.
|
inline |
Get the lastVisibleFromCamera pointer.
|
pure virtual |
Set the enclosure node for this PCZone.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Adds an SceneNode to this PCZone.
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.
|
pure virtual |
Removes all references to a SceneNode from this PCZone.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
Remove all nodes from the node reference list and clear it.
Reimplemented in Ogre::OctreeZone.
Indicates whether or not this zone requires zone-specific data for each scene node.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
virtual |
Create zone specific data for a node.
Reimplemented in Ogre::OctreeZone.
Find a matching portal (for connecting portals)
Remove a portal from the zone.
|
virtual |
Add an anti portal to the zone.
|
virtual |
Remove an anti portal from the zone.
|
pure virtual |
(recursive) Check the given node against all portals in the zone
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
(recursive) Check the given light against all portals in the zone
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
Update the zone data for each portal.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
Mark nodes dirty base on moving portals.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Update a node's home zone.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
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)
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
Sets the options for the Zone.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
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.
Called by PCZSM during setWorldGeometryRenderQueue()
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
Called when a _renderScene is called in the SceneManager.
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
pure virtual |
Called by PCZSM during setZoneGeometry()
Implemented in Ogre::OctreeZone, and Ogre::DefaultZone.
|
virtual |
Get the world coordinate aabb of the zone.
Reimplemented in Ogre::OctreeZone.
PortalList Ogre::PCZone::mPortals |
List of Portals which this zone contains (each portal leads to another zone)
AntiPortalList Ogre::PCZone::mAntiPortals |
PCZSceneManager* Ogre::PCZone::mPCZSM |
Pointer to the pcz scene manager that created this zone.