The Nebula Device 3: Visibility::VisibilityChecker Class Reference

The Nebula Device 3

Visibility::VisibilityChecker Class Reference

#include <visibilitychecker.h>


Detailed Description

The VisibilityChecker manages all visibility systems. Its the interface for all access to the visibility system. If any entity is attached to a stage it will be registered by the checker and added to all attached visibility systems.

If the stage wants to check the visibility it just calls PerformVisibilityQuery which starts a new visibility check with the given observer entity and applies the result of the last frame check.

(C) 2010 Radon Labs GmbH

Public Member Functions

 VisibilityChecker ()
 constructor
virtual ~VisibilityChecker ()
 destructor
void Open ()
 open
void Close ()
 close
void AttachVisibilitySystem (const Ptr< VisibilitySystemBase > &system)
 attach visibility system
void AttachVisibilitySystems (const Util::Array< Ptr< VisibilitySystemBase > > &systems)
 attach visibility system as array
void RemoveVisibilitySystem (const Ptr< VisibilitySystemBase > &system)
 remove visibility system
void RegisterEntity (const Ptr< InternalGraphics::InternalGraphicsEntity > &entity)
 register entity
void UnregisterEntity (const Ptr< InternalGraphics::InternalGraphicsEntity > &entity)
 unregister entity
void BeginAttachVisibilityContainer ()
 begin attach visibility container
void AttachVisibilityContainer (const Ptr< VisibilityContainer > &container)
 attach visibility container, alternative method for registering a bunch of entities
void EndAttachVisibilityContainer ()
 end attach visibility container
void UpdateVisibilityContext (const Ptr< InternalGraphics::InternalGraphicsEntity > &entity)
 update entity visibility context on a transform change
void PerformVisibilityQuery (IndexT frameId, const Ptr< InternalGraphics::InternalGraphicsEntity > &observerEntity, uint entityMask)
 check visibility with given view projection transform, will build links in entities
void ClearVisibilityLinks (InternalGraphics::InternalGraphicsEntity::LinkType linkType)
 clear visibility links
void OnRenderDebug ()
 on render debug