The Nebula Device 3: Visibility::VisibilityBoxSystem Class Reference

The Nebula Device 3

Visibility::VisibilityBoxSystem Class Reference

#include <visibilityboxsystem.h>

Inheritance diagram for Visibility::VisibilityBoxSystem:

Visibility::VisibilitySystemBase Core::RefCounted

Detailed Description

The VisibilityBoxSystem allows to group entities in visibility boxes. If the camera is inside any box, only this box and all its neighbors (the overlapping boxes) are visible, and therfore its containing entities. If he camera is outisde any box, all boxes are visible. The entities are automatically sorted into the surrounded boxes.

(C) 2010 Radon Labs GmbH

Public Member Functions

 VisibilityBoxSystem ()
 constructor
virtual ~VisibilityBoxSystem ()
 destructor
virtual void Open (IndexT orderIndex)
 open the graphics server
virtual void Close ()
 close the graphics server
virtual void InsertVisibilityContext (const Ptr< VisibilityContext > &entityVis)
 insert entity visibility
virtual void RemoveVisibilityContext (const Ptr< VisibilityContext > &entityVis)
 remove entity visibility
virtual void UpdateVisibilityContext (const Ptr< VisibilityContext > &entityVis)
 update entity visibility
virtual void InsertVisibilityContainer (const Ptr< VisibilityContainer > &container)
 insert visibility container, bunch of contextes with bunch infos
virtual void EndAttachVisibilityContainer ()
 end attach visibility container
virtual Ptr< Jobs::JobCreateVisibilityJob (IndexT frameId, const Ptr< ObserverContext > &observer, Util::FixedArray< Ptr< VisibilityContext > > &outEntitiyArray, uint &entityMask)
 attach visibility job to port
virtual void OnRenderDebug ()
 render debug visualizations
virtual uint GetObserverBitMask () const
 get observer type mask
bool IsOpen () const
 return true if graphics server is open
virtual void BeginAttachVisibilityContainer ()
 begin attach visibility container
int GetRefCount () const
 get the current refcount
void AddRef ()
 increment refcount by one
void Release ()
 decrement refcount and destroy object if refcount is zero
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
const Util::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Member Function Documentation

Ptr< Jobs::Job > Visibility::VisibilityBoxSystem::CreateVisibilityJob ( IndexT  frameId,
const Ptr< ObserverContext > &  observer,
Util::FixedArray< Ptr< VisibilityContext > > &  outEntitiyArray,
uint &  entityMask 
) [virtual]

attach visibility job to port

Every generated buffer in this function has to doublebuffered!

Reimplemented from Visibility::VisibilitySystemBase.

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.