PropertyMixer

Buffered scene graph property that allows weighted accumulation; used internally.

Constructor

PropertyMixer(binding : PropertyBinding, typeName : String, valueSize : Number)

— binding
— typeName
— valueSize

Properties

.binding : PropertyBinding

.buffer : TypedArray

Buffer with size valueSize * 4.

This has the layout: [incoming | accu0 | accu1 | orig]

Interpolators can use .buffer as their .result and the data then goes to 'incoming'. 'accu0' and 'accu1' are used frame-interleaved for the cumulative result and are compared to detect changes. 'orig' stores the original state of the property.

.cumulativeWeight : Number

Default is 0.

.cumulativeWeightAdditive : Number

Default is 0.

.valueSize : Number

.referenceCount : Number

Default is 0.

.useCount : Number

Default is 0.

Methods

.accumulate (accuIndex : Number, weight : Number) : undefined

Accumulate data in buffer[accuIndex] 'incoming' region into 'accu[i]'.
If weight is 0 this does nothing.

.accumulateAdditive (weight : Number) : undefined

Accumulate data in the 'incoming' region into 'add'.
If weight is 0 this does nothing.

.apply (accuIndex : Number) : undefined

Apply the state of buffer 'accu[i]' to the binding when accus differ.

.saveOriginalState () : undefined

Remember the state of the bound property and copy it to both accus.

.restoreOriginalState () : undefined

Apply the state previously taken via 'saveOriginalState' to the binding.

Source

For more info on how to obtain the source code of this module see this page.