编辑器
大约 1 分钟
编辑器
引擎内置编辑器组件viewer.editor,主要功能如下:
- 内置绘制工具,可实现点、线、面、模型的绘制添加;
 - 拖拽式编辑:位置、大小、角度的控件式编辑;
 - 撤消、恢复功能;
 - 删除和清除功能;
 
编辑器默认是关闭的,需要打开才生效,编辑器也内置了绘制工具viewer.editor.drawer,同样也需要在激活后使用。
开启/禁止编辑
// 开启编辑器
viewer.editor.setEnable(true);
// 关闭编辑器
viewer.editor.setEnable(false);
绘制点
// 激活绘制工具
editor.drawer.activate();
// 绘制点位
editor.draw({
    type: 'Billboard',
    material: {
        depthTest: false,
        map: {
            icon: 'thing-point',
            iconWidth: 8,
            iconHeight: 8,
            color: "#FF0000",
        }
    }
});
绘制线
// 激活绘制工具
editor.drawer.activate();
// 绘制线
editor.drawer.draw({
    type: 'RouteLine', // 也可以是其它线类型
    material: {
        color: "#FF0000",
        width: 0.02
    }
})
绘制面
// 激活绘制工具
editor.drawer.activate();
// 绘制面
editor.drawer.draw({
    type: 'Polygon',
    polygon: {
        color: "#FF9900",
        opacity: 0.1,
        transparent: true,
    },
    line: {
        linewidth: 2.0,
        color: "#ff9900"
    }
});
绘制模型
// 激活绘制工具
editor.drawer.activate();
// 绘制模型
editor.draw({
    type: "Model",
    modelType: "gltf",
    src: "./resources/models/test/test.gltf",
    selectLevel: 5,
})
移动
开如editor后,鼠标点击到物体上时,将自动出现编辑控件,可移动物体、旋转物体、缩放物体。
撤消
editor支持常见行为动作,如添加、删除、修改位置、修改材质颜色、修改属性等行为,在启用editor后,应尽量使用 editor 管理对象。
editor.undo();
重做
editor.redo();
事件
绘制完成事件调用
editor.drawer.addEventListener("drawEnd", ({
    drawObject
}) => {
    if (drawObject.getPoints) {
        const positions = drawObject.getPoints();
    } else {
        const position = drawObject.position.toArray();
        console.log("点:", position)
    }
})