跳至主要內容

Editor

2023年6月28日大约 3 分钟

Editor

引擎内置编辑器,继承自BaseEvent,通过Viewer实例访问获取。

注意

如果需要历史记录器生效,物体的所有操作如添加、删除、更新等,应通过editor实现。

属性成员

selected

选中对象

  • 类型:THREE.Object3D

history

历史记录器

  • 类型:VT.History

drawer

绘制控件

  • 类型:VT.DrawControl 绘制控件

方法

setEnable

是否开启编辑器,编辑器默认关闭

  • setEnable(enable)
  • 类型:Function
  • 参数:
    • enable {Boolean} 控件对象
  • 返回:无
viewer.editor.setEnable(true);

eachSelected

遍历选中物体

  • eachSelected(callback)
  • 类型:Function
  • 参数:
    • callback {Function} 回调方法,参数为选中物体
  • 返回:无
// 遍历选中物体,并打印出名称
viewer.editor.eachSelected((thing) => {
    console.log(thing.name);
});

deleteSelected

删除选中对象

  • deleteSelected()
  • 类型:Function
  • 参数:无
  • 返回:无

draw

激活绘制工具并根据参数绘制

  • draw(option)
  • 类型:Function
  • 参数:
    • option {Object} 绘制参数,除type为绘制类型,option内的其它参数均为该物体的参数
      • type {String} 必选,绘制类型,为THING物体对象
  • 返回:无
// 绘制点位
viewer.editor.draw({
    type: "billboard",
    material: {
        map: {
            image: "thing-point"
        }
    }
});

endDraw

结束绘制

  • endDraw()
  • 类型:Function
  • 参数:无
  • 返回:无

objectByUuid

根据UUID获取物体对象

  • objectByUuid(uuid)
  • 类型:Function
  • 参数:
    • uuid {String} 对象唯一编号
  • 返回:无

select

选中物体对象

  • select(object)
  • 类型:Function
  • 参数:
    • object {VT.Thing | THREE.Object3D} 物体对象
  • 返回:无

deselect

取消选中

  • deselect()
  • 类型:Function
  • 参数:无
  • 返回:无

removeTransformControls

移除变化控件

  • removeTransformControls()
  • 类型:Function
  • 参数:无
  • 返回:无

updateObject

更新对象,执行本方法将记录到历史记录中。

注意

暂不支持历史记录的更新属性包括:dimensionHelper、shader、video、style、box、edge、userData

  • updateObject(object, config)
  • 类型:Function
  • 参数:
    • object {VT.Thing | THREE.Object3D} 物体对象
    • config {Object} 配置项,支持的更新如下
  • 返回:无
const { 
    uuid, 
    name, 
    visible, 
    renderOrder, 
    position, 
    rotation, 
    scale, 
    center,
    frustumCulled, 
    layers, 
    properties, 
    interact,
    receiveShadow, 
    castShadow, 
    box, 
    edge, 
    geometry, 
    style, 
    userData, 
    locked,
    dimensionHelper, 
} = config;
// 更新模型位置
viewer.editor.updateObject(model, {position: [15, 20, 11]});

// 更新模型名称
viewer.editor.updateObject(model, {name: "newName"})

add

添加物体对象

  • add(object, parent)
  • 类型:Function
  • 参数:
    • object {VT.Thing | THREE.Object3D} 物体对象
    • parent {VT.Thing | THREE.Object3D} 父节点
  • 返回:无

move

移动对象

  • move(object, parent, before)
  • 类型:Function
  • 参数:
    • object {VT.Thing | THREE.Object3D} 物体对象
    • parent {VT.Thing | THREE.Object3D} 父节点
    • before {Integer} 插入的序列号
  • 返回:无

remove

删除对象

  • remove(object)
  • 类型:Function
  • 参数:
    • object {VT.Thing | THREE.Object3D} 物体对象
  • 返回:无

clone

克隆对象

  • clone(object)
  • 类型:Function
  • 参数:
    • object {VT.Thing | THREE.Object3D} 物体对象
  • 返回:无

undo

撤消上一步动作

注意

如果需要历史记录器生效,物体的所有操作如添加、删除、更新等,应通过editor实现。

  • undo()
  • 类型:Function
  • 参数:无
  • 返回:无

redo

重新做一次上一次取消的动作

注意

如果需要历史记录器生效,物体的所有操作如添加、删除、更新等,应通过editor实现。

  • redo()
  • 类型:Function
  • 参数:无
  • 返回:无

getRootTree

获取场景树

  • getRootTree(option)
  • 类型:Function
  • 参数:
    • option {Object} 过滤参数,均可选
      • keyword {String} 名称过滤关键字
      • type {String} 物体类型过滤关键字
  • 返回:{Array}
上次编辑于: 2023/6/28 03:02:31
贡献者: dashun