@zappar/zappar-cv 4.0.0-beta.1 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/additional.d.ts +1 -0
- package/lib/native.js +1 -1
- package/lib/profile.js +2 -2
- package/lib/src/additional.d.ts +1 -0
- package/lib/src/version.d.ts +1 -1
- package/lib/src/webxr-camera-source.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/webxr-camera-source.d.ts +2 -0
- package/lib/webxr-camera-source.js +13 -8
- package/lib/zappar-cv.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,8 +18,8 @@ npm i @zappar/zappar-cv
|
|
|
18
18
|
|
|
19
19
|
You can use our CDN from within your HTML:
|
|
20
20
|
```
|
|
21
|
-
<script src="https://libs.zappar.com/zappar-cv/4.0.0-beta.
|
|
21
|
+
<script src="https://libs.zappar.com/zappar-cv/4.0.0-beta.3/zappar-cv.js"></script>
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Or you can download and host our standalone JavaScript bundle:
|
|
25
|
-
[https://libs.zappar.com/zappar-cv/4.0.0-beta.
|
|
25
|
+
[https://libs.zappar.com/zappar-cv/4.0.0-beta.3/zappar-cv.zip](https://libs.zappar.com/zappar-cv/4.0.0-beta.3/zappar-cv.zip)
|
package/lib/additional.d.ts
CHANGED
|
@@ -47,4 +47,5 @@ export interface Additional {
|
|
|
47
47
|
cookies_permitted: (p: boolean) => void;
|
|
48
48
|
world_tracker_points_data_matrix(wt: zappar_world_tracker_t, screenWidth: number, screenHeight: number, mirror: boolean): Float32Array;
|
|
49
49
|
in_app_clip: () => boolean;
|
|
50
|
+
webxr_camera_source_dom_overlay_element_set: (element: Element | null) => void;
|
|
50
51
|
}
|
package/lib/native.js
CHANGED
|
@@ -996,7 +996,7 @@ export function initialize(opts) {
|
|
|
996
996
|
}
|
|
997
997
|
mat4.multiply(res, cameraPose, res);
|
|
998
998
|
return res;
|
|
999
|
-
}, html_element_source_create: (pipeline, elm) => HTMLElementSource.createVideoElementSource(pipeline, elm), html_element_source_start: o => { var _a; return (_a = HTMLElementSource.getVideoElementSource(o)) === null || _a === void 0 ? void 0 : _a.start(); }, html_element_source_pause: o => { var _a; return (_a = HTMLElementSource.getVideoElementSource(o)) === null || _a === void 0 ? void 0 : _a.pause(); }, html_element_source_destroy: o => { var _a; return (_a = HTMLElementSource.getVideoElementSource(o)) === null || _a === void 0 ? void 0 : _a.destroy(); }, sequence_source_create: p => SequenceSource.create(p), sequence_source_load_from_memory: (o, data) => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.loadFromMemory(data); }, sequence_source_pause: o => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.pause(); }, sequence_source_start: o => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.start(); }, sequence_source_max_playback_fps_set: (o, fps) => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.maxPlaybackFpsSet(fps); }, sequence_source_time_set: (o, t) => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.setTime(t); }, sequence_source_destroy: o => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.destroy(); }, permission_granted_all: permissionGrantedAll, permission_granted_camera: permissionGrantedCamera, permission_granted_motion: permissionGrantedMotion, permission_denied_any: permissionDeniedAny, permission_denied_camera: permissionDeniedCamera, permission_denied_motion: permissionDeniedMotion, permission_request_motion: permissionRequestMotion, permission_request_camera: permissionRequestCamera, permission_request_all: permissionRequestAll, permission_request_ui: permissionRequestUI, permission_request_ui_promise: permissionRequestUI, permission_denied_ui: permissionDeniedUI, browser_incompatible: compatibility.incompatible, browser_incompatible_ui: compatibility.incompatible_ui, in_app_clip: () => BridgedCameraSource.IsSupported(), log_level_set: l => {
|
|
999
|
+
}, html_element_source_create: (pipeline, elm) => HTMLElementSource.createVideoElementSource(pipeline, elm), html_element_source_start: o => { var _a; return (_a = HTMLElementSource.getVideoElementSource(o)) === null || _a === void 0 ? void 0 : _a.start(); }, html_element_source_pause: o => { var _a; return (_a = HTMLElementSource.getVideoElementSource(o)) === null || _a === void 0 ? void 0 : _a.pause(); }, html_element_source_destroy: o => { var _a; return (_a = HTMLElementSource.getVideoElementSource(o)) === null || _a === void 0 ? void 0 : _a.destroy(); }, sequence_source_create: p => SequenceSource.create(p), sequence_source_load_from_memory: (o, data) => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.loadFromMemory(data); }, sequence_source_pause: o => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.pause(); }, sequence_source_start: o => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.start(); }, sequence_source_max_playback_fps_set: (o, fps) => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.maxPlaybackFpsSet(fps); }, sequence_source_time_set: (o, t) => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.setTime(t); }, sequence_source_destroy: o => { var _a; return (_a = SequenceSource.get(o)) === null || _a === void 0 ? void 0 : _a.destroy(); }, permission_granted_all: permissionGrantedAll, permission_granted_camera: permissionGrantedCamera, permission_granted_motion: permissionGrantedMotion, permission_denied_any: permissionDeniedAny, permission_denied_camera: permissionDeniedCamera, permission_denied_motion: permissionDeniedMotion, permission_request_motion: permissionRequestMotion, permission_request_camera: permissionRequestCamera, permission_request_all: permissionRequestAll, permission_request_ui: permissionRequestUI, permission_request_ui_promise: permissionRequestUI, permission_denied_ui: permissionDeniedUI, browser_incompatible: compatibility.incompatible, browser_incompatible_ui: compatibility.incompatible_ui, in_app_clip: () => BridgedCameraSource.IsSupported(), webxr_camera_source_dom_overlay_element_set: elm => WebXRCameraSource.setDomOverlayElement(elm), log_level_set: l => {
|
|
1000
1000
|
setLogLevel(l);
|
|
1001
1001
|
c.impl.log_level_set(l);
|
|
1002
1002
|
}, cookies_permitted: p => {
|
package/lib/profile.js
CHANGED
|
@@ -11,8 +11,8 @@ export let profile = {
|
|
|
11
11
|
showGyroPermissionsWarningIfNecessary: false,
|
|
12
12
|
showSafariPermissionsResetIfNecessary: false,
|
|
13
13
|
requestHighFrameRate: false,
|
|
14
|
-
videoWidth:
|
|
15
|
-
videoHeight:
|
|
14
|
+
videoWidth: 640,
|
|
15
|
+
videoHeight: 480,
|
|
16
16
|
videoElementInDOM: false,
|
|
17
17
|
preferMediaStreamTrackProcessorCamera: false,
|
|
18
18
|
preferImageBitmapCamera: false,
|
package/lib/src/additional.d.ts
CHANGED
|
@@ -47,4 +47,5 @@ export interface Additional {
|
|
|
47
47
|
cookies_permitted: (p: boolean) => void;
|
|
48
48
|
world_tracker_points_data_matrix(wt: zappar_world_tracker_t, screenWidth: number, screenHeight: number, mirror: boolean): Float32Array;
|
|
49
49
|
in_app_clip: () => boolean;
|
|
50
|
+
webxr_camera_source_dom_overlay_element_set: (element: Element | null) => void;
|
|
50
51
|
}
|
package/lib/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "4.0.0-beta.
|
|
1
|
+
export declare const VERSION = "4.0.0-beta.3";
|
|
@@ -58,6 +58,8 @@ export declare class WebXRCameraSource extends Source {
|
|
|
58
58
|
private _customAnchors;
|
|
59
59
|
private _groundH;
|
|
60
60
|
static IsSupported(): boolean;
|
|
61
|
+
private static _domOverlayElement;
|
|
62
|
+
static setDomOverlayElement(element: Element | null): void;
|
|
61
63
|
constructor(_impl: zappar_camera_source_t, _pipeline: zappar_pipeline_t);
|
|
62
64
|
destroy(): void;
|
|
63
65
|
setProfile(p: camera_profile_t): void;
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "4.0.0-beta.
|
|
1
|
+
export declare const VERSION = "4.0.0-beta.3";
|
package/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "4.0.0-beta.
|
|
1
|
+
export const VERSION = "4.0.0-beta.3";
|
|
@@ -58,6 +58,8 @@ export declare class WebXRCameraSource extends Source {
|
|
|
58
58
|
private _customAnchors;
|
|
59
59
|
private _groundH;
|
|
60
60
|
static IsSupported(): boolean;
|
|
61
|
+
private static _domOverlayElement;
|
|
62
|
+
static setDomOverlayElement(element: Element | null): void;
|
|
61
63
|
constructor(_impl: zappar_camera_source_t, _pipeline: zappar_pipeline_t);
|
|
62
64
|
destroy(): void;
|
|
63
65
|
setProfile(p: camera_profile_t): void;
|
|
@@ -53,8 +53,8 @@ export class WebXRCameraSource extends Source {
|
|
|
53
53
|
this._rawCameraWidth = 320;
|
|
54
54
|
this._rawCameraHeight = 240;
|
|
55
55
|
this._profile = camera_profile_t.DEFAULT;
|
|
56
|
-
this._preferredWidth = profile.videoWidth;
|
|
57
|
-
this._preferredHeight = profile.videoHeight;
|
|
56
|
+
this._preferredWidth = Math.max(profile.videoWidth, 1280);
|
|
57
|
+
this._preferredHeight = Math.max(profile.videoHeight, 720);
|
|
58
58
|
this._permissionRequestShown = false;
|
|
59
59
|
this._planeHitTestSource = null;
|
|
60
60
|
this._customAnchorSetRequests = new Map();
|
|
@@ -352,6 +352,9 @@ export class WebXRCameraSource extends Source {
|
|
|
352
352
|
return false;
|
|
353
353
|
return true;
|
|
354
354
|
}
|
|
355
|
+
static setDomOverlayElement(element) {
|
|
356
|
+
WebXRCameraSource._domOverlayElement = element;
|
|
357
|
+
}
|
|
355
358
|
destroy() {
|
|
356
359
|
this.pause();
|
|
357
360
|
deleteCameraSource(this._impl);
|
|
@@ -360,8 +363,8 @@ export class WebXRCameraSource extends Source {
|
|
|
360
363
|
this._profile = p;
|
|
361
364
|
}
|
|
362
365
|
setPreferredResolution(w, h) {
|
|
363
|
-
this._preferredWidth = w;
|
|
364
|
-
this._preferredHeight = h;
|
|
366
|
+
this._preferredWidth = Math.max(w, 1280);
|
|
367
|
+
this._preferredHeight = Math.max(h, 720);
|
|
365
368
|
}
|
|
366
369
|
_stop() {
|
|
367
370
|
if (!this._xrSession)
|
|
@@ -456,7 +459,7 @@ export class WebXRCameraSource extends Source {
|
|
|
456
459
|
return;
|
|
457
460
|
}
|
|
458
461
|
_syncCamera() {
|
|
459
|
-
var _a, _b, _c;
|
|
462
|
+
var _a, _b, _c, _d;
|
|
460
463
|
return __awaiter(this, void 0, void 0, function* () {
|
|
461
464
|
if (this._isPaused) {
|
|
462
465
|
if (this._xrSession)
|
|
@@ -478,7 +481,8 @@ export class WebXRCameraSource extends Source {
|
|
|
478
481
|
}
|
|
479
482
|
if (navigator.xr) {
|
|
480
483
|
try {
|
|
481
|
-
const
|
|
484
|
+
const overlayElement = (_b = WebXRCameraSource._domOverlayElement) !== null && _b !== void 0 ? _b : document.documentElement;
|
|
485
|
+
const session = yield navigator.xr.requestSession('immersive-ar', { requiredFeatures: ['dom-overlay', 'camera-access', 'hit-test', 'anchors'], domOverlay: { root: overlayElement } });
|
|
482
486
|
const refSpace = yield session.requestReferenceSpace('local');
|
|
483
487
|
this._xrViewerSpace = yield session.requestReferenceSpace('viewer');
|
|
484
488
|
this._xrWebGLLayer = new XRWebGLLayer(session, this._offscreenContext);
|
|
@@ -491,11 +495,11 @@ export class WebXRCameraSource extends Source {
|
|
|
491
495
|
this._xrGlBinding = new XRWebGLBinding(session, this._offscreenContext);
|
|
492
496
|
// Create a reference space that is a ray pointing down [0, -0.3] in normalized device coordinates
|
|
493
497
|
const offsetRay = new XRRay(new DOMPointReadOnly(0, 0, 0), { x: 0, y: -0.3, z: -1, w: 0 });
|
|
494
|
-
(
|
|
498
|
+
(_d = (_c = session.requestHitTestSource) === null || _c === void 0 ? void 0 : _c.call(session, {
|
|
495
499
|
space: this._xrViewerSpace,
|
|
496
500
|
offsetRay: offsetRay,
|
|
497
501
|
entityTypes: ['plane']
|
|
498
|
-
})) === null ||
|
|
502
|
+
})) === null || _d === void 0 ? void 0 : _d.then((hitTestSource) => {
|
|
499
503
|
this._planeHitTestSource = hitTestSource;
|
|
500
504
|
});
|
|
501
505
|
}
|
|
@@ -593,3 +597,4 @@ export class WebXRCameraSource extends Source {
|
|
|
593
597
|
return false;
|
|
594
598
|
}
|
|
595
599
|
}
|
|
600
|
+
WebXRCameraSource._domOverlayElement = null;
|
package/lib/zappar-cv.wasm
CHANGED
|
Binary file
|