# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::CBone Class Reference

This is a bone, for skeleton animation, with information for result WorldMatrix. More...

#include <bone.h>

Inheritance diagram for NL3D::CBone

Inheritance graph
[legend]
Collaboration diagram for NL3D::CBone:

Collaboration graph
[legend]
List of all members.

Public Methods

 CBone (CBoneBase *boneBase)
 Constructor. More...

const std::string& getBoneName () const
 retrieve the boneName from BoneBase. More...

sint32 getFatherId () const
 retrieve the fatherId from BoneBase. More...

virtual ITrackgetDefaultTrack (uint valueId)
 retrive the default trak from skeleton shape. More...

virtual void registerToChannelMixer (CChannelMixer *chanMixer, const std::string &prefix)
 register the ITransformable channels as detailled channels. More...

void compute (CBone *parent, const CMatrix &rootMatrix)
 Compute the WorldMatrix, and the BoneSkinMatrix (for skinning). More...

const CMatrix& getWorldMatrix () const
 retrieve the WorldMatrix computed in compute(). More...

const CMatrix& getBoneSkinMatrix () const
 retrieve the BoneSkinMatrix computed in compute(). More...


Private Attributes

NLMISC::CRefPtr<CBoneBase_BoneBase
CMatrix _WorldMatrix
CMatrix _BoneSkinMatrix

Detailed Description

This is a bone, for skeleton animation, with information for result WorldMatrix.

Author(s):
Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 86 of file bone.h.


Constructor & Destructor Documentation

NL3D::CBone::CBone ( CBoneBase * boneBase )
 

Constructor.

build a bone from a CBoneBase*. By defautl, a bone is in RotQuat transform mode. This ctor:

  • store a RefPtr on the bonebase (for getDefaultTracks() method). the refptr is just for nlassert.
  • copy the bonebase default track value into Animated Values Pos/Rot etc....

Definition at line 75 of file bone.cpp.


Member Function Documentation

void NL3D::CBone::compute ( CBone * parent,
const CMatrix & rootMatrix )
 

Compute the WorldMatrix, and the BoneSkinMatrix (for skinning).

NB: the result worldMatrix depends on BoneBase::UnheritScale.
NB: the result boneSkinMatrix depends on BoneBase::InvBindPos.

Parameters:
parent   the parent of this bone (maybe NULL if root). his WorldMatrix is used, so it should be computed before.
rootMatrix   is used as father worldmatrix if parent==NULL. Usefull for root bones.

Definition at line 126 of file bone.cpp.

const std::string & NL3D::CBone::getBoneName ( ) const [inline]
 

retrieve the boneName from BoneBase.

Definition at line 100 of file bone.h.

const CMatrix & NL3D::CBone::getBoneSkinMatrix ( ) const [inline]
 

retrieve the BoneSkinMatrix computed in compute().

Definition at line 128 of file bone.h.

ITrack * NL3D::CBone::getDefaultTrack ( uint valueId ) [virtual]
 

retrive the default trak from skeleton shape.

Reimplemented from NL3D::ITransformable.

Definition at line 91 of file bone.cpp.

sint32 NL3D::CBone::getFatherId ( ) const [inline]
 

retrieve the fatherId from BoneBase.

Definition at line 102 of file bone.h.

const CMatrix & NL3D::CBone::getWorldMatrix ( ) const [inline]
 

retrieve the WorldMatrix computed in compute().

Definition at line 125 of file bone.h.

void NL3D::CBone::registerToChannelMixer ( CChannelMixer * chanMixer,
const std::string & prefix ) [virtual]
 

register the ITransformable channels as detailled channels.

Reimplemented from NL3D::ITransformable.

Definition at line 113 of file bone.cpp.


Member Data Documentation

NLMISC::CRefPtr< CBoneBase > NL3D::CBone::_BoneBase [private]
 

Definition at line 136 of file bone.h.

CMatrix NL3D::CBone::_BoneSkinMatrix [private]
 

Definition at line 141 of file bone.h.

CMatrix NL3D::CBone::_WorldMatrix [private]
 

Definition at line 139 of file bone.h.


The documentation for this class was generated from the following files: