@wemap/providers 14.3.0 → 14.4.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/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AbsoluteHeading, Attitude, Constants, GeoRelativePosition, Level, RelativePosition, UserPosition } from "@wemap/geo";
2
2
  import { Edge, ItineraryInfoManager } from "@wemap/routers";
3
3
  import { Browser, BrowserUtils, TimeUtils, UserAgentUtils } from "@wemap/utils";
4
- import { Camera, SharedCameras, base64ToCanvas, canvasToBase64, convertToGrayscale, reduceImageSize } from "@wemap/camera";
4
+ import { Camera, SharedCameras, base64ToCanvas, canvasToBase64, reduceImageSize } from "@wemap/camera";
5
5
  var RelativeAttitude = class extends Attitude {}, AbsoluteAttitude = class extends Attitude {}, AbsolutePosition = class extends UserPosition {}, ProvidersOptions_default = {
6
6
  useMapMatching: !0,
7
7
  ignoreProviders: [],
@@ -3052,7 +3052,7 @@ var field = function(e, C, w) {
3052
3052
  }
3053
3053
  }(), package_default = {
3054
3054
  name: "@wemap/providers",
3055
- version: "14.2.0",
3055
+ version: "14.3.1",
3056
3056
  type: "module",
3057
3057
  publishConfig: { access: "public" },
3058
3058
  main: "./dist/index.js",
@@ -3063,12 +3063,12 @@ var field = function(e, C, w) {
3063
3063
  } },
3064
3064
  files: ["dist"],
3065
3065
  dependencies: {
3066
- "@wemap/camera": "14.2.0",
3067
- "@wemap/core": "14.2.0",
3068
- "@wemap/geo": "14.2.0",
3069
- "@wemap/osm": "14.2.0",
3070
- "@wemap/routers": "14.2.0",
3071
- "@wemap/utils": "14.2.0"
3066
+ "@wemap/camera": "14.3.1",
3067
+ "@wemap/core": "14.3.1",
3068
+ "@wemap/geo": "14.3.1",
3069
+ "@wemap/osm": "14.3.1",
3070
+ "@wemap/routers": "14.3.1",
3071
+ "@wemap/utils": "14.3.1"
3072
3072
  },
3073
3073
  devDependencies: {
3074
3074
  "@wemap/logger-legacy": "^13.3.0",
@@ -3154,7 +3154,7 @@ var field = function(e, C, w) {
3154
3154
  ...this.coarse.attitude && { attitude: this.coarse.attitude.toJson() },
3155
3155
  ...this.coarse.position && { position: this.coarse.position.toJson() }
3156
3156
  } },
3157
- ...typeof this.device == "object" && { device: this.device }
3157
+ ...this.device !== null && { device: this.device }
3158
3158
  };
3159
3159
  }
