@eturnity/eturnity_3d 7.30.0 → 7.32.1

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 (45) hide show
  1. package/package.json +7 -5
  2. package/src/App.vue +12 -12
  3. package/src/Overlay/AirTeamOverlay.js +15 -15
  4. package/src/Overlay/ImageOverlay.js +10 -10
  5. package/src/Overlay/Overlay.js +8 -8
  6. package/src/Overlay/OverlayFactory.js +1 -1
  7. package/src/assets/theme.js +3 -3
  8. package/src/components/ThreeCanvasViewer.vue +289 -280
  9. package/src/config.js +48 -48
  10. package/src/helper/UpdateRoofModuleFieldRelations.js +5 -5
  11. package/src/helper/UpdateRoofObstacleRelations.js +1 -1
  12. package/src/helper/cameraMixin.js +34 -34
  13. package/src/helper/customProvider.js +0 -1
  14. package/src/helper/initializeThree.js +2 -2
  15. package/src/helper/materialMixin.js +17 -17
  16. package/src/helper/projectedMaterial.js +27 -25
  17. package/src/helper/render/base.js +4 -4
  18. package/src/helper/render/clear.js +9 -8
  19. package/src/helper/render/edge.js +2 -2
  20. package/src/helper/render/geometryHandler.js +15 -15
  21. package/src/helper/render/imageOverlay.js +4 -4
  22. package/src/helper/render/index.js +2 -2
  23. package/src/helper/render/loader.js +4 -4
  24. package/src/helper/render/margin.js +5 -5
  25. package/src/helper/render/mergedGeometry.js +2 -2
  26. package/src/helper/render/moduleField.js +2 -2
  27. package/src/helper/render/node.js +2 -2
  28. package/src/helper/render/obstacle.js +3 -3
  29. package/src/helper/render/overlay.js +3 -3
  30. package/src/helper/render/panel.js +4 -4
  31. package/src/helper/render/projectionMaterial.js +2 -2
  32. package/src/helper/render/roof.js +6 -6
  33. package/src/helper/render/texture.js +3 -3
  34. package/src/helper/render/tile.js +80 -72
  35. package/src/helper/render/tileProjection.js +7 -7
  36. package/src/helper/renderMixin.js +61 -57
  37. package/src/helper/threeMixin.js +10 -8
  38. package/src/main.js +4 -4
  39. package/src/store/hydrateData.js +30 -30
  40. package/src/store/nodesEdgesCreation.js +9 -9
  41. package/src/store/store.js +2 -2
  42. package/src/store/three-d-module.js +8 -8
  43. package/src/utils/constants.js +1 -1
  44. package/src/utils/layers.js +31 -31
  45. package/src/utils/leaflet-config.service.js +13 -13
@@ -5,7 +5,7 @@ import {
5
5
  isAlmostSameSegment2D,
6
6
  isAlmostSameSegment3D,
7
7
  isAlmostSamePoint2D,
8
- verticalProjectionOnPlane
8
+ verticalProjectionOnPlane,
9
9
  } from '@eturnity/eturnity_maths'
10
10
 
11
11
  export function generateNodes2D(polygons) {
@@ -17,7 +17,7 @@ export function generateNodes2D(polygons) {
17
17
  'obstacle',
18
18
  'tmpModuleField',
19
19
  'moduleField',
20
- 'construction'
20
+ 'construction',
21
21
  ].includes(poly.layer)
22
22
  )
23
23
  .forEach((polygon) => {
@@ -39,14 +39,14 @@ export function generateNodes2D(polygons) {
39
39
  id: node2D.id,
40
40
  itemType: 'masterHandle',
41
41
  open: null,
42
- selected: null
42
+ selected: null,
43
43
  }
44
44
  nodes2D.push(node2D)
45
45
  }
46
46
  node2D.belongsTo.push({
47
47
  polygonId: polygon.id,
48
48
  index: i,
49
- polygon
49
+ polygon,
50
50
  })
51
51
  node2D.id += '_' + polygon.id + '_' + i
52
52
  })
@@ -93,14 +93,14 @@ export function generateNodes3D(polygons) {
93
93
  id: node3D.id,
94
94
  itemType: 'masterHandle',
95
95
  open: null,
96
- selected: null
96
+ selected: null,
97
97
  }
98
98
  nodes3D.push(node3D)
99
99
  }
100
100
  node3D.belongsTo.push({
101
101
  polygonId: polygon.id,
102
102
  index: i,
103
- polygon
103
+ polygon,
104
104
  })
105
105
  node3D.id += '_' + polygon.id + '_' + i
106
106
  })
