Documentation / scene / PropertyTrack
Class: PropertyTrack
Defined in: libs/scene/src/animation/proptrack.ts:25
Property animation track
Animates a single property (scalar, vector, or color) on a target object using time-based interpolation. Supports:
- float, vec2, vec3/rgb, vec4, rgba property types
- Separate interpolation for RGB and Alpha in RGBA mode
- Linear and cubic spline (natural) interpolation presets
The track reads a PropertyAccessor which encapsulates how to get/set the property on the target object. Internally, the current state is represented as a numeric array.
Notes:
calculateStatesamples interpolators into an internal reusable state instance for performance; consumers should treat returned states as ephemeral.mixStateperforms component-wise linear interpolation for blending.
Extends
AnimationTrack<number[]>
Constructors
Constructor
new PropertyTrack(
prop,value?,embedded?):PropertyTrack
Defined in: libs/scene/src/animation/proptrack.ts:44
Construct a PropertyTrack for a specific property.
Initializes interpolators and internal state based on the property type. If an initial value is provided, it seeds the starting state and default key values.
Parameters
prop
The property accessor describing what and how to animate.
value?
number[]
Optional initial numeric values (length must match the property type).
embedded?
boolean
Whether this track is embedded/owned inline. Default false.
Returns
PropertyTrack
Throws
Error if the property type is unsupported for animation.
Overrides
Accessors
name
Get Signature
get name():
string
Defined in: libs/scene/src/animation/animationtrack.ts:45
Human-readable name of the track.
Returns
string
Set Signature
set name(
val):void
Defined in: libs/scene/src/animation/animationtrack.ts:48
Parameters
val
string
Returns
void
Inherited from
embedded
Get Signature
get embedded():
boolean
Defined in: libs/scene/src/animation/animationtrack.ts:54
Whether this track is embedded (owned inline by a resource/container).
Returns
boolean
Inherited from
animation
Get Signature
get animation():
AnimationClip
Defined in: libs/scene/src/animation/animationtrack.ts:60
The AnimationClip that owns this track.
Returns
Set Signature
set animation(
ani):void
Defined in: libs/scene/src/animation/animationtrack.ts:63
Parameters
ani
Returns
void
Inherited from
target
Get Signature
get target():
string
Defined in: libs/scene/src/animation/animationtrack.ts:72
Logical target identifier for this track (optional metadata).
This does not affect application; it can be used by tooling or higher-level systems to label/group tracks.
Returns
string
Set Signature
set target(
val):void
Defined in: libs/scene/src/animation/animationtrack.ts:75
Parameters
val
string
Returns
void
Inherited from
jointIndex
Get Signature
get jointIndex():
number
Defined in: libs/scene/src/animation/animationtrack.ts:81
Joint index if this track controls a joint, otherwise -1
Returns
number
Set Signature
set jointIndex(
index):void
Defined in: libs/scene/src/animation/animationtrack.ts:84
Parameters
index
number
Returns
void
Inherited from
interpolator
Get Signature
get interpolator():
Interpolator
Defined in: libs/scene/src/animation/proptrack.ts:122
The primary interpolator for the property components.
- For float/vec2/vec3/vec4/rgb: handles all channels.
- For rgba: handles RGB channels only; alpha is handled by
interpolatorAlpha.
Returns
Interpolator
Set Signature
set interpolator(
interpolator):void
Defined in: libs/scene/src/animation/proptrack.ts:125
Parameters
interpolator
Interpolator
Returns
void
interpolatorAlpha
Get Signature
get interpolatorAlpha():
Interpolator
Defined in: libs/scene/src/animation/proptrack.ts:134
The alpha-channel interpolator for RGBA properties.
- Only used when the property type is
rgba. - Setting a non-null interpolator ensures alpha state storage is allocated.
Returns
Interpolator
Set Signature
set interpolatorAlpha(
interpolator):void
Defined in: libs/scene/src/animation/proptrack.ts:137
Parameters
interpolator
Interpolator
Returns
void
Methods
reset()
reset(
_target):void
Defined in: libs/scene/src/animation/animationtrack.ts:98
Reset the track to its initial state for the given target.
Intended to stop playback and rewind the target to the first frame or default state.
Parameters
_target
object
The animated object to reset.
Returns
void
Inherited from
clone()
clone():
this
Defined in: libs/scene/src/animation/proptrack.ts:113
Clone this animation track
Returns
this
Overrides
calculateState()
calculateState(
target,currentTime):number[]
Defined in: libs/scene/src/animation/proptrack.ts:144
Compute the animation state at the specified time.
Implementations should be pure with respect to inputs: given the same target and currentTime, return the same StateType.
Parameters
target
unknown
The animated object (used to resolve current baseline if needed).
currentTime
number
Time cursor in seconds within the track's timeline.
Returns
number[]
The computed state at currentTime.
Overrides
applyState()
applyState(
target,state):void
Defined in: libs/scene/src/animation/proptrack.ts:153
Apply a previously computed animation state to the target.
Parameters
target
object
The animated object to modify.
state
number[]
The state to apply.
Returns
void
Overrides
mixState()
mixState(
a,b,t):number[]
Defined in: libs/scene/src/animation/proptrack.ts:157
Blend two states into a new state using a weight.
Parameters
a
number[]
First state.
b
number[]
Second state.
t
number
Blend weight in [0, 1], where 0 yields a and 1 yields b.
Returns
number[]
The blended state.
Overrides
getBlendId()
getBlendId():
PropertyAccessor
Defined in: libs/scene/src/animation/proptrack.ts:165
Get the blend identifier for this track.
Tracks with the same blend ID are considered compatible for blending on the same target channel/property.
Returns
An identifier used to group compatible tracks for blending.
Overrides
getDuration()
getDuration():
number
Defined in: libs/scene/src/animation/proptrack.ts:169
Get the intrinsic duration of this track in seconds.
Used by clips to determine overall clip duration and looping behavior.
Returns
number
Track duration (seconds).
Overrides
getProp()
getProp():
PropertyAccessor
Defined in: libs/scene/src/animation/proptrack.ts:177
Access the underlying property accessor.
Returns
The PropertyAccessor used by this track.