- throttling threejs animation in main.js

- use Group class instead of Object3D for touchMeshes and displayMeshes in Selection.js
- npm updates
This commit is contained in:
Arno Kaimbacher 2021-03-09 16:18:30 +01:00
parent dfec6b542b
commit 91e43173e5
5 changed files with 150 additions and 140 deletions

255
package-lock.json generated
View File

@ -10,6 +10,7 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "^5.15.2", "@fortawesome/fontawesome-free": "^5.15.2",
"lodash": "^4.17.21",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"proj4": "^2.6.3", "proj4": "^2.6.3",
"three": "^0.126.0" "three": "^0.126.0"
@ -53,17 +54,17 @@
"dev": true "dev": true
}, },
"node_modules/@babel/core": { "node_modules/@babel/core": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz",
"integrity": "sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg==", "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.12.13", "@babel/code-frame": "^7.12.13",
"@babel/generator": "^7.13.0", "@babel/generator": "^7.13.9",
"@babel/helper-compilation-targets": "^7.13.8", "@babel/helper-compilation-targets": "^7.13.10",
"@babel/helper-module-transforms": "^7.13.0", "@babel/helper-module-transforms": "^7.13.0",
"@babel/helpers": "^7.13.0", "@babel/helpers": "^7.13.10",
"@babel/parser": "^7.13.4", "@babel/parser": "^7.13.10",
"@babel/template": "^7.12.13", "@babel/template": "^7.12.13",
"@babel/traverse": "^7.13.0", "@babel/traverse": "^7.13.0",
"@babel/types": "^7.13.0", "@babel/types": "^7.13.0",
@ -114,9 +115,9 @@
} }
}, },
"node_modules/@babel/helper-compilation-targets": { "node_modules/@babel/helper-compilation-targets": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz",
"integrity": "sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A==", "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.13.8", "@babel/compat-data": "^7.13.8",
@ -129,9 +130,9 @@
} }
}, },
"node_modules/@babel/helper-create-class-features-plugin": { "node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.10.tgz",
"integrity": "sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w==", "integrity": "sha512-YV7r2YxdTUaw84EwNkyrRke/TJHR/UXGiyvACRqvdVJ2/syV2rQuJNnaRLSuYiop8cMRXOgseTGoJCWX0q2fFg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-function-name": "^7.12.13", "@babel/helper-function-name": "^7.12.13",
@ -340,9 +341,9 @@
} }
}, },
"node_modules/@babel/helpers": { "node_modules/@babel/helpers": {
"version": "7.13.0", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz",
"integrity": "sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ==", "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/template": "^7.12.13", "@babel/template": "^7.12.13",
@ -351,9 +352,9 @@
} }
}, },
"node_modules/@babel/highlight": { "node_modules/@babel/highlight": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
"integrity": "sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==", "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-validator-identifier": "^7.12.11", "@babel/helper-validator-identifier": "^7.12.11",
@ -362,9 +363,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz",
"integrity": "sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw==", "integrity": "sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@ -1017,9 +1018,9 @@
} }
}, },
"node_modules/@babel/plugin-transform-runtime": { "node_modules/@babel/plugin-transform-runtime": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.10.tgz",
"integrity": "sha512-XCxkY/wBI6M6Jj2mlWxkmqbKPweRanszWbF3Tyut+hKh+PHcuIH/rSr/7lmmE7C3WW+HSIm2GT+d5jwmheuB0g==", "integrity": "sha512-Y5k8ipgfvz5d/76tx7JYbKQTcgFSU6VgJ3kKQv4zGTKr+a9T/KBvfRvGtSFgKDQGt/DBykQixV0vNWKIdzWErA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-module-imports": "^7.12.13", "@babel/helper-module-imports": "^7.12.13",
@ -1120,13 +1121,13 @@
} }
}, },
"node_modules/@babel/preset-env": { "node_modules/@babel/preset-env": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz",
"integrity": "sha512-mcsHUlh2rIhViqMG823JpscLMesRt3QbMsv1+jhopXEb3W2wXvQ9QoiOlZI9ZbR3XqPtaFpZwEZKYqGJnGMZTQ==", "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.13.8", "@babel/compat-data": "^7.13.8",
"@babel/helper-compilation-targets": "^7.13.8", "@babel/helper-compilation-targets": "^7.13.10",
"@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-plugin-utils": "^7.13.0",
"@babel/helper-validator-option": "^7.12.17", "@babel/helper-validator-option": "^7.12.17",
"@babel/plugin-proposal-async-generator-functions": "^7.13.8", "@babel/plugin-proposal-async-generator-functions": "^7.13.8",
@ -1215,9 +1216,9 @@
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz",
"integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
@ -1319,9 +1320,9 @@
} }
}, },
"node_modules/@types/eslint": { "node_modules/@types/eslint": {
"version": "7.2.6", "version": "7.2.7",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz",
"integrity": "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==", "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/estree": "*", "@types/estree": "*",
@ -1369,9 +1370,9 @@
"peer": true "peer": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "14.14.31", "version": "14.14.32",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.32.tgz",
"integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", "integrity": "sha512-/Ctrftx/zp4m8JOujM5ZhwzlWLx22nbQJiVqz8/zE15gOeEW+uly3FSX4fGFpcfEvFzXcMCJwq9lGVWgyARXhg==",
"dev": true "dev": true
}, },
"node_modules/@types/normalize-package-data": { "node_modules/@types/normalize-package-data": {
@ -1581,9 +1582,9 @@
"dev": true "dev": true
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.0.5", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.5.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz",
"integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==", "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==",
"dev": true, "dev": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
@ -1975,9 +1976,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001196", "version": "1.0.30001197",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001196.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001197.tgz",
"integrity": "sha512-CPvObjD3ovWrNBaXlAIGWmg2gQQuJ5YhuciUOjPRox6hIQttu8O+b51dx6VIpIY9ESd2d0Vac1RKpICdG4rGUg==", "integrity": "sha512-8aE+sqBqtXz4G8g35Eg/XEaFr2N7rd/VQ6eABGBmNtcB8cN6qNJhMi6oSFy4UWWZgqgL3filHT8Nha4meu3tsw==",
"dev": true "dev": true
}, },
"node_modules/caseless": { "node_modules/caseless": {
@ -2577,9 +2578,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.3.681", "version": "1.3.683",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.681.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.683.tgz",
"integrity": "sha512-W6uYvSUTHuyX2DZklIESAqx57jfmGjUkd7Z3RWqLdj9Mmt39ylhBuvFXlskQnvBHj0MYXIeQI+mjiwVddZLSvA==", "integrity": "sha512-8mFfiAesXdEdE0DhkMKO7W9U6VU/9T3VTWwZ+4g84/YMP4kgwgFtQgUxuu7FUMcvSeKSNhFQNU+WZ68BQTLT5A==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@ -2623,9 +2624,9 @@
} }
}, },
"node_modules/env-paths": { "node_modules/env-paths": {
"version": "2.2.0", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
@ -2802,9 +2803,9 @@
} }
}, },
"node_modules/ext/node_modules/type": { "node_modules/ext/node_modules/type": {
"version": "2.3.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
"integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==", "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==",
"dev": true "dev": true
}, },
"node_modules/extend": { "node_modules/extend": {
@ -3131,9 +3132,9 @@
} }
}, },
"node_modules/glob-parent": { "node_modules/glob-parent": {
"version": "5.1.1", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"dependencies": { "dependencies": {
@ -3786,8 +3787,7 @@
"node_modules/lodash": { "node_modules/lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"dev": true
}, },
"node_modules/lodash.debounce": { "node_modules/lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
@ -6135,9 +6135,9 @@
} }
}, },
"node_modules/v8-compile-cache": { "node_modules/v8-compile-cache": {
"version": "2.2.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
"integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true "dev": true
}, },
"node_modules/validate-npm-package-license": { "node_modules/validate-npm-package-license": {
@ -6178,9 +6178,9 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.24.3", "version": "5.24.4",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.3.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.4.tgz",
"integrity": "sha512-x7lrWZ7wlWAdyKdML6YPvfVZkhD1ICuIZGODE5SzKJjqI9A4SpqGTjGJTc6CwaHqn19gGaoOR3ONJ46nYsn9rw==", "integrity": "sha512-RXOdxF9hFFFhg47BryCgyFrEyyu7Y/75/uiI2DoUiTMqysK+WczVSTppvkR47oZcmI/DPaXCiCiaXBP8QjkNpA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",
@ -6609,17 +6609,17 @@
"dev": true "dev": true
}, },
"@babel/core": { "@babel/core": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz",
"integrity": "sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg==", "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.12.13", "@babel/code-frame": "^7.12.13",
"@babel/generator": "^7.13.0", "@babel/generator": "^7.13.9",
"@babel/helper-compilation-targets": "^7.13.8", "@babel/helper-compilation-targets": "^7.13.10",
"@babel/helper-module-transforms": "^7.13.0", "@babel/helper-module-transforms": "^7.13.0",
"@babel/helpers": "^7.13.0", "@babel/helpers": "^7.13.10",
"@babel/parser": "^7.13.4", "@babel/parser": "^7.13.10",
"@babel/template": "^7.12.13", "@babel/template": "^7.12.13",
"@babel/traverse": "^7.13.0", "@babel/traverse": "^7.13.0",
"@babel/types": "^7.13.0", "@babel/types": "^7.13.0",
@ -6663,9 +6663,9 @@
} }
}, },
"@babel/helper-compilation-targets": { "@babel/helper-compilation-targets": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz",
"integrity": "sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A==", "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/compat-data": "^7.13.8", "@babel/compat-data": "^7.13.8",
@ -6675,9 +6675,9 @@
} }
}, },
"@babel/helper-create-class-features-plugin": { "@babel/helper-create-class-features-plugin": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.10.tgz",
"integrity": "sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w==", "integrity": "sha512-YV7r2YxdTUaw84EwNkyrRke/TJHR/UXGiyvACRqvdVJ2/syV2rQuJNnaRLSuYiop8cMRXOgseTGoJCWX0q2fFg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-function-name": "^7.12.13", "@babel/helper-function-name": "^7.12.13",
@ -6877,9 +6877,9 @@
} }
}, },
"@babel/helpers": { "@babel/helpers": {
"version": "7.13.0", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.0.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz",
"integrity": "sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ==", "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/template": "^7.12.13", "@babel/template": "^7.12.13",
@ -6888,9 +6888,9 @@
} }
}, },
"@babel/highlight": { "@babel/highlight": {
"version": "7.13.8", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.8.tgz", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
"integrity": "sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==", "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.12.11", "@babel/helper-validator-identifier": "^7.12.11",
@ -6899,9 +6899,9 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz",
"integrity": "sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw==", "integrity": "sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==",
"dev": true "dev": true
}, },
"@babel/plugin-proposal-async-generator-functions": { "@babel/plugin-proposal-async-generator-functions": {
@ -7395,9 +7395,9 @@
} }
}, },
"@babel/plugin-transform-runtime": { "@babel/plugin-transform-runtime": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.10.tgz",
"integrity": "sha512-XCxkY/wBI6M6Jj2mlWxkmqbKPweRanszWbF3Tyut+hKh+PHcuIH/rSr/7lmmE7C3WW+HSIm2GT+d5jwmheuB0g==", "integrity": "sha512-Y5k8ipgfvz5d/76tx7JYbKQTcgFSU6VgJ3kKQv4zGTKr+a9T/KBvfRvGtSFgKDQGt/DBykQixV0vNWKIdzWErA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-module-imports": "^7.12.13", "@babel/helper-module-imports": "^7.12.13",
@ -7474,13 +7474,13 @@
} }
}, },
"@babel/preset-env": { "@babel/preset-env": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz",
"integrity": "sha512-mcsHUlh2rIhViqMG823JpscLMesRt3QbMsv1+jhopXEb3W2wXvQ9QoiOlZI9ZbR3XqPtaFpZwEZKYqGJnGMZTQ==", "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/compat-data": "^7.13.8", "@babel/compat-data": "^7.13.8",
"@babel/helper-compilation-targets": "^7.13.8", "@babel/helper-compilation-targets": "^7.13.10",
"@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-plugin-utils": "^7.13.0",
"@babel/helper-validator-option": "^7.12.17", "@babel/helper-validator-option": "^7.12.17",
"@babel/plugin-proposal-async-generator-functions": "^7.13.8", "@babel/plugin-proposal-async-generator-functions": "^7.13.8",
@ -7563,9 +7563,9 @@
} }
}, },
"@babel/runtime": { "@babel/runtime": {
"version": "7.13.9", "version": "7.13.10",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz",
"integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==",
"dev": true, "dev": true,
"requires": { "requires": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
@ -7651,9 +7651,9 @@
} }
}, },
"@types/eslint": { "@types/eslint": {
"version": "7.2.6", "version": "7.2.7",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz",
"integrity": "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==", "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/estree": "*", "@types/estree": "*",
@ -7701,9 +7701,9 @@
"peer": true "peer": true
}, },
"@types/node": { "@types/node": {
"version": "14.14.31", "version": "14.14.32",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.32.tgz",
"integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", "integrity": "sha512-/Ctrftx/zp4m8JOujM5ZhwzlWLx22nbQJiVqz8/zE15gOeEW+uly3FSX4fGFpcfEvFzXcMCJwq9lGVWgyARXhg==",
"dev": true "dev": true
}, },
"@types/normalize-package-data": { "@types/normalize-package-data": {
@ -7900,9 +7900,9 @@
"dev": true "dev": true
}, },
"acorn": { "acorn": {
"version": "8.0.5", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.5.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz",
"integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==", "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==",
"dev": true "dev": true
}, },
"adjust-sourcemap-loader": { "adjust-sourcemap-loader": {
@ -8200,9 +8200,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001196", "version": "1.0.30001197",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001196.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001197.tgz",
"integrity": "sha512-CPvObjD3ovWrNBaXlAIGWmg2gQQuJ5YhuciUOjPRox6hIQttu8O+b51dx6VIpIY9ESd2d0Vac1RKpICdG4rGUg==", "integrity": "sha512-8aE+sqBqtXz4G8g35Eg/XEaFr2N7rd/VQ6eABGBmNtcB8cN6qNJhMi6oSFy4UWWZgqgL3filHT8Nha4meu3tsw==",
"dev": true "dev": true
}, },
"caseless": { "caseless": {
@ -8667,9 +8667,9 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.681", "version": "1.3.683",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.681.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.683.tgz",
"integrity": "sha512-W6uYvSUTHuyX2DZklIESAqx57jfmGjUkd7Z3RWqLdj9Mmt39ylhBuvFXlskQnvBHj0MYXIeQI+mjiwVddZLSvA==", "integrity": "sha512-8mFfiAesXdEdE0DhkMKO7W9U6VU/9T3VTWwZ+4g84/YMP4kgwgFtQgUxuu7FUMcvSeKSNhFQNU+WZ68BQTLT5A==",
"dev": true "dev": true
}, },
"emoji-regex": { "emoji-regex": {
@ -8704,9 +8704,9 @@
} }
}, },
"env-paths": { "env-paths": {
"version": "2.2.0", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true "dev": true
}, },
"envinfo": { "envinfo": {
@ -8846,9 +8846,9 @@
}, },
"dependencies": { "dependencies": {
"type": { "type": {
"version": "2.3.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
"integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==", "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==",
"dev": true "dev": true
} }
} }
@ -9102,9 +9102,9 @@
} }
}, },
"glob-parent": { "glob-parent": {
"version": "5.1.1", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"requires": { "requires": {
@ -9615,8 +9615,7 @@
"lodash": { "lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"dev": true
}, },
"lodash.debounce": { "lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
@ -11404,9 +11403,9 @@
"dev": true "dev": true
}, },
"v8-compile-cache": { "v8-compile-cache": {
"version": "2.2.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
"integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true "dev": true
}, },
"validate-npm-package-license": { "validate-npm-package-license": {
@ -11441,9 +11440,9 @@
} }
}, },
"webpack": { "webpack": {
"version": "5.24.3", "version": "5.24.4",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.3.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.4.tgz",
"integrity": "sha512-x7lrWZ7wlWAdyKdML6YPvfVZkhD1ICuIZGODE5SzKJjqI9A4SpqGTjGJTc6CwaHqn19gGaoOR3ONJ46nYsn9rw==", "integrity": "sha512-RXOdxF9hFFFhg47BryCgyFrEyyu7Y/75/uiI2DoUiTMqysK+WczVSTppvkR47oZcmI/DPaXCiCiaXBP8QjkNpA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",

View File

@ -5,6 +5,7 @@
"main": "dist/main.js", "main": "dist/main.js",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "^5.15.2", "@fortawesome/fontawesome-free": "^5.15.2",
"lodash": "^4.17.21",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"proj4": "^2.6.3", "proj4": "^2.6.3",
"three": "^0.126.0" "three": "^0.126.0"

View File

@ -98,11 +98,12 @@ export class Picking {
if (this.intersected !== null) { if (this.intersected !== null) {
this.intersected.guardian.rayOut(); this.intersected.guardian.rayOut();
} }
// select yellow color
candidate.guardian.rayOver(); candidate.guardian.rayOver();
this.intersected = candidate; this.intersected = candidate;
this.simulation.renderer.domElement.style.cursor = 'pointer'; this.simulation.renderer.domElement.style.cursor = 'pointer';
// this.simulation.throttledRender(); // this.simulation.throttledRender();
this.simulation.animate(); this.simulation.deferringThrottle();
} }
} else if (this.intersected !== null) { } else if (this.intersected !== null) {
@ -111,7 +112,7 @@ export class Picking {
this.intersected = null; this.intersected = null;
this.simulation.renderer.domElement.style.cursor = 'auto'; this.simulation.renderer.domElement.style.cursor = 'auto';
// this.simulation.throttledRender(); // this.simulation.throttledRender();
this.simulation.animate(); this.simulation.deferringThrottle();
} }
} }
@ -160,7 +161,7 @@ export class Picking {
this.plane.lookAt(newNormal.add(intersectionPoint)); this.plane.lookAt(newNormal.add(intersectionPoint));
this.simulation.renderer.domElement.style.cursor = 'grab'; this.simulation.renderer.domElement.style.cursor = 'grab';
// simulation.throttledRender(); // simulation.throttledRender();
this.simulation.animate(); this.simulation.deferringThrottle();
let continueDrag = function (event) { let continueDrag = function (event) {
event.preventDefault(); event.preventDefault();
@ -187,7 +188,7 @@ export class Picking {
this.simulation.selection.setValue(axis, value); this.simulation.selection.setValue(axis, value);
// this.simulation.selection.setValue('x1', 4452960); // this.simulation.selection.setValue('x1', 4452960);
// this.simulation.throttledRender(); // this.simulation.throttledRender();
this.simulation.animate(); this.simulation.deferringThrottle();
} }
}; };

