OGRE 14.3
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: