three.js PropertyBinding和PropertyMixer

PropertyBinding

对场景图中某一真实属性的引用,内部使用。

构造器

PropertyBinding( rootNode : Object3D, path, parsedPath )

-- rootNode: -- path -- parsedPath (可选)

属性

# .path : Number

# .parsedPath : Number

# .node : Number

# .rootNode : Number

# .BindingType : Object

# .Versioning : Object

# .GetterByBindingType : Array

# .SetterByBindingTypeAndVersioning : Array

方法

# .getValue ( targetArray : Array, offset : Number ) : null

# .setValue ( sourceArray : Array, offset : Number ) : null

# .bind ( ) : null

为场景图中的属性创建 getter / setter对。 被getValue和setValue方法内部使用。

# .unbind ( ) : null

解绑场景图中某属性的getter / setter对。

# .Composite ( targetGroup, path, optionalParsedPath ) : Constructor

创建一个新的复合属性绑定(Composite PropertyBinding)

# .create ( root, path, parsedPath ) : Constructor

创建一个新的复合属性绑定(Composite PropertyBinding) (如果根对象是AnimationObjectGroup)或普通属性绑定

# .parseTrackName ( trackName ) : Constructor

匹配以下形式的字符串:
-- nodeName.property
-- nodeName.property[accessor]
-- nodeName.material.property[accessor]
-- uuid.property[accessor]
-- uuid.objectName[objectIndex].propertyName[propertyIndex]
-- parentName/nodeName.property
-- parentName/parentName/nodeName.property[index]
-- .bone[Armature.DEF_cog].position
-- scene:helium_balloon_model:helium_balloon_model.position

# .findNode ( root, nodeName ) : Constructor

从节点树或骨骼(Skeleton)中找出某节点

PropertyMixer

允许加权累加的缓冲场景图属性,内部使用

构造器

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

-- binding
-- typeName
-- valueSize

属性

# .binding : PropertyBinding

# .buffer : TypedArray

大小为 4 * valueSize 的缓冲区

布局为: [ incoming | accu0 | accu1 | orig ]

插值器可使用 .buffer 作为 .result 且数据会进入'incoming'区. 'accu0'和'accu1'用于按帧交错累加‘incoming’中的数据并进行比较以侦测变化。'orig'存储着属性的原始状态。

# .cumulativeWeight : Number

默认值是0

# .valueSize : Number

# .referenceCount : Number

默认值是0

# .useCount : Number

默认值是0

方法

# .accumulate ( accuIndex : Number, weight : Number ) : null

将buffer[accuIndex]中'incoming'区的数据累加到'accu[i]'区中。
如果权值为0,则什么都不做。

# .apply ( accuIndex : Number ) : null

当累加值不同时,将buffer 'accu[i]区的状态应用于绑定.

# .saveOriginalState ( ) : null

记住绑定属性的状态并复制到两个'accu'区中.

# .restoreOriginalState ( ) : null

将预先通过'saveOriginalState'方法取得的状态应用于绑定。

猜你喜欢

转载自blog.csdn.net/n_229397218/article/details/142346486