@eturnity/eturnity_3d 7.8.0-EPDM-9779.5 → 7.8.0-splitLine.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.
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eturnity/eturnity_3d",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "7.8.0-
|
|
4
|
+
"version": "7.8.0-splitLine.0",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "vue-cli-service serve --skip-plugins @vue/cli-plugin-eslint",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"prettier": "prettier --write \"**/*.{js,vue}\""
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@eturnity/eturnity_maths": "7.4.0-EPDM-7379.
|
|
13
|
+
"@eturnity/eturnity_maths": "7.4.0-EPDM-7379.4",
|
|
14
14
|
"core-js": "^2.6.12",
|
|
15
15
|
"cors": "^2.8.5",
|
|
16
16
|
"earcut": "^2.2.4",
|
|
@@ -25,23 +25,6 @@ export default {
|
|
|
25
25
|
if (obj.material.dispose) obj.material.dispose()
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
-
clearPanelsFromChangingRoofs(roofIds) {
|
|
29
|
-
const roofs = this.polygons.filter((polygon) =>
|
|
30
|
-
roofIds.includes(polygon.id)
|
|
31
|
-
)
|
|
32
|
-
roofs.forEach((roof) =>
|
|
33
|
-
roof.moduleFields.forEach((mf) =>
|
|
34
|
-
mf.panels.forEach((panel) => {
|
|
35
|
-
let meshTop = this.meshes.panelsMeshes[panel.id + '_top']
|
|
36
|
-
let meshSide = this.meshes.panelsMeshes[panel.id + '_side']
|
|
37
|
-
if (meshTop || meshSide) {
|
|
38
|
-
this.clearMeshFromScene(meshTop, this.scene)
|
|
39
|
-
this.clearMeshFromScene(meshSide, this.scene)
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
)
|
|
43
|
-
)
|
|
44
|
-
},
|
|
45
28
|
clearMeshFromScene(mesh, scene) {
|
|
46
29
|
if (!mesh || !scene) {
|
|
47
30
|
return
|
|
@@ -87,7 +87,11 @@ export default {
|
|
|
87
87
|
cylinder.userData.edgeId = edge.id
|
|
88
88
|
cylinder.userData.type = 'edgeMeshes'
|
|
89
89
|
cylinder.userData.layer = edge.layer
|
|
90
|
+
cylinder.frustumCulled = false
|
|
91
|
+
cylinder.renderOrder = 10
|
|
90
92
|
|
|
93
|
+
cylinder.frustumCulled = false
|
|
94
|
+
cylinder.renderOrder = 10
|
|
91
95
|
this.meshes.edgeMeshes[edge.id] = cylinder
|
|
92
96
|
this.scene.add(cylinder)
|
|
93
97
|
}
|
|
@@ -296,7 +296,6 @@ export default {
|
|
|
296
296
|
method: this.renderRoofsMargin,
|
|
297
297
|
arg: []
|
|
298
298
|
})
|
|
299
|
-
break
|
|
300
299
|
case 'selectedModuleFieldChange':
|
|
301
300
|
methodList.push({
|
|
302
301
|
name: 'renderEdges',
|
|
@@ -380,13 +379,6 @@ export default {
|
|
|
380
379
|
arg: []
|
|
381
380
|
})
|
|
382
381
|
break
|
|
383
|
-
case 'clearPanelFromChangingRoofs':
|
|
384
|
-
methodList.push({
|
|
385
|
-
name: 'clearPanelsFromChangingRoofs',
|
|
386
|
-
method: this.clearPanelsFromChangingRoofs,
|
|
387
|
-
arg: [params.roofIds]
|
|
388
|
-
})
|
|
389
|
-
break
|
|
390
382
|
case 'selectedPanelChange':
|
|
391
383
|
methodList.push({
|
|
392
384
|
name: 'renderModuleFields',
|
|
@@ -119,7 +119,7 @@ export function generateNodes3D(polygons) {
|
|
|
119
119
|
return nodes3D
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
export function generateEdges2D(polygons) {
|
|
122
|
+
export function generateEdges2D(polygons, splitEdgesIds = []) {
|
|
123
123
|
let edges2D = []
|
|
124
124
|
polygons
|
|
125
125
|
.filter((poly) =>
|
|
@@ -162,6 +162,27 @@ export function generateEdges2D(polygons) {
|
|
|
162
162
|
edge2D.id += '_' + polygon.id + '_' + i
|
|
163
163
|
})
|
|
164
164
|
})
|
|
165
|
+
edges2D.forEach((edge2D) => {
|
|
166
|
+
edge2D.isSplit = splitEdgesIds.includes(edge2D.id)
|
|
167
|
+
})
|
|
168
|
+
edges2D.forEach((edge2D) => {
|
|
169
|
+
const isNotSplit = edge2D.belongsTo.every((item, index, array) => {
|
|
170
|
+
const outline0 = array[0].polygon.outline
|
|
171
|
+
const outline1 = item.polygon.outline
|
|
172
|
+
const point0 = outline0[array[0].index]
|
|
173
|
+
const nextPoint0 = outline0[(array[0].index + 1) % outline0.length]
|
|
174
|
+
const point1 = outline1[item.index]
|
|
175
|
+
const nextPoint1 = outline1[(item.index + 1) % outline1.length]
|
|
176
|
+
return isAlmostSameSegment3D(
|
|
177
|
+
[point0, nextPoint0],
|
|
178
|
+
[point1, nextPoint1],
|
|
179
|
+
mmTolerance
|
|
180
|
+
)
|
|
181
|
+
})
|
|
182
|
+
if (!isNotSplit && edge2D.belongsTo.length == 2) {
|
|
183
|
+
edge2D.isSplit = true
|
|
184
|
+
}
|
|
185
|
+
})
|
|
165
186
|
return edges2D
|
|
166
187
|
}
|
|
167
188
|
|