NL3D::UPlayList Class Reference

#include <u_play_list.h>

Inheritance diagram for NL3D::UPlayList:

NL3D::CPlayListUser

Detailed Description

A playlist/channelmixer, from which you setup your mix of animations (blend, skeleton template weight...). Once this UPlayList is created from the UPlayListManager (with an UAnimationSet), you just need to registerTransform() your object(s) (eg: an UInstance). Then you can use all the Animation setup function to blend, mix, setup time etc...

NB: a playlist is actually played through UPlayListManager::animate(). NB: all AnimationTime are in second.

Author:
Lionel Berenguier

Nevrax France

Date:
2001

Definition at line 53 of file u_play_list.h.

Public Types

enum  { empty = 0xffffffff }
enum  TWrapMode { Clamp = 0, Repeat, Disable, WrapModeCount }
 Wrap mode for the play list. More...


Public Member Functions

Animation Setup.
virtual void emptyPlayList ()=0
virtual uint getAnimation (uint8 slot) const=0
virtual void setAnimation (uint8 slot, uint animation)=0
Special channel operation.
virtual void enableChannel (uint channelId, bool enable)=0
virtual bool isChannelEnabled (uint channelId) const=0
Animation Weight Setup.
virtual float getEndWeight (uint8 slot, TGlobalAnimationTime &time) const=0
virtual TAnimationTime getLocalTime (uint8 slot, TGlobalAnimationTime globalTime, const UAnimationSet &animSet) const=0
virtual float getLocalWeight (uint8 slot, TGlobalAnimationTime globalTime) const=0
virtual float getStartWeight (uint8 slot, TGlobalAnimationTime &time) const=0
virtual float getWeightSmoothness (uint8 slot) const=0
virtual void setEndWeight (uint8 slot, float endWeight, TGlobalAnimationTime time)=0
virtual void setStartWeight (uint8 slot, float startWeight, TGlobalAnimationTime time)=0
virtual void setWeight (uint8 slot, float weight)=0
virtual void setWeightSmoothness (uint8 slot, float smoothness)=0
Skeleton Weight Setup.
virtual uint getSkeletonWeight (uint8 slot, bool &inverted) const=0
virtual void setSkeletonWeight (uint8 slot, uint skeletonId, bool inverted=false)=0
Animation Time Setup.
virtual float getSpeedFactor (uint8 slot) const=0
virtual TGlobalAnimationTime getTimeOrigin (uint8 slot) const=0
virtual TWrapMode getWrapMode (uint8 slot) const=0
virtual void setSpeedFactor (uint8 slot, float speedFactor)=0
virtual void setTimeOrigin (uint8 slot, TGlobalAnimationTime timeOrigin)=0
virtual void setWrapMode (uint8 slot, TWrapMode wrapMode)=0
Animatable Link.
virtual void registerTransform (UTransform *object, const char *prefix="")=0
virtual void resetAllChannels ()=0

Protected Member Functions

 UPlayList ()
 Constructor.

virtual ~UPlayList ()
 Constructor.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
empty 

Definition at line 63 of file u_play_list.h.

00064         { 
00065                 // 
00066                 empty=0xffffffff
00067         };

enum NL3D::UPlayList::TWrapMode
 

Wrap mode for the play list.

Enumeration values:
Clamp  Clamp the animation time. (default).
Repeat  Repeat the animation.
Disable  Disable the animation.
WrapModeCount 

Definition at line 70 of file u_play_list.h.

00071         { 
00073                 Clamp=0,
00074 
00076                 Repeat,
00077                 
00079                 Disable,
00080 
00081                 WrapModeCount
00082         };


Constructor & Destructor Documentation

NL3D::UPlayList::UPlayList  )  [inline, protected]
 

Constructor.

Definition at line 58 of file u_play_list.h.

00058 {}

virtual NL3D::UPlayList::~UPlayList  )  [inline, protected, virtual]
 

Constructor.

Definition at line 60 of file u_play_list.h.

00060 {}


Member Function Documentation

virtual void NL3D::UPlayList::emptyPlayList  )  [pure virtual]
 

