TSThread
Engine/source/ts/tsShapeInstance.h
3space animation thread.
Classes:
if in transition...
Triggers
Triggers are used to do something once a certain animation point has been reached.
For example, when the player's foot animation hits the ground, a foot puff and foot print are triggered from the thread.
These are called by advancePos()
activateTriggers(F32 a, F32 b)
Public Friends
class
Private Attributes
bool
Blend with other sequences?
bool
Instance of the shape that this thread animates.
struct TSThread::@212
struct TSThread::TransitionData
Private Functions
TSThread()
advancePos(F32 delta)
advanceTime(F32 delta)
bool
selectKeyframes(F32 pos, const TSSequence * seq, S32 * k1, S32 * k2, F32 * kpos)
given a position on the thread, choose correct keyframes slight difference between one-shot and cyclic sequences – see comments below for details
setKeyframeNumber(S32 kf)
setSequence(S32 seq, F32 pos)
transitionToSequence(S32 seq, F32 pos, F32 duration, bool continuePlay)
Public Functions
bool
Detailed Description
3space animation thread.
An animation thread: runtime data associated with a single sequence that is running (or two sequences if in transition between them).
A shape instance can have multiple threads running. When multiple threads are running, which thread/sequence controls which node or object is determined based on priority of the sequence.
note:all thread data and methods are private (but TSShapeInstance is a friend). Users should treat thread pointers like keys – they are used to ID the thread when interfacing with the shape, but are not manipulated by anything but the TSShapeInstance. See "Thread control" methods for more info on controlling threads.
Triggers
Triggers are used to do something once a certain animation point has been reached.
For example, when the player's foot animation hits the ground, a foot puff and foot print are triggered from the thread.
These are called by advancePos()
animateTriggers()
activateTriggers(F32 a, F32 b)
Public Friends
Private Attributes
bool blendDisabled
Blend with other sequences?
S32 keyNum1
Keyframe at or before current position.
S32 keyNum2
Keyframe at or after current position.
F32 keyPos
bool makePath
F32 mSeqPos
TSShapeInstance * mShapeInstance
Instance of the shape that this thread animates.
struct TSThread::@212 path
S32 priority
S32 sequence
Sequence this thread will perform.
F32 timeScale
How fast to play through the sequence.
struct TSThread::TransitionData transitionData
Public Attributes
F32 end
S32 loop
F32 start
Private Functions
TSThread()
TSThread(TSShapeInstance * )
advancePos(F32 delta)
advanceTime(F32 delta)
getDuration()
getGround(F32 p, MatrixF * pMat)
getKeyframeCount()
getKeyframeNumber()
getPos()
getScaledDuration()
getTime()
getTimeScale()
isInTransition()
selectKeyframes(F32 pos, const TSSequence * seq, S32 * k1, S32 * k2, F32 * kpos)
given a position on the thread, choose correct keyframes slight difference between one-shot and cyclic sequences – see comments below for details
setKeyframeNumber(S32 kf)
setPos(F32 )
setSequence(S32 seq, F32 pos)
setTime(F32 )
setTimeScale(F32 )
transitionToSequence(S32 seq, F32 pos, F32 duration, bool continuePlay)
Public Functions
getSeqIndex()
getSequence()
getSequenceName()
getShapeInstance()
hasSequence()
operator<(const TSThread & )