diff --git a/package.json b/package.json index 4c62aeb..f300810 100644 --- a/package.json +++ b/package.json @@ -9,18 +9,21 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.5.13", - "three": "npm:three-cf@^0.122.9", - "js-angusj-clipper": "^1.2.1", - "polylabel": "^1.1.0", "@jscad/modeling": "^2.11.0", + "fflate": "^0.8.2", "flatbush": "^3.3.0", - "xaop": "^2.0.0", - "webcad_ue4_api": "http://gitea.cf/cx/webcad-ue4-api/archive/3.20.0.tar.gz" + "js-angusj-clipper": "^1.2.1", + "pinia": "^3.0.2", + "polylabel": "^1.1.0", + "three": "npm:three-cf@^0.122.9", + "vue": "^3.5.13", + "webcad_ue4_api": "http://gitea.cf/cx/webcad-ue4-api/archive/3.20.0.tar.gz", + "xaop": "^2.0.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "@vue/tsconfig": "^0.7.0", + "csstype": "^3.1.3", "typescript": "~5.7.2", "vite": "^6.2.0", "vue-tsc": "^2.2.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c60c76b..3ae74d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,12 +11,18 @@ importers: '@jscad/modeling': specifier: ^2.11.0 version: 2.12.5 + fflate: + specifier: ^0.8.2 + version: 0.8.2 flatbush: specifier: ^3.3.0 version: 3.3.1 js-angusj-clipper: specifier: ^1.2.1 version: 1.3.1 + pinia: + specifier: ^3.0.2 + version: 3.0.2(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) polylabel: specifier: ^1.1.0 version: 1.1.0 @@ -39,6 +45,9 @@ importers: '@vue/tsconfig': specifier: ^0.7.0 version: 0.7.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) + csstype: + specifier: ^3.1.3 + version: 3.1.3 typescript: specifier: ~5.7.2 version: 5.7.3 @@ -369,6 +378,15 @@ packages: '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + '@vue/devtools-api@7.7.2': + resolution: {integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==} + + '@vue/devtools-kit@7.7.2': + resolution: {integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==} + + '@vue/devtools-shared@7.7.2': + resolution: {integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==} + '@vue/language-core@2.2.8': resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} peerDependencies: @@ -411,9 +429,16 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -432,6 +457,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + flatbush@3.3.1: resolution: {integrity: sha512-oKuPbtT+DS2CxH+9Vhbsq8HifmSCuOw+3Cy5zt/vCIrZl5KyengoTHDBLmtpZoBhcwa7/biNjgL1DwdLMJYm1A==} @@ -447,6 +475,13 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + js-angusj-clipper@1.3.1: resolution: {integrity: sha512-/qru4QXxN/gBbQjL4WaFl296YSM8kh5XKpNuNqfZhJ4t4Hw3KeLc5ERj3XHAeLi6pBrqeh6o9PFZUpS3QThEEQ==} @@ -457,6 +492,9 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} @@ -468,9 +506,21 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + pinia@3.0.2: + resolution: {integrity: sha512-sH2JK3wNY809JOeiiURUR0wehJ9/gd9qFN2Y828jCbxEzKEmEt0pzCXwqiSTfuRsK9vQsOflSdnbdBOGrhtn+g==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + polylabel@1.1.0: resolution: {integrity: sha512-bxaGcA40sL3d6M4hH72Z4NdLqxpXRsCFk8AITYg6x1rn1Ei3izf00UMLklerBZTO49aPA3CYrIwVulx2Bce2pA==} @@ -478,6 +528,9 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rollup@4.39.0: resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -487,6 +540,14 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + three-cf@0.122.9: resolution: {integrity: sha512-y+bvPYKI0yMNGF2flNsTbqloPiMAL4OKbIbR9QaQLRjNlz15Th+69ZtirU5ZASGXF/vQIvIrv+6OkxdSjiN89Q==} @@ -770,6 +831,24 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 + '@vue/devtools-api@7.7.2': + dependencies: + '@vue/devtools-kit': 7.7.2 + + '@vue/devtools-kit@7.7.2': + dependencies: + '@vue/devtools-shared': 7.7.2 + birpc: 0.2.19 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.2 + + '@vue/devtools-shared@7.7.2': + dependencies: + rfdc: 1.4.1 + '@vue/language-core@2.2.8(typescript@5.7.3)': dependencies: '@volar/language-core': 2.4.12 @@ -816,10 +895,16 @@ snapshots: balanced-match@1.0.2: {} + birpc@0.2.19: {} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + csstype@3.1.3: {} de-indent@1.0.2: {} @@ -856,6 +941,8 @@ snapshots: estree-walker@2.0.2: {} + fflate@0.8.2: {} + flatbush@3.3.1: dependencies: flatqueue: 1.2.1 @@ -867,6 +954,10 @@ snapshots: he@1.2.0: {} + hookable@5.5.3: {} + + is-what@4.1.16: {} + js-angusj-clipper@1.3.1: {} magic-string@0.30.17: @@ -877,14 +968,25 @@ snapshots: dependencies: brace-expansion: 2.0.1 + mitt@3.0.1: {} + muggle-string@0.4.1: {} nanoid@3.3.11: {} path-browserify@1.0.1: {} + perfect-debounce@1.0.0: {} + picocolors@1.1.1: {} + pinia@3.0.2(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)): + dependencies: + '@vue/devtools-api': 7.7.2 + vue: 3.5.13(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + polylabel@1.1.0: dependencies: tinyqueue: 2.0.3 @@ -895,6 +997,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + rfdc@1.4.1: {} + rollup@4.39.0: dependencies: '@types/estree': 1.0.7 @@ -923,6 +1027,12 @@ snapshots: source-map-js@1.2.1: {} + speakingurl@14.0.1: {} + + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + three-cf@0.122.9: {} tinyqueue@2.0.3: {} diff --git a/public/back-gray.webp b/public/back-gray.webp new file mode 100644 index 0000000..a3c9fe7 Binary files /dev/null and b/public/back-gray.webp differ diff --git a/public/back.webp b/public/back.webp new file mode 100644 index 0000000..fdcf90f Binary files /dev/null and b/public/back.webp differ diff --git a/public/bottom-gray.webp b/public/bottom-gray.webp new file mode 100644 index 0000000..5836e26 Binary files /dev/null and b/public/bottom-gray.webp differ diff --git a/public/bottom.webp b/public/bottom.webp new file mode 100644 index 0000000..a9fc3ea Binary files /dev/null and b/public/bottom.webp differ diff --git a/public/front-gray.webp b/public/front-gray.webp new file mode 100644 index 0000000..724a1ca Binary files /dev/null and b/public/front-gray.webp differ diff --git a/public/front.webp b/public/front.webp new file mode 100644 index 0000000..fc43e27 Binary files /dev/null and b/public/front.webp differ diff --git a/public/left-gray.webp b/public/left-gray.webp new file mode 100644 index 0000000..61e1801 Binary files /dev/null and b/public/left-gray.webp differ diff --git a/public/left.webp b/public/left.webp new file mode 100644 index 0000000..eca651d Binary files /dev/null and b/public/left.webp differ diff --git a/public/right-gray.webp b/public/right-gray.webp new file mode 100644 index 0000000..f98219a Binary files /dev/null and b/public/right-gray.webp differ diff --git a/public/right.webp b/public/right.webp new file mode 100644 index 0000000..0c444f1 Binary files /dev/null and b/public/right.webp differ diff --git a/public/texture1.png b/public/texture1.png new file mode 100644 index 0000000..42ae8f0 Binary files /dev/null and b/public/texture1.png differ diff --git a/public/top-gray.webp b/public/top-gray.webp new file mode 100644 index 0000000..ac160c1 Binary files /dev/null and b/public/top-gray.webp differ diff --git a/public/top.webp b/public/top.webp new file mode 100644 index 0000000..16825e3 Binary files /dev/null and b/public/top.webp differ diff --git a/src/App.vue b/src/App.vue index 4b70bc0..cd11a2a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,9 @@