Empty the playlist. Each slot is set to its default value.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::enableChannel uint  channelId,
bool  enable
[pure virtual]
 

disabling a channel means it is no more modified during animation. Default is enabled. NB: this channel must have been added (via registerTransform()....).

Parameters:
channelId channelId get from UAnimationSet::getChannelIdByName().

Implemented in NL3D::CPlayListUser.

virtual uint NL3D::UPlayList::getAnimation uint8  slot  )  const [pure virtual]
 

Get the animation of a slot. Default value is empty.

Parameters:
slot is the id of the slot to set.
Returns:
the animation number in use in this slot. Return UPlayList::empty if the slot is empty.

Implemented in NL3D::CPlayListUser.

virtual float NL3D::UPlayList::getEndWeight uint8  slot,
TGlobalAnimationTime time
const [pure virtual]
 

Get animation end weight. Default value is 1.f.

Parameters:
slot is the id to get the slot.
time will get the playlist time for which the start weight is set. Default is 0.f.
Returns:
the end weight used in the slot.

Implemented in NL3D::CPlayListUser.

virtual TAnimationTime NL3D::UPlayList::getLocalTime uint8  slot,
TGlobalAnimationTime  globalTime,
const UAnimationSet animSet
const [pure virtual]
 

Convert a playlist global time in local time in a slot animation including wrap evaluation.

Parameters:
slot is the slot in which the local time must be computed
time is the global time of the playlist
Returns:
the local time in the slot. If no animation are set in the slot, globalTime is returned.

Implemented in NL3D::CPlayListUser.

virtual float NL3D::UPlayList::getLocalWeight uint8  slot,
TGlobalAnimationTime  globalTime
const [pure virtual]
 

Compute weight of a slot at a given global playlist time

Parameters:
slot is the slot in which the weight must be computed
time is the global time of the playlist
Returns:
the weight of the slot for the given time.

Implemented in NL3D::CPlayListUser.

virtual uint NL3D::UPlayList::getSkeletonWeight uint8  slot,
bool &  inverted
const [pure virtual]
 

Get the skeleton weight of a slot. Default value is empty.

Parameters:
slot is the id of the slot to set.
inverted will receive the invert flag.
Returns:
the skeleton weight number in use in this slot. Return UPlayList::empty if the slot is empty.

Implemented in NL3D::CPlayListUser.

virtual float NL3D::UPlayList::getSpeedFactor uint8  slot  )  const [pure virtual]
 

Get animation speed factor. Default value is 1.f.

Parameters:
slot is the id to get the slot.
Returns:
the speed factor used in the slot.

Implemented in NL3D::CPlayListUser.

virtual float NL3D::UPlayList::getStartWeight uint8  slot,
TGlobalAnimationTime time
const [pure virtual]
 

Get animation start weight. Default value is 1.f.

Parameters:
slot is the id to get the slot.
time will get the playlist time for which the start weight is set. Default is 0.f.
Returns:
the start weight used in the slot.

Implemented in NL3D::CPlayListUser.

virtual TGlobalAnimationTime NL3D::UPlayList::getTimeOrigin uint8  slot  )  const [pure virtual]
 

Get animation time origin, ie, the time in the playlist for which slot time is the startTime of the slot animation. Default value is 0.f.

Parameters:
slot is the id to get the slot.
Returns:
time origin used in the slot.

Implemented in NL3D::CPlayListUser.

virtual float NL3D::UPlayList::getWeightSmoothness uint8  slot  )  const [pure virtual]
 

Get weight smoothness. This is the smoothness of the weight interpolation. Must be between 0.f and 1.f. 0.f is a sharp interpolation (linear), 1.f is a smooth interpolation (quadratic). Default value is 0.f.

Parameters:
slot is the id of the slot to set.
Returns:
the smoothness value.

Implemented in NL3D::CPlayListUser.

virtual TWrapMode NL3D::UPlayList::getWrapMode uint8  slot  )  const [pure virtual]
 

Get the wrap mode in use in the play list.

Wrap mode tells the play list how to use an animation when current time is not in the animation.

