From fd335ce5cd83dfdf3c77529a23761c2bd7e95f3e Mon Sep 17 00:00:00 2001 From: Kumkwats Date: Fri, 28 Oct 2022 15:24:39 +0200 Subject: [PATCH] added camera view behind 3D view --- www/package-lock.json | 31 ++++++++++ www/package.json | 1 + www/src/App.svelte | 7 +-- .../3DHandler.svelte} | 61 +++++++++---------- www/src/components/CameraHandler.svelte | 45 ++++++++++++++ www/src/components/cameraPreview.svelte | 24 ++++++++ www/src/helpers/mediaHelper.ts | 10 +++ www/src/pages/ViewAR.svelte | 26 ++++++++ 8 files changed, 168 insertions(+), 37 deletions(-) rename www/src/{pages/test3D.svelte => components/3DHandler.svelte} (84%) create mode 100644 www/src/components/CameraHandler.svelte create mode 100644 www/src/components/cameraPreview.svelte create mode 100644 www/src/helpers/mediaHelper.ts create mode 100644 www/src/pages/ViewAR.svelte diff --git a/www/package-lock.json b/www/package-lock.json index 1cf72c4..1065619 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -22,6 +22,7 @@ "@rollup/plugin-typescript": "^8.0.0", "@tsconfig/svelte": "^2.0.0", "@types/three": "^0.144.0", + "@types/w3c-image-capture": "^1.0.7", "prettier": "^2.7.1", "prettier-plugin-svelte": "^2.8.0", "rollup": "^2.3.4", @@ -353,6 +354,21 @@ "@types/webxr": "*" } }, + "node_modules/@types/w3c-image-capture": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/w3c-image-capture/-/w3c-image-capture-1.0.7.tgz", + "integrity": "sha512-BNmjJT+yjwVzB6N5kf1/m9YZMF//e3JAcII+TIuhRkALn7UD9xZX0R1azVGqqyYuQKbQ6UskC+zSQctnsk9zHg==", + "dev": true, + "dependencies": { + "@types/webrtc": "*" + } + }, + "node_modules/@types/webrtc": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.33.tgz", + "integrity": "sha512-xjN6BelzkY3lzXjIjXGqJVDS6XDleEsvp1bVIyNccXCcMoTH3wvUXFew4/qflwJdNqjmq98Zc5VcALV+XBKBvg==", + "dev": true + }, "node_modules/@types/webxr": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.0.tgz", @@ -1986,6 +2002,21 @@ "@types/webxr": "*" } }, + "@types/w3c-image-capture": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/w3c-image-capture/-/w3c-image-capture-1.0.7.tgz", + "integrity": "sha512-BNmjJT+yjwVzB6N5kf1/m9YZMF//e3JAcII+TIuhRkALn7UD9xZX0R1azVGqqyYuQKbQ6UskC+zSQctnsk9zHg==", + "dev": true, + "requires": { + "@types/webrtc": "*" + } + }, + "@types/webrtc": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.33.tgz", + "integrity": "sha512-xjN6BelzkY3lzXjIjXGqJVDS6XDleEsvp1bVIyNccXCcMoTH3wvUXFew4/qflwJdNqjmq98Zc5VcALV+XBKBvg==", + "dev": true + }, "@types/webxr": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.0.tgz", diff --git a/www/package.json b/www/package.json index f6b40ad..6c87cf6 100644 --- a/www/package.json +++ b/www/package.json @@ -18,6 +18,7 @@ "@rollup/plugin-typescript": "^8.0.0", "@tsconfig/svelte": "^2.0.0", "@types/three": "^0.144.0", + "@types/w3c-image-capture": "^1.0.7", "prettier": "^2.7.1", "prettier-plugin-svelte": "^2.8.0", "rollup": "^2.3.4", diff --git a/www/src/App.svelte b/www/src/App.svelte index 856b0ae..f618b66 100644 --- a/www/src/App.svelte +++ b/www/src/App.svelte @@ -1,11 +1,10 @@ - -
- +
- diff --git a/www/src/components/CameraHandler.svelte b/www/src/components/CameraHandler.svelte new file mode 100644 index 0000000..49ff9a9 --- /dev/null +++ b/www/src/components/CameraHandler.svelte @@ -0,0 +1,45 @@ + + +
+ {#await mediaStreamPromise} +

Waiting for camera....

+ {:then mediaStream} + + {:catch error} +

Error: {error.message}

+ {/await} +
+ + diff --git a/www/src/components/cameraPreview.svelte b/www/src/components/cameraPreview.svelte new file mode 100644 index 0000000..2b73070 --- /dev/null +++ b/www/src/components/cameraPreview.svelte @@ -0,0 +1,24 @@ + + +