# 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::CAnimationSet Class Reference

An CAnimationSet is set of CAnimation. More...

#include <animation_set.h>

Inheritance diagram for NL3D::CAnimationSet:

NLMISC::CRefCount List of all members.

Public Types

enum  { NotFound = 0xffffffff }

Public Methods

 ~CAnimationSet ()
uint getNumChannelId () const
 Get channel ID count. More...

uint getChannelIdByName (const std::string &name) const
 Get a channel ID with its name. More...

uint getAnimationIdByName (const std::string &name) const
 Get a animation ID by name. More...

uint getNumAnimation () const
 Get animations count. More...

const std::string & getAnimationName (uint animationId) const
 Get animation name. More...

const CAnimationgetAnimation (uint animationId) const
 Get a read only animation pointer. More...

CAnimationgetAnimation (uint animationId)
 Get a writable animation pointer. More...

uint getNumSkeletonWeight () const
 Get skeleton weight count. More...

uint getSkeletonWeightIdByName (const std::string &name) const
 Get a skeleton weight ID by name. More...

const std::string & getSkeletonWeightName (uint skeletonId) const
 Get skeleton template name. More...

const CSkeletonWeightgetSkeletonWeight (uint skeletonId) const
 Get a read only skeleton weight pointer. More...

CSkeletonWeightgetSkeletonWeight (uint skeletonId)
 Get a writable skeleton weight pointer. More...

uint addAnimation (const char *name, CAnimation *animation)
 Add an animation to the set. More...

uint addSkeletonWeight (const char *name, CSkeletonWeight *skeletonWeight)
 Add a skeleton weight to the set. More...

void reset ()
 Reset the animation set. More...

void build ()
 Final build of the animation set. More...

void serial (NLMISC::IStream &f)
 Serial the template. More...

bool loadFromFiles (const std::string &path, bool recurse=true, const char *ext="anim", bool wantWarningMessage=true)
 Helper method. More...


Private Attributes

std::vector< CAnimation * > _Animation
std::vector< CSkeletonWeight * > _SkeletonWeight
std::vector< std::string > _AnimationName
std::vector< std::string > _SkeletonWeightName
std::map< std::string, uint32_ChannelIdByName
std::map< std::string, uint32_AnimationIdByName
std::map< std::string, uint32_SkeletonWeightIdByName

Detailed Description

An CAnimationSet is set of CAnimation.

It manages global channel ID for a set of animations with many tracks. An Id is associed with each track name.

Author:
Cyril 'Hulud' Corvazier , Nevrax France
Date:
2001

Definition at line 54 of file animation_set.h.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
NotFound 

Definition at line 58 of file animation_set.h.


Constructor & Destructor Documentation

NL3D::CAnimationSet::~CAnimationSet  
 

Definition at line 43 of file animation_set.cpp.

References _Animation, _SkeletonWeight, and s.


Member Function Documentation

uint NL3D::CAnimationSet::addAnimation const char *    name,
CAnimation   animation
 

Add an animation to the set.

The pointer of the animation must be allocated with new. It is then handled by the animation set.

Parameters:
name  is the name of the animation.
animation  is the animation pointer.
Returns:
the id of the new animation.

Definition at line 61 of file animation_set.cpp.

References _Animation, _AnimationIdByName, and _AnimationName.

Referenced by loadFromFiles.

uint NL3D::CAnimationSet::addSkeletonWeight const char *    name,
CSkeletonWeight   skeletonWeight
 

Add a skeleton weight to the set.

The pointer of the skeletonWeight must be allocated with new. It is then handled by the animation set.

Returns:
the id of the new skeleton.

Definition at line 76 of file animation_set.cpp.

References _SkeletonWeight, _SkeletonWeightIdByName, and _SkeletonWeightName.

void NL3D::CAnimationSet::build  
 

Final build of the animation set.

First, for each animation you want to add to the set, you must add the animation in the set.

When all animations are built, call this method to finlize the set.

Definition at line 104 of file animation_set.cpp.

References _Animation, _ChannelIdByName, getAnimation, and id.

Referenced by loadFromFiles.

CAnimation* NL3D::CAnimationSet::getAnimation uint    animationId [inline]
 

Get a writable animation pointer.

Definition at line 120 of file animation_set.h.

References _Animation.

const CAnimation* NL3D::CAnimationSet::getAnimation uint    animationId const [inline]
 

Get a read only animation pointer.

Definition at line 112 of file animation_set.h.

References _Animation.

Referenced by build.

uint NL3D::CAnimationSet::getAnimationIdByName const std::string &    name const [inline]
 

Get a animation ID by name.

If no channel is found, method returns NotFound.

Definition at line 83 of file animation_set.h.

References _AnimationIdByName, and NotFound.

const std::string& NL3D::CAnimationSet::getAnimationName uint    animationId const [inline]
 

Get animation name.

Definition at line 104 of file animation_set.h.

References _AnimationName.

uint NL3D::CAnimationSet::getChannelIdByName const std::string &    name const [inline]
 