Returns:
the wrap mode in use.

Implemented in NL3D::CPlayListUser.

virtual bool NL3D::UPlayList::isChannelEnabled uint  channelId  )  const [pure virtual]
 

see enableChannel(). return false if channel do not exist... NB: this channel must have been added (via registerTransform()....).

Parameters:
channelId channelId get from UAnimationSet::getChannelIdByName().

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::registerTransform UTransform object,
const char *  prefix = ""
[pure virtual]
 

register an Animatable object (UTransform, UCamera, UInstance...) to the playlist. Before deleting this Animatable object, you SHOULD UPlayList::resetAllChannels() or delete the playlist from the playlistmanager.

Parameters:
object is the object which will be affected by this animation playlist.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::resetAllChannels  )  [pure virtual]
 

Reset all channels so that no more Animatable object (Transforms etc...) are linked to this PLayList. Hence, the playlist has no effect on anything.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setAnimation uint8  slot,
uint  animation
[pure virtual]
 

Set the animation of a slot. Default value is empty.

Parameters:
slot is the id of the slot to set.
animation is the animation number to use in this slot. To empty the slot, use UPlayList::empty.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setEndWeight uint8  slot,
float  endWeight,
TGlobalAnimationTime  time
[pure virtual]
 

Set animation end weight. This is the weight for this animation use at the end of the animation slot. Default value is 1.f.

Parameters:
slot is the id of the slot to set.
time is the playlist time for which the start weight is set. Default is 1.f.
endWeight is the factor to use in this slot.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setSkeletonWeight uint8  slot,
uint  skeletonId,
bool  inverted = false
[pure virtual]
 

Set the skeleton weight animation of a slot. Default value is empty.

Parameters:
slot is the id of the slot to set.
skeletonId is the skeleton weight number to use in this slot. To empty the slot, use UPlayList::empty.
inverted is false if the weights must be used as they are, true if the weights to used are 1.f - weight.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setSpeedFactor uint8  slot,
float  speedFactor
[pure virtual]
 

Set animation speed factor. Default value is 1.f.

Parameters:
slot is the id of the slot to set.
speedFactor is the factor to use in this slot. The animation will go speedFactor* faster.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setStartWeight uint8  slot,
float  startWeight,
TGlobalAnimationTime  time
[pure virtual]
 

Set animation start weight. This is the weight for this animation use at the beginning of the animation slot. Default value is 1.f.

Parameters:
slot is the id of the slot to set.
startWeight is the factor to use in this slot.
time is the playlist time for which the start weight is set. Default is 0.f.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setTimeOrigin uint8  slot,
TGlobalAnimationTime  timeOrigin
[pure virtual]
 

Set animation time origin, ie, the time in the playlist for which slot time is the startTime of the slot animation. Default value is 0.f.

Parameters:
slot is the id of the slot to set.
timeOrigin time origin to use in the slot.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setWeight uint8  slot,
float  weight
[pure virtual]
 

Setup a constant animation weight. NB: this is equivalent as following code:

  • setStartWeight(slot, weight, 0);
  • setEndWeight(slot, weight, 0);

Parameters:
slot is the id of the slot to set.
weight is the factor to use in this slot.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setWeightSmoothness uint8  slot,
float  smoothness
[pure virtual]
 

Set weight smoothness. This is the smoothness of the weight interpolation. Must be between 0.f and 1.f. 0.f is a sharp interpolation (linear), 1.f is a smooth interpolation (quadratic). Default value is 0.f.

Parameters:
slot is the id of the slot to set.
smoothness is the smoothness value.

Implemented in NL3D::CPlayListUser.

virtual void NL3D::UPlayList::setWrapMode uint8  slot,
TWrapMode  wrapMode
[pure virtual]
 

Set the wrap mode to use in the play list.

Wrap mode tells the play list how to use an animation when current time is not in the animation.

Parameters:
wrapMode is the mode to use.

Implemented in NL3D::CPlayListUser.


The documentation for this class was generated from the following file:
Generated on Tue Mar 16 08:48:07 2004 for NeL by doxygen 1.3.6