- notes: colored intersection area
- trials with three-csg-ts
This commit is contained in:
parent
925ab2023c
commit
333d55ebf6
162
package-lock.json
generated
162
package-lock.json
generated
|
@ -15,7 +15,8 @@
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"proj4": "^2.6.3",
|
"proj4": "^2.6.3",
|
||||||
"three": "^0.129.0"
|
"three": "^0.129.0",
|
||||||
|
"three-csg-ts": "^3.1.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.9",
|
"@babel/core": "^7.12.9",
|
||||||
|
@ -65,17 +66,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/core": {
|
"node_modules/@babel/core": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz",
|
||||||
"integrity": "sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg==",
|
"integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/code-frame": "^7.14.5",
|
"@babel/code-frame": "^7.14.5",
|
||||||
"@babel/generator": "^7.14.5",
|
"@babel/generator": "^7.14.5",
|
||||||
"@babel/helper-compilation-targets": "^7.14.5",
|
"@babel/helper-compilation-targets": "^7.14.5",
|
||||||
"@babel/helper-module-transforms": "^7.14.5",
|
"@babel/helper-module-transforms": "^7.14.5",
|
||||||
"@babel/helpers": "^7.14.5",
|
"@babel/helpers": "^7.14.6",
|
||||||
"@babel/parser": "^7.14.5",
|
"@babel/parser": "^7.14.6",
|
||||||
"@babel/template": "^7.14.5",
|
"@babel/template": "^7.14.5",
|
||||||
"@babel/traverse": "^7.14.5",
|
"@babel/traverse": "^7.14.5",
|
||||||
"@babel/types": "^7.14.5",
|
"@babel/types": "^7.14.5",
|
||||||
|
@ -152,9 +153,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helper-create-class-features-plugin": {
|
"node_modules/@babel/helper-create-class-features-plugin": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz",
|
||||||
"integrity": "sha512-Uq9z2e7ZtcnDMirRqAGLRaLwJn+Lrh388v5ETrR3pALJnElVh2zqQmdbz4W2RUJYohAPh2mtyPUgyMHMzXMncQ==",
|
"integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-annotate-as-pure": "^7.14.5",
|
"@babel/helper-annotate-as-pure": "^7.14.5",
|
||||||
|
@ -419,9 +420,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helpers": {
|
"node_modules/@babel/helpers": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz",
|
||||||
"integrity": "sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q==",
|
"integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/template": "^7.14.5",
|
"@babel/template": "^7.14.5",
|
||||||
|
@ -447,9 +448,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/parser": {
|
"node_modules/@babel/parser": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz",
|
||||||
"integrity": "sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==",
|
"integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"parser": "bin/babel-parser.js"
|
"parser": "bin/babel-parser.js"
|
||||||
|
@ -1380,9 +1381,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/plugin-transform-spread": {
|
"node_modules/@babel/plugin-transform-spread": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz",
|
||||||
"integrity": "sha512-/3iqoQdiWergnShZYl0xACb4ADeYCJ7X/RgmwtXshn6cIvautRPAFzhd58frQlokLO6Jb4/3JXvmm6WNTPtiTw==",
|
"integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-plugin-utils": "^7.14.5",
|
"@babel/helper-plugin-utils": "^7.14.5",
|
||||||
|
@ -1441,12 +1442,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/plugin-transform-typescript": {
|
"node_modules/@babel/plugin-transform-typescript": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz",
|
||||||
"integrity": "sha512-cFD5PKp4b8/KkwQ7h71FdPXFvz1RgwTFF9akRZwFldb9G0AHf7CgoPx96c4Q/ZVjh6V81tqQwW5YiHws16OzPg==",
|
"integrity": "sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-create-class-features-plugin": "^7.14.5",
|
"@babel/helper-create-class-features-plugin": "^7.14.6",
|
||||||
"@babel/helper-plugin-utils": "^7.14.5",
|
"@babel/helper-plugin-utils": "^7.14.5",
|
||||||
"@babel/plugin-syntax-typescript": "^7.14.5"
|
"@babel/plugin-syntax-typescript": "^7.14.5"
|
||||||
},
|
},
|
||||||
|
@ -1609,9 +1610,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz",
|
||||||
"integrity": "sha512-121rumjddw9c3NCQ55KGkyE1h/nzWhU/owjhw0l4mQrkzz4x9SGS1X8gFLraHwX7td3Yo4QTL+qj0NcIzN87BA==",
|
"integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
|
@ -1987,9 +1988,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/acorn": {
|
"node_modules/acorn": {
|
||||||
"version": "8.3.0",
|
"version": "8.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz",
|
||||||
"integrity": "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==",
|
"integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"acorn": "bin/acorn"
|
"acorn": "bin/acorn"
|
||||||
|
@ -2347,9 +2348,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001236",
|
"version": "1.0.30001237",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz",
|
||||||
"integrity": "sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ==",
|
"integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -4799,9 +4800,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.3.2",
|
"version": "8.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.4.tgz",
|
||||||
"integrity": "sha512-y1FK/AWdZlBF5lusS5j5l4/vF67+vQZt1SXPVJ32y1kRGDQyrs1zk32hG1cInRTu14P0V+orPz+ifwW/7rR4bg==",
|
"integrity": "sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"colorette": "^1.2.2",
|
"colorette": "^1.2.2",
|
||||||
|
@ -6154,6 +6155,15 @@
|
||||||
"resolved": "https://registry.npmjs.org/three/-/three-0.129.0.tgz",
|
"resolved": "https://registry.npmjs.org/three/-/three-0.129.0.tgz",
|
||||||
"integrity": "sha512-wiWio1yVRg2Oj6WEWsTHQo5eSzYpEwSBtPSi3OofNpvFbf26HFfb9kw4FZJNjII4qxzp0b1xLB11+tKkBGB1ZA=="
|
"integrity": "sha512-wiWio1yVRg2Oj6WEWsTHQo5eSzYpEwSBtPSi3OofNpvFbf26HFfb9kw4FZJNjII4qxzp0b1xLB11+tKkBGB1ZA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/three-csg-ts": {
|
||||||
|
"version": "3.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/three-csg-ts/-/three-csg-ts-3.1.3.tgz",
|
||||||
|
"integrity": "sha512-LOTJeO/FpkjHjTbuuV3k/Odr1gdbGJJLzVcD3T50B7p3IjMPa0TrZbNQK/wpB0GMaHmzikgX/hCcP9Ube9ExoQ==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/three": ">= 0.125.0",
|
||||||
|
"three": ">= 0.125.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/to-fast-properties": {
|
"node_modules/to-fast-properties": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||||
|
@ -6445,9 +6455,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/webpack": {
|
"node_modules/webpack": {
|
||||||
"version": "5.38.1",
|
"version": "5.39.0",
|
||||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz",
|
||||||
"integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==",
|
"integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/eslint-scope": "^3.7.0",
|
"@types/eslint-scope": "^3.7.0",
|
||||||
|
@ -6872,17 +6882,17 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@babel/core": {
|
"@babel/core": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz",
|
||||||
"integrity": "sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg==",
|
"integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.14.5",
|
"@babel/code-frame": "^7.14.5",
|
||||||
"@babel/generator": "^7.14.5",
|
"@babel/generator": "^7.14.5",
|
||||||
"@babel/helper-compilation-targets": "^7.14.5",
|
"@babel/helper-compilation-targets": "^7.14.5",
|
||||||
"@babel/helper-module-transforms": "^7.14.5",
|
"@babel/helper-module-transforms": "^7.14.5",
|
||||||
"@babel/helpers": "^7.14.5",
|
"@babel/helpers": "^7.14.6",
|
||||||
"@babel/parser": "^7.14.5",
|
"@babel/parser": "^7.14.6",
|
||||||
"@babel/template": "^7.14.5",
|
"@babel/template": "^7.14.5",
|
||||||
"@babel/traverse": "^7.14.5",
|
"@babel/traverse": "^7.14.5",
|
||||||
"@babel/types": "^7.14.5",
|
"@babel/types": "^7.14.5",
|
||||||
|
@ -6937,9 +6947,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/helper-create-class-features-plugin": {
|
"@babel/helper-create-class-features-plugin": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz",
|
||||||
"integrity": "sha512-Uq9z2e7ZtcnDMirRqAGLRaLwJn+Lrh388v5ETrR3pALJnElVh2zqQmdbz4W2RUJYohAPh2mtyPUgyMHMzXMncQ==",
|
"integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/helper-annotate-as-pure": "^7.14.5",
|
"@babel/helper-annotate-as-pure": "^7.14.5",
|
||||||
|
@ -7138,9 +7148,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/helpers": {
|
"@babel/helpers": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz",
|
||||||
"integrity": "sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q==",
|
"integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/template": "^7.14.5",
|
"@babel/template": "^7.14.5",
|
||||||
|
@ -7160,9 +7170,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/parser": {
|
"@babel/parser": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz",
|
||||||
"integrity": "sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==",
|
"integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
|
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
|
||||||
|
@ -7760,9 +7770,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/plugin-transform-spread": {
|
"@babel/plugin-transform-spread": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz",
|
||||||
"integrity": "sha512-/3iqoQdiWergnShZYl0xACb4ADeYCJ7X/RgmwtXshn6cIvautRPAFzhd58frQlokLO6Jb4/3JXvmm6WNTPtiTw==",
|
"integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/helper-plugin-utils": "^7.14.5",
|
"@babel/helper-plugin-utils": "^7.14.5",
|
||||||
|
@ -7797,12 +7807,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/plugin-transform-typescript": {
|
"@babel/plugin-transform-typescript": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz",
|
||||||
"integrity": "sha512-cFD5PKp4b8/KkwQ7h71FdPXFvz1RgwTFF9akRZwFldb9G0AHf7CgoPx96c4Q/ZVjh6V81tqQwW5YiHws16OzPg==",
|
"integrity": "sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/helper-create-class-features-plugin": "^7.14.5",
|
"@babel/helper-create-class-features-plugin": "^7.14.6",
|
||||||
"@babel/helper-plugin-utils": "^7.14.5",
|
"@babel/helper-plugin-utils": "^7.14.5",
|
||||||
"@babel/plugin-syntax-typescript": "^7.14.5"
|
"@babel/plugin-syntax-typescript": "^7.14.5"
|
||||||
}
|
}
|
||||||
|
@ -7932,9 +7942,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz",
|
||||||
"integrity": "sha512-121rumjddw9c3NCQ55KGkyE1h/nzWhU/owjhw0l4mQrkzz4x9SGS1X8gFLraHwX7td3Yo4QTL+qj0NcIzN87BA==",
|
"integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
|
@ -8269,9 +8279,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"acorn": {
|
"acorn": {
|
||||||
"version": "8.3.0",
|
"version": "8.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz",
|
||||||
"integrity": "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==",
|
"integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"adjust-sourcemap-loader": {
|
"adjust-sourcemap-loader": {
|
||||||
|
@ -8548,9 +8558,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"caniuse-lite": {
|
"caniuse-lite": {
|
||||||
"version": "1.0.30001236",
|
"version": "1.0.30001237",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz",
|
||||||
"integrity": "sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ==",
|
"integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"caseless": {
|
"caseless": {
|
||||||
|
@ -10391,9 +10401,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"postcss": {
|
"postcss": {
|
||||||
"version": "8.3.2",
|
"version": "8.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.4.tgz",
|
||||||
"integrity": "sha512-y1FK/AWdZlBF5lusS5j5l4/vF67+vQZt1SXPVJ32y1kRGDQyrs1zk32hG1cInRTu14P0V+orPz+ifwW/7rR4bg==",
|
"integrity": "sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"colorette": "^1.2.2",
|
"colorette": "^1.2.2",
|
||||||
|
@ -11411,6 +11421,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/three/-/three-0.129.0.tgz",
|
"resolved": "https://registry.npmjs.org/three/-/three-0.129.0.tgz",
|
||||||
"integrity": "sha512-wiWio1yVRg2Oj6WEWsTHQo5eSzYpEwSBtPSi3OofNpvFbf26HFfb9kw4FZJNjII4qxzp0b1xLB11+tKkBGB1ZA=="
|
"integrity": "sha512-wiWio1yVRg2Oj6WEWsTHQo5eSzYpEwSBtPSi3OofNpvFbf26HFfb9kw4FZJNjII4qxzp0b1xLB11+tKkBGB1ZA=="
|
||||||
},
|
},
|
||||||
|
"three-csg-ts": {
|
||||||
|
"version": "3.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/three-csg-ts/-/three-csg-ts-3.1.3.tgz",
|
||||||
|
"integrity": "sha512-LOTJeO/FpkjHjTbuuV3k/Odr1gdbGJJLzVcD3T50B7p3IjMPa0TrZbNQK/wpB0GMaHmzikgX/hCcP9Ube9ExoQ==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"to-fast-properties": {
|
"to-fast-properties": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||||
|
@ -11628,9 +11644,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"webpack": {
|
"webpack": {
|
||||||
"version": "5.38.1",
|
"version": "5.39.0",
|
||||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz",
|
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz",
|
||||||
"integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==",
|
"integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/eslint-scope": "^3.7.0",
|
"@types/eslint-scope": "^3.7.0",
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"proj4": "^2.6.3",
|
"proj4": "^2.6.3",
|
||||||
"three": "^0.129.0"
|
"three": "^0.129.0",
|
||||||
|
"three-csg-ts": "^3.1.3"
|
||||||
},
|
},
|
||||||
"author": "Arno Kaimbacher",
|
"author": "Arno Kaimbacher",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { SelectionBoxLine } from './SelectionBoxLine';
|
||||||
import { Layer } from '../layer/Layer';
|
import { Layer } from '../layer/Layer';
|
||||||
import { Group } from 'three/src/objects/Group';
|
import { Group } from 'three/src/objects/Group';
|
||||||
import { UpdatableBoxGeometry } from './UpdatableBoxGeometry';
|
import { UpdatableBoxGeometry } from './UpdatableBoxGeometry';
|
||||||
|
import { TinLayer } from '../layer/TinLayer';
|
||||||
|
|
||||||
export class Selection extends Layer {
|
export class Selection extends Layer {
|
||||||
visible;
|
visible;
|
||||||
|
@ -98,6 +99,13 @@ export class Selection extends Layer {
|
||||||
this.map = map;
|
this.map = map;
|
||||||
this.build(this.getScene());
|
this.build(this.getScene());
|
||||||
this.emit('add');
|
this.emit('add');
|
||||||
|
if (this.map.layers) {
|
||||||
|
for (const [key, layer] of Object.entries(this.map.layers)) {
|
||||||
|
if (layer instanceof TinLayer) {
|
||||||
|
layer.buildBorder(this.vertices);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onRemove(map) {
|
onRemove(map) {
|
||||||
|
@ -226,5 +234,12 @@ export class Selection extends Layer {
|
||||||
this.updateGeometries();
|
this.updateGeometries();
|
||||||
// this.setBox();
|
// this.setBox();
|
||||||
this.box.update();
|
this.box.update();
|
||||||
|
// if (this.map.layers) {
|
||||||
|
// for (const [key, layer] of Object.entries(this.map.layers)) {
|
||||||
|
// if (layer instanceof TinLayer) {
|
||||||
|
// layer.box.update();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
3
src/js/intersectionArea.txt
Normal file
3
src/js/intersectionArea.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
https://jsfiddle.net/prisoner849/8uxw667m/
|
||||||
|
|
||||||
|
https://stackoverflow.com/questions/42348495/three-js-find-all-points-where-a-mesh-intersects-a-plane
|
|
@ -6,6 +6,7 @@ import { Layer } from './Layer';
|
||||||
import { BitStream } from '../lib/bitstream';
|
import { BitStream } from '../lib/bitstream';
|
||||||
import { Vector3 } from 'three/src/math/Vector3';
|
import { Vector3 } from 'three/src/math/Vector3';
|
||||||
import { MyMeshStandardMaterial } from '../clip/MyMeshStandardMaterial';
|
import { MyMeshStandardMaterial } from '../clip/MyMeshStandardMaterial';
|
||||||
|
import { MeshBasicMaterial } from 'three/src/materials/MeshBasicMaterial';
|
||||||
import { Group } from 'three/src/objects/Group';
|
import { Group } from 'three/src/objects/Group';
|
||||||
import { TextureLoader } from 'three/src/loaders/TextureLoader';
|
import { TextureLoader } from 'three/src/loaders/TextureLoader';
|
||||||
import proj4 from 'proj4/dist/proj4-src';
|
import proj4 from 'proj4/dist/proj4-src';
|
||||||
|
@ -16,6 +17,9 @@ import { Vector2 } from 'three/src/math/Vector2';
|
||||||
import { Matrix4 } from 'three/src/math/Matrix4';
|
import { Matrix4 } from 'three/src/math/Matrix4';
|
||||||
import { Box3 } from 'three/src/math/Box3';
|
import { Box3 } from 'three/src/math/Box3';
|
||||||
import { uniforms } from '../clip/uniforms';
|
import { uniforms } from '../clip/uniforms';
|
||||||
|
import { UpdatableBoxGeometry } from '../clip/UpdatableBoxGeometry';
|
||||||
|
import { Scene } from 'three/src/scenes/Scene';
|
||||||
|
import { CSG } from 'three-csg-ts';
|
||||||
|
|
||||||
const POINTURL = 'https://geusegdi01.geus.dk/geom3d/data/nodes/';
|
const POINTURL = 'https://geusegdi01.geus.dk/geom3d/data/nodes/';
|
||||||
const EDGEURL = 'https://geusegdi01.geus.dk/geom3d/data/triangles/';
|
const EDGEURL = 'https://geusegdi01.geus.dk/geom3d/data/triangles/';
|
||||||
|
@ -36,7 +40,9 @@ class TinLayer extends Layer {
|
||||||
featuregeom_id: number;
|
featuregeom_id: number;
|
||||||
color: string;
|
color: string;
|
||||||
mainMesh;
|
mainMesh;
|
||||||
|
borderMesh;
|
||||||
geometry: BufferGeometry;
|
geometry: BufferGeometry;
|
||||||
|
box: UpdatableBoxGeometry;
|
||||||
uniforms;
|
uniforms;
|
||||||
// uniforms = {
|
// uniforms = {
|
||||||
// clipping: {
|
// clipping: {
|
||||||
|
@ -72,6 +78,9 @@ class TinLayer extends Layer {
|
||||||
texture: undefined
|
texture: undefined
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
frontStencil: Scene;
|
||||||
|
backStencil: Scene;
|
||||||
|
capsScene: Scene;
|
||||||
|
|
||||||
constructor(params) {
|
constructor(params) {
|
||||||
super();
|
super();
|
||||||
|
@ -92,6 +101,70 @@ class TinLayer extends Layer {
|
||||||
this.uniforms = uniforms;
|
this.uniforms = uniforms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buildBorder(vertices) {
|
||||||
|
let box = this.box = new UpdatableBoxGeometry(vertices)
|
||||||
|
// this.boxMesh = new Mesh(box, material.capMaterial);
|
||||||
|
|
||||||
|
// let color = parseInt(this.color, 16);
|
||||||
|
// let meshMaterial = new MeshBasicMaterial({
|
||||||
|
// color: color,
|
||||||
|
// side: DoubleSide
|
||||||
|
// });
|
||||||
|
// this.materialsArray.push(meshMaterial);
|
||||||
|
// let meshA = this.mainMesh;
|
||||||
|
// let meshB = this.borderMesh = new Mesh(box, meshMaterial);
|
||||||
|
// this._addObject(mesh, false);
|
||||||
|
|
||||||
|
// Make sure the .matrix of each mesh is current
|
||||||
|
// meshA.updateMatrix();
|
||||||
|
// meshB.updateMatrix();
|
||||||
|
|
||||||
|
|
||||||
|
// // Subtract meshB from meshA
|
||||||
|
// this.borderMesh = CSG.subtract(meshA, meshB);
|
||||||
|
// this._addObject(this.borderMesh, false);
|
||||||
|
|
||||||
|
// this.frontStencil = new Scene();
|
||||||
|
// let frontMesh = new Mesh(this.geometry.clone(), material.frontStencilMaterial);
|
||||||
|
// frontMesh.userData.layerId = this.index;
|
||||||
|
// this.frontStencil.add(frontMesh);
|
||||||
|
|
||||||
|
// this.backStencil = new Scene();
|
||||||
|
// let backMesh = new Mesh(this.geometry.clone(), material.backStencilMaterial);
|
||||||
|
// backMesh.userData.layerId = this.index;
|
||||||
|
// this.backStencil.add(frontMesh);
|
||||||
|
|
||||||
|
// this.capsScene = new Scene();
|
||||||
|
// this.capsScene.add(this.borderMesh);
|
||||||
|
}
|
||||||
|
|
||||||
|
// animate() {
|
||||||
|
// let gl = this._map.renderer.getContext();
|
||||||
|
|
||||||
|
// if (gl != undefined && this.capsScene != undefined) {
|
||||||
|
// gl.enable(gl.STENCIL_TEST);
|
||||||
|
// // this.renderer.state.setStencilFunc( true );
|
||||||
|
// // gl.stencilFunc( gl.ALWAYS, 1, 0xff );
|
||||||
|
// // gl.stencilOp( gl.REPLACE, gl.REPLACE, gl.REPLACE );
|
||||||
|
|
||||||
|
// gl.stencilFunc(gl.ALWAYS, 1, 0xff);
|
||||||
|
// gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);
|
||||||
|
// this._map.renderer.render(this.backStencil, this._map.camera);
|
||||||
|
|
||||||
|
// gl.stencilFunc(gl.ALWAYS, 1, 0xff);
|
||||||
|
// gl.stencilOp(gl.KEEP, gl.KEEP, gl.DECR);
|
||||||
|
// this._map.renderer.render(this.frontStencil, this._map.camera);
|
||||||
|
|
||||||
|
// gl.stencilFunc(gl.EQUAL, 1, 0xff);
|
||||||
|
// gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
|
||||||
|
// this._map.renderer.render(this.capsScene, this._map.camera);
|
||||||
|
|
||||||
|
|
||||||
|
// // disable stencil test
|
||||||
|
// gl.disable(gl.STENCIL_TEST);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
setWireframeMode(wireframe) {
|
setWireframeMode(wireframe) {
|
||||||
this.materialsArray.forEach(function (mat) {
|
this.materialsArray.forEach(function (mat) {
|
||||||
//if (m.w) return;
|
//if (m.w) return;
|
||||||
|
|
|
@ -31,6 +31,8 @@ import { TinLayer } from './layer/TinLayer';
|
||||||
|
|
||||||
class Application {
|
class Application {
|
||||||
|
|
||||||
|
capsSceneArray;
|
||||||
|
|
||||||
constructor(container) {
|
constructor(container) {
|
||||||
this.container = container;
|
this.container = container;
|
||||||
this.running = false;
|
this.running = false;
|
||||||
|
@ -109,7 +111,6 @@ class Application {
|
||||||
this.queryMarker.visible = true;
|
this.queryMarker.visible = true;
|
||||||
// this.queryMarker.position.set(4282010, 2302070, -13616.3);
|
// this.queryMarker.position.set(4282010, 2302070, -13616.3);
|
||||||
/* Renderer */
|
/* Renderer */
|
||||||
// let bgcolor = 0xfdfdfd;
|
|
||||||
this.renderer = new WebGLRenderer({ alpha: true, antialias: true, preserveDrawingBuffer: true });
|
this.renderer = new WebGLRenderer({ alpha: true, antialias: true, preserveDrawingBuffer: true });
|
||||||
this.renderer.setPixelRatio(window.devicePixelRatio);
|
this.renderer.setPixelRatio(window.devicePixelRatio);
|
||||||
this.renderer.setSize(this.width, this.height);
|
this.renderer.setSize(this.width, this.height);
|
||||||
|
@ -128,6 +129,7 @@ class Application {
|
||||||
this.capsScene = new Scene();
|
this.capsScene = new Scene();
|
||||||
this.backStencil = new Scene();
|
this.backStencil = new Scene();
|
||||||
this.frontStencil = new Scene();
|
this.frontStencil = new Scene();
|
||||||
|
this.capsSceneArray = new Array();
|
||||||
this._buildDefaultLights(this.scene);
|
this._buildDefaultLights(this.scene);
|
||||||
//app.scene.autoUpdate = false;
|
//app.scene.autoUpdate = false;
|
||||||
//// show axes in the screen
|
//// show axes in the screen
|
||||||
|
@ -189,6 +191,20 @@ class Application {
|
||||||
// this.scene.add(this.selection.touchMeshes);
|
// this.scene.add(this.selection.touchMeshes);
|
||||||
this.map.addLayer(this.selectionBox);
|
this.map.addLayer(this.selectionBox);
|
||||||
|
|
||||||
|
// for (const [key, layer] of Object.entries(this.map.layers)) {
|
||||||
|
// // let layer = map.layers[i];
|
||||||
|
// if (layer instanceof TinLayer && layer.name != "Topography") {
|
||||||
|
// // let capsScene = new Scene();
|
||||||
|
// // capsScene.add(layer.borderMesh);
|
||||||
|
// // this.capsSceneArray.push(capsScene);
|
||||||
|
// this.capsScene.add(layer.borderMesh);
|
||||||
|
// layer.on('visibility-change', (args) => {
|
||||||
|
// let visible = args[0];
|
||||||
|
// layer.borderMesh.visible = visible;
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
let frontGroup = new Group();
|
let frontGroup = new Group();
|
||||||
for (var i in map.layers) {
|
for (var i in map.layers) {
|
||||||
let layer = map.layers[i];
|
let layer = map.layers[i];
|
||||||
|
@ -370,9 +386,14 @@ class Application {
|
||||||
if (this.showCaps && gl != undefined) {
|
if (this.showCaps && gl != undefined) {
|
||||||
// enable stencil test
|
// enable stencil test
|
||||||
gl.enable(gl.STENCIL_TEST);
|
gl.enable(gl.STENCIL_TEST);
|
||||||
// this.renderer.state.setStencilFunc( true );
|
|
||||||
// gl.stencilFunc( gl.ALWAYS, 1, 0xff );
|
// for (let i in this.map.layers) {
|
||||||
// gl.stencilOp( gl.REPLACE, gl.REPLACE, gl.REPLACE );
|
// let layer = this.map.layers[i];
|
||||||
|
// if (layer instanceof TinLayer && layer.name != "Topography") {
|
||||||
|
// layer.animate();
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
gl.stencilFunc(gl.ALWAYS, 1, 0xff);
|
gl.stencilFunc(gl.ALWAYS, 1, 0xff);
|
||||||
gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);
|
gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user