TSThread

Engine/source/ts/tsShapeInstance.h

3space animation thread.

More...

Classes:

class

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()

Public Friends

Private Attributes

bool

Blend with other sequences?

Keyframe at or before current position.

Keyframe at or after current position.

bool

Instance of the shape that this thread animates.

struct TSThread::@212

Sequence this thread will perform.

How fast to play through the sequence.

struct TSThread::TransitionData

Public Attributes

Private Functions

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

setSequence(S32 seq, F32 pos)
transitionToSequence(S32 seq, F32 pos, F32 duration, bool continuePlay)

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)