molecular
|
Portal-zone visibility determination. More...
#include <PortalZoneScene.h>
Public Types | |
using | RenderManager = TRenderManager |
using | Leaf = RenderFunction * |
using | ZoneKey = TZoneKey |
Public Member Functions | |
PortalZoneScene (RenderManager &renderManager) | |
void | Execute () override |
util::AxisAlignedBox | GetBounds () const override |
bool | BoundsChangedSince (int framecounter) const override |
Leaf | Insert (RenderFunction *function) |
Leaf | Insert (ZoneKey zone, RenderFunction *function) |
void | Remove (Leaf leaf) |
void | InsertZone (ZoneKey key, RenderFunction *sky=nullptr) |
void | EraseZone (ZoneKey zone) |
template<class PointIterator > | |
void | InsertPortal (ZoneKey zone, PointIterator pointsBegin, PointIterator pointsEnd, ZoneKey destinationZone) |
![]() | |
template<class TRenderManager > | |
RenderFunction (TRenderManager &manager) | |
RenderFunction (Scoping &scoping, RenderCmdSink &renderer) | |
virtual | ~RenderFunction () |
virtual void | Set (Hash, bool) |
Set bool property with given name. More... | |
Additional Inherited Members | |
![]() | |
template<class T > | |
const T * | GetVariable (Hash key) |
Convenience shortcut to a variable pointer from the dynamic scope. More... | |
![]() | |
Scoping & | mScoping |
RenderCmdSink & | mRenderer |
Portal-zone visibility determination.
Objects are only drawn when they are inside a zone that contain the camera or can be seen through a portal. See https://en.wikipedia.org/wiki/Portal_rendering for more information.
using molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Leaf = RenderFunction* |
using molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::RenderManager = TRenderManager |
using molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::ZoneKey = TZoneKey |
|
inlineexplicit |
|
overridevirtual |
Reimplemented from molecular::gfx::RenderFunction.
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::EraseZone | ( | ZoneKey | zone | ) |
|
overridevirtual |
Implements molecular::gfx::RenderFunction.
|
overridevirtual |
Implements molecular::gfx::RenderFunction.
PortalZoneScene< TRenderManager, TZoneKey >::Leaf molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Insert | ( | RenderFunction * | function | ) |
PortalZoneScene< TRenderManager, TZoneKey >::Leaf molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Insert | ( | ZoneKey | zone, |
RenderFunction * | function | ||
) |
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::InsertPortal | ( | ZoneKey | zone, |
PointIterator | pointsBegin, | ||
PointIterator | pointsEnd, | ||
ZoneKey | destinationZone | ||
) |
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::InsertZone | ( | ZoneKey | key, |
RenderFunction * | sky = nullptr |
||
) |
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Remove | ( | Leaf | leaf | ) |