The Nebula Device 3: Models::SkinShapeNodeInstance Class Reference

The Nebula Device 3

Models::SkinShapeNodeInstance Class Reference

#include <skinshapenodeinstance.h>

Inheritance diagram for Models::SkinShapeNodeInstance:

Models::ShapeNodeInstance Models::StateNodeInstance Models::TransformNodeInstance Models::ModelNodeInstance Core::RefCounted


Detailed Description

The SkinShapeNodeInstance actually renders a skinned shape, and holds all the necessary per-instance state to do so.

It knows the selected visible skins an active textures for actual rendering.

(C) 2007 Radon Labs GmbH

Public Member Functions

 SkinShapeNodeInstance ()
 constructor
virtual ~SkinShapeNodeInstance ()
 destructor
virtual void Update ()
 check for valid resources
virtual void Render ()
 perform rendering
virtual void SetVisible (bool b)
 set visible, used by charactersystem
virtual void ApplyState ()
 apply per-instance state prior to rendering
Ptr
< CoreGraphics::ShaderVariableInstance
CreateShaderVariableInstance (const CoreGraphics::ShaderVariable::Semantic &semantic)
 instanciate a shader variable by semantic
bool HasShaderVariableInstance (const CoreGraphics::ShaderVariable::Semantic &semantic) const
 return true if a shader variable has been instantiated
const Ptr
< CoreGraphics::ShaderVariableInstance > & 
GetShaderVariableInstance (const CoreGraphics::ShaderVariable::Semantic &semantic) const
 get a shader variable instance
void SetPosition (const Math::point &p)
 set position
const Math::pointGetPosition () const
 get position
void SetRotate (const Math::quaternion &r)
 set rotate quaternion
const Math::quaternionGetRotate () const
 get rotate quaternion
void SetScale (const Math::vector &s)
 set scale
const Math::vectorGetScale () const
 get scale
void SetRotatePivot (const Math::point &p)
 set rotate pivot
const Math::pointGetRotatePivot () const
 get rotate pivot
void SetScalePivot (const Math::point &p)
 set scale pivot
const Math::pointGetScalePivot () const
 get scale pivot
const Math::matrix44GetLocalTransform ()
 get resulting local transform matrix in local parent space
const Math::matrix44GetModelTransform () const
 get model space transform (valid after Update())
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 IsAttachedToModelInstance () const
 return true if attached to ModelInstance
const Ptr
< ModelInstance > & 
GetModelInstance () const
 get the ModelInstance we are attached to
const Ptr< ModelNode > & GetModelNode () const
 get the ModelNode we're associated with
bool IsVisible () const
 is visible
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!)

Protected Member Functions

virtual void OnNotifyVisible (IndexT frameIndex)
 notify that we are visible
void RenderSkinning ()
 render skinned mesh
void RenderFragment (int primGroupIndex, Char::CharJointPalette &jointPalette)
 render mesh fragment
virtual void OnAttachToModelInstance (const Ptr< ModelInstance > &inst, const Ptr< ModelNode > &node, const Ptr< ModelNodeInstance > &parentNodeInst)
 called when attached to ModelInstance
virtual void OnRemoveFromModelInstance ()
 called when removed from ModelInstance
void ValidateCharacter ()
 validate character
void SetParent (const Ptr< ModelNodeInstance > &p)
 set parent node
void AddChild (const Ptr< ModelNodeInstance > &c)
 add a child node
virtual void RenderDebug ()
 render node specific debug shape
void SetChildrenVisiblity (ModelNodeInstance *parent, bool b)
 set visible flag of children

Member Function Documentation

void Models::SkinShapeNodeInstance::SetVisible ( bool  b  )  [inline, virtual]

set visible, used by charactersystem

Set visibility of node and its children, should not be call per frame!

Reimplemented from Models::ModelNodeInstance.

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.