Loading...
Searching...
No Matches
Ogre::PCZFrustum Class Reference
Plugins » PCZSceneManager

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.
PCPlane * | getUnusedCullingPlane (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

enum Ogre::PCZFrustum::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:

- OgrePCZFrustum.h