fl-web-component 0.1.0 → 1.0.0

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.
Files changed (85) hide show
  1. package/README.md +35 -24
  2. package/dist/fl-web-component.common.js +27308 -65
  3. package/dist/fl-web-component.common.js.map +1 -1
  4. package/dist/fl-web-component.css +1 -1
  5. package/dist/fl-web-component.umd.js +27308 -65
  6. package/dist/fl-web-component.umd.js.map +1 -1
  7. package/dist/fl-web-component.umd.min.js +13 -1
  8. package/dist/fl-web-component.umd.min.js.map +1 -1
  9. package/package.json +80 -47
  10. package/packages/components/button/index.vue +16 -12
  11. package/packages/components/com-card/card-page.vue +102 -0
  12. package/packages/components/com-card/index.vue +53 -0
  13. package/packages/components/com-dialogWrapper/Readme.md +53 -0
  14. package/packages/components/com-dialogWrapper/index.vue +98 -0
  15. package/packages/components/com-flcanvas/components/bspline.js +91 -0
  16. package/packages/components/com-flcanvas/components/entityFormatting.js +503 -0
  17. package/packages/components/com-flcanvas/components/round10.js +24 -0
  18. package/packages/components/com-flcanvas/index.vue +259 -0
  19. package/packages/components/com-formDialog/Readme.md +409 -0
  20. package/packages/components/com-formDialog/index.vue +471 -0
  21. package/packages/components/com-graphics/index.vue +1073 -0
  22. package/packages/components/com-graphics/per-control.vue +109 -0
  23. package/packages/components/com-graphics/pid.vue +168 -0
  24. package/packages/components/com-page/index.vue +101 -0
  25. package/packages/components/com-selectTree/Readme.md +17 -0
  26. package/packages/components/com-selectTree/index.vue +236 -0
  27. package/packages/components/com-table/column-default.vue +71 -0
  28. package/packages/components/com-table/column-dynamic.vue +36 -0
  29. package/packages/components/com-table/column-menu.vue +71 -0
  30. package/packages/components/com-table/column-slot.vue +53 -0
  31. package/packages/components/com-table/column.vue +41 -0
  32. package/packages/components/com-table/config.js +21 -0
  33. package/packages/components/com-table/index.vue +281 -0
  34. package/packages/components/com-table/table-page.vue +106 -0
  35. package/packages/components/com-tabs/index.vue +50 -0
  36. package/packages/components/com-treeDynamic/Readme.md +271 -0
  37. package/packages/components/com-treeDynamic/index.vue +207 -0
  38. package/packages/components/model/api/index.js +59 -67
  39. package/packages/components/model/api/mock/detecttree.js +38 -38
  40. package/packages/components/model/api/mock/getmodel-line.js +15830 -79332
  41. package/packages/components/model/api/mock/init.js +1 -1
  42. package/packages/components/model/api/mock/pbstree.js +486 -495
  43. package/packages/components/model/components/TextOverTooltip/index.vue +3 -3
  44. package/packages/components/model/components/annotation-toolbar.vue +4 -19
  45. package/packages/components/model/components/check-proofing-model.vue +26 -29
  46. package/packages/components/model/components/clipping-type.vue +22 -14
  47. package/packages/components/model/components/com-dialogWrapper/index.vue +22 -25
  48. package/packages/components/model/components/detect-panel.vue +38 -26
  49. package/packages/components/model/components/detect-tree.vue +9 -24
  50. package/packages/components/model/components/firstPer-panel.vue +23 -25
  51. package/packages/components/model/components/header-button.vue +31 -107
  52. package/packages/components/model/components/imageViewer/index.vue +34 -35
  53. package/packages/components/model/components/import-model.vue +127 -127
  54. package/packages/components/model/components/location-panel.vue +25 -29
  55. package/packages/components/model/components/measure-type.vue +15 -15
  56. package/packages/components/model/components/pbs-tree.vue +139 -144
  57. package/packages/components/model/components/proof-config.vue +2 -10
  58. package/packages/components/model/components/proof-for-pc.vue +35 -32
  59. package/packages/components/model/components/proof-history.vue +136 -154
  60. package/packages/components/model/components/proof-panel-detail.vue +166 -165
  61. package/packages/components/model/components/proof-panel.vue +281 -205
  62. package/packages/components/model/components/proof-project-user.vue +13 -50
  63. package/packages/components/model/components/proof-publish.vue +130 -130
  64. package/packages/components/model/components/proof-role.vue +93 -124
  65. package/packages/components/model/components/props-panel.vue +63 -54
  66. package/packages/components/model/index.vue +3225 -3213
  67. package/packages/components/model/utils/annotation-tool.js +75 -82
  68. package/packages/components/model/utils/cursor.js +15 -10
  69. package/packages/components/model/utils/detect-v1.js +23 -35
  70. package/packages/components/model/utils/index.js +25 -25
  71. package/packages/components/model/utils/threejs/measure-angle.js +180 -180
  72. package/packages/components/model/utils/threejs/measure-area.js +196 -184
  73. package/packages/components/model/utils/threejs/measure-distance.js +154 -152
  74. package/packages/components/model/utils/threejs/measure-volume.js +64 -61
  75. package/patches/camera-controls+2.9.0.patch +63 -0
  76. package/src/assets/test.png +0 -0
  77. package/src/assets/worker.glb +0 -0
  78. package/src/main.js +27 -0
  79. package/src/utils/flgltf-parser.js +141 -0
  80. package/src/utils/instance-parser.js +402 -0
  81. package/src/utils/mock.js +84746 -0
  82. package/src/utils/threejs/measure-angle.js +240 -0
  83. package/src/utils/threejs/measure-area.js +249 -0
  84. package/src/utils/threejs/measure-distance.js +195 -0
  85. package/packages/index.js +0 -24