@@ -157,14 +157,14 @@ export function generateEdges2D(polygons, splitEdgesIds = []) {
157
157
  edge2D.belongsTo.push({
158
158
  polygonId: polygon.id,
159
159
  index: i,
160
- polygon
160
+ polygon,
161
161
  })
162
162
  if (polygon.roofs && polygon.roofs.length > 0) {
163
163
  polygon.roofs.forEach((supportRoof) => {
164
164
  edge2D.belongsTo.push({
165
165
  polygonId: supportRoof.id,
166
166
  index: null,
167
- polygon: supportRoof
167
+ polygon: supportRoof,
168
168
  })
169
169
  })
170
170
  }
@@ -270,7 +270,7 @@ export function generateEdges3D(polygons) {
270
270
  edge3D.belongsTo.push({
271
271
  polygonId: polygon.id,
272
272
  index: i,
273
- polygon
273
+ polygon,
274
274
  })
275
275
  edge3D.id += '_' + polygon.id + '_' + i
276
276
  })
@@ -3,6 +3,6 @@ import threeDModule from './three-d-module'
3
3
 
4
4
  export default createStore({
5
5
  modules: {
6
- threeDModule
7
- }
6
+ threeDModule,
7
+ },
8
8
  })
@@ -2,7 +2,7 @@ import {
2
2
  generateNodes2D,
3
3
  generateNodes3D,
4
4
  generateEdges2D,
5
- generateEdges3D
5
+ generateEdges3D,
6
6
  } from './nodesEdgesCreation'
7
7
  import { hydrateData } from './hydrateData.js'
8
8
 
@@ -23,7 +23,7 @@ const init_state = {
23
23
  layout_longitude: null,
24
24
  map_layer: 'googleLayerTerrain',
25
25
  map_zoom: 19,
26
- camera_3d: {}
26
+ camera_3d: {},
27
27
  },
28
28
  //useless state for viewer
29
29
  pvDataMemo: [],
@@ -32,7 +32,7 @@ const init_state = {
32
32
  panelOpacity: 1,
33
33
  selectedMapLayer: null,
34
34
  globalProjectProperties: [],
35
- imageOverlay: null
35
+ imageOverlay: null,
36
36
  }
37
37
 
38
38
  const state = init_state
@@ -101,7 +101,7 @@ const getters = {
101
101
  xMin: Infinity,
102
102
  xMax: -Infinity,
103
103
  yMin: Infinity,
104
- yMax: -Infinity
104
+ yMax: -Infinity,
105
105
  }
106
106
  getters.getRoofs.forEach((polygon) =>
107
107
  polygon.outline.forEach((p) => {
@@ -120,7 +120,7 @@ const getters = {
120
120
  })
121
121
  )
122
122
  return bounds
123
- }
123
+ },
124
124
  }
125
125
 
126
126
  const mutations = {
@@ -156,16 +156,16 @@ const mutations = {
156
156
  },
157
157
  mutate_selectedMapLayer(state, value) {
158
158
  state.selectedMapLayer = value
159
- }
159
+ },
160
160
  }
161
161
 
162
162
  const actions = {
163
- hydrateData
163
+ hydrateData,
164
164
  }
165
165
 
166
166
  export default {
167
167
  state,
168
168
  getters,
169
169
  mutations,
170
- actions
170
+ actions,
171
171
  }
@@ -12,5 +12,5 @@ export const MAP_LAYER_TYPE = {
12
12
  IGN_SATELLITE: 'ignSpainLayer_pnoa_image',
13
13
  IGN_ROAD: 'ignSpainLayer_map',
14
14
  BKG_SATELLITE: 'bkgHexagonGermanyLayer',
15
- GEOPORTAL_SATELLITE: 'geoportail_fr_wmts_ortho_layer'
15
+ GEOPORTAL_SATELLITE: 'geoportail_fr_wmts_ortho_layer',
16
16
  }
@@ -7,19 +7,19 @@ function getLayers() {
7
7
  type: 'hybrid',
8
8
  layerTypeAPI: 'googleLayer',
9
9
  maxNativeZoom: 25,
10
- maxZoom: 25
10
+ maxZoom: 25,
11
11
  })
12
12
  const googleLayerRoadmap = L.gridLayer.googleMutant({
13
13
  type: 'roadmap',
14
14
  layerTypeAPI: 'googleLayerRoadmap',
15
15
  maxNativeZoom: 25,
16
- maxZoom: 25
16
+ maxZoom: 25,
17
17
  })
