molecular
Classes | Public Types | Public Member Functions | List of all members
molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey > Class Template Reference

Portal-zone visibility determination. More...

#include <PortalZoneScene.h>

Inheritance diagram for molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >:
molecular::gfx::RenderFunction

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)
 
- Public Member Functions inherited from molecular::gfx::RenderFunction
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

- Protected Member Functions inherited from molecular::gfx::RenderFunction
template<class T >
const T * GetVariable (Hash key)
 Convenience shortcut to a variable pointer from the dynamic scope. More...
 
- Protected Attributes inherited from molecular::gfx::RenderFunction
ScopingmScoping
 
RenderCmdSinkmRenderer
 

Detailed Description

template<class TRenderManager, class TZoneKey>
class molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >

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.

Member Typedef Documentation

template<class TRenderManager , class TZoneKey >
using molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Leaf = RenderFunction*
template<class TRenderManager , class TZoneKey >
using molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::RenderManager = TRenderManager
template<class TRenderManager , class TZoneKey >
using molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::ZoneKey = TZoneKey

Constructor & Destructor Documentation

template<class TRenderManager , class TZoneKey >
molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::PortalZoneScene ( RenderManager renderManager)
inlineexplicit

Member Function Documentation

template<class TRenderManager , class TZoneKey >
bool molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::BoundsChangedSince ( int  framecounter) const
overridevirtual

Reimplemented from molecular::gfx::RenderFunction.

template<class TRenderManager , class TZoneKey >
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::EraseZone ( ZoneKey  zone)
template<class TRenderManager , class TZoneKey >
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Execute ( )
overridevirtual
template<class TRenderManager , class TZoneKey >
util::AxisAlignedBox molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::GetBounds ( ) const
overridevirtual
template<class TRenderManager , class TZoneKey >
PortalZoneScene< TRenderManager, TZoneKey >::Leaf molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Insert ( RenderFunction function)
template<class TRenderManager , class TZoneKey >
PortalZoneScene< TRenderManager, TZoneKey >::Leaf molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Insert ( ZoneKey  zone,
RenderFunction function 
)
template<class TRenderManager , class TZoneKey >
template<class PointIterator >
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::InsertPortal ( ZoneKey  zone,
PointIterator  pointsBegin,
PointIterator  pointsEnd,
ZoneKey  destinationZone 
)
template<class TRenderManager , class TZoneKey >
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::InsertZone ( ZoneKey  key,
RenderFunction sky = nullptr 
)
template<class TRenderManager , class TZoneKey >
void molecular::gfx::PortalZoneScene< TRenderManager, TZoneKey >::Remove ( Leaf  leaf)

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