@@ -1,258 +1,258 @@
1
- import * as THREE from 'three'
2
- import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer'
3
- var _this = null
4
- var MeasureAngle = function(renderer, scene, camera, width, height) {
5
- this.renderer = renderer
6
- this.scene = scene
7
- this.camera = camera
8
- this.pointArray = [] // 保存当前操作所添加的点
9
- this.raycaster = new THREE.Raycaster()
10
- this.points = [] // 保存页面中所添加的点
11
- this.polyline = [] //保存页面中所添加的直线
12
- this.labels = [] // 保存页面中所添加的文本
13
- this.curves = [] // 保存页面所有的曲线
14
- this.tempPoints = undefined
15
- this.tempLine = undefined
16
- this.tempLabel = undefined
17
- this.tipsLabel = undefined
18
- this.isCompleted = false
19
- this.curveLine = undefined
20
- this.timer = null
21
- this.width = width
22
- this.height = height
1
+ import * as THREE from 'three';
2
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
3
+ var _this = null;
4
+ var MeasureAngle = function (renderer, scene, camera, width, height) {
5
+ this.renderer = renderer;
6
+ this.scene = scene;
7
+ this.camera = camera;
8
+ this.pointArray = []; // 保存当前操作所添加的点
9
+ this.raycaster = new THREE.Raycaster();
10
+ this.points = []; // 保存页面中所添加的点
11
+ this.polyline = []; //保存页面中所添加的直线
12
+ this.labels = []; // 保存页面中所添加的文本
13
+ this.curves = []; // 保存页面所有的曲线
14
+ this.tempPoints = undefined;
15
+ this.tempLine = undefined;
16
+ this.tempLabel = undefined;
17
+ this.tipsLabel = undefined;
18
+ this.isCompleted = false;
19
+ this.curveLine = undefined;
20
+ this.timer = null;
21
+ this.width = width;
22
+ this.height = height;
23
23
  // this.POINT_MATERIAL = new THREE.PointsMaterial({ color: 0xff5000, size: 1, opacity: 0.6, transparent: true, depthWrite: false, depthTest: false })
24
24
  // this.LINE_MATERIAL = new THREE.LineBasicMaterial({ color: 0xff0000, linewidth: 3, opacity: 0.8, transparent: true, side: THREE.DoubleSide, depthWrite: false, depthTest: false })
25
- }
25
+ };
26
26
 