View File

@ -7,6 +7,7 @@ import { uniforms } from "./uniforms";
import { SelectionBoxFace } from './SelectionBoxFace'; import { SelectionBoxFace } from './SelectionBoxFace';
import { SelectionBoxLine } from './SelectionBoxLine'; import { SelectionBoxLine } from './SelectionBoxLine';
import { Layer } from '../layer/Layer'; import { Layer } from '../layer/Layer';
import { Group } from 'three/src/objects/Group';
export class Selection extends Layer { export class Selection extends Layer {
limitLow; limitLow;
@ -33,7 +34,9 @@ export class Selection extends Layer {
x1: low.x, x1: low.x,
y1: low.y, y1: low.y,
x2: high.x, x2: high.x,
y2: high.y y2: high.y,
z1: low.z - 5000,
z2: high.z + 5000
} }
this.scale = 1; this.scale = 1;
@ -50,8 +53,8 @@ export class Selection extends Layer {
let v = this.vertices; let v = this.vertices;
this.touchMeshes = new Object3D(); this.touchMeshes = new Group(); //Object3D();
this.displayMeshes = new Object3D(); this.displayMeshes = new Group(); // Object3D();
this.meshGeometries = []; this.meshGeometries = [];
this.lineGeometries = []; this.lineGeometries = [];
this.selectables = []; this.selectables = [];
@ -93,7 +96,7 @@ export class Selection extends Layer {
build(app_scene) { build(app_scene) {
// app_scene.add(this.boxMesh); // app_scene.add(this.boxMesh);
app_scene.add(this.displayMeshes); app_scene.add(this.displayMeshes);
app_scene.add(this.touchMeshes); // app_scene.add(this.touchMeshes);
} }
setWireframeMode(wireframe) { setWireframeMode(wireframe) {
@ -112,6 +115,7 @@ export class Selection extends Layer {
this.scale = z; this.scale = z;
// this.boxMesh.scale.z = z; // this.boxMesh.scale.z = z;
// this.displayMeshes.scale.z = z; // this.displayMeshes.scale.z = z;
this.displayMeshes.scale.set(1, 1, z);
// this.touchMeshes.scale.z = z; // this.touchMeshes.scale.z = z;
} }
@ -155,7 +159,7 @@ export class Selection extends Layer {
setBox() { setBox() {
let width = new Vector3(); let width = new Vector3();
width.subVectors(this.limitHigh, this.limitLow); width.subVectors(this.limitHigh, this.limitLow);
this.boxMesh.scale.copy(width); this.boxMesh.scale.copy(width);
width.multiplyScalar(0.5).add(this.limitLow); width.multiplyScalar(0.5).add(this.limitLow);
this.boxMesh.position.copy(width); this.boxMesh.position.copy(width);
} }
@ -177,7 +181,7 @@ export class Selection extends Layer {
setValue(axis, value) { setValue(axis, value) {
let buffer = 1000; let buffer = 1000;
let limit = 14000; // let limit = 14000;
if (axis === 'x1') { if (axis === 'x1') {
// this.limitLow.x = Math.max(-limit, Math.min(this.limitHigh.x - buffer, value)); // this.limitLow.x = Math.max(-limit, Math.min(this.limitHigh.x - buffer, value));
@ -192,9 +196,11 @@ export class Selection extends Layer {
// this.limitHigh.y = Math.max(this.limitLow.y + buffer, Math.min(limit, value)); // this.limitHigh.y = Math.max(this.limitLow.y + buffer, Math.min(limit, value));
this.limitHigh.y = Math.max(this.limitLow.y + buffer, Math.min(this.limit.y2, value)); this.limitHigh.y = Math.max(this.limitLow.y + buffer, Math.min(this.limit.y2, value));
} else if (axis === 'z1') { } else if (axis === 'z1') {
this.limitLow.z = Math.max(-limit, Math.min(this.limitHigh.z - buffer, value)); // this.limitLow.z = Math.max(-limit, Math.min(this.limitHigh.z - buffer, value));
this.limitLow.z = Math.max(this.limit.z1, Math.min(this.limitHigh.z - buffer, value));
} else if (axis === 'z2') { } else if (axis === 'z2') {
this.limitHigh.z = Math.max(this.limitLow.z + buffer, Math.min(limit, value)); // this.limitHigh.z = Math.max(this.limitLow.z + buffer, Math.min(limit, value));
this.limitHigh.z = Math.max(this.limitLow.z + buffer, Math.min(this.limit.z2, value));
} }
this.setBox(); this.setBox();

View File

@ -25,6 +25,7 @@ import { MobileDialog } from "./controls/MobileDialog";
import { Picking } from './clip/Picking'; import { Picking } from './clip/Picking';
import { Selection } from './clip/Selection'; import { Selection } from './clip/Selection';
import _ from "lodash";
import '../css/page.scss'; /* style loader will import it */ import '../css/page.scss'; /* style loader will import it */
@ -352,6 +353,8 @@ class Application {
this.animate(); this.animate();
} }
deferringThrottle = _.throttle(this.animate, 40);
animate() { animate() {
this.renderer.clear(); this.renderer.clear();