OGRE 14.2
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
Ogre::PCZFrustum Class Reference

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.
 
 ~PCZFrustum ()
 Standard destructor.
 
int addPortalCullingPlanes (PortalBase *portal)
 Calculate culling planes from portal and Frustum origin and add to list of culling planes.
 
ProjectionType getProjectionType () const
 Get the projection type of this PCZFrustum.
 
PCPlanegetUnusedCullingPlane (void)
 Get an unused PCPlane from the CullingPlane Reservoir.
 
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.
 
void removePortalCullingPlanes (PortalBase *portal)
 Remove culling planes created from the given portal.
 
void setOrigin (const Vector3 &newOrigin)
 Set the origin value.
 
void setOriginPlane (const Vector3 &rkNormal, const Vector3 &rkPoint)
 Set the origin plane.
 
void setProjectionType (ProjectionType projType)
 Set the projection type of this PCZFrustum.
 
void setUseOriginPlane (bool yesno)
 Tell the frustum whether or not to use the originplane.
 

Detailed Description

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

Member Enumeration Documentation

◆ Visibility

Enumerator
NONE 
PARTIAL 
FULL 

Constructor & Destructor Documentation

◆ PCZFrustum()

Ogre::PCZFrustum::PCZFrustum ( )

Standard constructor.

◆ ~PCZFrustum()

Ogre::PCZFrustum::~PCZFrustum ( )

Standard destructor.

Member Function Documentation

◆ isVisible() [1/3]

bool Ogre::PCZFrustum::isVisible ( const AxisAlignedBox & bound) const

◆ isVisible() [2/3]

bool Ogre::PCZFrustum::isVisible ( const Sphere & bound) const

◆ isVisible() [3/3]

bool Ogre::PCZFrustum::isVisible ( const PortalBase * portal) const

◆ isFullyVisible() [1/3]

bool Ogre::PCZFrustum::isFullyVisible ( const AxisAlignedBox & bound) const

◆ isFullyVisible() [2/3]

bool Ogre::PCZFrustum::isFullyVisible ( const Sphere & bound) const

◆ isFullyVisible() [3/3]

bool Ogre::PCZFrustum::isFullyVisible ( const PortalBase * portal) const

◆ getVisibility()

PCZFrustum::Visibility Ogre::PCZFrustum::getVisibility ( const AxisAlignedBox & bound)

◆ addPortalCullingPlanes()

int Ogre::PCZFrustum::addPortalCullingPlanes ( PortalBase * portal)

Calculate culling planes from portal and Frustum origin and add to list of culling planes.

◆ removePortalCullingPlanes()

void Ogre::PCZFrustum::removePortalCullingPlanes ( PortalBase * portal)

Remove culling planes created from the given portal.

◆ removeAllCullingPlanes()

void Ogre::PCZFrustum::removeAllCullingPlanes ( void )

Remove all culling planes.

◆ setOrigin()

void Ogre::PCZFrustum::setOrigin ( const Vector3 & newOrigin)
inline

Set the origin value.

◆ setOriginPlane()

void Ogre::PCZFrustum::setOriginPlane ( const Vector3 & rkNormal,
const Vector3 & rkPoint )

Set the origin plane.

◆ setUseOriginPlane()

void Ogre::PCZFrustum::setUseOriginPlane ( bool yesno)
inline

Tell the frustum whether or not to use the originplane.

◆ getUnusedCullingPlane()

PCPlane * Ogre::PCZFrustum::getUnusedCullingPlane ( void )

Get an unused PCPlane from the CullingPlane Reservoir.

◆ setProjectionType()

void Ogre::PCZFrustum::setProjectionType ( ProjectionType projType)
inline

Set the projection type of this PCZFrustum.

◆ getProjectionType()

ProjectionType Ogre::PCZFrustum::getProjectionType ( ) const
inline

Get the projection type of this PCZFrustum.


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