Characters::CharacterNodeInstance Class Reference
#include <characternodeinstance.h>
Inheritance diagram for Characters::CharacterNodeInstance:
Detailed Description
The CharacterNodeInstance class wraps a CharacterInstance object into a ModelNodeInstance class.(C) 2008 Radon Labs GmbH
Public Member Functions | |
CharacterNodeInstance () | |
constructor | |
virtual | ~CharacterNodeInstance () |
destructor | |
virtual void | OnNotifyCullingVisible (IndexT frameIndex, Timing::Time time) |
called from ModelEntity::OnNotifyCullingVisible | |
const Ptr< CharacterInstance > & | GetCharacterInstance () const |
get the node's character instance object | |
virtual void | OnRenderBefore (IndexT frameIndex, Timing::Time time) |
called from ModelEntity::OnRenderBefore | |
virtual void | ApplyState () |
apply per-instance state prior to rendering | |
void | SetPosition (const Math::point &p) |
set position | |
const Math::point & | GetPosition () const |
get position | |
void | SetRotate (const Math::quaternion &r) |
set rotate quaternion | |
const Math::quaternion & | GetRotate () const |
get rotate quaternion | |
void | SetScale (const Math::vector &s) |
set scale | |
const Math::vector & | GetScale () const |
get scale | |
void | SetRotatePivot (const Math::point &p) |
set rotate pivot | |
const Math::point & | GetRotatePivot () const |
get rotate pivot | |
void | SetScalePivot (const Math::point &p) |
set scale pivot | |
const Math::point & | GetScalePivot () const |
get scale pivot | |
void | SetOffsetMatrix (const Math::matrix44 &m) |
set optional offset matrix | |
const Math::matrix44 & | GetOffsetMatrix () const |
get optional offset matrix | |
bool | IsInViewSpace () const |
is transformnode in viewspace | |
void | SetInViewSpace (bool b) |
set transformnode in viewspace | |
bool | GetLockedToViewer () const |
get LockedToViewer | |
void | SetLockedToViewer (bool val) |
set LockedToViewer | |
const Math::matrix44 & | GetLocalTransform () |
get resulting local transform matrix in local parent space | |
const Math::matrix44 & | GetModelTransform () const |
get model space transform (valid after Update()) | |
virtual void | DiscardHierarchy () |
discard the model node instance and all of its children | |
bool | IsValid () const |
return true if the model node instance is valid | |
virtual void | OnVisibilityResolve (IndexT resolveIndex, float distanceToViewer) |
called during visibility resolve | |
virtual void | Render () |
perform rendering | |
const Util::StringAtom & | GetName () const |
get model node name | |
bool | HasParent () const |
return true if node has a parent | |
const Ptr< ModelNodeInstance > & | GetParent () const |
get parent node | |
const Util::Array< Ptr< ModelNodeInstance > > & | GetChildren () const |
get child nodes | |
bool | HasChild (const Util::StringAtom &name) const |
return true if a direct child exists by name | |
const Ptr< ModelNodeInstance > & | LookupChild (const Util::StringAtom &name) const |
get pointer to direct child by name | |
Ptr< ModelNodeInstance > | LookupPath (const Util::String &path) |
get modelnodeinstance by hierarchy path | |
const Ptr< ModelInstance > & | GetModelInstance () const |
get the ModelInstance we are attached to | |
const Ptr< ModelNode > & | GetModelNode () const |
get the ModelNode we're associated with | |
void | SetVisible (bool b, Timing::Time time, bool recursive=true) |
set the node instance's visibility | |
bool | IsVisible () const |
return true if node instance is set to visible | |
IndexT | GetModelNodeInstanceIndex () const |
get model node instance index for current frame | |
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::String & | GetClassName () 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!) | |
Protected Member Functions | |
virtual void | Setup (const Ptr< Models::ModelInstance > &inst, const Ptr< Models::ModelNode > &node, const Ptr< Models::ModelNodeInstance > &parentNodeInst) |
called when attached to ModelInstance | |
virtual void | Discard () |
called when removed from ModelInstance | |
virtual void | RenderDebug () |
render node specific debug shape | |
void | SetParent (const Ptr< ModelNodeInstance > &p) |
set parent node | |
void | AddChild (const Ptr< ModelNodeInstance > &c) |
add a child node | |
virtual void | OnShow (Timing::Time time) |
called when the node becomes visible with current time | |
virtual void | OnHide (Timing::Time time) |
called when the node becomes invisible |
Member Function Documentation
void Models::TransformNodeInstance::OnRenderBefore | ( | IndexT | frameIndex, | |
Timing::Time | time | |||
) | [virtual, inherited] |
called from ModelEntity::OnRenderBefore
The update method should first invoke any animators which change per-instance attributes (this is done in the parent class). Then the local space transforms must be flattened into model space.
NOTE: this method must be called late in the frame to give other systems a chance to modify the transform matrix (for instance the character attachment system).
Reimplemented from Models::ModelNodeInstance.
Reimplemented in Particles::ParticleSystemNodeInstance.
void Models::TransformNodeInstance::ApplyState | ( | ) | [virtual, inherited] |
apply per-instance state prior to rendering
Set our model matrix (computed in the Update() method) as current model matrix in the TransformDevice.
Reimplemented from Models::ModelNodeInstance.
Reimplemented in Models::StateNodeInstance, and Particles::ParticleSystemNodeInstance.
void Models::ModelNodeInstance::DiscardHierarchy | ( | ) | [virtual, inherited] |
discard the model node instance and all of its children
Discards this model node instance and all of its children recursively.
void Models::ModelNodeInstance::Render | ( | ) | [virtual, inherited] |
perform rendering
The Render() method is called when the ModelNodeInstance needs to render itself. There will always be a call to the Apply() method before Render() is called, however, Render() may be called several times per Apply() invokation.
Reimplemented in Characters::CharacterSkinNodeInstance, Models::ShapeNodeInstance, and Particles::ParticleSystemNodeInstance.
bool Models::ModelNodeInstance::IsVisible | ( | ) | const [inherited] |
return true if node instance is set to visible
FIXME: The recursion in this is method makes it slow, especially in deep hierarchies. Also it can't be inlined.
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.