本文档将定义tuo-three2对3D对象修改操作的规范,tuo-three2系统中将具有以下修改操作:
- changeGeometry, 所有对3D对象几何体变化的操作。此操作发生后,需要在该对象的root结点,发布'geometryChanged'消息。此消息的规范定义如下:
root.dispatchEvent({type: 'geometryChanged', payload:{
object: Object3D,
}}) - changeMatrix, 所有对3D对象位姿矩阵变化的操作。此操作发生后,需要对该对象的root结点,发布'matrixChanged'消息。此消息的规范定义如下:
root.dispatchEvent({type: 'matrixChanged', payload:{
object: object,
oldMatrix: Matrix4,
newMatrix: Matrix4
}}) - changeMatrix, 所有对3D对象材质的变化操作。此操作发生后,需要对该对象的root结点,发布'materialChanged'消息。此消息的规范定义如下:
root.dispatchEvent({type: 'materialChanged',payload:{
object: Object3D,
oldMaterial: Material,
newMaterial: Material
}}) - updated, 某个3D对象发生了未知(不确定,或多种类型的变化)。此操作发生后需要对该对象的root结点,发布'updated'消息。此消息的规范定义如下:
root.dispatchEvent({type: 'updated', payload: {
object: Object3D
}}) - addObject, 新对象的添加操作。此操作发生后,需要在相应TuoScene实例发布'addObject'消息。此消息的规范定义如下:
TuoScene.dispatchEvent({type: 'addObject', payload: {
object: Object3D,
oldObject: Object3D, //optional
group: String
}}) - removeObject, 对象的移除操作。此操作发生后,需要在相应的TuoScene实例发布'removeObject'消息。此消息的规范定义如下:
TuoScene.dispatchEvent({type: 'removeObject', payload: {
object: Object3D
}}) - addSubObject,新添加子对象的操作。需要在相应的root结点发布'addSubObject'事件。此消息的规范定义如下:
root.dispatchEvent({type: 'addSubObject', payload: {
object: Object3D,
name: String, //optional, name of subObject
}}) - removeSubObject, 移除子对象的操作。需要在相应的root结点发布'removeSubObject'事件。此消息的规范定义如下:
root.dispatchEvent({type: 'removeSubObject', payload:{
object: Object3D
}})