跳至主要內容

编辑器

大约 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)
    }
})

上次编辑于:
贡献者: dashun