@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-EPDM-9779.5",
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.1",
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
 
@@ -8,7 +8,7 @@ import { hydrateData } from './hydrateData.js'
8
8
 
9
9
  const init_state = {
10
10
  isLoading: false,
11
-
11
+
12
12
  polygons: [],
13
13
  nodes: [],
14
14
  edges: [],