@eturnity/eturnity_3d 6.33.0-qa.3 → 6.34.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/.eslintrc.json +18 -0
- package/package.json +5 -9
- package/src/App.vue +16 -16
- package/src/assets/theme.js +4 -4
- package/src/components/ThreeCanvasViewer.vue +44 -56
- package/src/config.js +65 -139
- package/src/helper/MapView.js +241 -214
- package/src/helper/UpdateRoofModuleFieldRelations.js +23 -17
- package/src/helper/UpdateRoofObstacleRelations.js +41 -48
- package/src/helper/cameraMixin.js +93 -97
- package/src/helper/customProvider.js +28 -28
- package/src/helper/geo-three.module.js +1903 -0
- package/src/helper/materialMixin.js +70 -86
- package/src/helper/materials.js +49 -64
- package/src/helper/render/background.js +5 -2
- package/src/helper/render/base.js +40 -43
- package/src/helper/render/clear.js +84 -96
- package/src/helper/render/edge.js +65 -59
- package/src/helper/render/geometryHandler.js +128 -166
- package/src/helper/render/imageOverlay.js +106 -157
- package/src/helper/render/index.js +3 -23
- package/src/helper/render/loader.js +34 -34
- package/src/helper/render/mapProjection.js +74 -88
- package/src/helper/render/margin.js +50 -46
- package/src/helper/render/moduleField.js +24 -26
- package/src/helper/render/node.js +43 -43
- package/src/helper/render/obstacle.js +48 -50
- package/src/helper/render/panel.js +79 -85
- package/src/helper/render/projectionMaterial.js +51 -56
- package/src/helper/render/roof.js +133 -137
- package/src/helper/render/texture.js +17 -17
- package/src/helper/renderMixin.js +38 -31
- package/src/helper/threeMixin.js +104 -43
- package/src/main.js +18 -22
- package/src/store/AddMargin.js +83 -87
- package/src/store/hydrateData.js +30 -40
- package/src/store/nodesEdgesCreation.js +160 -177
- package/src/store/three-d-module.js +27 -41
- package/.editorconfig +0 -5
- package/src/helper/render/tile.js +0 -427
- package/src/helper/render/tileProjection.js +0 -124
- package/src/utils/cancellablePromise.js +0 -23
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"env": {
|
|
3
|
+
"browser": true,
|
|
4
|
+
"es2021": true
|
|
5
|
+
},
|
|
6
|
+
"extends": "plugin:vue/vue3-essential",
|
|
7
|
+
"overrides": [
|
|
8
|
+
],
|
|
9
|
+
"parserOptions": {
|
|
10
|
+
"ecmaVersion": "latest",
|
|
11
|
+
"sourceType": "module"
|
|
12
|
+
},
|
|
13
|
+
"plugins": [
|
|
14
|
+
"vue"
|
|
15
|
+
],
|
|
16
|
+
"rules": {
|
|
17
|
+
}
|
|
18
|
+
}
|
package/package.json
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eturnity/eturnity_3d",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.34.0",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "vue-cli-service serve --skip-plugins @vue/cli-plugin-eslint",
|
|
8
|
-
"build": "vue-cli-service build --skip-plugins @vue/cli-plugin-eslint"
|
|
9
|
-
"lint": "eslint --fix --ext .js,.vue ./src",
|
|
10
|
-
"prettier": "prettier --write \"**/*.{js,vue}\""
|
|
8
|
+
"build": "vue-cli-service build --skip-plugins @vue/cli-plugin-eslint"
|
|
11
9
|
},
|
|
12
10
|
"dependencies": {
|
|
13
|
-
"@eturnity/eturnity_maths": "6.
|
|
11
|
+
"@eturnity/eturnity_maths": "6.34.0",
|
|
14
12
|
"axios": "^1.3.2",
|
|
15
13
|
"core-js": "^2.6.12",
|
|
16
14
|
"cors": "^2.8.5",
|
|
@@ -34,7 +32,6 @@
|
|
|
34
32
|
"@vue/cli-plugin-babel": "^3.12.1",
|
|
35
33
|
"@vue/cli-plugin-eslint": "^3.12.1",
|
|
36
34
|
"@vue/cli-service": "^3.12.1",
|
|
37
|
-
"babel-eslint": "^10.1.0",
|
|
38
35
|
"babel-loader": "^8.3.0",
|
|
39
36
|
"eslint": "5.16.0",
|
|
40
37
|
"eslint-config-prettier": "6.15.0",
|
|
@@ -42,8 +39,7 @@
|
|
|
42
39
|
"eslint-plugin-vue": "5.2.3",
|
|
43
40
|
"html-webpack-plugin": "^3.2.0",
|
|
44
41
|
"webpack": "^4.46.0",
|
|
45
|
-
"webpack-cli": "^4.10.0"
|
|
46
|
-
"prettier": "2.8.4"
|
|
42
|
+
"webpack-cli": "^4.10.0"
|
|
47
43
|
},
|
|
48
44
|
"eslintConfig": {
|
|
49
45
|
"root": true,
|
|
@@ -73,4 +69,4 @@
|
|
|
73
69
|
"> 1%",
|
|
74
70
|
"last 2 versions"
|
|
75
71
|
]
|
|
76
|
-
}
|
|
72
|
+
}
|
package/src/App.vue
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="frame" :style="{
|
|
2
|
+
<div class="frame" :style="{height:'100%'}">
|
|
3
3
|
<ThreeCanvas />
|
|
4
4
|
</div>
|
|
5
5
|
</template>
|
|
6
6
|
|
|
7
7
|
<script>
|
|
8
|
-
import {
|
|
9
|
-
import ThreeCanvas from './components/ThreeCanvasViewer.vue'
|
|
10
|
-
export default {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
import {mapState} from 'vuex'
|
|
9
|
+
import ThreeCanvas from './components/ThreeCanvasViewer.vue'
|
|
10
|
+
export default {
|
|
11
|
+
components:{
|
|
12
|
+
ThreeCanvas
|
|
13
|
+
},
|
|
14
|
+
computed:{
|
|
15
|
+
...mapState({
|
|
16
|
+
uuid:(state)=>state.uuid,
|
|
17
|
+
view_mode:(state)=>state.view_mode,
|
|
18
|
+
})
|
|
19
|
+
}
|
|
19
20
|
}
|
|
20
|
-
}
|
|
21
21
|
</script>
|
|
22
22
|
|
|
23
23
|
<style scoped>
|
|
24
|
-
.frame
|
|
25
|
-
width:
|
|
26
|
-
height:
|
|
24
|
+
.frame{
|
|
25
|
+
width:100%;
|
|
26
|
+
height:100%;
|
|
27
27
|
}
|
|
28
28
|
</style>
|
package/src/assets/theme.js
CHANGED
|
@@ -18,15 +18,15 @@ const theme = {
|
|
|
18
18
|
grey3: '#b2b9c5',
|
|
19
19
|
grey4: '#dee2eb',
|
|
20
20
|
grey5: '#fafafa',
|
|
21
|
-
grey6: '#555d61',
|
|
22
|
-
turquoise:
|
|
21
|
+
grey6: '#555d61',
|
|
22
|
+
turquoise:'#20A4CA',
|
|
23
23
|
green: '#99db0c',
|
|
24
24
|
purple: '#505ca6',
|
|
25
25
|
disabled: '#dfe1e1',
|
|
26
26
|
transparentWhite1: '#ffffff32',
|
|
27
27
|
transparentBlack1: '#263238e6',
|
|
28
|
-
transparentBlue1:
|
|
29
|
-
blueElectric:
|
|
28
|
+
transparentBlue1:'#20a4cae6',
|
|
29
|
+
blueElectric:'#66dffa',
|
|
30
30
|
eturnityGrey: '#263238'
|
|
31
31
|
},
|
|
32
32
|
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
class="canvas3DContainer"
|
|
4
|
-
ref="canvas3DContainer"
|
|
5
|
-
:style="{ height: '100%' }"
|
|
6
|
-
crossorigin
|
|
7
|
-
/>
|
|
2
|
+
<div class="canvas3DContainer" ref="canvas3DContainer" :style="{height:'100%'}" crossorigin />
|
|
8
3
|
</template>
|
|
9
4
|
|
|
10
5
|
<script>
|
|
11
|
-
import { mapActions, mapState, mapGetters,
|
|
6
|
+
import { mapActions, mapState, mapGetters,mapMutations } from 'vuex'
|
|
12
7
|
import * as THREE from 'three'
|
|
13
8
|
import { addVector, multiplyVector } from '@eturnity/eturnity_maths'
|
|
14
9
|
import { updateComputedGeometryPolygon } from '@eturnity/eturnity_maths'
|
|
@@ -30,14 +25,14 @@ export default {
|
|
|
30
25
|
1,
|
|
31
26
|
1000
|
|
32
27
|
),
|
|
33
|
-
provider:
|
|
34
|
-
|
|
28
|
+
provider:null,
|
|
29
|
+
cameraprojection: null,
|
|
35
30
|
texture: null,
|
|
36
31
|
renderer: new THREE.WebGLRenderer({
|
|
37
32
|
antialias: true,
|
|
38
33
|
preserveDrawingBuffer: true
|
|
39
34
|
}),
|
|
40
|
-
orbitControl:
|
|
35
|
+
orbitControl:null,
|
|
41
36
|
raycaster: new THREE.Raycaster(),
|
|
42
37
|
loader: new THREE.TextureLoader(),
|
|
43
38
|
pointer: { x: 0, y: 0 },
|
|
@@ -58,10 +53,10 @@ export default {
|
|
|
58
53
|
camera: false
|
|
59
54
|
},
|
|
60
55
|
screenshotable: false,
|
|
61
|
-
areModuleFieldsVisible:
|
|
56
|
+
areModuleFieldsVisible:false
|
|
62
57
|
}
|
|
63
58
|
},
|
|
64
|
-
mixins: [renderMixin,
|
|
59
|
+
mixins: [renderMixin,threeMixin,materialMixin],
|
|
65
60
|
async mounted() {
|
|
66
61
|
await this.hydrateData(this.geometryData)
|
|
67
62
|
this.renderer.domElement.style.width = '100%'
|
|
@@ -72,13 +67,11 @@ export default {
|
|
|
72
67
|
await this.loadPanelsTexture()
|
|
73
68
|
this.renderGeometry()
|
|
74
69
|
this.onWindowResize()
|
|
75
|
-
this.updateProjectionMaterials()
|
|
70
|
+
// this.updateProjectionMaterials()
|
|
76
71
|
this.animate()
|
|
77
|
-
this.$root.$on('on-roofSelected',
|
|
78
|
-
this.setCameraOrthogonalTo(polygon)
|
|
79
|
-
)
|
|
72
|
+
this.$root.$on('on-roofSelected',(polygon)=>this.setCameraOrthogonalTo(polygon))
|
|
80
73
|
this.initializeProjectionMaterial()
|
|
81
|
-
|
|
74
|
+
|
|
82
75
|
const polygon = this.polygons.find((p) => p.id == this.uuid)
|
|
83
76
|
this.setCamera(polygon, this.view_mode)
|
|
84
77
|
this.isReady.geometry = true
|
|
@@ -89,7 +82,7 @@ export default {
|
|
|
89
82
|
uuid: (state) => state.threeDModule.uuid,
|
|
90
83
|
view_mode: (state) => state.threeDModule.view_mode,
|
|
91
84
|
isInteractive: (state) => state.threeDModule.isInteractive,
|
|
92
|
-
imageOverlay: (state) => state.threeDModule.imageOverlay
|
|
85
|
+
imageOverlay: (state) => state.threeDModule.imageOverlay,
|
|
93
86
|
}),
|
|
94
87
|
...mapGetters({
|
|
95
88
|
polygons: 'getPolygons',
|
|
@@ -113,7 +106,7 @@ export default {
|
|
|
113
106
|
setModuleTextureVersionId: 'mutate_moduleTextureVersionId'
|
|
114
107
|
}),
|
|
115
108
|
setCamera(polygon, view_mode) {
|
|
116
|
-
let margin
|
|
109
|
+
let margin=0.2
|
|
117
110
|
if (!polygon || view_mode == 'global') {
|
|
118
111
|
let roofsBounds = this.roofsBounds
|
|
119
112
|
const position = [0, 0, 100]
|
|
@@ -121,12 +114,9 @@ export default {
|
|
|
121
114
|
this.orthographicCamera.position.set(...position)
|
|
122
115
|
this.orthographicCamera.lookAt(...target)
|
|
123
116
|
this.isReady.camera = true
|
|
124
|
-
|
|
125
|
-
let {
|
|
126
|
-
|
|
127
|
-
margin
|
|
128
|
-
)
|
|
129
|
-
|
|
117
|
+
|
|
118
|
+
let {xMin,xMax,yMin,yMax}=this.orthographicBounds(roofsBounds,margin)
|
|
119
|
+
|
|
130
120
|
this.orthographicCamera.left = xMin / 1000
|
|
131
121
|
this.orthographicCamera.right = xMax / 1000
|
|
132
122
|
this.orthographicCamera.top = yMax / 1000
|
|
@@ -163,8 +153,7 @@ export default {
|
|
|
163
153
|
const targetVector = polygonRef.meanPoint
|
|
164
154
|
//const target=[targetVector.x/1000,targetVector.y/1000,targetVector.z/1000]
|
|
165
155
|
let cameraMoveVector = { x: 0, y: 0, z: 0 }
|
|
166
|
-
let flatRoof
|
|
167
|
-
polygonRef.normalVector.x == 0 && polygonRef.normalVector.y == 0
|
|
156
|
+
let flatRoof=polygonRef.normalVector.x==0 && polygonRef.normalVector.y==0
|
|
168
157
|
if (view_mode == 'ortho') {
|
|
169
158
|
cameraMoveVector = multiplyVector(
|
|
170
159
|
distance * 1000,
|
|
@@ -172,17 +161,14 @@ export default {
|
|
|
172
161
|
)
|
|
173
162
|
} else if (view_mode == 'top') {
|
|
174
163
|
let polygonBounds = polygonRef.getBounds()
|
|
175
|
-
polygonBounds.xMin
|
|
176
|
-
polygonBounds.xMax
|
|
177
|
-
polygonBounds.yMin
|
|
178
|
-
polygonBounds.yMax
|
|
179
|
-
const position = [0,
|
|
164
|
+
polygonBounds.xMin-=1000
|
|
165
|
+
polygonBounds.xMax+=1000
|
|
166
|
+
polygonBounds.yMin-=1000
|
|
167
|
+
polygonBounds.yMax+=1000
|
|
168
|
+
const position = [0,0, 100]
|
|
180
169
|
const target = [0, 0, 0]
|
|
181
170
|
|
|
182
|
-
let {
|
|
183
|
-
polygonBounds,
|
|
184
|
-
margin
|
|
185
|
-
)
|
|
171
|
+
let {xMin,xMax,yMin,yMax}=this.orthographicBounds(polygonBounds,margin)
|
|
186
172
|
this.orthographicCamera.position.set(...position)
|
|
187
173
|
this.orthographicCamera.lookAt(...target)
|
|
188
174
|
|
|
@@ -206,7 +192,7 @@ export default {
|
|
|
206
192
|
}
|
|
207
193
|
|
|
208
194
|
const positionVector = addVector(polygonRef.meanPoint, cameraMoveVector)
|
|
209
|
-
if
|
|
195
|
+
if(flatRoof) positionVector.z+=3000
|
|
210
196
|
const position = [
|
|
211
197
|
positionVector.x / 1000,
|
|
212
198
|
positionVector.y / 1000 - 1,
|
|
@@ -220,32 +206,34 @@ export default {
|
|
|
220
206
|
this.isReady.camera = true
|
|
221
207
|
}
|
|
222
208
|
},
|
|
223
|
-
orthographicBounds(bounds,
|
|
224
|
-
let ratioCanvas
|
|
209
|
+
orthographicBounds(bounds,margin){
|
|
210
|
+
let ratioCanvas=this.canvasHeight/this.canvasWidth
|
|
225
211
|
|
|
226
|
-
let width = (bounds.xMax - bounds.xMin) * (1 + margin)
|
|
227
|
-
let height = (bounds.yMax - bounds.yMin) * (1 + margin)
|
|
228
|
-
let ratio = height / width
|
|
229
212
|
|
|
230
|
-
let
|
|
231
|
-
let
|
|
213
|
+
let width=(bounds.xMax-bounds.xMin)*(1+margin)
|
|
214
|
+
let height=(bounds.yMax-bounds.yMin)*(1+margin)
|
|
215
|
+
let ratio=height/width
|
|
216
|
+
|
|
217
|
+
let xCenter=(bounds.xMax+bounds.xMin)/2
|
|
218
|
+
let yCenter=(bounds.yMax+bounds.yMin)/2
|
|
232
219
|
let xMin
|
|
233
220
|
let xMax
|
|
234
221
|
let yMin
|
|
235
222
|
let yMax
|
|
236
|
-
if
|
|
223
|
+
if(ratioCanvas<ratio){
|
|
237
224
|
//canvas wider
|
|
238
|
-
xMin
|
|
239
|
-
xMax
|
|
240
|
-
yMin
|
|
241
|
-
yMax
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
225
|
+
xMin=xCenter-height/(2*ratioCanvas)
|
|
226
|
+
xMax=xCenter+height/(2*ratioCanvas)
|
|
227
|
+
yMin=yCenter-height/2
|
|
228
|
+
yMax=yCenter+height/2
|
|
229
|
+
|
|
230
|
+
}else{
|
|
231
|
+
xMin=xCenter-width/2
|
|
232
|
+
xMax=xCenter+width/2
|
|
233
|
+
yMin=yCenter-(width*ratioCanvas/2)
|
|
234
|
+
yMax=yCenter+(width*ratioCanvas/2)
|
|
247
235
|
}
|
|
248
|
-
return {
|
|
236
|
+
return {xMin,xMax,yMin,yMax}
|
|
249
237
|
},
|
|
250
238
|
animate() {
|
|
251
239
|
this.render()
|
|
@@ -266,7 +254,7 @@ export default {
|
|
|
266
254
|
} else {
|
|
267
255
|
this.renderer.render(this.scene, this.camera)
|
|
268
256
|
}
|
|
269
|
-
}
|
|
257
|
+
},
|
|
270
258
|
},
|
|
271
259
|
watch: {
|
|
272
260
|
isReady: {
|
package/src/config.js
CHANGED
|
@@ -1,153 +1,79 @@
|
|
|
1
1
|
import theme from './assets/theme'
|
|
2
|
-
export const polygonCloseTolerance
|
|
2
|
+
export const polygonCloseTolerance=15
|
|
3
3
|
export const snapToPointTolerance = 15
|
|
4
4
|
export const snapToIntersectionPointTolerance = 15
|
|
5
5
|
export const snapToLineTolerance = 10
|
|
6
6
|
export const distanceToCloseNode = 70
|
|
7
|
-
export const mmTolerance
|
|
8
|
-
export const earthRadius
|
|
7
|
+
export const mmTolerance=50
|
|
8
|
+
export const earthRadius=6371008
|
|
9
9
|
|
|
10
10
|
export const layerColors = {
|
|
11
|
-
construction: {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
strokeColor: 'white',
|
|
19
|
-
strokeWidth: 0
|
|
20
|
-
},
|
|
21
|
-
roofInside: {
|
|
22
|
-
fillColor: 'rgba(255, 255, 255, 0.1)',
|
|
23
|
-
strokeColor: 'white',
|
|
24
|
-
strokeWidth: 1
|
|
25
|
-
},
|
|
26
|
-
obstacle: { fillColor: theme.colors.red, strokeColor: 'red', strokeWidth: 1 },
|
|
27
|
-
panel: {
|
|
28
|
-
fillColor: 'rgba(115, 115, 229, 0.1)',
|
|
29
|
-
strokeColor: '#ffffff',
|
|
30
|
-
strokeWidth: 1
|
|
31
|
-
},
|
|
32
|
-
user_deactivated_panel: {
|
|
33
|
-
fillColor: 'rgba(115, 115, 229, 0.1)',
|
|
34
|
-
strokeColor: 'white',
|
|
35
|
-
strokeWidth: 4
|
|
36
|
-
},
|
|
37
|
-
selectedPanel: {
|
|
38
|
-
fillColor: '#0068DE80',
|
|
39
|
-
strokeColor: theme.colors.blue,
|
|
40
|
-
strokeWidth: 1
|
|
41
|
-
},
|
|
11
|
+
construction: { fillColor: 'transparent', strokeColor: theme.colors.blueElectric ,strokeWidth:3 },
|
|
12
|
+
roof: { fillColor: 'rgba(255, 255, 255, 0.1)', strokeColor: 'white' ,strokeWidth:0 },
|
|
13
|
+
roofInside: { fillColor: 'rgba(255, 255, 255, 0.1)', strokeColor: 'white' ,strokeWidth:1},
|
|
14
|
+
obstacle: { fillColor: theme.colors.red, strokeColor: 'red' ,strokeWidth:1 },
|
|
15
|
+
panel: { fillColor: 'rgba(115, 115, 229, 0.1)', strokeColor: '#ffffff' ,strokeWidth:1},
|
|
16
|
+
user_deactivated_panel: { fillColor: 'rgba(115, 115, 229, 0.1)', strokeColor: 'white' ,strokeWidth:4},
|
|
17
|
+
selectedPanel: { fillColor: '#0068DE80', strokeColor: theme.colors.blue ,strokeWidth:1},
|
|
42
18
|
snap: { fillColor: 'transparent', strokeColor: 'white' },
|
|
43
|
-
moduleField: {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
strokeWidth: 3
|
|
58
|
-
},
|
|
59
|
-
highlight: {
|
|
60
|
-
fillColor: 'rgba(255, 255, 255, 0.2)',
|
|
61
|
-
strokeColor: 'white',
|
|
62
|
-
strokeWidth: 1
|
|
63
|
-
},
|
|
64
|
-
selectedRoof: {
|
|
65
|
-
fillColor: '#0068DE80',
|
|
66
|
-
strokeColor: 'white',
|
|
67
|
-
strokeWidth: 3
|
|
68
|
-
},
|
|
69
|
-
selectedObstacle: {
|
|
70
|
-
fillColor: '#0068DE80',
|
|
71
|
-
strokeColor: theme.colors.blue,
|
|
72
|
-
strokeWidth: 2
|
|
73
|
-
},
|
|
74
|
-
selectedAndHighlighted: {
|
|
75
|
-
fillColor: '#0068DEA0',
|
|
76
|
-
strokeColor: theme.colors.blue,
|
|
77
|
-
strokeWidth: 3
|
|
78
|
-
},
|
|
79
|
-
flatWarning: {
|
|
80
|
-
fillColor: '#ffff0090',
|
|
81
|
-
strokeColor: 'yellow',
|
|
82
|
-
strokeWidth: 1
|
|
83
|
-
},
|
|
84
|
-
customLength: {
|
|
85
|
-
fillColor: 'transparent',
|
|
86
|
-
strokeColor: theme.colors.blueElectric,
|
|
87
|
-
strokeWidth: 1
|
|
88
|
-
},
|
|
89
|
-
snapDirectionIncline: {
|
|
90
|
-
fillColor: 'transparent',
|
|
91
|
-
strokeColor: theme.colors.blue,
|
|
92
|
-
strokeWidth: 1
|
|
93
|
-
},
|
|
94
|
-
inclineDirectionArrow: {
|
|
95
|
-
fillColor: 'transparent',
|
|
96
|
-
strokeColor: '#FF5656',
|
|
97
|
-
strokeWidth: 5
|
|
98
|
-
},
|
|
99
|
-
inclineLabel: {
|
|
100
|
-
fillColor: theme.colors.transparentBlack1,
|
|
101
|
-
textColor: 'white'
|
|
102
|
-
},
|
|
103
|
-
directionLabel: {
|
|
104
|
-
fillColor: theme.colors.transparentBlack1,
|
|
105
|
-
textColor: 'white'
|
|
106
|
-
}
|
|
19
|
+
moduleField: { fillColor: 'rgba(255, 255, 255, 0.1)', strokeColor: 'white' ,strokeWidth:3 },
|
|
20
|
+
hoveredModuleFieldEdge: { strokeColor: theme.colors.blue ,strokeWidth:6 },
|
|
21
|
+
tmpModuleField: { fillColor: 'rgba(115, 115, 229, 0.4)', strokeColor: theme.colors.blue ,strokeWidth:2 },
|
|
22
|
+
selectedModuleField: {fillColor: '#0068DE80', strokeColor: theme.colors.blue ,strokeWidth:3},
|
|
23
|
+
highlight: { fillColor: 'rgba(255, 255, 255, 0.2)', strokeColor: 'white' ,strokeWidth:1 },
|
|
24
|
+
selectedRoof: { fillColor: '#0068DE80', strokeColor: 'white' ,strokeWidth:3 },
|
|
25
|
+
selectedObstacle: { fillColor: '#0068DE80', strokeColor: theme.colors.blue ,strokeWidth:2 },
|
|
26
|
+
selectedAndHighlighted: {fillColor: '#0068DEA0', strokeColor: theme.colors.blue ,strokeWidth:3},
|
|
27
|
+
flatWarning: {fillColor: '#ffff0090', strokeColor: 'yellow' ,strokeWidth:1},
|
|
28
|
+
customLength: { fillColor: 'transparent', strokeColor: theme.colors.blueElectric ,strokeWidth:1 },
|
|
29
|
+
snapDirectionIncline: { fillColor: 'transparent', strokeColor: theme.colors.blue ,strokeWidth:1 },
|
|
30
|
+
inclineDirectionArrow: { fillColor: 'transparent', strokeColor: "#FF5656" ,strokeWidth:5 },
|
|
31
|
+
inclineLabel: { fillColor: theme.colors.transparentBlack1, textColor: "white"},
|
|
32
|
+
directionLabel: { fillColor: theme.colors.transparentBlack1, textColor: "white"},
|
|
107
33
|
}
|
|
108
34
|
|
|
109
|
-
export const snapInclineTolerance
|
|
110
|
-
export const snapDirectionTolerance
|
|
111
|
-
export const radiusPadding
|
|
112
|
-
export const InclineDirectionCircleRadius
|
|
113
|
-
export const inclineDirectionMinRadius
|
|
114
|
-
export const baseEdgeOfModuleField
|
|
115
|
-
export const maximumGapLimit
|
|
116
|
-
export const defaultBaseHeight
|
|
117
|
-
export const colorArrayBase
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
35
|
+
export const snapInclineTolerance=5
|
|
36
|
+
export const snapDirectionTolerance=15
|
|
37
|
+
export const radiusPadding=20
|
|
38
|
+
export const InclineDirectionCircleRadius=250
|
|
39
|
+
export const inclineDirectionMinRadius=50
|
|
40
|
+
export const baseEdgeOfModuleField=theme.colors.blueElectric
|
|
41
|
+
export const maximumGapLimit=500
|
|
42
|
+
export const defaultBaseHeight=3000
|
|
43
|
+
export const colorArrayBase=[
|
|
44
|
+
"#FF5656",
|
|
45
|
+
"#FDB813",
|
|
46
|
+
"#505CA6",
|
|
47
|
+
"#8392EE",
|
|
48
|
+
"#6CD5D5",
|
|
49
|
+
"#C84E4E",
|
|
50
|
+
"#90A650",
|
|
51
|
+
"#D27CCA",
|
|
52
|
+
"#6276DF",
|
|
127
53
|
]
|
|
128
|
-
export const colorArray
|
|
129
|
-
export const layerTools
|
|
130
|
-
map:
|
|
131
|
-
roof:
|
|
132
|
-
obstacle:
|
|
133
|
-
margin:
|
|
134
|
-
panel:
|
|
54
|
+
export const colorArray=colorArrayBase.map(c=>c+"c0")
|
|
55
|
+
export const layerTools={
|
|
56
|
+
map:[],
|
|
57
|
+
roof:["drawRoof","selectRoof"],
|
|
58
|
+
obstacle:["drawObstacle"],
|
|
59
|
+
margin:["selectMargin"],
|
|
60
|
+
panel:["selectModuleField"],
|
|
135
61
|
}
|
|
136
62
|
//3D visualisation:
|
|
137
|
-
export const beamRadius
|
|
138
|
-
export const maxMargin
|
|
139
|
-
export const node3DRadius
|
|
140
|
-
export const beamColor
|
|
141
|
-
export const node3DColor
|
|
142
|
-
export const beamOpacity
|
|
143
|
-
export const node3dOpacity
|
|
144
|
-
export const dimMarginColor
|
|
145
|
-
export const defaultTextureUrl
|
|
146
|
-
const textureImageDomain
|
|
63
|
+
export const beamRadius=0.05
|
|
64
|
+
export const maxMargin=2500
|
|
65
|
+
export const node3DRadius=0.05
|
|
66
|
+
export const beamColor="#ffffff"
|
|
67
|
+
export const node3DColor="white"
|
|
68
|
+
export const beamOpacity=0.4
|
|
69
|
+
export const node3dOpacity=0.3
|
|
70
|
+
export const dimMarginColor='#ff000020'
|
|
71
|
+
export const defaultTextureUrl=require('./assets/images/panels/reneSola_Virtus_2_JC320S_24_Bbw.png')
|
|
72
|
+
const textureImageDomain='https://public-data.eturnity.io/'
|
|
147
73
|
export const defaultTextureUrls = [
|
|
148
|
-
textureImageDomain
|
|
149
|
-
textureImageDomain
|
|
150
|
-
textureImageDomain
|
|
74
|
+
textureImageDomain+'textures/reneSola_Virtus_2_JC320S_24_Bbw.png',
|
|
75
|
+
textureImageDomain+'textures/longiSolarLR4_60HPH_370M.png',
|
|
76
|
+
textureImageDomain+'textures/longiSolarLR4_60HPH_350M.png',
|
|
151
77
|
]
|
|
152
78
|
|
|
153
79
|
export const hitOption = {
|
|
@@ -156,7 +82,7 @@ export const hitOption = {
|
|
|
156
82
|
fill: true,
|
|
157
83
|
tolerance: 10
|
|
158
84
|
}
|
|
159
|
-
export const zoomFactor
|
|
85
|
+
export const zoomFactor=Math.exp(Math.log(2)/10)
|
|
160
86
|
export const hitOptionPolygonStrict = {
|
|
161
87
|
segments: false,
|
|
162
88
|
stroke: false,
|
|
@@ -176,5 +102,5 @@ export const hitOptionStroke = {
|
|
|
176
102
|
tolerance: 2
|
|
177
103
|
}
|
|
178
104
|
|
|
179
|
-
export const dragHeightSensitivity
|
|
180
|
-
export const snapLimit
|
|
105
|
+
export const dragHeightSensitivity=20
|
|
106
|
+
export const snapLimit=100
|