18
18
  const googleLayerTerrain = L.gridLayer.googleMutant({
19
19
  type: 'terrain',
20
20
  layerTypeAPI: 'googleLayerTerrain',
21
21
  maxNativeZoom: 25,
22
- maxZoom: 25
22
+ maxZoom: 25,
23
23
  })
24
24
  // TODO activate for different users
25
25
  const baseMapLayer = L.tileLayer(
@@ -33,7 +33,7 @@ function getLayers() {
33
33
  minZoom: leafletMapLayersConfig['baseMapLayer']['minZoom'],
34
34
  maxZoom: leafletMapLayersConfig['baseMapLayer']['maxZoom'],
35
35
  maxNativeZoom: leafletMapLayersConfig['baseMapLayer']['maxNativeZoom'],
36
- layerTypeAPI: 'baseMapLayer'
36
+ layerTypeAPI: 'baseMapLayer',
37
37
  }
38
38
  )
39
39
  const baseMapLayerStreetNumber = L.tileLayer(
@@ -48,7 +48,7 @@ function getLayers() {
48
48
  maxZoom: leafletMapLayersConfig['baseMapLayerStreetNumber']['maxZoom'],
49
49
  maxNativeZoom:
50
50
  leafletMapLayersConfig['baseMapLayerStreetNumber']['maxNativeZoom'],
51
- layerTypeAPI: 'baseMapLayerStreetNumber'
51
+ layerTypeAPI: 'baseMapLayerStreetNumber',
52
52
  }
53
53
  )
54
54
  const swisstopoLayer_swissimage = L.tileLayer(
@@ -61,7 +61,7 @@ function getLayers() {
61
61
  maxZoom: leafletMapLayersConfig['swisstopoLayer_swissimage']['maxZoom'],
62
62
  maxNativeZoom:
63
63
  leafletMapLayersConfig['swisstopoLayer_swissimage']['maxNativeZoom'],
64
- layerTypeAPI: 'swisstopoLayer_swissimage'
64
+ layerTypeAPI: 'swisstopoLayer_swissimage',
65
65
  }
66
66
  )
67
67
  const swisstopoLayer_pixelkarte = L.tileLayer(
@@ -74,7 +74,7 @@ function getLayers() {
74
74
  maxZoom: leafletMapLayersConfig['swisstopoLayer_pixelkarte']['maxZoom'],
75
75
  maxNativeZoom:
76
76
  leafletMapLayersConfig['swisstopoLayer_pixelkarte']['maxNativeZoom'],
77
- layerTypeAPI: 'swisstopoLayer_pixelkarte'
77
+ layerTypeAPI: 'swisstopoLayer_pixelkarte',
78
78
  }
79
79
  )
80
80
  const swisstopoLayer_solarenergie_fassade = L.tileLayer(
@@ -92,7 +92,7 @@ function getLayers() {
92
92
  leafletMapLayersConfig['swisstopoLayer_solarenergie_fassade'][
93
93
  'maxNativeZoom'
94
94
  ],
95
- layerTypeAPI: 'swisstopoLayer_solarenergie_fassade'
95
+ layerTypeAPI: 'swisstopoLayer_solarenergie_fassade',
96
96
  }
97
97
  )
98
98
  const swisstopoLayer_solarenergie_roof = L.tileLayer(
@@ -108,7 +108,7 @@ function getLayers() {
108
108
  leafletMapLayersConfig['swisstopoLayer_solarenergie_roof'][
109
109
  'maxNativeZoom'
110
110
  ],
111
- layerTypeAPI: 'swisstopoLayer_solarenergie_roof'
111
+ layerTypeAPI: 'swisstopoLayer_solarenergie_roof',
112
112
  }
113
113
  )
114
114
  const openStreetMapLayer = L.tileLayer(
@@ -121,7 +121,7 @@ function getLayers() {
121
121
  maxZoom: leafletMapLayersConfig['openStreetMapLayer']['maxZoom'],
122
122
  maxNativeZoom:
123
123
  leafletMapLayersConfig['openStreetMapLayer']['maxNativeZoom'],
124
- layerTypeAPI: 'openStreetMapLayer'
124
+ layerTypeAPI: 'openStreetMapLayer',
125
125
  }
126
126
  )
127
127
  const ignLayerPNOAImage = L.tileLayer(
@@ -136,7 +136,7 @@ function getLayers() {
136
136
  maxZoom: leafletMapLayersConfig['ignSpainLayer_pnoa_image']['maxZoom'],
137
137
  maxNativeZoom:
138
138
  leafletMapLayersConfig['ignSpainLayer_pnoa_image']['maxNativeZoom'],
139
- layerTypeAPI: 'ignSpainLayer_pnoa_image'
139
+ layerTypeAPI: 'ignSpainLayer_pnoa_image',
140
140
  }
141
141
  )