Get a channel ID with its name.

If no channel is found, method returns NotFound.

Definition at line 70 of file animation_set.h.

References _ChannelIdByName, and NotFound.

uint NL3D::CAnimationSet::getNumAnimation   const [inline]
 

Get animations count.

Definition at line 96 of file animation_set.h.

References _Animation.

uint NL3D::CAnimationSet::getNumChannelId   const
 

Get channel ID count.

This number is the count of different track name in the animation set.

Definition at line 54 of file animation_set.cpp.

References _ChannelIdByName.

uint NL3D::CAnimationSet::getNumSkeletonWeight   const [inline]
 

Get skeleton weight count.

Definition at line 128 of file animation_set.h.

References _SkeletonWeight.

CSkeletonWeight* NL3D::CAnimationSet::getSkeletonWeight uint    skeletonId [inline]
 

Get a writable skeleton weight pointer.

Definition at line 165 of file animation_set.h.

References _SkeletonWeight.

const CSkeletonWeight* NL3D::CAnimationSet::getSkeletonWeight uint    skeletonId const [inline]
 

Get a read only skeleton weight pointer.

Definition at line 157 of file animation_set.h.

References _SkeletonWeight.

uint NL3D::CAnimationSet::getSkeletonWeightIdByName const std::string &    name const [inline]
 

Get a skeleton weight ID by name.

If no skeleton weight is found, method returns NotFound.

Definition at line 136 of file animation_set.h.

References _SkeletonWeightIdByName, and NotFound.

const std::string& NL3D::CAnimationSet::getSkeletonWeightName uint    skeletonId const [inline]
 

Get skeleton template name.

Definition at line 149 of file animation_set.h.

References _SkeletonWeightName.

bool NL3D::CAnimationSet::loadFromFiles const std::string &    path,
bool    recurse = true,
const char *    ext = "anim",
bool    wantWarningMessage = true
 

Helper method.

Load an animation set from animation files in a directory, then call build().

Parameters:
path  Path to look at for animations
recurse  wether to recurse to load animation in sub folders
ext  the extension for animation files
wantWarningMessage  displays warning if some of the files could not be loaded
Returns:
true if everything loaded ok

Definition at line 155 of file animation_set.cpp.

References addAnimation, build, NLMISC::CIFile::close, NLMISC::CFile::getExtension, NLMISC::CFile::getFilenameWithoutExtension, NLMISC::CPath::getPathContent, nlinfo, and NLMISC::CIFile::open.

void NL3D::CAnimationSet::reset  
 

Reset the animation set.

Definition at line 91 of file animation_set.cpp.

References _Animation, _AnimationIdByName, _AnimationName, _ChannelIdByName, _SkeletonWeight, _SkeletonWeightIdByName, and _SkeletonWeightName.

void NL3D::CAnimationSet::serial NLMISC::IStream   f
 

Serial the template.

Definition at line 134 of file animation_set.cpp.

References _Animation, _AnimationIdByName, _AnimationName, _ChannelIdByName, _SkeletonWeight, _SkeletonWeightIdByName, _SkeletonWeightName, NLMISC::IStream::serialCheck, NLMISC::IStream::serialCont, NLMISC::IStream::serialContPtr, and NLMISC::IStream::serialVersion.


Member Data Documentation

std::vector<CAnimation*> NL3D::CAnimationSet::_Animation [private]
 

Definition at line 223 of file animation_set.h.

Referenced by addAnimation, build, getAnimation, getNumAnimation, reset, serial, and ~CAnimationSet.

std::map<std::string, uint32> NL3D::CAnimationSet::_AnimationIdByName [private]
 

Definition at line 228 of file animation_set.h.

Referenced by addAnimation, getAnimationIdByName, reset, and serial.

std::vector<std::string> NL3D::CAnimationSet::_AnimationName [private]
 

Definition at line 225 of file animation_set.h.

Referenced by addAnimation, getAnimationName, reset, and serial.

std::map<std::string, uint32> NL3D::CAnimationSet::_ChannelIdByName [private]
 

Definition at line 227 of file animation_set.h.

Referenced by build, getChannelIdByName, getNumChannelId, reset, and serial.

std::vector<CSkeletonWeight*> NL3D::CAnimationSet::_SkeletonWeight [private]
 

Definition at line 224 of file animation_set.h.

Referenced by addSkeletonWeight, getNumSkeletonWeight, getSkeletonWeight, reset, serial, and ~CAnimationSet.

std::map<std::string, uint32> NL3D::CAnimationSet::_SkeletonWeightIdByName [private]
 

Definition at line 229 of file animation_set.h.

Referenced by addSkeletonWeight, getSkeletonWeightIdByName, reset, and serial.

std::vector<std::string> NL3D::CAnimationSet::_SkeletonWeightName [private]
 

Definition at line 226 of file animation_set.h.

Referenced by addSkeletonWeight, getSkeletonWeightName, reset, and serial.


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