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