@zappar/zappar-cv 3.9.1 → 3.10.0

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/lib/native.js CHANGED
@@ -36,6 +36,20 @@ import { WebXRCameraSource } from "./webxr-camera-source";
36
36
  import { WebXRWorldTracker } from "./webxr-world-tracker";
37
37
  let client;
38
38
  const pipelineByWorldTracker = new Map();
39
+ const d3TrackerSizeById = new Map();
40
+ function applyD3SizeToPose(o, indx, pose) {
41
+ var _a;
42
+ const anchor_id = client.d3_tracker_id(o, indx);
43
+ if (anchor_id.length <= 0)
44
+ return;
45
+ const size = (_a = d3TrackerSizeById.get(o)) === null || _a === void 0 ? void 0 : _a.get(anchor_id);
46
+ if (size === undefined)
47
+ return pose;
48
+ const scale = 0.5 * size;
49
+ pose[12] *= scale;
50
+ pose[13] *= scale;
51
+ pose[14] *= scale;
52
+ }
39
53
  const _temporaryMatrix = mat4.create();
40
54
  const _temporaryVec3 = vec3.create();
41
55
  export function initialize(opts) {
@@ -194,25 +208,31 @@ export function initialize(opts) {
194
208
  let bridgedWtImpl = (bridgedWtApi === null || bridgedWtApi === void 0 ? void 0 : bridgedWtApi.impl) || {};
195
209
  const wtImpl = (bridgedWtApi === null || bridgedWtApi === void 0 ? void 0 : bridgedWtApi.impl) || c.impl;
196
210
  let bridgedD3Impl = (bridgedD3Api === null || bridgedD3Api === void 0 ? void 0 : bridgedD3Api.impl) || {};
197
- client = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, c.impl), { world_tracker_mesh_anchor_count: () => 0, world_tracker_mesh_anchor_id: () => "", world_tracker_mesh_anchor_indices: () => new Uint32Array(0), world_tracker_mesh_anchor_indices_count: () => 0, world_tracker_mesh_anchor_indices_size: () => 0, world_tracker_mesh_anchor_vertices: () => new Float32Array(0), world_tracker_mesh_anchor_vertices_count: () => 0, world_tracker_mesh_anchor_vertices_size: () => 0, world_tracker_mesh_anchor_vertices_offset: () => 0, world_tracker_mesh_anchor_vertices_stride: () => 0, world_tracker_mesh_anchor_pose_raw: () => new Float32Array(), world_tracker_mesh_anchor_status: () => anchor_status_t.ANCHOR_STATUS_STOPPED, world_tracker_mesh_anchors_enabled: () => false, world_tracker_mesh_anchors_enabled_set: () => { }, d3_tracker_create: (p) => { return -1; }, d3_tracker_destroy: (o) => { }, d3_tracker_count: (o) => { return 0; }, d3_tracker_enabled: (o) => { return false; }, d3_tracker_enabled_set: (o, v) => { }, d3_tracker_process_max_resolution_set: (o, v) => { }, d3_tracker_pose_raw: (o, indx) => { return mat4.create(); }, d3_tracker_pose0_raw: (o, indx) => { return mat4.create(); }, d3_tracker_pose1_raw: (o, indx) => { return mat4.create(); }, d3_tracker_id: (o, indx) => { return ''; }, d3_tracker_qr: (o, indx) => { return ''; }, d3_tracker_landmarks_data: (o, indx) => { return new Float32Array(0); }, d3_tracker_landmarks_data_size: (o, indx) => { return 0; }, d3_tracker_type: (o, indx) => { return 0; }, d3_tracker_dense: (o, indx) => { return 0; }, d3_tracker_category: (o, indx) => { return 0; }, d3_tracker_size_for_id_set: (o, id, size) => { return 0; }, d3_tracker_pose: (o, indx, cameraPose, mirror) => {
198
- let res = applyScreenCounterRotation(undefined, client.d3_tracker_pose_raw(o, indx));
199
- if (mirror) {
200
- let scale = mat4.create();
201
- mat4.fromScaling(scale, [-1, 1, 1]);
202
- mat4.multiply(res, scale, res);
203
- mat4.multiply(res, res, scale);
204
- }
205
- mat4.multiply(res, cameraPose, res);
206
- return res;
211
+ let d3Impl = (bridgedD3Api === null || bridgedD3Api === void 0 ? void 0 : bridgedD3Api.impl) || c.impl;
212
+ client = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, c.impl), { world_tracker_mesh_anchor_count: () => 0, world_tracker_mesh_anchor_id: () => "", world_tracker_mesh_anchor_indices: () => new Uint32Array(0), world_tracker_mesh_anchor_indices_count: () => 0, world_tracker_mesh_anchor_indices_size: () => 0, world_tracker_mesh_anchor_vertices: () => new Float32Array(0), world_tracker_mesh_anchor_vertices_count: () => 0, world_tracker_mesh_anchor_vertices_size: () => 0, world_tracker_mesh_anchor_vertices_offset: () => 0, world_tracker_mesh_anchor_vertices_stride: () => 0, world_tracker_mesh_anchor_pose_raw: () => new Float32Array(), world_tracker_mesh_anchor_status: () => anchor_status_t.ANCHOR_STATUS_STOPPED, world_tracker_mesh_anchors_enabled: () => false, world_tracker_mesh_anchors_enabled_set: () => { }, d3_tracker_process_max_resolution_set: () => { } }), bridgedWtImpl), bridgedD3Impl), { d3_tracker_create: (pipeline) => {
213
+ let ret = d3Impl.d3_tracker_create(pipeline);
214
+ d3TrackerSizeById.set(ret, new Map());
215
+ return ret;
216
+ }, d3_tracker_destroy: (o) => {
217
+ d3TrackerSizeById.delete(o);
218
+ d3Impl.d3_tracker_destroy(o);
219
+ }, d3_tracker_pose0_raw: (o, indx) => {
220
+ let pose = d3Impl.d3_tracker_pose0_raw(o, indx).slice();
221
+ applyD3SizeToPose(o, indx, pose);
222
+ return pose;
223
+ }, d3_tracker_pose1_raw: (o, indx) => {
224
+ let pose = d3Impl.d3_tracker_pose1_raw(o, indx).slice();
225
+ applyD3SizeToPose(o, indx, pose);
226
+ return pose;
227
+ }, d3_tracker_size_for_id_set: (o, id, size) => {
228
+ var _a;
229
+ (_a = d3TrackerSizeById.get(o)) === null || _a === void 0 ? void 0 : _a.set(id, size);
230
+ }, d3_tracker_pose_raw: (o, indx) => {
231
+ return client.d3_tracker_pose0_raw(o, indx);
232
+ }, d3_tracker_pose: (o, indx, cameraPose, mirror) => {
233
+ return client.d3_tracker_pose0(o, indx, cameraPose, mirror);
207
234
  }, d3_tracker_pose_camera_relative: (o, indx, mirror) => {
208
- let res = applyScreenCounterRotation(undefined, client.d3_tracker_pose_raw(o, indx));
209
- if (mirror) {
210
- let scale = mat4.create();
211
- mat4.fromScaling(scale, [-1, 1, 1]);
212
- mat4.multiply(res, scale, res);
213
- mat4.multiply(res, res, scale);
214
- }
215
- return res;
235
+ return client.d3_tracker_pose0_camera_relative(o, indx, mirror);
216
236
  }, d3_tracker_pose0: (o, indx, cameraPose, mirror) => {
217
237
  let res = applyScreenCounterRotation(undefined, client.d3_tracker_pose0_raw(o, indx));
218
238
  if (mirror) {
@@ -251,7 +271,7 @@ export function initialize(opts) {
251
271
  mat4.multiply(res, res, scale);
252
272
  }
253
273
  return res;
254
- } }), bridgedWtImpl), bridgedD3Impl), { loaded: () => loaded, camera_default_device_id: userFacing => userFacing ? CameraSource.USER_DEFAULT_DEVICE_ID : CameraSource.DEFAULT_DEVICE_ID, camera_source_create: (p, deviceId) => createCameraSource(p, deviceId, preferWebXRCamera), camera_source_destroy: cam => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.destroy(); }, camera_source_pause: cam => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.pause(); }, camera_source_start: cam => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.start(); }, camera_source_profile_set: (cam, p) => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.setProfile(p); }, camera_count: () => 2, camera_id: indx => indx === 0 ? CameraSource.DEFAULT_DEVICE_ID : CameraSource.USER_DEFAULT_DEVICE_ID, camera_name: indx => indx === 0 ? "Rear-facing Camera" : "User-facing Camera", camera_user_facing: indx => indx !== 0, pose_from_raw: (raw_pose, mirror) => {
274
+ }, loaded: () => loaded, camera_default_device_id: userFacing => userFacing ? CameraSource.USER_DEFAULT_DEVICE_ID : CameraSource.DEFAULT_DEVICE_ID, camera_source_create: (p, deviceId) => createCameraSource(p, deviceId, preferWebXRCamera), camera_source_destroy: cam => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.destroy(); }, camera_source_pause: cam => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.pause(); }, camera_source_start: cam => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.start(); }, camera_source_profile_set: (cam, p) => { var _a; return (_a = getCameraSource(cam)) === null || _a === void 0 ? void 0 : _a.setProfile(p); }, camera_count: () => 2, camera_id: indx => indx === 0 ? CameraSource.DEFAULT_DEVICE_ID : CameraSource.USER_DEFAULT_DEVICE_ID, camera_name: indx => indx === 0 ? "Rear-facing Camera" : "User-facing Camera", camera_user_facing: indx => indx !== 0, pose_from_raw: (raw_pose, mirror) => {
255
275
  let res = applyScreenCounterRotation(undefined, raw_pose);
256
276
  if (mirror) {
257
277
  let scale = mat4.create();
@@ -97,7 +97,7 @@ export class SequenceSource extends Source {
97
97
  // updates will be one frame later
98
98
  this._submitMotionUpdates(pipeline);
99
99
  const token = pipeline.registerToken(info);
100
- pipeline.sendDataToWorker(info.data || new ArrayBuffer(0), token, info.dataWidth, info.dataHeight, info.userFacing, info.cameraToDevice, info.cameraModel, -1);
100
+ pipeline.sendDataToWorker(info.data || new ArrayBuffer(0), token, info.dataWidth, info.dataHeight, info.userFacing, info.cameraToDevice.slice(), info.cameraModel.slice(), -1);
101
101
  }
102
102
  destroy() {
103
103
  byId.delete(this._impl);
@@ -154,7 +154,7 @@ export class SequenceSource extends Source {
154
154
  pendingMotionUpdate = true;
155
155
  break;
156
156
  case SequenceRecorderPacketType.ATTITUDE_MATRIX:
157
- pipeline.motionAttitudeMatrix(packet.attitude);
157
+ pipeline.motionAttitudeMatrix(packet.attitude.slice());
158
158
  pendingMotionUpdate = true;
159
159
  break;
160
160
  case SequenceRecorderPacketType.ACCELEROMETER_WO_GRAVITY_INT:
@@ -186,4 +186,16 @@ export interface zappar {
186
186
  custom_anchor_pose_set_with_parent(o: zappar_custom_anchor_t, pose: Float32Array, anchor_id: string): void;
187
187
  d3_tracker_create(pipeline: zappar_pipeline_t): zappar_d3_tracker_t;
188
188
  d3_tracker_destroy(o: zappar_d3_tracker_t): void;
189
+ d3_tracker_enabled(o: zappar_d3_tracker_t): boolean;
190
+ d3_tracker_enabled_set(o: zappar_d3_tracker_t, enabled: boolean): void;
191
+ d3_tracker_count(o: zappar_d3_tracker_t): number;
192
+ d3_tracker_id(o: zappar_d3_tracker_t, indx: number): string;
193
+ d3_tracker_pose0_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
194
+ d3_tracker_pose1_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
195
+ d3_tracker_type(o: zappar_d3_tracker_t, indx: number): number;
196
+ d3_tracker_category(o: zappar_d3_tracker_t, indx: number): number;
197
+ d3_tracker_qr(o: zappar_d3_tracker_t, indx: number): string;
198
+ d3_tracker_dense(o: zappar_d3_tracker_t, indx: number): number;
199
+ d3_tracker_landmarks_data(o: zappar_d3_tracker_t, indx: number): Float32Array;
200
+ d3_tracker_landmarks_data_size(o: zappar_d3_tracker_t, indx: number): number;
189
201
  }
@@ -263,4 +263,16 @@ export interface zappar_cwrap {
263
263
  custom_anchor_pose_set_with_parent(o: zappar_custom_anchor_t, pose: Float32Array, anchor_id: string): void;
264
264
  d3_tracker_create(pipeline: zappar_pipeline_t): zappar_d3_tracker_t;
265
265
  d3_tracker_destroy(o: zappar_d3_tracker_t): void;
266
+ d3_tracker_enabled(o: zappar_d3_tracker_t): boolean;
267
+ d3_tracker_enabled_set(o: zappar_d3_tracker_t, enabled: boolean): void;
268
+ d3_tracker_count(o: zappar_d3_tracker_t): number;
269
+ d3_tracker_id(o: zappar_d3_tracker_t, indx: number): string;
270
+ d3_tracker_pose0_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
271
+ d3_tracker_pose1_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
272
+ d3_tracker_type(o: zappar_d3_tracker_t, indx: number): number;
273
+ d3_tracker_category(o: zappar_d3_tracker_t, indx: number): number;
274
+ d3_tracker_qr(o: zappar_d3_tracker_t, indx: number): string;
275
+ d3_tracker_dense(o: zappar_d3_tracker_t, indx: number): number;
276
+ d3_tracker_landmarks_data(o: zappar_d3_tracker_t, indx: number): Float32Array;
277
+ d3_tracker_landmarks_data_size(o: zappar_d3_tracker_t, indx: number): number;
266
278
  }
@@ -295,25 +295,25 @@ export interface zappar {
295
295
  custom_anchor_pose_set_with_parent(o: zappar_custom_anchor_t, pose: Float32Array, anchor_id: string): void;
296
296
  d3_tracker_create(pipeline: zappar_pipeline_t): zappar_d3_tracker_t;
297
297
  d3_tracker_destroy(o: zappar_d3_tracker_t): void;
298
- d3_tracker_id(o: zappar_d3_tracker_t, indx: number): string;
299
298
  d3_tracker_enabled(o: zappar_d3_tracker_t): boolean;
300
299
  d3_tracker_enabled_set(o: zappar_d3_tracker_t, enabled: boolean): void;
301
300
  d3_tracker_process_max_resolution_set(o: zappar_d3_tracker_t, v: boolean): void;
302
301
  d3_tracker_count(o: zappar_d3_tracker_t): number;
303
- d3_tracker_qr(o: zappar_d3_tracker_t, indx: number): string;
304
- d3_tracker_pose_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
305
- d3_tracker_pose_camera_relative(o: zappar_d3_tracker_t, indx: number, mirror: boolean): Float32Array;
306
- d3_tracker_pose(o: zappar_d3_tracker_t, indx: number, camera_pose: Float32Array, mirror: boolean): Float32Array;
302
+ d3_tracker_id(o: zappar_d3_tracker_t, indx: number): string;
307
303
  d3_tracker_pose0_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
308
304
  d3_tracker_pose0_camera_relative(o: zappar_d3_tracker_t, indx: number, mirror: boolean): Float32Array;
309
305
  d3_tracker_pose0(o: zappar_d3_tracker_t, indx: number, camera_pose: Float32Array, mirror: boolean): Float32Array;
310
306
  d3_tracker_pose1_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
311
307
  d3_tracker_pose1_camera_relative(o: zappar_d3_tracker_t, indx: number, mirror: boolean): Float32Array;
312
308
  d3_tracker_pose1(o: zappar_d3_tracker_t, indx: number, camera_pose: Float32Array, mirror: boolean): Float32Array;
313
- d3_tracker_landmarks_data(o: zappar_d3_tracker_t, indx: number): Float32Array;
314
- d3_tracker_landmarks_data_size(o: zappar_d3_tracker_t, indx: number): number;
315
309
  d3_tracker_type(o: zappar_d3_tracker_t, indx: number): number;
316
- d3_tracker_dense(o: zappar_d3_tracker_t, indx: number): number;
317
310
  d3_tracker_category(o: zappar_d3_tracker_t, indx: number): number;
311
+ d3_tracker_qr(o: zappar_d3_tracker_t, indx: number): string;
312
+ d3_tracker_dense(o: zappar_d3_tracker_t, indx: number): number;
313
+ d3_tracker_landmarks_data(o: zappar_d3_tracker_t, indx: number): Float32Array;
314
+ d3_tracker_landmarks_data_size(o: zappar_d3_tracker_t, indx: number): number;
315
+ d3_tracker_pose_raw(o: zappar_d3_tracker_t, indx: number): Float32Array;
316
+ d3_tracker_pose_camera_relative(o: zappar_d3_tracker_t, indx: number, mirror: boolean): Float32Array;
317
+ d3_tracker_pose(o: zappar_d3_tracker_t, indx: number, camera_pose: Float32Array, mirror: boolean): Float32Array;
318
318
  d3_tracker_size_for_id_set(o: zappar_d3_tracker_t, id: string, size: number): void;
319
319
  }
@@ -1 +1 @@
1
- export declare const VERSION = "3.9.1";
1
+ export declare const VERSION = "3.10.0";
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "3.9.1";
1
+ export declare const VERSION = "3.10.0";
package/lib/version.js CHANGED
@@ -1 +1 @@
1
- export const VERSION = "3.9.1";
1
+ export const VERSION = "3.10.0";