OGRE
13.6
Object-Oriented Graphics Rendering Engine
|
Specialized frustum shaped culling volume that has culling planes created from portals. More...
#include <OgrePCZFrustum.h>
Public Types | |
enum | Visibility { NONE , PARTIAL , FULL } |
Public Member Functions | |
PCZFrustum () | |
Standard constructor. More... | |
~PCZFrustum () | |
Standard destructor. More... | |
int | addPortalCullingPlanes (PortalBase *portal) |
Calculate culling planes from portal and Frustum origin and add to list of culling planes. More... | |
ProjectionType | getProjectionType () const |
Get the projection type of this PCZFrustum. More... | |
PCPlane * | getUnusedCullingPlane (void) |
Get an unused PCPlane from the CullingPlane Reservoir. More... | |
PCZFrustum::Visibility | getVisibility (const AxisAlignedBox &bound) |
bool | isFullyVisible (const AxisAlignedBox &bound) const |
bool | isFullyVisible (const PortalBase *portal) const |
bool | isFullyVisible (const Sphere &bound) const |
bool | isVisible (const AxisAlignedBox &bound) const |
bool | isVisible (const PortalBase *portal) const |
bool | isVisible (const Sphere &bound) const |
void | removeAllCullingPlanes (void) |
Remove all culling planes. More... | |
void | removePortalCullingPlanes (PortalBase *portal) |
Remove culling planes created from the given portal. More... | |
void | setOrigin (const Vector3 &newOrigin) |
Set the origin value. More... | |
void | setOriginPlane (const Vector3 &rkNormal, const Vector3 &rkPoint) |
Set the origin plane. More... | |
void | setProjectionType (ProjectionType projType) |
Set the projection type of this PCZFrustum. More... | |
void | setUseOriginPlane (bool yesno) |
Tell the frustum whether or not to use the originplane. More... | |
Specialized frustum shaped culling volume that has culling planes created from portals.
This isn't really a traditional "frustum", but more a collection of extra culling planes used by the PCZ Scene Manager for supplementing the camera culling and light zone culling by creating extra culling planes from visible portals. Since portals are 4 sided, the extra culling planes tend to form frustums (pyramids) but nothing in the code really assumes that the culling planes are frustums. They are just treated as planes.
The "originPlane" is a culling plane which passes through the origin point specified. It is used to cull portals which are close to, but behind the camera view. (the nature of the culling routine doesn't give correct results if you just use the "near" plane of the standard camera frustum (unless that near plane distance is 0.0, but that is highly not recommended for other reasons having to do with having a legal view frustum).
Ogre::PCZFrustum::PCZFrustum | ( | ) |
Standard constructor.
Ogre::PCZFrustum::~PCZFrustum | ( | ) |
Standard destructor.
bool Ogre::PCZFrustum::isVisible | ( | const AxisAlignedBox & | bound | ) | const |
bool Ogre::PCZFrustum::isVisible | ( | const Sphere & | bound | ) | const |
bool Ogre::PCZFrustum::isVisible | ( | const PortalBase * | portal | ) | const |
bool Ogre::PCZFrustum::isFullyVisible | ( | const AxisAlignedBox & | bound | ) | const |
bool Ogre::PCZFrustum::isFullyVisible | ( | const Sphere & | bound | ) | const |
bool Ogre::PCZFrustum::isFullyVisible | ( | const PortalBase * | portal | ) | const |
PCZFrustum::Visibility Ogre::PCZFrustum::getVisibility | ( | const AxisAlignedBox & | bound | ) |
int Ogre::PCZFrustum::addPortalCullingPlanes | ( | PortalBase * | portal | ) |
Calculate culling planes from portal and Frustum origin and add to list of culling planes.
void Ogre::PCZFrustum::removePortalCullingPlanes | ( | PortalBase * | portal | ) |
Remove culling planes created from the given portal.
void Ogre::PCZFrustum::removeAllCullingPlanes | ( | void | ) |
Remove all culling planes.
|
inline |
Set the origin value.
Set the origin plane.
|
inline |
Tell the frustum whether or not to use the originplane.
PCPlane* Ogre::PCZFrustum::getUnusedCullingPlane | ( | void | ) |
Get an unused PCPlane from the CullingPlane Reservoir.
|
inline |
Set the projection type of this PCZFrustum.
|
inline |
Get the projection type of this PCZFrustum.