142
142
  const ignLayerMap = L.tileLayer(
@@ -151,7 +151,7 @@ function getLayers() {
151
151
  maxZoom: leafletMapLayersConfig['ignSpainLayer_map']['maxZoom'],
152
152
  maxNativeZoom:
153
153
  leafletMapLayersConfig['ignSpainLayer_map']['maxNativeZoom'],
154
- layerTypeAPI: 'ignSpainLayer_map'
154
+ layerTypeAPI: 'ignSpainLayer_map',
155
155
  }
156
156
  )
157
157
  const bkgHexagonImage = L.tileLayer.wms(
@@ -164,7 +164,7 @@ function getLayers() {
164
164
  maxZoom: leafletMapLayersConfig['bkgHexagonGermanyLayer']['maxZoom'],
165
165
  maxNativeZoom:
166
166
  leafletMapLayersConfig['bkgHexagonGermanyLayer']['maxNativeZoom'],
167
- layerTypeAPI: 'bkgHexagonGermanyLayer'
167
+ layerTypeAPI: 'bkgHexagonGermanyLayer',
168
168
  }
169
169
  )
170
170
  const GeoLayer_HR = L.tileLayer(
@@ -185,7 +185,7 @@ function getLayers() {
185
185
  maxZoom: leafletMapLayersConfig['GeoPortal']['maxZoom'],
186
186
  maxNativeZoom: leafletMapLayersConfig['GeoPortal']['maxNativeZoom'],
187
187
  tileSize: 256,
188
- layerTypeAPI: 'geoportail_fr_wmts_ortho_layer'
188
+ layerTypeAPI: 'geoportail_fr_wmts_ortho_layer',
189
189
  }
190
190
  )
191
191
 
@@ -208,7 +208,7 @@ function getLayers() {
208
208
  // query parameters
209
209
  apiVersion: '2022-08-01',
210
210
  tilesetId: 'microsoft.imagery',
211
- subscriptionKey: process.env.VUE_APP_AZURE_MAP_SUBSCRIPTION_KEY
211
+ subscriptionKey: process.env.VUE_APP_AZURE_MAP_SUBSCRIPTION_KEY,
212
212
  }
213
213
  )
214
214
 
@@ -216,78 +216,78 @@ function getLayers() {
216
216
  {
217
217
  name: 'SwissTopo (satellite)',
218
218
  key: 'swisstopoLayer_swissimage',
219
- layerData: swisstopoLayer_swissimage
219
+ layerData: swisstopoLayer_swissimage,
220
220
  },
221
221
  {
222
222
  name: 'SwissTopo (map)',
223
223
  key: 'swisstopoLayer_pixelkarte',
224
- layerData: swisstopoLayer_pixelkarte
224
+ layerData: swisstopoLayer_pixelkarte,
225
225
  },
226
226
  {
227
227
  name: 'SwissTopo (Solar energy: suitability of roofs)',
228
228
  key: 'swisstopoLayer_solarenergie_roof',
229
- layerData: swisstopoLayer_solarenergie_roof
229
+ layerData: swisstopoLayer_solarenergie_roof,
230
230
  },
231
231
  {
232
232
  name: 'SwissTopo (Solarenergie: suitability of facade)',
233
233
  key: 'swisstopoLayer_solarenergie_fassade',
234
- layerData: swisstopoLayer_solarenergie_fassade
234
+ layerData: swisstopoLayer_solarenergie_fassade,
235
235
  },
236
236
  {
237
237
  name: 'OpenStreetMap',
238
238
  key: 'openStreetMapLayer',
239
- layerData: openStreetMapLayer
239
+ layerData: openStreetMapLayer,
240
240
  },
241
241
  {
242
242
  name: 'Google (terrain)',
243
243
  key: 'googleLayerTerrain',
244
- layerData: googleLayerTerrain
244
+ layerData: googleLayerTerrain,
245
245
  },
246
246
  {
247
247
  name: 'Google (roadmap)',
248
248
  key: 'googleLayerRoadmap',
249
- layerData: googleLayerRoadmap
249
+ layerData: googleLayerRoadmap,
250
250
  },
251
251
  {
252
252
  name: 'Google (satellite)',
253
253
  key: 'googleLayer',
254
- layerData: googleLayer
254
+ layerData: googleLayer,
255
255
  },
256
256
  {
257
257
  name: 'Basemap.at (roadmap)',
258
258
  key: 'baseMapLayer',
259
- layerData: baseMapLayer
259
+ layerData: baseMapLayer,
260
260
  },
261
261
  {
262
262
  name: 'Basemap.at (satellite)',
263
263
  key: 'baseMapLayerStreetNumber',
264
- layerData: baseMapLayerStreetNumber
264
+ layerData: baseMapLayerStreetNumber,
265
265
  },
266
266
  {
267
267
  name: 'IGN (PNOA satellite image)',
268
268
  key: 'ignSpainLayer_pnoa_image',
269
- layerData: ignLayerPNOAImage
269
+ layerData: ignLayerPNOAImage,
270
270
  },
271
271
  {
272
272
  name: 'IGN (roadmap)',
273
273
  key: 'ignSpainLayer_map',
274
- layerData: ignLayerMap
274
+ layerData: ignLayerMap,
275
275
  },
276
276
  {
277
277
  name: 'BKG satellite image',
278
278
  key: 'bkgHexagonGermanyLayer',
279
- layerData: bkgHexagonImage
279
+ layerData: bkgHexagonImage,
280
280
  },
281
281
  {
282
282
  name: 'GeoPortal France (satellite)',
283
283
  key: 'geoportail_fr_wmts_ortho_layer',
284
- layerData: GeoLayer_HR
284
+ layerData: GeoLayer_HR,
285
285
  },
286
286
  {
287
287
  name: 'Bing (satellite)',
288
288
  key: 'azureSatelliteLayer',
289
- layerData: azureSatelliteLayer
290
- }
289
+ layerData: azureSatelliteLayer,
290
+ },
291
291
  ]
