gs-bim-air 0.1.3-0.23 → 0.1.3-0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/READMEBETA.md +98 -0
- package/READMEBETA2.md +24 -0
- package/demo//344/272/213/344/273/266/346/223/215/344/275/234//350/247/206/347/202/271/347/256/241/347/220/206.html +0 -2
- package/demo//344/272/213/344/273/266/346/223/215/344/275/234//351/242/234/350/211/262/345/222/214/345/212/250/347/224/273/346/214/211/351/222/256.html +0 -2
- package/demo//346/250/241/345/236/213/346/223/215/344/275/234//350/256/276/347/275/256/347/233/270/346/234/272/347/212/266/346/200/201-/350/216/267/345/217/226/344/275/215/347/275/256/343/200/201/346/201/242/345/244/215/344/275/215/347/275/256.html +0 -2
- package/demo//346/250/241/345/236/213/346/225/210/346/236/234//345/210/233/345/273/272/346/211/253/347/225/245.html +108 -78
- package/demo//346/250/241/345/236/213/346/225/210/346/236/234//345/260/204/347/272/277/346/243/200/346/265/213.html +92 -0
- package/demo//346/250/241/345/236/213/346/225/210/346/236/234//347/253/213/344/275/223/351/224/232/347/202/271.html +85 -0
- package/demo//346/250/241/345/236/213/346/225/210/346/236/234//351/200/232/350/247/206/345/210/206/346/236/220.html +72 -0
- package/demo//347/273/223/346/236/204/346/240/221/344/270/216/346/236/204/344/273/266//350/256/276/347/275/256/351/232/224/347/246/273/346/240/267/345/274/217.html +0 -5
- package/demo//347/273/223/346/236/204/346/240/221/344/270/216/346/236/204/344/273/266//351/232/224/347/246/273/346/214/211/351/222/256.html +0 -2
- package/demo//347/273/223/346/236/204/346/240/221/344/270/216/346/236/204/344/273/266//351/242/234/350/211/262/346/214/211/351/222/256.html +0 -4
- package/docs/README.md +3 -0
- package/docs/classes/AnchorEffect.md +89 -0
- package/docs/classes/AnchorEffectConfig.md +63 -0
- package/docs/classes/AnimationManager.md +113 -16
- package/docs/classes/PanelManager.md +11 -0
- package/docs/classes/PathRoam.md +205 -0
- package/docs/classes/ViewPointPanel.md +40 -0
- package/docs/classes/Viewer.md +81 -18
- package/docs/interfaces/Options.md +4 -0
- package/docs/interfaces/ToolbarVisible.md +7 -0
- package/lib/BimAir.common-report.html +2 -2
- package/lib/BimAir.common.js +265 -101
- package/lib/BimAir.css +159 -36
- package/lib/BimAir.umd-report.html +2 -2
- package/lib/BimAir.umd.js +265 -101
- package/lib/BimAir.umd.min-report.html +2 -2
- package/lib/BimAir.umd.min.js +265 -101
- package/lib/fonts/iconfont.6f9f8b97.woff2 +0 -0
- package/lib/fonts/{iconfont.864cead3.ttf → iconfont.b729ac50.ttf} +0 -0
- package/lib/fonts/iconfont.d1fcc80d.woff +0 -0
- package/lib/undefined.gzundefined +0 -0
- package/package.json +1 -1
- package/public/js/longan/longan.js +561 -530
- package/public/js/longan/longan.wasm +0 -0
- package/public/js/longanWithoutShareArrayBuffer/longan.js +1 -1
- package/public/js/longanWithoutShareArrayBuffer/longan.wasm +0 -0
- package/lib/fonts/iconfont.84ed7d57.woff +0 -0
- package/lib/fonts/iconfont.d27373d5.woff2 +0 -0
package/READMEBETA.md
CHANGED
|
@@ -254,3 +254,101 @@ viewer.camera.projection = BimAir.Longan.ProjectionType.Perspective; //透视投
|
|
|
254
254
|
```js
|
|
255
255
|
viewer.getComponents(componentId);
|
|
256
256
|
```
|
|
257
|
+
|
|
258
|
+
### 0.0.30.28
|
|
259
|
+
|
|
260
|
+
- 更新 public/js 里的内核文件,安装此版本需替换 js 文件夹
|
|
261
|
+
- 增加添加视点的接口 [viewer.panelManager.viewPointPanel.addViewPoint](docs/classes/ViewPointPanel.md#addViewPoint)
|
|
262
|
+
- 增加通过 Id 获取视点的接口 [viewer.panelManager.viewPointPanel.getViewPointById](docs/classes/ViewPointPanel.md#getViewPointById)
|
|
263
|
+
- 增加通过 Id 删除视点的接口 [viewer.panelManager.viewPointPanel.deleteViewPointById](docs/classes/ViewPointPanel.md#deleteViewPointById)
|
|
264
|
+
- 增加通过 Id 恢复视点的接口 [viewer.panelManager.viewPointPanel.restoreViewPointById](docs/classes/ViewPointPanel.md#restoreViewPointById)
|
|
265
|
+
|
|
266
|
+
### 0.0.30.29
|
|
267
|
+
|
|
268
|
+
- 更新 public/js 里的内核文件,安装此版本需替换 js 文件夹
|
|
269
|
+
- 修复 noShareArrayBuffer 版本的 wasm 无法显示模型
|
|
270
|
+
- 修复接口恢复视点时事件被批注功能的事件覆盖的问题
|
|
271
|
+
- 添加路径漫游相关接口 [viewer.animationManager.pathRoam](docs/classes/PathRoam.md),基本用法如下:
|
|
272
|
+
|
|
273
|
+
```js
|
|
274
|
+
// 获取当前Camera信息
|
|
275
|
+
let camera = viewer.animationManager.pathRoam.getRoamPoint();
|
|
276
|
+
console.log("camera", camera);
|
|
277
|
+
|
|
278
|
+
let points = [
|
|
279
|
+
[
|
|
280
|
+
380416.0671187355,
|
|
281
|
+
38786.28087566431,
|
|
282
|
+
4155.782292435952,
|
|
283
|
+
]
|
|
284
|
+
[ 380730.74617450393,
|
|
285
|
+
38801.12997364584,
|
|
286
|
+
4404.750407980944,
|
|
287
|
+
]
|
|
288
|
+
];
|
|
289
|
+
let targets = [
|
|
290
|
+
[
|
|
291
|
+
379975.34973484656,
|
|
292
|
+
39356.55973798728,
|
|
293
|
+
2473.4870208851316,
|
|
294
|
+
],
|
|
295
|
+
[
|
|
296
|
+
380290.028790615,
|
|
297
|
+
39371.4088359688,
|
|
298
|
+
2722.455136430124,
|
|
299
|
+
]
|
|
300
|
+
];
|
|
301
|
+
// 创建动画
|
|
302
|
+
let animationId = viewer.animationManager.pathRoam.addRoamPathAnime(
|
|
303
|
+
10,
|
|
304
|
+
points,
|
|
305
|
+
targets
|
|
306
|
+
);
|
|
307
|
+
// 播放动画
|
|
308
|
+
viewer.animationManager.pathRoam.run([animationId]);
|
|
309
|
+
|
|
310
|
+
setTimeout(() => {
|
|
311
|
+
// 暂停播放
|
|
312
|
+
viewer.animationManager.pathRoam.pauseAnime(animationId);
|
|
313
|
+
}, 3000);
|
|
314
|
+
|
|
315
|
+
setTimeout(() => {
|
|
316
|
+
// 继续播放
|
|
317
|
+
viewer.animationManager.pathRoam.run([animationId]);
|
|
318
|
+
}, 6000);
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### 0.0.30.30
|
|
322
|
+
|
|
323
|
+
- 修复碰撞功能添加碰撞的弹框结构树消失问题
|
|
324
|
+
|
|
325
|
+
### 0.0.30.31
|
|
326
|
+
|
|
327
|
+
- 更新 public/js 里的内核文件,安装此版本需替换 js 文件夹
|
|
328
|
+
- 修复 noShareArrayBuffer 的内核模型无法显示的问题
|
|
329
|
+
|
|
330
|
+
### 0.0.30.32
|
|
331
|
+
|
|
332
|
+
- 添加漫游工具栏按钮相关配置,如下:
|
|
333
|
+
|
|
334
|
+
```js
|
|
335
|
+
let options = {
|
|
336
|
+
components: {
|
|
337
|
+
roamToolbar: {
|
|
338
|
+
pathRoam: {
|
|
339
|
+
// 隐藏路径漫游按钮
|
|
340
|
+
visible: false,
|
|
341
|
+
},
|
|
342
|
+
// 在漫游工具栏拓展按钮
|
|
343
|
+
buttons: [
|
|
344
|
+
{
|
|
345
|
+
title: "第一人称漫游",
|
|
346
|
+
clickFun: () => {},
|
|
347
|
+
active: false,
|
|
348
|
+
icon: "iconfont icon-shuxing",
|
|
349
|
+
},
|
|
350
|
+
],
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
};
|
|
354
|
+
```
|
package/READMEBETA2.md
CHANGED
|
@@ -159,3 +159,27 @@ this.viewer.panelManager.collisionPanel
|
|
|
159
159
|
- 更新 public/js 里的内核文件,安装此版本需替换 js 文件夹
|
|
160
160
|
- 修复加载本地模型结构树上不会出现节点问题
|
|
161
161
|
- 修复 viewer.dispose 后再次加载模型会出现贴图丢失问题
|
|
162
|
+
|
|
163
|
+
### 0.1.30.24
|
|
164
|
+
|
|
165
|
+
- 更新 public/js 里的内核文件,安装此版本需替换 js 文件夹
|
|
166
|
+
- 在写入缓存时与模型写入冲突导致模型丢失的问题
|
|
167
|
+
- 添加面板和命令显示隐藏的回调函数,如结构树面板设置:
|
|
168
|
+
|
|
169
|
+
```js
|
|
170
|
+
viewer.panelManager.structureTree.toggleCallback = (visible) => {
|
|
171
|
+
console.log("visible", visible);
|
|
172
|
+
};
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 0.1.30.25
|
|
176
|
+
|
|
177
|
+
- 更新 public/js 里的内核文件,安装此版本需替换 js 文件夹。
|
|
178
|
+
- 修复碰撞功能添加碰撞的弹框结构树消失问题
|
|
179
|
+
- 解决模型碰撞卡死问题
|
|
180
|
+
- 解决加载模型时剖切出错的问题
|
|
181
|
+
- 修复颜色设置报错问题
|
|
182
|
+
- 新增固定帧绘制算法,提升模型浏览的流畅性。
|
|
183
|
+
- 修改底层逻辑将线程等待改成线程杀死,加快模型加载速度。
|
|
184
|
+
- 将法线计算移动到子线程中去。
|
|
185
|
+
- 后台与前端同时适配模型的几何合并功能。
|
|
@@ -50,8 +50,6 @@
|
|
|
50
50
|
<button onclick="addView1()">添加视点1</button>
|
|
51
51
|
<button onclick="addView2()">添加视点2</button>
|
|
52
52
|
<button onclick="deleteView()">删除视点</button>
|
|
53
|
-
<!-- <button onclick="isExistWall()">判断是否存在围栏</button>
|
|
54
|
-
<button onclick="isInside()">判断点是否在围栏内</button> -->
|
|
55
53
|
</div>
|
|
56
54
|
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
57
55
|
</div>
|
|
@@ -52,8 +52,6 @@
|
|
|
52
52
|
<button onclick="stopAnimation()">结束动画</button>
|
|
53
53
|
<button onclick="restartAnimation()">重启动画</button>
|
|
54
54
|
|
|
55
|
-
<!-- <button onclick="isExistWall()">判断是否存在围栏</button>
|
|
56
|
-
<button onclick="isInside()">判断点是否在围栏内</button> -->
|
|
57
55
|
</div>
|
|
58
56
|
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
59
57
|
|
|
@@ -1,91 +1,121 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<title>创建扫略</title>
|
|
6
|
+
<link
|
|
7
|
+
rel="stylesheet"
|
|
8
|
+
href="https://static.graphicstone.com/bimAir/BimAir.css"
|
|
9
|
+
/>
|
|
10
|
+
<script src="https://static.graphicstone.com/vue.min.js"></script>
|
|
11
|
+
<script src="https://static.graphicstone.com/bimAir/BimAir.umd.min.js"></script>
|
|
12
|
+
</head>
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
<body>
|
|
15
|
+
<style>
|
|
16
|
+
body {
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
height: 100vh;
|
|
20
|
+
}
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
#app {
|
|
23
|
+
height: 100vh;
|
|
24
|
+
position: relative;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
<div id="app">
|
|
28
|
+
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
29
|
+
</div>
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
<script type="text/javascript">
|
|
32
|
+
new Vue({
|
|
33
|
+
el: "#app",
|
|
34
|
+
});
|
|
35
|
+
let options = {
|
|
36
|
+
// viewerType: "model",
|
|
37
|
+
elementId: "viewer",
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
39
|
+
modelService: "https://static.graphicstone.com/modelApi",
|
|
40
|
+
fileService: "https://static.graphicstone.com/fileApi",
|
|
41
|
+
background: "linear-gradient(#e3fcfc, #f6ffff)",
|
|
42
|
+
};
|
|
43
|
+
BimAir.Loader({ url: "https://static.graphicstone.com/bimAir" }).then(
|
|
44
|
+
() => {
|
|
45
|
+
let viewer = new BimAir.Viewer(options);
|
|
46
|
+
viewer
|
|
47
|
+
.loadModels(["626b4d1ebfe39e58ae7b66a2"])
|
|
48
|
+
.then((lightModels) => {
|
|
49
|
+
let points = [
|
|
50
|
+
-2, 3, 0, -2, 0, 0, -2, 0, 0, 2, 0, 0, 2, 0, 0, 2, 3, 0,
|
|
51
|
+
];
|
|
52
|
+
let circle_points =
|
|
53
|
+
BimAir.Longan.GeometryOperators.createRingPoints(
|
|
54
|
+
new Float32Array([0, 3, 0]),
|
|
55
|
+
new Float32Array([1, 0, 0]),
|
|
56
|
+
new Float32Array([0, 1, 0]),
|
|
57
|
+
new Float32Array([
|
|
58
|
+
0,
|
|
59
|
+
Math.PI / 4,
|
|
60
|
+
Math.PI / 2,
|
|
61
|
+
(Math.PI * 3) / 4,
|
|
62
|
+
Math.PI,
|
|
63
|
+
]),
|
|
64
|
+
2
|
|
65
|
+
);
|
|
66
|
+
for (let i = 0; i < circle_points.length; i++) {
|
|
67
|
+
points.push(circle_points[i]);
|
|
68
|
+
}
|
|
54
69
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
let indexes = [points.length / 3];
|
|
71
|
+
for (let i = 0; i < points.length / 3; i++) {
|
|
72
|
+
indexes.push(i);
|
|
73
|
+
}
|
|
74
|
+
// 重复点显示转折
|
|
75
|
+
let inner_points = [
|
|
76
|
+
1.8, 3, 0, 1.8, 0.2, 0, 1.8, 0.2, 0, -1.8, 0.2, 0, -1.8, 0.2, 0,
|
|
77
|
+
-1.8, 3, 0,
|
|
78
|
+
];
|
|
79
|
+
circle_points = BimAir.Longan.GeometryOperators.createRingPoints(
|
|
80
|
+
new Float32Array([0, 3, 0]),
|
|
81
|
+
new Float32Array([1, 0, 0]),
|
|
82
|
+
new Float32Array([0, 1, 0]),
|
|
83
|
+
new Float32Array([
|
|
84
|
+
Math.PI,
|
|
85
|
+
(Math.PI * 3) / 4,
|
|
86
|
+
Math.PI / 2,
|
|
87
|
+
Math.PI / 4,
|
|
88
|
+
0,
|
|
89
|
+
]),
|
|
90
|
+
1.8
|
|
91
|
+
);
|
|
92
|
+
for (let i = 0; i < circle_points.length; i++) {
|
|
93
|
+
inner_points.push(circle_points[i]);
|
|
94
|
+
}
|
|
71
95
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
indexes.push(-inner_points.length / 3);
|
|
97
|
+
for (let i = 0; i < inner_points.length / 3; i++) {
|
|
98
|
+
indexes.push(i + points.length / 3);
|
|
99
|
+
}
|
|
76
100
|
|
|
77
|
-
|
|
101
|
+
console.log("indexes", indexes);
|
|
78
102
|
|
|
79
|
-
|
|
103
|
+
points = points.concat(inner_points);
|
|
80
104
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
105
|
+
console.log("points", points);
|
|
106
|
+
// 重复点显示转折
|
|
107
|
+
let path = [1, 1, 0, 1, 1, 10, 1, 1, 10, 2, 1, 20];
|
|
84
108
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
109
|
+
viewer.utilitySegment.sweepByShell(
|
|
110
|
+
points,
|
|
111
|
+
indexes,
|
|
112
|
+
path,
|
|
113
|
+
"normal=(0,0,1)"
|
|
114
|
+
);
|
|
115
|
+
viewer.updateDisplay();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
</script>
|
|
120
|
+
</body>
|
|
91
121
|
</html>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<title>射线检测</title>
|
|
6
|
+
<link
|
|
7
|
+
rel="stylesheet"
|
|
8
|
+
href="https://static.graphicstone.com/bimAir/BimAir.css"
|
|
9
|
+
/>
|
|
10
|
+
<script src="https://static.graphicstone.com/vue.min.js"></script>
|
|
11
|
+
<script src="https://static.graphicstone.com/bimAir/BimAir.umd.min.js"></script>
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
<style>
|
|
16
|
+
body {
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
height: 100vh;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#app {
|
|
23
|
+
height: 100vh;
|
|
24
|
+
position: relative;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
<div id="app">
|
|
28
|
+
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<script type="text/javascript">
|
|
32
|
+
new Vue({
|
|
33
|
+
el: "#app",
|
|
34
|
+
});
|
|
35
|
+
let options = {
|
|
36
|
+
// viewerType: "model",
|
|
37
|
+
elementId: "viewer",
|
|
38
|
+
|
|
39
|
+
modelService: "https://static.graphicstone.com/modelApi",
|
|
40
|
+
fileService: "https://static.graphicstone.com/fileApi",
|
|
41
|
+
background: "linear-gradient(#e3fcfc, #f6ffff)",
|
|
42
|
+
};
|
|
43
|
+
BimAir.Loader({ url: "https://static.graphicstone.com/bimAir" }).then(
|
|
44
|
+
() => {
|
|
45
|
+
let viewer = new BimAir.Viewer(options);
|
|
46
|
+
viewer.loadModels("626b4d1ebfe39e58ae7b66a2").then((lightModels) => {
|
|
47
|
+
viewer.camera.position = [6.01, 23.81, 1.57];
|
|
48
|
+
viewer.camera.target = [14.54, 15.77, -0.7];
|
|
49
|
+
viewer.camera.up = [0.13, -0.13, 0.98];
|
|
50
|
+
viewer.camera.setField(217.112, 217.112);
|
|
51
|
+
viewer.updateDisplay();
|
|
52
|
+
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
let rays = [
|
|
55
|
+
{
|
|
56
|
+
pos: new Float32Array([14.03, 16.93, 0.5]),
|
|
57
|
+
dir: new Float32Array([0, 1, 0]),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
pos: new Float32Array([14.03, 16.93, 0.5]),
|
|
61
|
+
dir: new Float32Array([1, 0, 0]),
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
pos: new Float32Array([14.03, 16.93, 0.5]),
|
|
65
|
+
dir: new Float32Array([0, -1, 0]),
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
pos: new Float32Array([14.03, 16.93, 0.5]),
|
|
69
|
+
dir: new Float32Array([-1, 0, 0]),
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
for (let i = 0; i < rays.length; i++) {
|
|
74
|
+
let resultPos = viewer.computeRayTest(rays[i].pos, rays[i].dir);
|
|
75
|
+
if (resultPos) {
|
|
76
|
+
viewer.temporaryObjectManager.addLine(
|
|
77
|
+
"线" + i,
|
|
78
|
+
"test" + i,
|
|
79
|
+
rays[i].pos,
|
|
80
|
+
resultPos
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
viewer.updateDisplay();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}, 2000);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
</script>
|
|
91
|
+
</body>
|
|
92
|
+
</html>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<title>立体锚点</title>
|
|
6
|
+
<link
|
|
7
|
+
rel="stylesheet"
|
|
8
|
+
href="https://static.graphicstone.com/bimAir/BimAir.css"
|
|
9
|
+
/>
|
|
10
|
+
<script src="https://static.graphicstone.com/vue.min.js"></script>
|
|
11
|
+
<script src="https://static.graphicstone.com/bimAir/BimAir.umd.min.js"></script>
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
<style>
|
|
16
|
+
body {
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
height: 100vh;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#app {
|
|
23
|
+
height: 100vh;
|
|
24
|
+
position: relative;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
<div id="app">
|
|
28
|
+
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<script type="text/javascript">
|
|
32
|
+
new Vue({
|
|
33
|
+
el: "#app",
|
|
34
|
+
});
|
|
35
|
+
let options = {
|
|
36
|
+
// viewerType: "model",
|
|
37
|
+
elementId: "viewer",
|
|
38
|
+
|
|
39
|
+
modelService: "https://static.graphicstone.com/modelApi",
|
|
40
|
+
fileService: "https://static.graphicstone.com/fileApi",
|
|
41
|
+
background: "linear-gradient(#e3fcfc, #f6ffff)",
|
|
42
|
+
};
|
|
43
|
+
BimAir.Loader({ url: "https://static.graphicstone.com/bimAir" }).then(
|
|
44
|
+
() => {
|
|
45
|
+
let viewer = new BimAir.Viewer(options);
|
|
46
|
+
viewer.loadModels("626b4d1ebfe39e58ae7b66a2").then((lightModels) => {
|
|
47
|
+
let pos = [
|
|
48
|
+
11.398058060132435, -1.746637999828935, 23.098180061450208,
|
|
49
|
+
];
|
|
50
|
+
let target = [
|
|
51
|
+
-14.942065238952637, 19.718231201171875, 4.503608703613281,
|
|
52
|
+
];
|
|
53
|
+
let up = [
|
|
54
|
+
-0.3721429580358232, 0.30326357350764344, 0.877234759780825,
|
|
55
|
+
];
|
|
56
|
+
let width = 217.1120044528568;
|
|
57
|
+
viewer.setSceneCamera(pos, target, up, width, width);
|
|
58
|
+
|
|
59
|
+
let position = [-14.93, 19.539, 4.802];
|
|
60
|
+
let size = 1;
|
|
61
|
+
let speedOfTime = 3;
|
|
62
|
+
let anchorEffectConfig = new BimAir.Animation.AnchorEffectConfig(
|
|
63
|
+
viewer,
|
|
64
|
+
"anchorName1",
|
|
65
|
+
position,
|
|
66
|
+
size,
|
|
67
|
+
speedOfTime
|
|
68
|
+
);
|
|
69
|
+
let anchorEffect = new BimAir.Animation.AnchorEffect(
|
|
70
|
+
anchorEffectConfig
|
|
71
|
+
);
|
|
72
|
+
// 创建锚点.
|
|
73
|
+
anchorEffect.createAnchor().then(() => {
|
|
74
|
+
console.log("anchor created");
|
|
75
|
+
// setTimeout(() => {
|
|
76
|
+
// // 10秒后删除锚点及其动画.
|
|
77
|
+
// anchorEffect.clear(viewer);
|
|
78
|
+
// }, 10000);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
</script>
|
|
84
|
+
</body>
|
|
85
|
+
</html>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<title>通视分析</title>
|
|
6
|
+
<link
|
|
7
|
+
rel="stylesheet"
|
|
8
|
+
href="https://static.graphicstone.com/bimAir/BimAir.css"
|
|
9
|
+
/>
|
|
10
|
+
<script src="https://static.graphicstone.com/vue.min.js"></script>
|
|
11
|
+
<script src="https://static.graphicstone.com/bimAir/BimAir.umd.min.js"></script>
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
<style>
|
|
16
|
+
body {
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
height: 100vh;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#app {
|
|
23
|
+
height: 100vh;
|
|
24
|
+
position: relative;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
<div id="app">
|
|
28
|
+
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<script type="text/javascript">
|
|
32
|
+
new Vue({
|
|
33
|
+
el: "#app",
|
|
34
|
+
});
|
|
35
|
+
let options = {
|
|
36
|
+
// viewerType: "model",
|
|
37
|
+
elementId: "viewer",
|
|
38
|
+
|
|
39
|
+
modelService: "https://static.graphicstone.com/modelApi",
|
|
40
|
+
fileService: "https://static.graphicstone.com/fileApi",
|
|
41
|
+
background: "linear-gradient(#e3fcfc, #f6ffff)",
|
|
42
|
+
};
|
|
43
|
+
BimAir.Loader({ url: "https://static.graphicstone.com/bimAir" }).then(
|
|
44
|
+
() => {
|
|
45
|
+
let viewer = new BimAir.Viewer(options);
|
|
46
|
+
viewer.loadModels("626b4d1ebfe39e58ae7b66a2").then((lightModels) => {
|
|
47
|
+
setTimeout(() => {
|
|
48
|
+
let viewPos = new Float32Array([24.65, -8.09, 15]);
|
|
49
|
+
let targetPos = new Float32Array([
|
|
50
|
+
-7.06, 18.7, 2.41, 17.03, 23.73, -0.72, -20.01, 9.76, 3.99,
|
|
51
|
+
]);
|
|
52
|
+
let visibleColor = new Float32Array([50, 211, 166]);
|
|
53
|
+
let invisibleColor = new Float32Array([235, 0, 29]);
|
|
54
|
+
|
|
55
|
+
let sightlineAnalysisConfig = new SightlineAnalysisConfig(
|
|
56
|
+
viewer,
|
|
57
|
+
viewPos,
|
|
58
|
+
targetPos,
|
|
59
|
+
visibleColor,
|
|
60
|
+
invisibleColor
|
|
61
|
+
);
|
|
62
|
+
let sightlineAnalysisEffect = new SightlineAnalysisEffect(
|
|
63
|
+
sightlineAnalysisConfig
|
|
64
|
+
);
|
|
65
|
+
}, 2000);
|
|
66
|
+
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
</script>
|
|
71
|
+
</body>
|
|
72
|
+
</html>
|
|
@@ -73,7 +73,6 @@
|
|
|
73
73
|
field: 554.132,
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
|
|
77
76
|
let id = "632273cbbc278049a0898a0e";
|
|
78
77
|
let model1 = "632273cfbc278049a0898a12";
|
|
79
78
|
|
|
@@ -92,10 +91,8 @@
|
|
|
92
91
|
this.viewer.camera.setField(aboutCamera.field, aboutCamera.field);
|
|
93
92
|
this.viewer.updateDisplay();
|
|
94
93
|
});
|
|
95
|
-
|
|
96
94
|
})
|
|
97
95
|
|
|
98
|
-
|
|
99
96
|
function setIsolationStyle() {
|
|
100
97
|
this.viewer.isolationManager.material.setColor(120, 250, 0, 0,5);
|
|
101
98
|
}
|
|
@@ -107,8 +104,6 @@
|
|
|
107
104
|
this.viewer.updateDisplay();
|
|
108
105
|
}
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
112
107
|
</script>
|
|
113
108
|
|
|
114
109
|
</body>
|
|
@@ -53,8 +53,6 @@
|
|
|
53
53
|
<button onclick="cancelColor()">取消颜色</button>
|
|
54
54
|
<button onclick="cancelIsolation()">取消隔离</button>
|
|
55
55
|
|
|
56
|
-
<!-- <button onclick="isExistWall()">判断是否存在围栏</button>
|
|
57
|
-
<button onclick="isInside()">判断点是否在围栏内</button> -->
|
|
58
56
|
</div>
|
|
59
57
|
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
60
58
|
|
|
@@ -51,10 +51,6 @@
|
|
|
51
51
|
<button onclick="setAllColor()">设置模型颜色</button>
|
|
52
52
|
<button onclick="setComponentsColor()">设置构件颜色</button>
|
|
53
53
|
<button onclick="cancelAllColor()">取消颜色</button>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<!-- <button onclick="isExistWall()">判断是否存在围栏</button>
|
|
57
|
-
<button onclick="isInside()">判断点是否在围栏内</button> -->
|
|
58
54
|
</div>
|
|
59
55
|
<viewer-wrapper elementId="viewer" style="height: 100%; width: 100%" />
|
|
60
56
|
|