The Nebula Device 3: InternalGraphics::AttachmentServer Class Reference

The Nebula Device 3

InternalGraphics::AttachmentServer Class Reference

#include <attachmentserver.h>

Inheritance diagram for InternalGraphics::AttachmentServer:

Core::RefCounted

Detailed Description

Renderthread side server for managing attachments. Is call once per frame. Manages the updates of the positions of the attached entities, the attaching and detaching of attachments

(C) 2008 Radon Labs GmbH

Public Types

enum  AttachmentRotation
 how to rotate the attached entity
enum  ClearType
 types for clearing attachments

Public Member Functions

 AttachmentServer ()
 constructor
virtual ~AttachmentServer ()
 destructor
bool Open ()
 open the server
void Close ()
 close the server
bool IsOpen () const
 return true if open
void OnFrame (Timing::Time time)
 call this once per frame
void RemoveInvalidAttachments ()
 remove invalid attachments
void AttachEntity (const Math::matrix44 &offset, const ClearType &clearType, const Util::StringAtom &joint, const Ptr< InternalGraphicsEntity > &entityToAttach, const Ptr< InternalModelEntity > &baseEntity, bool keepLocal, AttachmentRotation rotation, bool attachedFromOtherThread)
 attach a new entity
void AttachEntityTemporary (const Math::matrix44 &offset, const ClearType &clearType, const Util::StringAtom &joint, const Ptr< InternalGraphicsEntity > &entityToAttach, const Ptr< InternalModelEntity > &baseEntity, bool keepLocal, Timing::Time duration, AttachmentRotation rotation, bool attachedFromOtherThread)
 attach a new entity, and detach it after given time
void SwitchEntity (const Util::StringAtom &oldJoint, const Util::StringAtom &newJoint, const Ptr< InternalModelEntity > &baseEnitty, const Ptr< InternalGraphicsEntity > &entityToAttach)
 switch a attached entity to another joint
void DetachEntity (const ClearType &clearType, const Util::StringAtom &joint, const Ptr< InternalGraphicsEntity > &entityToAttach, const Ptr< InternalModelEntity > &baseEntity)
 detach an entity
void DetachEntity (const Ptr< InternalGraphics::InternalGraphicsEntity > &entity)
 remove attachment
void SetVisibilityOnAttachments (const Ptr< InternalGraphics::InternalModelEntity > &baseEntity, bool visible)
 hide or show all attachments on entity
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

void InternalGraphics::AttachmentServer::OnFrame ( Timing::Time  time  ) 

call this once per frame

FIXME: this method depends on valid character skeletons, thus make sure that it is called after character skeletons have been updated in the character server!

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.