@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.
- package/package.json +7 -5
- package/src/App.vue +12 -12
- package/src/Overlay/AirTeamOverlay.js +15 -15
- package/src/Overlay/ImageOverlay.js +10 -10
- package/src/Overlay/Overlay.js +8 -8
- package/src/Overlay/OverlayFactory.js +1 -1
- package/src/assets/theme.js +3 -3
- package/src/components/ThreeCanvasViewer.vue +289 -280
- package/src/config.js +48 -48
- package/src/helper/UpdateRoofModuleFieldRelations.js +5 -5
- package/src/helper/UpdateRoofObstacleRelations.js +1 -1
- package/src/helper/cameraMixin.js +34 -34
- package/src/helper/customProvider.js +0 -1
- package/src/helper/initializeThree.js +2 -2
- package/src/helper/materialMixin.js +17 -17
- package/src/helper/projectedMaterial.js +27 -25
- package/src/helper/render/base.js +4 -4
- package/src/helper/render/clear.js +9 -8
- package/src/helper/render/edge.js +2 -2
- package/src/helper/render/geometryHandler.js +15 -15
- package/src/helper/render/imageOverlay.js +4 -4
- package/src/helper/render/index.js +2 -2
- package/src/helper/render/loader.js +4 -4
- package/src/helper/render/margin.js +5 -5
- package/src/helper/render/mergedGeometry.js +2 -2
- package/src/helper/render/moduleField.js +2 -2
- package/src/helper/render/node.js +2 -2
- package/src/helper/render/obstacle.js +3 -3
- package/src/helper/render/overlay.js +3 -3
- package/src/helper/render/panel.js +4 -4
- package/src/helper/render/projectionMaterial.js +2 -2
- package/src/helper/render/roof.js +6 -6
- package/src/helper/render/texture.js +3 -3
- package/src/helper/render/tile.js +80 -72
- package/src/helper/render/tileProjection.js +7 -7
- package/src/helper/renderMixin.js +61 -57
- package/src/helper/threeMixin.js +10 -8
- package/src/main.js +4 -4
- package/src/store/hydrateData.js +30 -30
- package/src/store/nodesEdgesCreation.js +9 -9
- package/src/store/store.js +2 -2
- package/src/store/three-d-module.js +8 -8
- package/src/utils/constants.js +1 -1
- package/src/utils/layers.js +31 -31
- package/src/utils/leaflet-config.service.js +13 -13
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eturnity/eturnity_3d",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.32.1",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"prettier": "prettier --write \"**/*.{js,vue}\""
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@eturnity/eturnity_maths": "7.
|
|
18
|
+
"@eturnity/eturnity_maths": "7.32.0",
|
|
19
19
|
"@originjs/vite-plugin-commonjs": "1.0.3",
|
|
20
20
|
"core-js": "2.6.12",
|
|
21
21
|
"cors": "2.8.5",
|
|
@@ -36,12 +36,14 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@vitejs/plugin-vue": "2.0.1",
|
|
38
38
|
"@vue/compiler-sfc": "3.3.4",
|
|
39
|
+
"@vue/eslint-config-standard": "8.0.1",
|
|
39
40
|
"eslint": "8.0.1",
|
|
40
|
-
"eslint-config-prettier": "
|
|
41
|
-
"eslint-plugin-prettier": "
|
|
41
|
+
"eslint-config-prettier": "8.8.0",
|
|
42
|
+
"eslint-plugin-prettier": "4.2.1",
|
|
42
43
|
"eslint-plugin-vue": "9.14.1",
|
|
43
44
|
"html-webpack-plugin": "3.2.0",
|
|
44
|
-
"prettier": "2.8.4",
|
|
45
|
+
"prettier": "^2.8.4",
|
|
46
|
+
"prettier-plugin-vue": "^1.1.6",
|
|
45
47
|
"vite": "2.7.2",
|
|
46
48
|
"vite-plugin-env-compatible": "^2.0.1",
|
|
47
49
|
"webpack": "4.46.0",
|
package/src/App.vue
CHANGED
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
</template>
|
|
9
9
|
|
|
10
10
|
<script>
|
|
11
|
-
import { mapState } from 'vuex'
|
|
12
|
-
import ThreeCanvas from './components/ThreeCanvasViewer.vue'
|
|
13
|
-
export default {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
import { mapState } from 'vuex'
|
|
12
|
+
import ThreeCanvas from './components/ThreeCanvasViewer.vue'
|
|
13
|
+
export default {
|
|
14
|
+
components: {
|
|
15
|
+
ThreeCanvas,
|
|
16
|
+
},
|
|
17
|
+
computed: {
|
|
18
|
+
...mapState({
|
|
19
|
+
uuid: (state) => state.uuid,
|
|
20
|
+
view_mode: (state) => state.view_mode,
|
|
21
|
+
}),
|
|
22
|
+
},
|
|
22
23
|
}
|
|
23
|
-
}
|
|
24
24
|
</script>
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
verticalProjectionOnPlane,
|
|
15
15
|
vectorLength2D,
|
|
16
16
|
deltaLatLngToDistance,
|
|
17
|
-
rotateTransformation
|
|
17
|
+
rotateTransformation,
|
|
18
18
|
} from '@eturnity/eturnity_maths'
|
|
19
19
|
let Paper
|
|
20
20
|
export default class AirTeamOverlay extends Overlay {
|
|
@@ -78,7 +78,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
78
78
|
'textured_facade',
|
|
79
79
|
'textured_environment',
|
|
80
80
|
'textured_roof',
|
|
81
|
-
'plain_roof_simplified'
|
|
81
|
+
'plain_roof_simplified',
|
|
82
82
|
].includes(child.name)
|
|
83
83
|
)
|
|
84
84
|
model.children.forEach((child) => {
|
|
@@ -101,7 +101,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
101
101
|
obj.children.forEach((child) => {
|
|
102
102
|
this.set3DObjectMaterialOpacity(child, this.opacity)
|
|
103
103
|
})
|
|
104
|
-
if (obj.material && obj.name!='plain_roof_simplified') {
|
|
104
|
+
if (obj.material && obj.name != 'plain_roof_simplified') {
|
|
105
105
|
obj.visible = this.opacity > 0
|
|
106
106
|
obj.material.opacity = this.opacity
|
|
107
107
|
obj.material.transparent = this.opacity < 1
|
|
@@ -120,7 +120,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
120
120
|
const material = new THREE.MeshBasicMaterial({
|
|
121
121
|
color: 0xffffff, // Grey color
|
|
122
122
|
transparent: true,
|
|
123
|
-
opacity // 50% transparent
|
|
123
|
+
opacity, // 50% transparent
|
|
124
124
|
})
|
|
125
125
|
// Create the mesh and add it to the scene
|
|
126
126
|
waitingBall = new THREE.Mesh(geometry, material)
|
|
@@ -264,7 +264,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
264
264
|
const circle = new Paper.Path.Circle({
|
|
265
265
|
center: toCanvasRef({ x: 0, y: 0 }),
|
|
266
266
|
radius: 50,
|
|
267
|
-
fillColor: '#ffffff80'
|
|
267
|
+
fillColor: '#ffffff80',
|
|
268
268
|
})
|
|
269
269
|
circle.radius = 70
|
|
270
270
|
circle.itemData = 'circle'
|
|
@@ -301,7 +301,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
301
301
|
loadImageOverlay(url, corners) {
|
|
302
302
|
let rasterImageOverlay = new Paper.Raster({
|
|
303
303
|
source: url,
|
|
304
|
-
crossOrigin: 'Anonymous'
|
|
304
|
+
crossOrigin: 'Anonymous',
|
|
305
305
|
})
|
|
306
306
|
rasterImageOverlay.visible = false
|
|
307
307
|
rasterImageOverlay.onLoad = () => {
|
|
@@ -407,7 +407,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
407
407
|
this.positionOffset.z = 0
|
|
408
408
|
this.emit('overlay-offset-position-error', { id: this.id })
|
|
409
409
|
}
|
|
410
|
-
this.geoLocalisation={x,y}
|
|
410
|
+
this.geoLocalisation = { x, y }
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
413
|
initialiseVerticalProjectionImg() {
|
|
@@ -427,23 +427,23 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
427
427
|
{
|
|
428
428
|
x: 1000 * (boxCenter.x + left),
|
|
429
429
|
y: 1000 * (boxCenter.y + top),
|
|
430
|
-
z: 0
|
|
430
|
+
z: 0,
|
|
431
431
|
},
|
|
432
432
|
{
|
|
433
433
|
x: 1000 * (boxCenter.x + right),
|
|
434
434
|
y: 1000 * (boxCenter.y + top),
|
|
435
|
-
z: 0
|
|
435
|
+
z: 0,
|
|
436
436
|
},
|
|
437
437
|
{
|
|
438
438
|
x: 1000 * (boxCenter.x + right),
|
|
439
439
|
y: 1000 * (boxCenter.y + bottom),
|
|
440
|
-
z: 0
|
|
440
|
+
z: 0,
|
|
441
441
|
},
|
|
442
442
|
{
|
|
443
443
|
x: 1000 * (boxCenter.x + left),
|
|
444
444
|
y: 1000 * (boxCenter.y + bottom),
|
|
445
|
-
z: 0
|
|
446
|
-
}
|
|
445
|
+
z: 0,
|
|
446
|
+
},
|
|
447
447
|
]
|
|
448
448
|
this.corners = []
|
|
449
449
|
initialCorners.forEach((corner, index) => {
|
|
@@ -471,7 +471,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
471
471
|
|
|
472
472
|
const renderer = new THREE.WebGLRenderer({
|
|
473
473
|
canvas: canvas,
|
|
474
|
-
alpha: true
|
|
474
|
+
alpha: true,
|
|
475
475
|
})
|
|
476
476
|
renderer.setSize(this.canvasWidth, this.canvasHeight)
|
|
477
477
|
renderer.setClearColor(0x000000, 0) // Make background transparent
|
|
@@ -540,7 +540,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
540
540
|
for (let j = 0; j < stepNum; j++) {
|
|
541
541
|
const testPoint = {
|
|
542
542
|
x: xMin + (i * (xMax - xMin)) / stepNum,
|
|
543
|
-
y: yMin + (j * (yMax - yMin)) / stepNum
|
|
543
|
+
y: yMin + (j * (yMax - yMin)) / stepNum,
|
|
544
544
|
}
|
|
545
545
|
if (isInsidePolygon(testPoint, outline)) {
|
|
546
546
|
RayCaster.set(
|
|
@@ -599,7 +599,7 @@ export default class AirTeamOverlay extends Overlay {
|
|
|
599
599
|
return {
|
|
600
600
|
version: this.version,
|
|
601
601
|
corners: this.corners,
|
|
602
|
-
geoLocalisation: this.geoLocalisation
|
|
602
|
+
geoLocalisation: this.geoLocalisation,
|
|
603
603
|
}
|
|
604
604
|
}
|
|
605
605
|
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
substractVector,
|
|
8
8
|
getAngleInDegFromCanvasVector,
|
|
9
9
|
normalize2DVector,
|
|
10
|
-
vectorLength2D
|
|
10
|
+
vectorLength2D,
|
|
11
11
|
} from '@eturnity/eturnity_maths'
|
|
12
12
|
let Paper
|
|
13
13
|
export default class ImageOverlay extends Overlay {
|
|
@@ -73,25 +73,25 @@ export default class ImageOverlay extends Overlay {
|
|
|
73
73
|
const initialHeightMm = ratio * initialWidthMm
|
|
74
74
|
const cornersTopLeft = {
|
|
75
75
|
x: -initialWidthMm / 2,
|
|
76
|
-
y: initialHeightMm / 2
|
|
76
|
+
y: initialHeightMm / 2,
|
|
77
77
|
}
|
|
78
78
|
const cornersTopRight = {
|
|
79
79
|
x: initialWidthMm / 2,
|
|
80
|
-
y: initialHeightMm / 2
|
|
80
|
+
y: initialHeightMm / 2,
|
|
81
81
|
}
|
|
82
82
|
const cornersBottomLeft = {
|
|
83
83
|
x: -initialWidthMm / 2,
|
|
84
|
-
y: -initialHeightMm / 2
|
|
84
|
+
y: -initialHeightMm / 2,
|
|
85
85
|
}
|
|
86
86
|
const cornersBottomRight = {
|
|
87
87
|
x: initialWidthMm / 2,
|
|
88
|
-
y: -initialHeightMm / 2
|
|
88
|
+
y: -initialHeightMm / 2,
|
|
89
89
|
}
|
|
90
90
|
const corners = [
|
|
91
91
|
cornersTopLeft,
|
|
92
92
|
cornersTopRight,
|
|
93
93
|
cornersBottomRight,
|
|
94
|
-
cornersBottomLeft
|
|
94
|
+
cornersBottomLeft,
|
|
95
95
|
]
|
|
96
96
|
return corners
|
|
97
97
|
}
|
|
@@ -171,7 +171,7 @@ export default class ImageOverlay extends Overlay {
|
|
|
171
171
|
? new Paper.Raster(this.img)
|
|
172
172
|
: new Paper.Raster({
|
|
173
173
|
source: url,
|
|
174
|
-
crossOrigin: 'Anonymous'
|
|
174
|
+
crossOrigin: 'Anonymous',
|
|
175
175
|
})
|
|
176
176
|
rasterImageOverlay.onLoad = () => {
|
|
177
177
|
this.applyRasterToCorners(rasterImageOverlay, corners)
|
|
@@ -265,7 +265,7 @@ export default class ImageOverlay extends Overlay {
|
|
|
265
265
|
addVector(
|
|
266
266
|
addVector(corners[k], multiplyVector(squareSize / 2, u)),
|
|
267
267
|
multiplyVector(squareSize / 2, v)
|
|
268
|
-
)
|
|
268
|
+
),
|
|
269
269
|
]
|
|
270
270
|
let squareHandle
|
|
271
271
|
|
|
@@ -303,10 +303,10 @@ export default class ImageOverlay extends Overlay {
|
|
|
303
303
|
scaleParams: {
|
|
304
304
|
points: this.points,
|
|
305
305
|
distance: this.distance,
|
|
306
|
-
mmPerPx: this.mmPerPx
|
|
306
|
+
mmPerPx: this.mmPerPx,
|
|
307
307
|
},
|
|
308
308
|
corners: this.corners,
|
|
309
|
-
version: this.version
|
|
309
|
+
version: this.version,
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
}
|
package/src/Overlay/Overlay.js
CHANGED
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
rotateTransformation,
|
|
7
7
|
substractVector,
|
|
8
8
|
getDistanceBetweenPoints,
|
|
9
|
-
getAngleInDegFromCanvasVector
|
|
9
|
+
getAngleInDegFromCanvasVector,
|
|
10
10
|
} from '@eturnity/eturnity_maths'
|
|
11
11
|
import {
|
|
12
12
|
updateBufferRoofGeometry,
|
|
13
|
-
getBufferRoofGeometry
|
|
13
|
+
getBufferRoofGeometry,
|
|
14
14
|
} from '../helper/render/geometryHandler'
|
|
15
15
|
import * as THREE from 'three'
|
|
16
16
|
import ProjectedMaterial from '../helper/projectedMaterial'
|
|
@@ -30,12 +30,12 @@ export default class Overlay extends Item {
|
|
|
30
30
|
{ x: 10000, y: 7000 },
|
|
31
31
|
{ x: 10000, y: -7000 },
|
|
32
32
|
{ x: -10000, y: -7000 },
|
|
33
|
-
{ x: -10000, y: 7000 }
|
|
33
|
+
{ x: -10000, y: 7000 },
|
|
34
34
|
]
|
|
35
35
|
this.positionOffset = overlay.settings.positionOffset || {
|
|
36
36
|
x: 0,
|
|
37
37
|
y: 0,
|
|
38
|
-
z: 0
|
|
38
|
+
z: 0,
|
|
39
39
|
}
|
|
40
40
|
this.angleOffset = overlay.settings.angleOffset || 0
|
|
41
41
|
this.imageUrl = null
|
|
@@ -156,7 +156,7 @@ export default class Overlay extends Item {
|
|
|
156
156
|
camera: this.overlayProjectionCamera,
|
|
157
157
|
texture,
|
|
158
158
|
transparent: true,
|
|
159
|
-
side: THREE.DoubleSide
|
|
159
|
+
side: THREE.DoubleSide,
|
|
160
160
|
})
|
|
161
161
|
|
|
162
162
|
imageOverlayProjectionMaterial.userData = {}
|
|
@@ -202,7 +202,7 @@ export default class Overlay extends Item {
|
|
|
202
202
|
const boxSize = {
|
|
203
203
|
x: getDistanceBetweenPoints(this.corners[0], this.corners[1]) / 1000,
|
|
204
204
|
y: getDistanceBetweenPoints(this.corners[1], this.corners[2]) / 1000,
|
|
205
|
-
z: 0
|
|
205
|
+
z: 0,
|
|
206
206
|
}
|
|
207
207
|
if (
|
|
208
208
|
this.overlayProjectionCamera.left != -boxSize.x / 2 ||
|
|
@@ -248,11 +248,11 @@ export default class Overlay extends Item {
|
|
|
248
248
|
...this.settings,
|
|
249
249
|
positionOffset: this.positionOffset,
|
|
250
250
|
angleOffset: this.angleOffset,
|
|
251
|
-
...this.serializeSettings()
|
|
251
|
+
...this.serializeSettings(),
|
|
252
252
|
},
|
|
253
253
|
type: this.type,
|
|
254
254
|
is_active: this.isActive,
|
|
255
|
-
resources: this.resources
|
|
255
|
+
resources: this.resources,
|
|
256
256
|
}
|
|
257
257
|
return serializedOverlay
|
|
258
258
|
}
|
package/src/assets/theme.js
CHANGED
|
@@ -27,7 +27,7 @@ const theme = {
|
|
|
27
27
|
transparentBlack1: '#263238e6',
|
|
28
28
|
transparentBlue1: '#20a4cae6',
|
|
29
29
|
blueElectric: '#66dffa',
|
|
30
|
-
eturnityGrey: '#263238'
|
|
30
|
+
eturnityGrey: '#263238',
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
screen: {
|
|
@@ -35,9 +35,9 @@ const theme = {
|
|
|
35
35
|
mobile: '425px',
|
|
36
36
|
mobileLarge: '530px',
|
|
37
37
|
tablet: '768px',
|
|
38
|
-
tabletLarge: '950px'
|
|
38
|
+
tabletLarge: '950px',
|
|
39
39
|
},
|
|
40
|
-
borderRadius: '4px'
|
|
40
|
+
borderRadius: '4px',
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export default theme
|