27
27
  MeasureAngle.prototype = {
28
28
  start() {
29
- _this = this
30
- this.renderer.domElement.style.cursor = 'crosshair'
31
- this.renderer.domElement.addEventListener('click', this.click, false)
32
- this.renderer.domElement.addEventListener('mousemove', this.mousemove, false)
33
- this.renderer.domElement.addEventListener('contextmenu', this.rightClick, false)
29
+ _this = this;
30
+ this.renderer.domElement.style.cursor = 'crosshair';
31
+ this.renderer.domElement.addEventListener('click', this.click, false);
32
+ this.renderer.domElement.addEventListener('mousemove', this.mousemove, false);
33
+ this.renderer.domElement.addEventListener('contextmenu', this.rightClick, false);
34
34
  },
35
35
  updateParams(width, height) {
36
- this.camera.aspect = width / height
37
- this.camera.updateProjectionMatrix()
38
- this.renderer.setSize(width, height, true)
39
- this.width = width
40
- this.height = height
36
+ this.camera.aspect = width / height;
37
+ this.camera.updateProjectionMatrix();
38
+ this.renderer.setSize(width, height, true);
39
+ this.width = width;
40
+ this.height = height;
41
41
  },
42
42
  getPosition(e) {
43
- const mouse = new THREE.Vector2()
44
- mouse.x = (e.clientX / _this.width) * 2 - 1
45
- mouse.y = -(e.clientY / _this.height) * 2 + 1
46
- _this.raycaster.setFromCamera(mouse, this.camera)
47
- let intersects = _this.raycaster.intersectObjects(_this.scene.children, true)
48
- if(intersects.length > 0) {
49
- return intersects[0].point
43
+ const mouse = new THREE.Vector2();
44
+ mouse.x = (e.clientX / _this.width) * 2 - 1;
45
+ mouse.y = -(e.clientY / _this.height) * 2 + 1;
46
+ _this.raycaster.setFromCamera(mouse, this.camera);
47
+ let intersects = _this.raycaster.intersectObjects(_this.scene.children, true);
48
+ if (intersects.length > 0) {
49
+ return intersects[0].point;
50
50
  }
51
- return null
51
+ return null;
52
52
  },
53
- createPoints(pos, config = {color: 0x009bea, size: 0.3}) {
54
- const mesh = new THREE.MeshBasicMaterial({color: config.color || 0x009bea})
55
- const geom = new THREE.SphereGeometry(config.size || 0.3, 28, 28)
56
- const sphere = new THREE.Mesh(geom, mesh)
57
- sphere.position.set(pos.x, pos.y, pos.z)
58
- return sphere
53
+ createPoints(pos, config = { color: 0x009bea, size: 0.3 }) {
54
+ const mesh = new THREE.MeshBasicMaterial({ color: config.color || 0x009bea });
55
+ const geom = new THREE.SphereGeometry(config.size || 0.3, 28, 28);
56
+ const sphere = new THREE.Mesh(geom, mesh);
57
+ sphere.position.set(pos.x, pos.y, pos.z);
58
+ return sphere;
59
59
  },
60
- createLine(p1, p2, config={color: 0xff0000}) {
61
- const lineMaterial = new THREE.LineBasicMaterial({ color: config.color, linewidth: 10 })
62
- const lineGeometry = new THREE.BufferGeometry().setFromPoints([p1, p2])
63
- const line = new THREE.Line(lineGeometry, lineMaterial)
60
+ createLine(p1, p2, config = { color: 0xff0000 }) {
61
+ const lineMaterial = new THREE.LineBasicMaterial({ color: config.color, linewidth: 10 });
62
+ const lineGeometry = new THREE.BufferGeometry().setFromPoints([p1, p2]);
63
+ const line = new THREE.Line(lineGeometry, lineMaterial);
64
64
  line.frustumCulled = false;
65
65
 
66
- return line
66
+ return line;
67
67
  },
68
68
  createLabel(name, text, position) {
69
- const div = document.createElement('div')
70
- div.className = name
71
- div.textContent = text
72
- const divLabel = new CSS2DObject(div)
73
- divLabel.position.set(position.x, position.y, position.z)
74
- return divLabel
69
+ const div = document.createElement('div');
70
+ div.className = name;
71
+ div.textContent = text;
72
+ const divLabel = new CSS2DObject(div);
73
+ divLabel.position.set(position.x, position.y, position.z);
74
+ return divLabel;
75
75
  },
76
76
  mousemove(e) {
77
- if (_this.isCompleted || _this.pointArray.length === 0) return
78
- const point = _this.getPosition(e)
77
+ if (_this.isCompleted || _this.pointArray.length === 0) return;
78
+ const point = _this.getPosition(e);
79
79
  if (point) {
80
- _this.pointArray.length === 1 ? _this.pointArray.push(point) : _this.pointArray.splice(_this.pointArray.length - 1, 1, point)
81
- const length = _this.pointArray.length
82
- const p1 = _this.pointArray[length - 2]
83
- const p2 = _this.pointArray[length - 1]
80
+ _this.pointArray.length === 1
81
+ ? _this.pointArray.push(point)
82
+ : _this.pointArray.splice(_this.pointArray.length - 1, 1, point);
83
+ const length = _this.pointArray.length;
84
+ const p1 = _this.pointArray[length - 2];
85
+ const p2 = _this.pointArray[length - 1];
84
86
  if (_this.tempPoints) {
85
- _this.tempPoints.position.set(point.x, point.y, point.z)
87
+ _this.tempPoints.position.set(point.x, point.y, point.z);
86
88
  } else {
87
- const geom = _this.createLabel('circle-tag', '', point)
88
- _this.tempPoints = geom
89
- _this.points.push(geom)
90
- _this.scene.add(geom)
89
+ const geom = _this.createLabel('circle-tag', '', point);
90
+ _this.tempPoints = geom;
91
+ _this.points.push(geom);
92
+ _this.scene.add(geom);
91
93
  }
92
94
  if (_this.tempLine) {
93
- _this.tempLine.geometry.setFromPoints([p1, p2])
95
+ _this.tempLine.geometry.setFromPoints([p1, p2]);
94
96
  } else {
95
- _this.tempLine = _this.createLine(p1, p2)
96
- _this.polyline.push(_this.tempLine)
97
- _this.scene.add(_this.tempLine)
97
+ _this.tempLine = _this.createLine(p1, p2);
98
+ _this.polyline.push(_this.tempLine);
99
+ _this.scene.add(_this.tempLine);
98
100
  }
99
101
  // 三点构成一个角
100
102
  if (_this.pointArray.length === 3) {
101
- const angle = _this.calculateAngle().toFixed(2) + '°'
102
- const p0 = _this.pointArray[0]
103
- const p1 = _this.pointArray[1]
104
- const p2 = _this.pointArray[2]
105
- const v1 = new THREE.Vector3((p0.x + p1.x) / 2, (p0.y + p1.y) / 2, (p0.z + p1.z) / 2)
106
- const v2 = new THREE.Vector3((p1.x + p2.x) / 2, (p1.y + p2.y) / 2, (p1.z + p2.z) / 2)
107
- const curve = new THREE.CatmullRomCurve3(
108
- [v1, v2]
109
- )
110
- const points = curve.getPoints(50)
103
+ const angle = _this.calculateAngle().toFixed(2) + '°';
104
+ const p0 = _this.pointArray[0];
105
+ const p1 = _this.pointArray[1];
106
+ const p2 = _this.pointArray[2];
107
+ const v1 = new THREE.Vector3((p0.x + p1.x) / 2, (p0.y + p1.y) / 2, (p0.z + p1.z) / 2);
108
+ const v2 = new THREE.Vector3((p1.x + p2.x) / 2, (p1.y + p2.y) / 2, (p1.z + p2.z) / 2);
109
+ const curve = new THREE.CatmullRomCurve3([v1, v2]);
110
+ const points = curve.getPoints(50);
111
111
  if (_this.tempLabel) {
112
- _this.tempLabel.element.textContent = angle
113
- _this.tempLabel.position.set(p1.x, p1.y, p1.z)
114
- _this.curveLine.geometry.setFromPoints(points)
112
+ _this.tempLabel.element.textContent = angle;
113
+ _this.tempLabel.position.set(p1.x, p1.y, p1.z);
114
+ _this.curveLine.geometry.setFromPoints(points);
115
115
  } else {
116
- _this.tempLabel = _this.createLabel('measure-label', angle, p1)
117
- _this.labels.push(_this.tempLabel)
118
- _this.scene.add(_this.tempLabel)
119
- _this.createCurve(points)
116
+ _this.tempLabel = _this.createLabel('measure-label', angle, p1);
117
+ _this.labels.push(_this.tempLabel);
118
+ _this.scene.add(_this.tempLabel);
119
+ _this.createCurve(points);
120
120
  }
121
121
  }
122
122
  if (_this.tipsLabel) {
123
- _this.tipsLabel.position.set(point.x + 0.1, point.y, point.z + 0.05)
123
+ _this.tipsLabel.position.set(point.x + 0.1, point.y, point.z + 0.05);
124
124
  }
125
125
  }
126
126
  },
127
127
  createTipsLabel(label, position) {
128
- const div = document.createElement('div')
129
- div.className = 'tips-label'
130
- div.textContent = label
131
- div.style = 'top: -50px'
132
- const tipsLabel = new CSS2DObject(div)
133
- tipsLabel.position.set(position.x + 0.1, position.y, position.z + 0.05)
134
- return tipsLabel
128
+ const div = document.createElement('div');
129
+ div.className = 'tips-label';
130
+ div.textContent = label;
131
+ div.style = 'top: -50px';
132
+ const tipsLabel = new CSS2DObject(div);
133
+ tipsLabel.position.set(position.x + 0.1, position.y, position.z + 0.05);
134
+ return tipsLabel;
135
135
  },
136
136
  click(e) {
137
137
  if (_this.isCompleted) {
138
- _this.renderer.domElement.addEventListener('mousemove', _this.mousemove)
138
+ _this.renderer.domElement.addEventListener('mousemove', _this.mousemove);
139
139
  }
140
- clearTimeout(_this.timer)
140
+ clearTimeout(_this.timer);
141
141
  _this.timer = setTimeout(() => {
142
- _this.isCompleted = false
143
- const point = _this.getPosition(e)
142
+ _this.isCompleted = false;
143
+ const point = _this.getPosition(e);
144
144
  if (point) {
145
- if(_this.tipsLabel) {
146
- _this.tipsLabel.position.set(point.x + 0.1, point.y, point.z + 0.05)
145
+ if (_this.tipsLabel) {
146
+ _this.tipsLabel.position.set(point.x + 0.1, point.y, point.z + 0.05);
147
147
  } else {
148
- _this.tipsLabel = _this.createTipsLabel('左击绘制右击结束', point)
149
- _this.scene.add(_this.tipsLabel)
148
+ _this.tipsLabel = _this.createTipsLabel('左击绘制右击结束', point);
149
+ _this.scene.add(_this.tipsLabel);
150
150
  }
151
151
  if (_this.tempPoints) {
152
- _this.tempPoints.position.set(point.x, point.y, point.z)
153
- _this.tempPoints = undefined
152
+ _this.tempPoints.position.set(point.x, point.y, point.z);
153
+ _this.tempPoints = undefined;
154
154
  } else {
155
- const geom =_this.createLabel('circle-tag', '', point)
156
- _this.points.push(geom)
157
- _this.scene.add(geom)
155
+ const geom = _this.createLabel('circle-tag', '', point);
156
+ _this.points.push(geom);
157
+ _this.scene.add(geom);
158
158
  }
159
- _this.tempLine = undefined
160
- _this.tempLabel = undefined
161
- _this.pointArray.push(point)
159
+ _this.tempLine = undefined;
160
+ _this.tempLabel = undefined;
161
+ _this.pointArray.push(point);
162
162
  }
163
- })
163
+ });
164
164
  },
165
165
  rightClick(e) {
166
- if(_this.tipsLabel) {
167
- _this.scene.remove(_this.tipsLabel)
168
- _this.tipsLabel = undefined
166
+ if (_this.tipsLabel) {
167
+ _this.scene.remove(_this.tipsLabel);
168
+ _this.tipsLabel = undefined;
169
169
  }
170
- clearTimeout(_this.timer)
171
- const point = _this.getPosition(e)
170
+ clearTimeout(_this.timer);
171
+ const point = _this.getPosition(e);
172
172
  // if (point) {
173
- if (_this.pointArray.length <= 3) {
174
- _this.scene.remove(_this.points[_this.points.length-1])
175
- _this.scene.remove(_this.points[_this.points.length-2])
173
+ if (_this.pointArray.length <= 3) {
174
+ _this.scene.remove(_this.points[_this.points.length - 1]);
175
+ _this.scene.remove(_this.points[_this.points.length - 2]);
176
176
 
177
- if(_this.pointArray.length == 3){
178
- _this.scene.remove(_this.points[_this.points.length-3])
177
+ if (_this.pointArray.length == 3) {
178
+ _this.scene.remove(_this.points[_this.points.length - 3]);
179
179
 
180
- _this.scene.remove(_this.polyline[_this.polyline.length-1])
181
- _this.scene.remove(_this.polyline[_this.polyline.length-2])
180
+ _this.scene.remove(_this.polyline[_this.polyline.length - 1]);
181
+ _this.scene.remove(_this.polyline[_this.polyline.length - 2]);
182
182
 
183
- _this.scene.remove(_this.curves[_this.curves.length-1])
183
+ _this.scene.remove(_this.curves[_this.curves.length - 1]);
184
184
 
185
- _this.scene.remove(_this.tempLabel)
186
- }
185
+ _this.scene.remove(_this.tempLabel);
187
186
  }
188
- _this.scene.remove(_this.tempPoints)
189
- _this.scene.remove(_this.tempLine)
190
-
191
- _this.isCompleted = true
192
- _this.tempPoints = undefined
193
- _this.tempLine = undefined
194
- _this.tempLabel = undefined
195
- _this.pointArray.splice(0)
196
- _this.renderer.domElement.removeEventListener('mousemove', _this.mousemove)
187
+ }
188
+ _this.scene.remove(_this.tempPoints);
189
+ _this.scene.remove(_this.tempLine);
190
+
191
+ _this.isCompleted = true;
192
+ _this.tempPoints = undefined;
193
+ _this.tempLine = undefined;
194
+ _this.tempLabel = undefined;
195
+ _this.pointArray.splice(0);
196
+ _this.renderer.domElement.removeEventListener('mousemove', _this.mousemove);
197
197
  // }
198
198
  },
199
199
  close() {
200
- this.renderer.domElement.removeEventListener('mousemove', this.mousemove)
201
- this.renderer.domElement.removeEventListener('click', this.click)
202
- this.renderer.domElement.removeEventListener('contextmenu', this.rightClick)
203
- this.remove(this.points)
204
- this.remove(this.polyline)
205
- this.remove(this.labels)
206
- this.remove(this.curves)
207
- this.pointArray.splice(0)
208
- this.points.splice(0)
209
- this.polyline.splice(0)
210
- this.labels.splice(0)
211
- this.curves.splice(0)
212
- this.tempPoints = undefined
213
- this.tempLabel = undefined
214
- this.tempLine = undefined
215
- this.scene.remove(this.tipsLabel)
216
- this.tipsLabel = undefined
217
- this.renderer.domElement.style.cursor = 'pointer'
200
+ this.renderer.domElement.removeEventListener('mousemove', this.mousemove);
201
+ this.renderer.domElement.removeEventListener('click', this.click);
202
+ this.renderer.domElement.removeEventListener('contextmenu', this.rightClick);
203
+ this.remove(this.points);
204
+ this.remove(this.polyline);
205
+ this.remove(this.labels);
206
+ this.remove(this.curves);
207
+ this.pointArray.splice(0);
208
+ this.points.splice(0);
209
+ this.polyline.splice(0);
210
+ this.labels.splice(0);
211
+ this.curves.splice(0);
212
+ this.tempPoints = undefined;
213
+ this.tempLabel = undefined;
214
+ this.tempLine = undefined;
215
+ this.scene.remove(this.tipsLabel);
216
+ this.tipsLabel = undefined;
217
+ this.renderer.domElement.style.cursor = 'pointer';
218
218
  },
219
219
  remove(array) {
220
220
  for (let index = 0; index < array.length; index++) {
221
- const element = array[index]
221
+ const element = array[index];
222
222
  if (element.geometry) {
223
- element.geometry.dispose()
223
+ element.geometry.dispose();
224
224
  }
225
- this.scene.remove(element)
225
+ this.scene.remove(element);
226
226
  }
227
227
  },
228
228
  calculateAngle() {
229
- const p1 = _this.pointArray[1].clone()
230
- const p2 = _this.pointArray[1].clone()
231
- const dir0 = p1.sub(_this.pointArray[0]).clone()
232
- const dir1 = p2.sub(_this.pointArray[2]).clone()
233
- const angle = dir0.angleTo(dir1)
234
- return angle * 180 / Math.PI
229
+ const p1 = _this.pointArray[1].clone();
230
+ const p2 = _this.pointArray[1].clone();
231
+ const dir0 = p1.sub(_this.pointArray[0]).clone();
232
+ const dir1 = p2.sub(_this.pointArray[2]).clone();
233
+ const angle = dir0.angleTo(dir1);
234
+ return (angle * 180) / Math.PI;
235
235
  },
236
236
  createCurve(points) {
237
- const geom = new THREE.BufferGeometry().setFromPoints(points)
238
- const material = new THREE.LineBasicMaterial({color: 0xff0000})
239
- _this.curveLine = new THREE.Line(geom, material)
240
- _this.curves.push(_this.curveLine)
241
- _this.scene.add(_this.curveLine)
237
+ const geom = new THREE.BufferGeometry().setFromPoints(points);
238
+ const material = new THREE.LineBasicMaterial({ color: 0xff0000 });
239
+ _this.curveLine = new THREE.Line(geom, material);
240
+ _this.curves.push(_this.curveLine);
241
+ _this.scene.add(_this.curveLine);
242
242
  },
243
243
  numberToString(num) {
244
244
  if (num < 0.0001) {
245
- return num.toString()
245
+ return num.toString();
246
246
  }
247
- let fractionDigits = 2
247
+ let fractionDigits = 2;
248
248
  if (num < 0.01) {
249
- fractionDigits = 4
249
+ fractionDigits = 4;
250
250
  } else if (num < 0.1) {
251
- fractionDigits = 3
251
+ fractionDigits = 3;
252
252
  }
253
- return num.toFixed(fractionDigits)
254
- }
255
- }
253
+ return num.toFixed(fractionDigits);
254
+ },
255
+ };
256
256
  export default {
257
- MeasureAngle
258
- }
257
+ MeasureAngle,
258
+ };