292
292
  }
293
293
  export default getLayers
@@ -3,70 +3,70 @@ export const leafletMapLayersConfig = {
3
3
  // Basemap.at
4
4
  maxZoom: 21,
5
5
  maxNativeZoom: 19,
6
- minZoom: 0
6
+ minZoom: 0,
7
7
  },
8
8
  baseMapLayerStreetNumber: {
9
9
  // Basemap.at (satellite)
10
10
  maxZoom: 21,
11
11
  maxNativeZoom: 19,
12
- minZoom: 0
12
+ minZoom: 0,
13
13
  },
14
14
  swisstopoLayer_swissimage: {
15
15
  // SwissTopo (satellite)
16
16
  maxZoom: 25,
17
17
  maxNativeZoom: 20,
18
- minZoom: 0
18
+ minZoom: 0,
19
19
  },
20
20
  swisstopoLayer_pixelkarte: {
21
21
  // SwissTopo (map)
22
22
  maxZoom: 25,
23
23
  maxNativeZoom: 18,
24
- minZoom: 0
24
+ minZoom: 0,
25
25
  },
26
26
  swisstopoLayer_solarenergie_fassade: {
27
27
  // SwissTopo (Solarenergie: Eignung Fassaden)
28
28
  maxZoom: 25,
29
29
  maxNativeZoom: 18,
30
- minZoom: 0
30
+ minZoom: 0,
31
31
  },
32
32
  swisstopoLayer_solarenergie_roof: {
33
33
  // SwissTopo (Solar energy: suitability of roofs)
34
34
  maxZoom: 25,
35
35
  maxNativeZoom: 18,
36
- minZoom: 0
36
+ minZoom: 0,
37
37
  },
38
38
  openStreetMapLayer: {
39
39
  // OpenStreetMap
40
40
  maxZoom: 21,
41
41
  maxNativeZoom: 19,
42
- minZoom: 0
42
+ minZoom: 0,
43
43
  },
44
44
  ignSpainLayer_pnoa_image: {
45
45
  // Spain (satellite)
46
46
  maxZoom: 25,
47
47
  maxNativeZoom: 20,
48
- minZoom: 0
48
+ minZoom: 0,
49
49
  },
50
50
  ignSpainLayer_map: {
51
51
  // Spain (map)
52
52
  maxZoom: 25,
53
53
  maxNativeZoom: 20,
54
- minZoom: 0
54
+ minZoom: 0,
55
55
  },
56
56
  bkgHexagonGermanyLayer: {
57
57
  // Germany (satellite)
58
58
  maxZoom: 25,
59
59
  maxNativeZoom: 22,
60
- minZoom: 0
60
+ minZoom: 0,
61
61
  },
62
62
  GeoPortal: {
63
63
  maxZoom: 22,
64
64
  maxNativeZoom: 19,
65
- minZoom: 6
65
+ minZoom: 6,
66
66
  },
67
67
  azureSatelliteLayer: {
68
68
  maxZoom: 25,
69
69
  maxNativeZoom: 19,
70
- minZoom: 1
71
- }
70
+ minZoom: 1,
71
+ },
72
72
  }