diff --git a/photon-client/package.json b/photon-client/package.json index 9859aef8e6..b1db41aa7c 100644 --- a/photon-client/package.json +++ b/photon-client/package.json @@ -21,13 +21,16 @@ "type-check": "vue-tsc --noEmit" }, "dependencies": { + "@adam-rocska/units-and-measurement": "^1.2.0", "@fontsource/prompt": "^5.2.6", "@mdi/font": "^7.4.47", "@msgpack/msgpack": "^3.1.2", + "aruco-marker": "github:thatcomputerguy0101/aruco-marker#update-and-dictionaries", "axios": "^1.11.0", "echarts": "^6.0.0", "jspdf": "^3.0.1", "pinia": "^3.0.2", + "svg2pdf.js": "^2.7.0", "three": "^0.178.0", "vue": "^3.5.13", "vue-router": "^4.5.1", @@ -40,7 +43,6 @@ "@types/node": "^24.0.0", "@types/three": "^0.178.0", "@vitejs/plugin-vue": "^6.0.6", - "vue-tsc": "^3.2.5", "@vue/eslint-config-prettier": "^10.2.0", "@vue/eslint-config-typescript": "^14.5.0", "@vue/tsconfig": "^0.7.0", @@ -50,6 +52,7 @@ "sass": "^1.89.2", "typescript": "^5.8.3", "vite": "^8.0.10", - "vite-plugin-vuetify": "^2.1.1" + "vite-plugin-vuetify": "^2.1.1", + "vue-tsc": "^3.2.5" } } diff --git a/photon-client/pnpm-lock.yaml b/photon-client/pnpm-lock.yaml index 1ac335e64c..b0bdbe0272 100644 --- a/photon-client/pnpm-lock.yaml +++ b/photon-client/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@adam-rocska/units-and-measurement': + specifier: ^1.2.0 + version: 1.2.0 '@fontsource/prompt': specifier: ^5.2.6 version: 5.2.6 @@ -17,6 +20,9 @@ importers: '@msgpack/msgpack': specifier: ^3.1.2 version: 3.1.2 + aruco-marker: + specifier: github:thatcomputerguy0101/aruco-marker#update-and-dictionaries + version: https://codeload.github.com/thatcomputerguy0101/aruco-marker/tar.gz/3a4d99aab87371e138c84a1fe1a33a146520aa4f axios: specifier: ^1.11.0 version: 1.11.0 @@ -29,6 +35,9 @@ importers: pinia: specifier: ^3.0.2 version: 3.0.2(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)) + svg2pdf.js: + specifier: ^2.7.0 + version: 2.7.0(jspdf@3.0.1) three: specifier: ^0.178.0 version: 0.178.0 @@ -96,6 +105,10 @@ importers: packages: + '@adam-rocska/units-and-measurement@1.2.0': + resolution: {integrity: sha512-mBnZ8/STbztVec+Mz9DH932z0gny52SebtSJ/y3n+IVtuF7KqbtQ3t1u1lpFSkLFU1msaNGzFgqsW7Emj0lrXA==} + engines: {node: '>=20.0.0'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -250,42 +263,36 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [musl] '@parcel/watcher-win32-arm64@2.5.1': resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} @@ -353,42 +360,36 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - libc: [glibc] '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} @@ -621,6 +622,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aruco-marker@https://codeload.github.com/thatcomputerguy0101/aruco-marker/tar.gz/3a4d99aab87371e138c84a1fe1a33a146520aa4f: + resolution: {tarball: https://codeload.github.com/thatcomputerguy0101/aruco-marker/tar.gz/3a4d99aab87371e138c84a1fe1a33a146520aa4f} + version: 3.0.0 + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -925,6 +930,9 @@ packages: debug: optional: true + font-family-papandreou@0.2.0-patch2: + resolution: {integrity: sha512-l/YiRdBSH/eWv6OF3sLGkwErL+n0MqCICi9mppTZBOCL5vixWGDqCYvRcuxB2h7RGCTzaTKOHT2caHvCXQPRlw==} + form-data@4.0.4: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} @@ -1084,28 +1092,24 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-win32-arm64-msvc@1.32.0: resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} @@ -1346,6 +1350,10 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + specificity@0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} + hasBin: true + stackblur-canvas@2.7.0: resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==} engines: {node: '>=0.1.14'} @@ -1366,6 +1374,14 @@ packages: resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==} engines: {node: '>=12.0.0'} + svg2pdf.js@2.7.0: + resolution: {integrity: sha512-nXK4Wx28H0KtOktanm5nsphl1KMEoLNMelAT/776qxPAj9DshwYcqgdpKuBnY1nrcYOriQFHVQLE4tIag+aDJA==} + peerDependencies: + jspdf: ^4.0.0 || ^3.0.0 || ^2.0.0 + + svgpath@2.6.0: + resolution: {integrity: sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==} + synckit@0.11.4: resolution: {integrity: sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1550,6 +1566,8 @@ packages: snapshots: + '@adam-rocska/units-and-measurement@1.2.0': {} + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {} @@ -2065,6 +2083,8 @@ snapshots: argparse@2.0.1: {} + aruco-marker@https://codeload.github.com/thatcomputerguy0101/aruco-marker/tar.gz/3a4d99aab87371e138c84a1fe1a33a146520aa4f: {} + asynckit@0.4.0: {} atob@2.1.2: {} @@ -2367,6 +2387,8 @@ snapshots: follow-redirects@1.15.9: {} + font-family-papandreou@0.2.0-patch2: {} + form-data@4.0.4: dependencies: asynckit: 0.4.0 @@ -2740,6 +2762,8 @@ snapshots: speakingurl@14.0.1: {} + specificity@0.4.1: {} + stackblur-canvas@2.7.0: optional: true @@ -2756,6 +2780,16 @@ snapshots: svg-pathdata@6.0.3: optional: true + svg2pdf.js@2.7.0(jspdf@3.0.1): + dependencies: + cssesc: 3.0.0 + font-family-papandreou: 0.2.0-patch2 + jspdf: 3.0.1 + specificity: 0.4.1 + svgpath: 2.6.0 + + svgpath@2.6.0: {} + synckit@0.11.4: dependencies: '@pkgr/core': 0.2.4 diff --git a/photon-client/src/assets/images/ChArUco_Marker8x8.png b/photon-client/src/assets/images/ChArUco_Marker8x8.png deleted file mode 100644 index d092715ba2..0000000000 Binary files a/photon-client/src/assets/images/ChArUco_Marker8x8.png and /dev/null differ diff --git a/photon-client/src/components/cameras/CameraCalibrationCard.vue b/photon-client/src/components/cameras/CameraCalibrationCard.vue index 1bd01bc8d3..d51f85dc2e 100644 --- a/photon-client/src/components/cameras/CameraCalibrationCard.vue +++ b/photon-client/src/components/cameras/CameraCalibrationCard.vue @@ -1,23 +1,38 @@