几何绘制插件
几何绘制在BIM中模型中扮演着至关重要的角色,它允许了我们在场景中创建和修改建筑元素的几何形状。
我们通过精确的几何绘制,可以确保绘制的图形元素的位置、尺寸和比例与实际建筑相符合。
几何绘制和清除都是在绘制图层上进行渲染的。
1. 功能说明
几何绘制插件主要有2个功能:一是绘制几何,二是清除绘制的几何。
1.1 绘制几何
在场景上,我们可以使用以点、线、面、方柱或圆柱等图形来绘制几何。
可以通过修改几何的高度|宽度|长度|颜色|类型等等参数来调整绘制的几何。
1.2 清除几何
清除几何有两个范围:一是选中某个几何执行清除功能,二是一键清除场景中全部的几何。
2. 构造
在SDK中实例化几何绘制插件,代码示例如下:
const drawingPlugin = new ubm.DrawingPlugin()
可在实例化插件的时候,初始化一些插件功能,可传入的插件参数如下:
| 参数名称 | 类型 | 可选 | 说明 |
|---|---|---|---|
| hasZ | boolean | -- | 控制绘制的几何是否有高程 |
| spatialReference | boolean | -- | 几何的坐标系,共有两种:3857(默认值)和4326 |
3. 属性
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
| pointStyle | --- | --- | 点样式 |
| polylineStyle | --- | --- | 线样式 |
| polygonStyle | --- | --- | 面样式 |
| graphicArr | [] | --- | 全部几何信息 |
3.1 点样式
设置点样式,代码示例如下:
drawingPlugin.model.pointStyle = {
color: '#f3d751',
size: [8,8,8], //圆锥 [长,宽,高]
type: 'cone', //点类型 在此为 圆锥 cone
}
点样式的属性参数可参考几何绘制中的点的3D点样式。
3.2 线样式
设置线样式,代码示例如下:
drawingPlugin.model.polylineStyle = {
color: "#a57e5e",//多段线的颜色 在此褐色
size: [1, 6],//多段线的 [宽,高]
placement: 'bottom',
profile: 'quad',//多段线的侧面轮廓 方形quad 圆形circle
}
线样式的属性参数可参考几何绘制中的线的3D线样式。
3.3 面样式
设置面样式,代码示例如下:
drawingPlugin.model.polygonStyle = {
color: '#f1f1b8',//棱柱填充颜色
size: 20,//棱柱 高度
//棱柱边框设置 粗细 类型 颜色
edges: {
// 边框大小
size: 2,
// 边框类型 实线solid 素描sketch
type: 'solid',
//边框颜色
color: '#f3d751'
}
}
面样式的属性参数可参考几何绘制中的面的3D面样式。
3.4 全部几何信息
获取当前绘制的全部几何信息,代码示例如下:
const res = drawingPlugin.model.graphicArr
4. 方法
| 方法 | 说明 |
|---|---|
| start() | 开启绘制几何 |
| closeMoveGraphic() | 关闭移动模型 |
| openMoveGraphic() | 开启移动几何,默认是开启的 |
| clearSelectGraphic() | 清除选中的几何 |
| clearAllGraphic() | 清除绘制的全部几何 |
4.1 开启绘制
start(type: string): void
参数type:点'point' | 线'polyline' | 面'polygon' | 方柱'rectangle' | 圆柱'circle'。
开启绘制几何,代码示例如下:
drawingPlugin.model.start('point')
4.2 关闭移动
closeMoveGraphic(): void
关闭绘制的几何可被选中并移动的功能,代码示例如下:
drawingPlugin.model.closeMoveGraphic()
4.3 开启移动
openMoveGraphic(): void
开启绘制的几何可被选中并移动的功能,代码示例如下:
drawingPlugin.model.openMoveGraphic()
4.4 清除选中
clearSelectGraphic(): void
可选中某个绘制的几何进行清除操作,代码示例如下:
drawingPlugin.model.clearSelectGraphic()
4.5 清除全部
clearAllGraphic(): void
可一键清除全部绘制的几何,代码示例如下:
drawingPlugin.model.clearAllGraphic()