|
|
|
|
Documentation |
|
Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages Search
NL3D::IAnimatable Class ReferenceAn animatable object.
More...
#include <animatable.h>
Inheritance diagram for NL3D::IAnimatable
[legend]Collaboration diagram for NL3D::IAnimatable:
[legend]List of all members.
Detailed Description
An animatable object.
This object can have a set of animated values. Animated values are animated by a CChannelMixer object. Each value have a name and a default track.
An IAnimatable may have IAnimatable sons (list of bones, list of materails etc...). The value count and valueId of the IAnimatable DO NOT count those sons, but register() should register his sons too. A father propagated touch system (setFather()) is implemented. When a son is touched, he touchs his fathers, his grandfather and so on.
When a class derives from IAnimatable, it must implement all the interface's methods:
extend TAnimValues enum, beginning to BaseClass::AnimValueLast, and add a bit OwnerBit. ctor(): just type "IAnimatable::resize() (AnimValueLast);" virtual IAnimatedValue* getValue (uint valueId); virtual const char *getValueName (uint valueId) const; virtual ITrack* getDefaultTrack (uint valueId);
virtual register(CChannelMixer *, const string &prefix);
Watch NL3D::ITransformable and NL3D::CTransform for a good example.
-
Author(s):
-
Cyril 'Hulud' Corvazier , Nevrax France
-
Date:
-
2001
Definition at line 73 of file animatable.h.
Member Enumeration Documentation
enum NL3D::IAnimatable::TAnimValues
|
|
Constructor & Destructor Documentation
NL3D::IAnimatable::IAnimatable (
|
) [inline]
|
|
Member Function Documentation
void NL3D::IAnimatable::addValue (
|
CChannelMixer * chanMixer,
|
|
uint valueId,
|
|
uint ownerValueId,
|
|
const std::string & prefix,
|
|
bool detail ) [protected]
|
|
|
This is a tool function which add a given value to a channel.
Definition at line 34 of file animatable.cpp. |
void NL3D::IAnimatable::clearFlag (
|
uint valueId ) [inline, protected]
|
|
|
This method clear a bit in the bitset.
Definition at line 227 of file animatable.h. |
ITrack * NL3D::IAnimatable::getDefaultTrack (
|
uint valueId ) [pure virtual]
|
|
const char * NL3D::IAnimatable::getValueName (
|
uint valueId ) const [pure virtual]
|
|
bool NL3D::IAnimatable::isTouched (
|
uint valueId ) const [inline]
|
|
|
Return true if the value as been touched else false.
-
Parameters:
-
valueId
|
is the animated value ID in the object we want to test the touch flag. or it may be an OwnerBit. |
Definition at line 181 of file animatable.h. |
void NL3D::IAnimatable::propagateTouch (
|
) [inline, private]
|
|
void NL3D::IAnimatable::registerToChannelMixer (
|
CChannelMixer * chanMixer,
|
|
const std::string & prefix = std::string() ) [pure virtual]
|
|
void NL3D::IAnimatable::resize (
|
uint count ) [inline]
|
|
|
Change value count.
-
Parameters:
-
count
|
is the new value count. |
Definition at line 192 of file animatable.h. |
void NL3D::IAnimatable::setFather (
|
IAnimatable * father,
|
|
uint fatherOwnerBit ) [inline]
|
|
|
Say which (if any) IAnimatable owns this one.
This is important for Touch propagation. By this system, Fathers and ancestors know if they must check their sons (isTouched() return true). -
Parameters:
-
father
|
the father we must inform of our update. |
fatherOwnerBit
|
What bit of father we must set when we are updated |
Definition at line 150 of file animatable.h. |
void NL3D::IAnimatable::touch (
|
uint valueId,
|
|
uint ownerValueId ) [inline]
|
|
|
Touch a value because it has been modified.
-
Parameters:
-
valueId
|
is the animated value ID in the object we want to touch. |
ownerValueId
|
is the bit of the IAnimatable part which owns this animated value. |
Definition at line 165 of file animatable.h. |
Friends And Related Function Documentation
class IAnimatedValue [friend]
|
|
Member Data Documentation
IAnimatable * NL3D::IAnimatable::_Father [private]
|
|
uint NL3D::IAnimatable::_FatherOwnerBit [private]
|
|
The documentation for this class was generated from the following files:
|
|