3160
3160
  static fromJson(w) {
@@ -3169,18 +3169,29 @@ var field = function(e, C, w) {
3169
3169
  }, VpsRequest_default = class e {
3170
3170
  metadata;
3171
3171
  image;
3172
- constructor(e, C) {
3173
- this.metadata = e, this.image = C;
3172
+ imageQuality;
3173
+ localPose;
3174
+ constructor(e, C, w = .8, T = null) {
3175
+ this.metadata = e, this.image = C, this.imageQuality = w, this.localPose = T;
3174
3176
  }
3175
3177
  toJson() {
3176
3178
  return {
3177
- image: canvasToBase64(this.image),
3179
+ image: canvasToBase64(this.image, "image/jpeg", this.imageQuality),
3180
+ ...this.localPose && { local_pose: this.localPose },
3178
3181
  ...this.metadata.toJson()
3179
3182
  };
3180
3183
  }
3181
3184
  static fromJson(C) {
3182
3185
  return new e(VpsMetadata_default.fromJson(C), base64ToCanvas(C.image));
3183
3186
  }
3187
+ toFormData() {
3188
+ let e = this.image.toDataURL("image/jpeg", this.imageQuality).split(",")[1] || "", C = atob(e), w = new Uint8Array(C.length);
3189
+ for (let e = 0; e < C.length; e++) w[e] = C.charCodeAt(e);
3190
+ let T = new FormData();
3191
+ T.append("image", new Blob([w], { type: "image/jpeg" }), "image.jpg");
3192
+ let E = this.metadata.toJson();
3193
+ return E.calibration && T.append("calibration", JSON.stringify(E.calibration)), E.coarse && T.append("coarse", JSON.stringify(E.coarse)), E.device && T.append("device", JSON.stringify(E.device)), this.localPose && T.append("local_pose", JSON.stringify(this.localPose)), T;
3194
+ }
3184
3195
  }, VpsResponse_default = class e {
3185
3196
  success;
3186
3197
  attitude;
@@ -3202,32 +3213,28 @@ var field = function(e, C, w) {
3202
3213
  return w.position && (D = UserPosition.fromJson(w.position), D.time = T), new e(w.success, E, D);
3203
3214
  }
3204
3215
  }, ImageRelocalization_default = class {
3205
- static _prepareRequest(e, C = null, w = null, T = null) {
3206
- convertToGrayscale(e);
3207
- let E = reduceImageSize(e, 1280), D = UserAgentUtils.getDeviceFromUserAgent() || {};
3208
- return D.caller = T, new VpsRequest_default(new VpsMetadata_default({
3209
- width: E.width,
3210
- height: E.height
3211
- }, C, w, D), E);
3212
- }
3213
- static async relocalize(e, C, w = null, T = null, E = null, D = null) {
3214
- let O = TimeUtils.preciseTime() / 1e3, k = this._prepareRequest(C, w, T, E), A;
3216
+ static _prepareRequest(e, C = null, w = null, T = null, E = null) {
3217
+ let D = reduceImageSize(e, 720, 720), O = UserAgentUtils.getDeviceFromUserAgent() || {};
3218
+ return T && (O.session_id = T.session_id, O.installation_id = T.installation_id, O.attempt_id = T.attempt_id, O.caller = T.caller), new VpsRequest_default(new VpsMetadata_default({
3219
+ width: D.width,
3220
+ height: D.height
3221
+ }, C, w, O), D, .8, E);
3222
+ }
3223
+ static async relocalize(e, C, w = null, T = null, E = null, D = null, O = null) {
3224
+ let k = TimeUtils.preciseTime() / 1e3, A = this._prepareRequest(C, w, T, E, D), j;
3215
3225
  try {
3216
- let C = JSON.stringify(k.toJson());
3217
- Logger.debug(`[VPS] Request (${(C.length / 1024).toFixed(0)} kB) sent to server ${e}`), A = await fetch(e, {
3226
+ let C = A.toFormData();
3227
+ j = await fetch(e, {
3218
3228
  method: "POST",
3219
3229
  body: C,
3220
- headers: Object.assign({
3221
- "Content-Type": "application/json",
3222
- Accept: "application/vnd.geopose+json; version=1"
3223
- }, D || {})
3230
+ headers: Object.assign({ Accept: "application/vnd.geopose+json; version=1" }, O || {})
3224
3231
  });
3225
3232
  } catch {
3226
3233
  return Logger.debug("[VPS] Server respond error"), null;
3227
3234
  }
3228
- if (A.status !== 200) return Logger.debug("[VPS] Server respond error"), null;
3229
- let j = await A.json(), M = VpsResponse_default.fromJson(j, O);
3230
- return Logger.debug(`[VPS] Server respond ${M.success ? "success" : "not found"}`), M;
3235
+ if (j.status !== 200) return Logger.debug("[VPS] Server respond error"), null;
3236
+ let M = await j.json(), F = VpsResponse_default.fromJson(M, k);
3237
+ return Logger.debug(`[VPS] Server respond ${F.success ? "success" : "not found"}`), F;
3231
3238
  }
3232
3239
  static getHeadingFromQuaternion(e) {
3233
3240
  let [C, w, T, E] = e, D = Math.sqrt(2) / 2, O = [
@@ -3238,7 +3245,35 @@ var field = function(e, C, w) {
3238
3245
  ];
3239
3246
  return -Math.atan2(2 * O[3] * O[0] - 2 * O[2] * O[1], 1 - 2 * O[1] ** 2 - 2 * O[3] ** 2);
3240
3247
  }
3241
- }, RelativeRotationCalc = class {
3248
+ }, RelativeAttitudeProvider_default = new class extends Provider_default {
3249
+ arCoreMonitoringId;
3250
+ arCoreProviderId;
3251
+ inertialProviderId;
3252
+ getName = () => "RelativeAttitude";
3253
+ availability = () => RelativeAttitudeFromInertialProvider_default.getAvailability();
3254
+ start() {
3255
+ this.arCoreMonitoringId = ArCoreProvider_default.addMonitoringListener(() => {
3256
+ this.listenArCore(), this.unlistenInertial();
3257
+ }, () => {
3258
+ this.unlistenArCore(), this.listenInertial();
3259
+ }), ArCoreProvider_default.state === "started" ? this.listenArCore() : this.listenInertial();
3260
+ }
3261
+ stop() {
3262
+ ArCoreProvider_default.removeMonitoringListener(this.arCoreMonitoringId), this.unlistenArCore(), this.unlistenInertial();
3263
+ }
3264
+ listenInertial = () => {
3265
+ this.inertialProviderId = RelativeAttitudeFromInertialProvider_default.addEventListener(this.notify, this.notifyError);
3266
+ };
3267
+ unlistenInertial = () => {
3268
+ RelativeAttitudeFromInertialProvider_default.removeEventListener(this.inertialProviderId);
3269
+ };
3270
+ listenArCore = () => {
3271
+ this.arCoreProviderId = ArCoreProvider_default.addEventListener((e) => this.notify(e.relativeAttitude), null, !1);
3272
+ };
3273
+ unlistenArCore = () => {
3274
+ ArCoreProvider_default.removeEventListener(this.arCoreProviderId);
3275
+ };
3276
+ }(), RelativeRotationCalc = class {
3242
3277
  _providerId;
3243
3278
  _isRunning = !1;
3244
3279
  _dataOnStart = null;
@@ -3311,6 +3346,12 @@ var field = function(e, C, w) {
3311
3346
  0,
3312
3347
  0
3313
3348
  ], Math.PI);
3349
+ static ENU_TO_ARCORE_ROT = Quaternion.fromAxisAngle([
3350
+ 1,
3351
+ 0,
3352
+ 0
3353
+ ], -Math.PI / 2);
3354
+ static _scanFailureCallbackUniqueId = 0;
3314
3355
  _relativeRotationCalc;
3315
3356
  _serverError = !1;
3316
3357
  _cameraError = !1;
@@ -3321,6 +3362,13 @@ var field = function(e, C, w) {
3321
3362
  _waitTimeMinInclinationForRequest = e.DEFAULT_WAIT_TIME_MIN_INCLINATION_FOR_REQUEST;
3322
3363
  _useCoarsePose = e.DEFAULT_USE_COARSE_POSE;
3323
3364
  _requestCaller = e.DEFAULT_REQUEST_CALLER;
3365
+ _sessionId;
3366
+ _attemptIdCounter = 0;
3367
+ _currentAttemptId = null;
3368
+ _scanFailureCallbacks = [];
3369
+ constructor() {
3370
+ super(), this._sessionId = this._generateUuid();
3371
+ }
3324
3372
  getName = () => "Vps";
3325
3373
  availability = () => Camera.checkAvailability();
3326
3374
  start() {
@@ -3362,27 +3410,66 @@ var field = function(e, C, w) {
3362
3410
  this._useCoarsePose && (k || AbsoluteAttitudeProvider_default.lastEvent) && (O = {
3363
3411
  ...k && { position: k },
3364
3412
  ...AbsoluteAttitudeProvider_default.lastEvent && { attitude: AbsoluteAttitudeProvider_default.lastEvent }
3365
- });
3366
- let A = await ImageRelocalization_default.relocalize(this._endpoint, D, null, O, this._requestCaller);
3367
- if (!A || !A.success) continue;
3368
- let j = A.attitude.quaternion, M = Quaternion.multiply(j, e.CAMERA_TO_SMARTPHONE_ROT), F = Quaternion.multiply(Quaternion.fromAxisAngle([
3413
+ }), this._currentAttemptId === null && (this._attemptIdCounter += 1, this._currentAttemptId = this._attemptIdCounter);
3414
+ let A = RelativeAttitudeProvider_default.lastEvent, j = GeoRelativePositionProvider_default.lastEvent, M = A && j ? {
3415
+ position: Quaternion.rotate(e.ENU_TO_ARCORE_ROT, [
3416
+ j.x,
3417
+ j.y,
3418
+ j.z
3419
+ ]),
3420
+ orientation: Quaternion.multiply(e.ENU_TO_ARCORE_ROT, A.quaternion)
3421
+ } : null, F = await ImageRelocalization_default.relocalize(this._endpoint, D, null, O, {
3422
+ session_id: this._sessionId,
3423
+ installation_id: null,
3424
+ ...this._currentAttemptId !== null && { attempt_id: this._currentAttemptId },
3425
+ caller: this._requestCaller
3426
+ }, M);
3427
+ if (!F || !F.success) {
3428
+ this._scanFailureCallbacks.forEach(({ id: e, callback: C }) => C({
3429
+ listenerId: e,
3430
+ sessionId: this._sessionId,
3431
+ attemptId: this._currentAttemptId
3432
+ }));
3433
+ continue;
3434
+ }
3435
+ this._currentAttemptId = null;
3436
+ let I = F.attitude.quaternion, L = Quaternion.multiply(I, e.CAMERA_TO_SMARTPHONE_ROT), R = Quaternion.multiply(Quaternion.fromAxisAngle([
3369
3437
  0,
3370
3438
  0,
3371
3439
  1
3372
- ], deg2rad(window.orientation || 0)), M), I = this._relativeRotationCalc?.tickEnd() || new Attitude([
3440
+ ], deg2rad(window.orientation || 0)), L), z = this._relativeRotationCalc?.tickEnd() || new Attitude([
3373
3441
  1,
3374
3442
  0,
3375
3443
  0,
3376
3444
  0
3377
- ]), L = new AbsoluteAttitude(Quaternion.multiply(F, I.quaternion), A.attitude.time, A.attitude.accuracy), R = A.position.clone();
3378
- if (R.accuracy === null && (R.accuracy = 5), T()) break;
3445
+ ]), B = new AbsoluteAttitude(Quaternion.multiply(R, z.quaternion), F.attitude.time, F.attitude.accuracy), V = F.position.clone();
3446
+ if (V.accuracy === null && (V.accuracy = 5), T()) break;
3379
3447
  this.notify({
3380
- absoluteAttitude: L,
3381
- absolutePosition: R
3448
+ absoluteAttitude: B,
3449
+ absolutePosition: V
3382
3450
  });
3383
3451
  }
3384
3452
  };
3385
3453
  _internalStop = () => {};
3454
+ _generateUuid() {
3455
+ return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (e) => {
3456
+ let C = Math.random() * 16 | 0;
3457
+ return (e === "x" ? C : C & 3 | 8).toString(16);
3458
+ });
3459
+ }
3460
+ addScanFailureListener(C) {
3461
+ let w = ++e._scanFailureCallbackUniqueId;
3462
+ return this._scanFailureCallbacks.push({
3463
+ id: w,
3464
+ callback: C
3465
+ }), w;
3466
+ }
3467
+ removeScanFailureListener(e) {
3468
+ this._scanFailureCallbacks = this._scanFailureCallbacks.filter(({ id: C }) => C !== e);
3469
+ }
3470
+ resetCurrentAttempt() {
3471
+ this._currentAttemptId = null;
3472
+ }
3386
3473
  get endpoint() {
3387
3474
  return this._endpoint;
3388
3475
  }
@@ -3593,34 +3680,6 @@ var field = function(e, C, w) {
3593
3680
  let T = deg2rad(e), E = deg2rad(C), D = deg2rad(w), O = Math.cos(T / 2), k = Math.cos(E / 2), A = Math.cos(D / 2), j = Math.sin(T / 2), M = Math.sin(E / 2), N = Math.sin(D / 2), F = O * k * A - j * M * N, I = j * k * A + O * M * N;
3594
3681
  return rad2deg(-2 * Math.atan(I / F));
3595
3682
  }
3596
- }(), RelativeAttitudeProvider_default = new class extends Provider_default {
3597
- arCoreMonitoringId;
3598
- arCoreProviderId;
3599
- inertialProviderId;
3600
- getName = () => "RelativeAttitude";
3601
- availability = () => RelativeAttitudeFromInertialProvider_default.getAvailability();
3602
- start() {
3603
- this.arCoreMonitoringId = ArCoreProvider_default.addMonitoringListener(() => {
3604
- this.listenArCore(), this.unlistenInertial();
3605
- }, () => {
3606
- this.unlistenArCore(), this.listenInertial();
3607
- }), ArCoreProvider_default.state === "started" ? this.listenArCore() : this.listenInertial();
3608
- }
3609
- stop() {
3610
- ArCoreProvider_default.removeMonitoringListener(this.arCoreMonitoringId), this.unlistenArCore(), this.unlistenInertial();
3611
- }
3612
- listenInertial = () => {
3613
- this.inertialProviderId = RelativeAttitudeFromInertialProvider_default.addEventListener(this.notify, this.notifyError);
3614
- };
3615
- unlistenInertial = () => {
3616
- RelativeAttitudeFromInertialProvider_default.removeEventListener(this.inertialProviderId);
3617
- };
3618
- listenArCore = () => {
3619
- this.arCoreProviderId = ArCoreProvider_default.addEventListener((e) => this.notify(e.relativeAttitude), null, !1);
3620
- };
3621
- unlistenArCore = () => {
3622
- ArCoreProvider_default.removeEventListener(this.arCoreProviderId);
3623
- };
3624
3683
  }(), AbsoluteAttitudeProvider_default = new class w extends Provider_default {
3625
3684
  static REL_ABS_DIVERGENCE_ANGLE_THRESHOLD = deg2rad(25);
3626
3685
  static REL_ABS_DIVERGENCE_TIME_THRESHOLD = 2.5;
@@ -4095,12 +4154,15 @@ var field = function(e, C, w) {
4095
4154
  this.notify(T);
4096
4155
  }
4097
4156
  stop() {}
4098
- }(), VpsBackgroundScanner = class {
4157
+ }(), VpsBackgroundScanner = class e {
4158
+ static MAX_CONSECUTIVE_FAILURES = 10;
4099
4159
  intervalMs;
4100
4160
  enabled;
4101
4161
  timeoutId = null;
4102
4162
  listenerId = null;
4163
+ scanFailureListenerId = null;
4103
4164
  isBackgroundScanRunning = !1;
4165
+ consecutiveFailures = 0;
4104
4166
  _status;
4105
4167
  statusCallbacks = /* @__PURE__ */ new Set();
4106
4168
  onResult;
@@ -4128,10 +4190,10 @@ var field = function(e, C, w) {
4128
4190
  }, this.intervalMs), this.setStatus("scheduled"));
4129
4191
  }
4130
4192
  async cancelRunningScan() {
4131
- this.isBackgroundScanRunning && (this.listenerId !== null && (VpsProvider_default.removeEventListener(this.listenerId), this.listenerId = null, VpsProvider_default.stop()), this.isBackgroundScanRunning = !1, this.setStatus(this.enabled ? "idle" : "disabled"));
4193
+ this.isBackgroundScanRunning && (this.listenerId !== null && (VpsProvider_default.removeEventListener(this.listenerId), this.listenerId = null, VpsProvider_default.stop()), this.scanFailureListenerId !== null && (VpsProvider_default.removeScanFailureListener(this.scanFailureListenerId), this.scanFailureListenerId = null), this.isBackgroundScanRunning = !1, this.setStatus(this.enabled ? "idle" : "disabled"));
4132
4194
  }
4133
4195
  clear() {
4134
- this.clearTimeoutOnly(), this.listenerId !== null && (VpsProvider_default.removeEventListener(this.listenerId), this.listenerId = null), this.isBackgroundScanRunning = !1, this.setStatus(this.enabled ? "idle" : "disabled");
4196
+ this.clearTimeoutOnly(), this.listenerId !== null && (VpsProvider_default.removeEventListener(this.listenerId), this.listenerId = null), this.scanFailureListenerId !== null && (VpsProvider_default.removeScanFailureListener(this.scanFailureListenerId), this.scanFailureListenerId = null), this.isBackgroundScanRunning = !1, this.setStatus(this.enabled ? "idle" : "disabled");
4135
4197
  }
4136
4198
  runNow() {
4137
4199
  this.enabled && (this.clearTimeoutOnly(), this.startBackgroundScan());
@@ -4141,19 +4203,21 @@ var field = function(e, C, w) {
4141
4203
  }
4142
4204
  async startBackgroundScan() {
4143
4205
  if (!this.enabled || this.isBackgroundScanRunning || this.listenerId !== null) return;
4144
- let e = await VpsProvider_default.getAvailability();
4145
- if (e instanceof Error) {
4146
- this.onError(e), this.setStatus("idle");
4206
+ let C = await VpsProvider_default.getAvailability();
4207
+ if (C instanceof Error) {
4208
+ this.onError(C), this.setStatus("idle");
4147
4209
  return;
4148
4210
  }
4149
- this.isBackgroundScanRunning = !0, this.setStatus("scanning"), this.listenerId = VpsProvider_default.addEventListener((e) => {
4150
- this.cleanupListener(), this.onResult(e), this.schedule();
4211
+ this.isBackgroundScanRunning = !0, this.setStatus("scanning"), this.scanFailureListenerId = VpsProvider_default.addScanFailureListener((C) => {
4212
+ !this.isBackgroundScanRunning || this.scanFailureListenerId === null || C.listenerId !== this.scanFailureListenerId || (this.consecutiveFailures += 1, this.consecutiveFailures >= e.MAX_CONSECUTIVE_FAILURES && (this.consecutiveFailures = 0, VpsProvider_default.resetCurrentAttempt(), this.cleanupListener(), this.schedule()));
4213
+ }), this.listenerId = VpsProvider_default.addEventListener((e) => {
4214
+ this.consecutiveFailures = 0, this.cleanupListener(), this.onResult(e), this.schedule();
4151
4215
  }, (e) => {
4152
4216
  this.cleanupListener(), this.onError(e), this.schedule();
4153
4217
  });
4154
4218
  }
4155
4219
  cleanupListener() {
4156
- this.listenerId !== null && (VpsProvider_default.removeEventListener(this.listenerId), this.listenerId = null), VpsProvider_default.stop(), this.isBackgroundScanRunning = !1, this.enabled ? this.setStatus("idle") : this.setStatus("disabled");
4220
+ this.listenerId !== null && (VpsProvider_default.removeEventListener(this.listenerId), this.listenerId = null), this.scanFailureListenerId !== null && (VpsProvider_default.removeScanFailureListener(this.scanFailureListenerId), this.scanFailureListenerId = null), VpsProvider_default.stop(), this.isBackgroundScanRunning = !1, this.enabled ? this.setStatus("idle") : this.setStatus("disabled");
4157
4221
  }
4158
4222
  setStatus(e) {
4159
4223
  this._status !== e && (this._status = e, this.statusCallbacks.forEach((C) => {
@@ -1,11 +1,11 @@
1
1
  import { Calibration } from '../../../../../camera';
2
2
  import { Quaternion_t } from '@wemap/maths-legacy';
3
- import { CoarsePose } from './VpsMetadata';
4
- import { default as VpsRequest } from './VpsRequest';
3
+ import { CoarsePose, VpsDeviceMetadata } from './VpsMetadata';
4
+ import { default as VpsRequest, LocalPose } from './VpsRequest';
5
5
  import { default as VpsResponse } from './VpsResponse';
6
6
  declare class ImageRelocalization {
7
- static _prepareRequest(imageCanvas: HTMLCanvasElement, calibration?: Calibration | null, coarsePose?: CoarsePose | null, requestCaller?: string | null): VpsRequest;
8
- static relocalize(endpointUrl: string, imageCanvas: HTMLCanvasElement, calibration?: Calibration | null, coarsePose?: CoarsePose | null, requestCaller?: string | null, customHeaders?: Record<string, string> | null): Promise<VpsResponse | null>;
7
+ static _prepareRequest(imageCanvas: HTMLCanvasElement, calibration?: Calibration | null, coarsePose?: CoarsePose | null, deviceMetadata?: Pick<VpsDeviceMetadata, 'session_id' | 'installation_id' | 'attempt_id' | 'caller'> | null, localPose?: LocalPose | null): VpsRequest;
8
+ static relocalize(endpointUrl: string, imageCanvas: HTMLCanvasElement, calibration?: Calibration | null, coarsePose?: CoarsePose | null, deviceMetadata?: Pick<VpsDeviceMetadata, 'session_id' | 'installation_id' | 'attempt_id' | 'caller'> | null, localPose?: LocalPose | null, customHeaders?: Record<string, string> | null): Promise<VpsResponse | null>;
9
9
  static getHeadingFromQuaternion(quaternion: Quaternion_t): number;
10
10
  }
11
11
  export default ImageRelocalization;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageRelocalization.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/ImageRelocalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAuC,MAAM,eAAe,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,cAAM,mBAAmB;IAErB,MAAM,CAAC,eAAe,CAClB,WAAW,EAAE,iBAAiB,EAC9B,WAAW,GAAE,WAAW,GAAG,IAAW,EACtC,UAAU,GAAE,UAAU,GAAG,IAAW,EACpC,aAAa,GAAE,MAAM,GAAG,IAAW;WAmB1B,UAAU,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,iBAAiB,EAC9B,WAAW,GAAE,WAAW,GAAG,IAAW,EACtC,UAAU,GAAE,UAAU,GAAG,IAAW,EACpC,aAAa,GAAE,MAAM,GAAG,IAAW,EACnC,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAW;IAyCvD,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,YAAY;CAmB3D;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ImageRelocalization.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/ImageRelocalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,eAAe,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAoB,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,UAAU,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,cAAM,mBAAmB;IAErB,MAAM,CAAC,eAAe,CAClB,WAAW,EAAE,iBAAiB,EAC9B,WAAW,GAAE,WAAW,GAAG,IAAW,EACtC,UAAU,GAAE,UAAU,GAAG,IAAW,EACpC,cAAc,GAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,iBAAiB,GAAG,YAAY,GAAG,QAAQ,CAAC,GAAG,IAAW,EACjH,SAAS,GAAE,SAAS,GAAG,IAAW;WAuBzB,UAAU,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,iBAAiB,EAC9B,WAAW,GAAE,WAAW,GAAG,IAAW,EACtC,UAAU,GAAE,UAAU,GAAG,IAAW,EACpC,cAAc,GAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,iBAAiB,GAAG,YAAY,GAAG,QAAQ,CAAC,GAAG,IAAW,EACjH,SAAS,GAAE,SAAS,GAAG,IAAW,EAClC,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAW;IA6CvD,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,YAAY;CAmB3D;AAED,eAAe,mBAAmB,CAAC"}
@@ -37,11 +37,14 @@ export interface VpsBackgroundScanOptions {
37
37
  * the same provider, use {@link cancelRunningScan} first to avoid conflicts.
38
38
  */
39
39
  export declare class VpsBackgroundScanner {
40
+ private static readonly MAX_CONSECUTIVE_FAILURES;
40
41
  private readonly intervalMs;
41
42
  private enabled;
42
43
  private timeoutId;
43
44
  private listenerId;
45
+ private scanFailureListenerId;
44
46
  private isBackgroundScanRunning;
47
+ private consecutiveFailures;
45
48
  private _status;
46
49
  private statusCallbacks;
47
50
  private readonly onResult;
@@ -1 +1 @@
1
- {"version":3,"file":"VpsBackgroundScanner.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsBackgroundScanner.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAwD;IAE/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD;;;;OAIG;gBACS,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAQnH,IAAI,MAAM,IAAI,uBAAuB,CAEpC;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,MAAM,IAAI;IAO/E;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI;IAI1E;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAYhB;;;;;OAKG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAexC;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;;;;OAKG;IACH,MAAM,IAAI,IAAI;IAQd,OAAO,CAAC,gBAAgB;YAUV,mBAAmB;IA6BjC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,SAAS;CAclB"}
1
+ {"version":3,"file":"VpsBackgroundScanner.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsBackgroundScanner.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAE,KAAK,QAAQ,EAA4B,MAAM,eAAe,CAAC;AAErF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IAEtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAwD;IAE/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD;;;;OAIG;gBACS,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAQnH,IAAI,MAAM,IAAI,uBAAuB,CAEpC;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,MAAM,IAAI;IAO/E;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI;IAI1E;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAYhB;;;;;OAKG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAcb;;;;;OAKG;IACH,MAAM,IAAI,IAAI;IAQd,OAAO,CAAC,gBAAgB;YAUV,mBAAmB;IA8CjC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,SAAS;CAclB"}
@@ -9,11 +9,17 @@ export type CoarsePose = {
9
9
  attitude?: Attitude;
10
10
  position?: UserPosition;
11
11
  };
12
+ export type VpsDeviceMetadata = Device & {
13
+ session_id?: string | null;
14
+ installation_id?: string | null;
15
+ attempt_id?: number;
16
+ caller?: string | null;
17
+ };
12
18
  export type VpsMetadataJson = {
13
19
  size: [number, number];
14
20
  calibration?: Calibration;
15
21
  coarse?: CoarsePoseJson;
16
- device?: Device;
22
+ device?: VpsDeviceMetadata;
17
23
  };
18
24
  declare class VpsMetadata {
19
25
  size: {
@@ -22,11 +28,11 @@ declare class VpsMetadata {
22
28
  };
23
29
  calibration: Calibration | null;
24
30
  coarse: CoarsePose | null;
25
- device: Device | null;
31
+ device: VpsDeviceMetadata | null;
26
32
  constructor(size: {
27
33
  width: number;
28
34
  height: number;
29
- }, calibration?: Calibration | null, coarse?: CoarsePose | null, device?: Device | null);
35
+ }, calibration?: Calibration | null, coarse?: CoarsePose | null, device?: VpsDeviceMetadata | null);
30
36
  toJson(): VpsMetadataJson;
31
37
  static fromJson(json: VpsMetadataJson): VpsMetadata;
32
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VpsMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAGD,cAAM,WAAW;IACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGlB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EACvC,WAAW,GAAE,WAAW,GAAG,IAAW,EACtC,MAAM,GAAE,UAAU,GAAG,IAAW,EAChC,MAAM,GAAE,MAAM,GAAG,IAAW;IAQhC,MAAM,IAAI,eAAe;IAezB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe;CAcxC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"VpsMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC7B,CAAA;AAGD,cAAM,WAAW;IACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;gBAG7B,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EACvC,WAAW,GAAE,WAAW,GAAG,IAAW,EACtC,MAAM,GAAE,UAAU,GAAG,IAAW,EAChC,MAAM,GAAE,iBAAiB,GAAG,IAAW;IAQ3C,MAAM,IAAI,eAAe;IAezB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe;CAcxC;AAED,eAAe,WAAW,CAAC"}
@@ -6,6 +6,11 @@ export type VpsEvent = {
6
6
  absoluteAttitude: AbsoluteAttitude;
7
7
  absolutePosition: AbsolutePosition;
8
8
  };
9
+ export type VpsScanFailureEvent = {
10
+ listenerId: number;
11
+ sessionId: string;
12
+ attemptId: number | null;
13
+ };
9
14
  declare class VpsProvider extends Provider<VpsEvent> {
10
15
  static MIN_TIME_BETWEEN_TWO_REQUESTS: number;
11
16
  static DEFAULT_MIN_INCLINATION_FOR_REQUEST: number;
@@ -13,6 +18,8 @@ declare class VpsProvider extends Provider<VpsEvent> {
13
18
  static DEFAULT_USE_COARSE_POSE: boolean;
14
19
  static DEFAULT_REQUEST_CALLER: string;
15
20
  static CAMERA_TO_SMARTPHONE_ROT: import('@wemap/maths-legacy').Quaternion_t;
21
+ static ENU_TO_ARCORE_ROT: import('@wemap/maths-legacy').Quaternion_t;
22
+ static _scanFailureCallbackUniqueId: number;
16
23
  _relativeRotationCalc?: RelativeRotationCalc;
17
24
  _serverError: boolean;
18
25
  _cameraError: boolean;
@@ -23,6 +30,14 @@ declare class VpsProvider extends Provider<VpsEvent> {
23
30
  _waitTimeMinInclinationForRequest: number;
24
31
  _useCoarsePose: boolean;
25
32
  _requestCaller: string;
33
+ _sessionId: string;
34
+ _attemptIdCounter: number;
35
+ _currentAttemptId: number | null;
36
+ _scanFailureCallbacks: {
37
+ id: number;
38
+ callback: (event: VpsScanFailureEvent) => void;
39
+ }[];
40
+ constructor();
26
41
  getName: () => string;
27
42
  availability: () => Promise<void>;
28
43
  start(): void;
@@ -34,6 +49,10 @@ declare class VpsProvider extends Provider<VpsEvent> {
34
49
  _useCamera(camera: Camera): void;
35
50
  _internalStart: () => Promise<void>;
36
51
  _internalStop: () => void;
52
+ _generateUuid(): string;
53
+ addScanFailureListener(callback: (event: VpsScanFailureEvent) => void): number;
54
+ removeScanFailureListener(listenerId: number): void;
55
+ resetCurrentAttempt(): void;
37
56
  get endpoint(): string | null;
38
57
  set endpoint(endpoint: string | null);
39
58
  get minInclinationForRequest(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"VpsProvider.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAOtD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG3E,MAAM,MAAM,QAAQ,GAAG;IAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAAC,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAClG,cAAM,WAAY,SAAQ,QAAQ,CAAC,QAAQ,CAAC;IAExC,MAAM,CAAC,6BAA6B,SAAQ;IAC5C,MAAM,CAAC,mCAAmC,SAAe;IACzD,MAAM,CAAC,6CAA6C,SAAO;IAC3D,MAAM,CAAC,uBAAuB,UAAQ;IACtC,MAAM,CAAC,sBAAsB,SAA0D;IACvF,MAAM,CAAC,wBAAwB,6CAAgD;IAE/E,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAE7C,YAAY,UAAS;IACrB,YAAY,UAAS;IAErB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,yBAAyB,SAAmD;IAC5E,iCAAiC,SAA6D;IAC9F,cAAc,UAAuC;IACrD,cAAc,SAAsC;IAEpD,OAAO,eAAe;IAEtB,YAAY,sBAAoC;IAEhD,KAAK;IAsBL,IAAI;IAYJ,iBAAiB,GAAI,YAAY;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,UAMlD;IAED,gBAAgB,aAQf;IAED,UAAU,CAAC,MAAM,EAAE,MAAM;IAYzB,cAAc,sBAqGb;IAED,aAAa,aAEZ;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,QAAQ,CAAC,QAAQ,eAAA,EAEpB;IAED,IAAI,wBAAwB,WAE3B;IAED,IAAI,wBAAwB,CAAC,wBAAwB,QAAA,EAEpD;IAED,IAAI,gCAAgC,WAEnC;IAED,IAAI,gCAAgC,CAAC,gCAAgC,QAAA,EAEpE;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,aAAa,CAAC,aAAa,SAAA,EAE9B;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,aAAa,CAAC,aAAa,QAAA,EAE9B;CACJ;;AAED,wBAAiC"}
1
+ {"version":3,"file":"VpsProvider.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAOtD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI3E,MAAM,MAAM,QAAQ,GAAG;IAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAAC,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAClG,MAAM,MAAM,mBAAmB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAC;AAEF,cAAM,WAAY,SAAQ,QAAQ,CAAC,QAAQ,CAAC;IAExC,MAAM,CAAC,6BAA6B,SAAQ;IAC5C,MAAM,CAAC,mCAAmC,SAAe;IACzD,MAAM,CAAC,6CAA6C,SAAO;IAC3D,MAAM,CAAC,uBAAuB,UAAQ;IACtC,MAAM,CAAC,sBAAsB,SAA0D;IACvF,MAAM,CAAC,wBAAwB,6CAAgD;IAG/E,MAAM,CAAC,iBAAiB,6CAAqD;IAC7E,MAAM,CAAC,4BAA4B,SAAK;IAExC,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAE7C,YAAY,UAAS;IACrB,YAAY,UAAS;IAErB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,yBAAyB,SAAmD;IAC5E,iCAAiC,SAA6D;IAC9F,cAAc,UAAuC;IACrD,cAAc,SAAsC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,SAAK;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACxC,qBAAqB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAA;KAAE,EAAE,CAAM;;IAQ7F,OAAO,eAAe;IAEtB,YAAY,sBAAoC;IAEhD,KAAK;IAsBL,IAAI;IAYJ,iBAAiB,GAAI,YAAY;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,UAMlD;IAED,gBAAgB,aAQf;IAED,UAAU,CAAC,MAAM,EAAE,MAAM;IAYzB,cAAc,sBA8Ib;IAED,aAAa,aAEZ;IAED,aAAa;IAab,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI;IAMrE,yBAAyB,CAAC,UAAU,EAAE,MAAM;IAI5C,mBAAmB;IAInB,IAAI,QAAQ,kBAEX;IAED,IAAI,QAAQ,CAAC,QAAQ,eAAA,EAEpB;IAED,IAAI,wBAAwB,WAE3B;IAED,IAAI,wBAAwB,CAAC,wBAAwB,QAAA,EAEpD;IAED,IAAI,gCAAgC,WAEnC;IAED,IAAI,gCAAgC,CAAC,gCAAgC,QAAA,EAEpE;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,aAAa,CAAC,aAAa,SAAA,EAE9B;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,aAAa,CAAC,aAAa,QAAA,EAE9B;CACJ;;AAED,wBAAiC"}
@@ -2,18 +2,26 @@ import { default as VpsMetadata, VpsMetadataJson } from './VpsMetadata';
2
2
  export type VpsRequestJson = VpsMetadataJson & {
3
3
  image: string;
4
4
  };
5
+ export type LocalPose = {
6
+ position: [number, number, number];
7
+ orientation: [number, number, number, number];
8
+ };
5
9
  declare class VpsRequest {
6
10
  metadata: VpsMetadata;
7
11
  image: HTMLCanvasElement;
8
- constructor(metadata: VpsMetadata, image: HTMLCanvasElement);
12
+ imageQuality: number;
13
+ localPose: LocalPose | null;
14
+ constructor(metadata: VpsMetadata, image: HTMLCanvasElement, imageQuality?: number, localPose?: LocalPose | null);
9
15
  toJson(): {
10
16
  size: [number, number];
11
17
  calibration?: import('../../../../../camera').Calibration;
12
18
  coarse?: import('./VpsMetadata').CoarsePoseJson;
13
- device?: import('../../../../../utils').Device;
19
+ device?: import('./VpsMetadata').VpsDeviceMetadata;
20
+ local_pose?: LocalPose | undefined;
14
21
  image: string;
15
22
  };
16
23
  static fromJson(json: VpsRequestJson): VpsRequest;
24
+ toFormData(): FormData;
17
25
  }
18
26
  export default VpsRequest;
19
27
  //# sourceMappingURL=VpsRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VpsRequest.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsRequest.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,cAAM,UAAU;IACZ,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;gBAEb,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAK3D,MAAM;;;;;;;IAQN,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc;CAMvC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"VpsRequest.d.ts","sourceRoot":"","sources":["../../../../../src/providers/vision/vps/VpsRequest.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAChD,CAAA;AAED,cAAM,UAAU;IACZ,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;gBAGxB,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,iBAAiB,EACxB,YAAY,GAAE,MAAY,EAC1B,SAAS,GAAE,SAAS,GAAG,IAAW;IAQtC,MAAM;;;;;;;;IASN,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc;IAOpC,UAAU;CA0Bb;AAED,eAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wemap/providers",
3
- "version": "14.3.0",
3
+ "version": "14.4.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,12 +17,12 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@wemap/camera": "14.3.0",
21
- "@wemap/core": "14.3.0",
22
- "@wemap/geo": "14.3.0",
23
- "@wemap/osm": "14.3.0",
24
- "@wemap/routers": "14.3.0",
25
- "@wemap/utils": "14.3.0"
20
+ "@wemap/camera": "14.4.0",
21
+ "@wemap/core": "14.4.0",
22
+ "@wemap/geo": "14.4.0",
23
+ "@wemap/osm": "14.4.0",
24
+ "@wemap/routers": "14.4.0",
25
+ "@wemap/utils": "14.4.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@wemap/logger-legacy": "^13.3.0",