66 class PCZSceneManager;
142 virtual void _clearNodeLists(
short nodeListTypes);
147 virtual bool requiresZoneSpecificNodeData(
void) = 0;
158 virtual void _addPortal(
Portal* newPortal);
161 virtual void _removePortal(
Portal* removePortal);
164 virtual void _addAntiPortal(
AntiPortal* newAntiPortal);
167 virtual void _removeAntiPortal(
AntiPortal* removeAntiPortal);
175 virtual void _checkLightAgainstPortals(
PCZLight *,
182 virtual void updatePortalsZoneData(
void) = 0;
185 virtual void dirtyNodeByMovingPortals(
void) = 0;
195 virtual void findVisibleNodes(
PCZCamera *,
199 bool onlyShadowCasters,
201 bool showBoundingBoxes) = 0;
207 bool includeVisitors,
208 bool recurseThruPortals,
210 virtual void _findNodes(
const Sphere &t,
213 bool includeVisitors,
214 bool recurseThruPortals,
219 bool includeVisitors,
220 bool recurseThruPortals,
222 virtual void _findNodes(
const Ray &t,
225 bool includeVisitors,
226 bool recurseThruPortals,
230 virtual bool setOption(
const String &,
const void * ) = 0;
234 virtual void notifyCameraCreated(
Camera* c ) = 0;
236 virtual void notifyWorldGeometryRenderQueue(
uint8 qid) = 0;
238 virtual void notifyBeginRenderScene(
void) = 0;
267 return (depth1 < depth2);
303 virtual void update(
void);
vector< SceneNode * >::type NodeList
Representation of a ray in space, i.e.
A viewpoint from which the scene will be rendered.
const Vector3 & getDerivedCP() const
Get the position (centerpoint) of the portal in world coordinates.
AntiPortal datastructure for occlusion culling.
set< PCZSceneNode * >::type PCZSceneNodeList
bool mHasSky
Flag determining whether or not this zone has sky in it.
float Real
Software floating point type.
map< String, SceneNode * >::type SceneNodeList
Specialized frustum shaped culling volume that has culling planes created from portals.
const String & getZoneTypeName() const
const Vector3 & cameraPosition
void * getUserData(void)
Get & set the user data.
void setLastVisibleFrame(unsigned long frameCount)
Set the lastVisibleFrame counter.
Real squaredDistance(const Vector3 &rhs) const
Returns the square of the distance to another vector.
bool getPortalsUpdated(void)
PCZCamera * getLastVisibleFromCamera()
Get the lastVisibleFromCamera pointer.
AntiPortalList mAntiPortals
PortalSortDistance(const Vector3 &inCameraPosition)
A 3D box aligned with the x/y/z axes.
PortalBase - Base class to Portal and AntiPortal classes.
PCZSceneNodeList mHomeNodeList
List of SceneNodes contained in this particular PCZone.
Class representing a node in the scene graph.
bool _OgrePCZPluginExport operator()(const PortalBase *p1, const PortalBase *p2) const
Portal datastructure for connecting zones.
PCZSceneManager * mPCZSM
Pointer to the pcz scene manager that created this zone.
String mName
Name of the zone (must be unique)
PCZSceneNodeList mVisitorNodeList
List of SceneNodes visiting this particular PCZone.
vector< PortalBase * >::type PortalBaseList
PCZSceneNode * mAssociatedNode
unsigned long mLastVisibleFrame
Frame counter for visibility.
void setHasSky(bool yesno)
If sky should be drawn with this zone.
SceneNode * mEnclosureNode
SceneNode which corresponds to the enclosure for this zone.
Specialized version of Ogre::Light which caches which zones the light affects.
A sphere primitive, mostly used for bounds checking.
PCZCamera * mLastVisibleFromCamera
Last camera which this zone was visible to.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
#define _OgrePCZPluginExport
SceneNode * getEnclosureNode(void)
Get a pointer to the enclosure node for this PCZone.
const String & getName(void) const
void setLastVisibleFromCamera(PCZCamera *camera)
Set the lastVisibleFromCamera pointer.
Standard 3-dimensional vector.
list< PCZone * >::type PCZoneList
void setPortalsUpdated(bool updated)
unsigned long getLastVisibleFrame(void)
Get the lastVisibleFrame counter value.
Represents a convex volume bounded by planes.
list< Portal * >::type PortalList
list< AntiPortal * >::type AntiPortalList
String mZoneTypeName
Zone type name.
PortalList mPortals
List of Portals which this zone contains (each portal leads to another zone)
void setUserData(void *userData)
Class to manage the scene object rendering queue.
Portal-Connected Zone datastructure for managing scene nodes.
Binary predicate for portal <-> camera distance sorting.
Structure collecting together information about the visible objects that have been discovered in a sc...
map< String, PCZone * >::type ZoneMap
Specialized SceneManager that uses Portal-Connected-Zones to divide the scene spatially.
bool mPortalsUpdated
Flag recording whether any portals in this zone have moved.
Specialized viewpoint from which an PCZone Scene can be rendered.
void * mUserData
User defined data pointer - NOT allocated or deallocated by the zone! you must clean it up yourself! ...