@miris-inc/core 0.0.8-6ba4cfb → 0.0.8-6bf2242

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  <p align="center">
2
2
  <a href="https://miris.com">
3
- <img src="./banner.svg" alt="Miris" width="100%" />
3
+ <img src="https://cdn.jsdelivr.net/npm/@miris-inc/core/banner.svg" alt="Miris" width="100%" />
4
4
  </a>
5
5
  </p>
6
6
 
package/dist/AquaApi.wasm CHANGED
Binary file
Binary file
package/dist/core.d.ts CHANGED
@@ -1,16 +1,56 @@
1
+ export declare const AssetFormat: {
2
+ readonly GaussianSplats: 1;
3
+ readonly GES: 2;
4
+ };
5
+
1
6
  declare interface AttributeInfo extends EmbindObject {
2
- readonly dataType: number;
3
- readonly componentCount: number;
4
- readonly dataPtr: number;
5
- readonly dataByteLength: number;
7
+ // Logical elements from the drop metadata: splats for a per-splat attribute, records for a
8
+ // per-surfel one. Not necessarily dataSizeBytes / bytesPerElement.
9
+ readonly elementCount: number;
10
+ readonly dataSizeBytes: number;
6
11
  readonly clientSideId: bigint;
12
+ // An embind CompressionType value, compared by identity against MainModule.CompressionType
13
+ readonly compressionType: unknown;
14
+ readonly minValue: { x: number; y: number; z: number; w: number };
7
15
  readonly maxValue: { x: number; y: number; z: number };
8
16
  }
9
17
 
18
+ export declare class AttributeNames {
19
+ static readonly SPARK_PACKED_SPLAT: string;
20
+ static readonly SPARK_EXTENDED_SPLAT_LOW: string;
21
+ static readonly SPARK_EXTENDED_SPLAT_HIGH: string;
22
+ static readonly SPARK_PACKED_SH1: string;
23
+ static readonly SPARK_PACKED_SH2: string;
24
+ static readonly SPARK_PACKED_SH3: string;
25
+ static readonly SPARK_EXTENDED_SH1: string;
26
+ static readonly SPARK_EXTENDED_SH2: string;
27
+ static readonly SPARK_EXTENDED_SH3_A: string;
28
+ static readonly SPARK_EXTENDED_SH3_B: string;
29
+ static readonly UNUSED: string;
30
+ static readonly SHARK_ELLIPSOIDS: string;
31
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
32
+ static readonly SHARK_SPHERICAL_HARMONICS: string;
33
+ static readonly COLOR: string;
34
+ static readonly OCTANT_OFFSETS: string;
35
+ static readonly SURFEL_OCTANT_OFFSETS: string;
36
+ static readonly SURFEL_COUNT: string;
37
+ static readonly REFLECTANCE_DATA_V1: string;
38
+ static readonly GLASS_MESH_GEOMETRY: string;
39
+ static readonly GLASS_MESH_PANELS: string;
40
+ static readonly MOD_DEPTH: string;
41
+ }
42
+
43
+ declare type CachedAttribute = {
44
+ paddedData: Uint32Array<ArrayBuffer>;
45
+ originalSizeInUints: number;
46
+ };
47
+
10
48
  export declare class Camera {
11
49
  #private;
12
50
  readonly id: number;
13
51
  update(): void;
52
+ get viewportHeight(): number;
53
+ set viewportHeight(viewportHeight: number);
14
54
  get aspect(): number;
15
55
  set aspect(aspect: number);
16
56
  get fov(): number;
@@ -24,7 +64,7 @@ export declare class Camera {
24
64
  readonly engine: Engine;
25
65
  readonly miris: Miris;
26
66
  readonly scene: Scene;
27
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
67
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
28
68
  }
29
69
 
30
70
  export declare type CameraInit = {
@@ -34,6 +74,7 @@ export declare type CameraInit = {
34
74
  far: number;
35
75
  matrix: Matrix4x4Tuple;
36
76
  scene: Scene;
77
+ viewportHeight?: number;
37
78
  };
38
79
 
39
80
  export declare class Change {
@@ -43,7 +84,7 @@ export declare class Change {
43
84
  }
44
85
 
45
86
  export declare type ChangeInit = {
46
- type: "created" | "activated" | "modified" | "deactivated" | "deleted";
87
+ type: "created" | "activated" | "modified" | "deactivated" | "deleted" | "remasked";
47
88
  lod: Lod;
48
89
  };
49
90
 
@@ -60,6 +101,7 @@ declare class Client {
60
101
  getAssetsAsync(...args: ClientMethodParameters["getAssetsAsync"]): AssetInfo[];
61
102
  getAttribute(...args: ClientMethodParameters["getAttribute"]): AquaStatus;
62
103
  getDefaultCameraId(...args: ClientMethodParameters["getDefaultCameraId"]): number;
104
+ getViewingVolumeId(...args: ClientMethodParameters["getViewingVolumeId"]): number;
63
105
  getLocalBoundingBox(...args: ClientMethodParameters["getLocalBoundingBox"]): AquaStatus;
64
106
  getWorldBoundingBox(...args: ClientMethodParameters["getWorldBoundingBox"]): AquaStatus;
65
107
  getLodIndex(...args: ClientMethodParameters["getLodIndex"]): number;
@@ -68,6 +110,7 @@ declare class Client {
68
110
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
69
111
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
70
112
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
113
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
71
114
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
72
115
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
73
116
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -83,6 +126,8 @@ declare class Client {
83
126
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
84
127
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
85
128
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
129
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
130
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
86
131
  getName(...args: ClientMethodParameters["getName"]): string;
87
132
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
88
133
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -139,6 +184,8 @@ declare class Engine {
139
184
  };
140
185
  static Feature: {
141
186
  readonly DrMap: 0;
187
+ readonly ReflMesh: 1;
188
+ readonly GlassMesh: 2;
142
189
  };
143
190
  static FeatureState: {
144
191
  readonly NotLoaded: 0;
@@ -151,6 +198,10 @@ declare class Engine {
151
198
  get module(): MainModule;
152
199
  constructor(moduleOptions?: Record<string, unknown>);
153
200
  get AttributeInfo(): new () => AttributeInfo;
201
+ get CompressionType(): {
202
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
203
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
204
+ };
154
205
  get Handedness(): {
155
206
  Right: number;
156
207
  Left: number;
@@ -186,6 +237,8 @@ declare class Engine {
186
237
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
187
238
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
188
239
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
240
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
241
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
189
242
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
190
243
  free(...args: [size: number]): number;
191
244
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -195,7 +248,8 @@ declare class Engine {
195
248
  attributeName: string,
196
249
  attributeInfo: AttributeInfo
197
250
  ]): AquaStatus;
198
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
251
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
252
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
199
253
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
200
254
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
201
255
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -244,19 +298,18 @@ declare class Engine {
244
298
  removeStream(...args: [handle: AquaClientHandle, streamObjectId: number]): boolean;
245
299
  setAssetViewerKey(...args: [handle: AquaClientHandle, key: string]): AquaStatus;
246
300
  setClientSpatialFormat(...args: [handle: AquaClientHandle, spatialFormat: SpatialFormat]): AquaStatus;
247
- setRuntimeSettings(...args: [
248
- handle: AquaClientHandle,
249
- settings: RuntimeSettings
250
- ]): AquaStatus;
301
+ setRuntimeSettings(...args: [handle: AquaClientHandle, settings: RuntimeSettings]): AquaStatus;
251
302
  setMainCameraTransform(...args: [handle: AquaClientHandle, cameraTransform: number]): AquaStatus;
252
303
  setMainCameraViewFrustum(...args: [
253
304
  handle: AquaClientHandle,
254
305
  aspectRatio: number,
255
306
  verticalFov: number,
256
307
  nearPlane: number,
257
- farPlane: number
308
+ farPlane: number,
309
+ viewportHeightPixels: number
258
310
  ]): AquaStatus;
259
311
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
312
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
260
313
  setSceneObjectTransform(...args: [
261
314
  handle: AquaClientHandle,
262
315
  sceneObjectId: number,
@@ -265,14 +318,10 @@ declare class Engine {
265
318
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
266
319
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
267
320
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
268
- getName(...args: [
269
- handle: AquaClientHandle,
270
- sceneObjectId: number
271
- ]): string;
272
- setVariantSelection(...args: [
273
- handle: AquaClientHandle,
274
- sceneObjectId: number
275
- ]): AquaStatus;
321
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
322
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
323
+ getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
324
+ setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
276
325
  takeAttribute(...args: [
277
326
  handle: AquaClientHandle,
278
327
  sceneObjectId: number,
@@ -282,11 +331,16 @@ declare class Engine {
282
331
  takeEvictedClientSideAttributeIds(...args: [handle: AquaClientHandle]): EmbindVector<bigint>;
283
332
  getActiveClientSideIdsCheckSum(): number;
284
333
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
285
- updateSceneExecution(...args: [
286
- handle: AquaClientHandle,
287
- firstInSequence: boolean
288
- ]): AquaStatus;
334
+ updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
289
335
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
336
+ /**
337
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
338
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
339
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
340
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
341
+ * one.
342
+ */
343
+ beginFrame(...args: [contextHandle: AquaContextHandle, previousFrameTimeMs: number]): AquaStatus;
290
344
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
291
345
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
292
346
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -304,41 +358,50 @@ export declare class Lod {
304
358
  #private;
305
359
  readonly id: LodInit["id"];
306
360
  readonly store: LodStore;
307
- useExtSplats: boolean;
308
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
309
- sh1Data: Uint32Array<ArrayBuffer> | null;
310
- sh1Max: number;
311
- sh2Data: Uint32Array<ArrayBuffer> | null;
312
- sh2Max: number;
313
- sh3Data: Uint32Array<ArrayBuffer> | null;
314
- sh3Max: number;
315
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
316
361
  get key(): unknown;
317
362
  set key(key: unknown);
318
363
  readonly modelRoot: ModelRoot;
319
- set splats(splats: Uint32Array<ArrayBuffer> | null);
320
- get splats(): Uint32Array<ArrayBuffer> | null;
321
364
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
365
+ /**
366
+ * Retrieves the cached world bounds of this object
367
+ *
368
+ * @deprecated Retrieve the local bounds and transform as needed
369
+ */
322
370
  get bounds(): Float32Array<ArrayBuffer> | null;
323
- /* Excluded from this release type: _boundsStreamSpace */
324
- /* Excluded from this release type: _boundsStreamSpace */
371
+ /**
372
+ * Sets the local bounds of this lod
373
+ */
374
+ set localBounds(bounds: Float32Array<ArrayBuffer> | null);
375
+ /**
376
+ * Retrieves the local bounds of this lod
377
+ */
378
+ get localBounds(): Float32Array<ArrayBuffer> | null;
325
379
  set lodIndex(index: number);
326
380
  get lodIndex(): number | null;
327
- set paddingCount(count: number);
328
- get paddingCount(): number;
381
+ set paddingSplatsCount(count: number);
382
+ get paddingSplatsCount(): number;
329
383
  set transform(transform: Float32Array<ArrayBuffer> | null);
330
384
  get transform(): Float32Array<ArrayBuffer> | null;
331
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
332
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
333
- setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
385
+ get _drawnOctantMask(): number;
386
+ set _drawnOctantMask(mask: number);
387
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
388
+ get _hasOctantOffsets(): boolean;
389
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
390
+ get _surfelCount(): number;
391
+ _readOctantOffsets(engine: Engine): void;
392
+ hasAttribute(attributeName: string): boolean;
393
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
394
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
395
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
334
396
  dispose(): void;
335
- constructor({ id, modelRoot, lodStore }: LodInit);
397
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
336
398
  }
337
399
 
338
400
  export declare type LodInit = {
339
401
  id: number;
340
402
  modelRoot: ModelRoot;
341
403
  lodStore: LodStore;
404
+ client: Client;
342
405
  };
343
406
 
344
407
  export declare class LodStore {
@@ -354,6 +417,10 @@ export declare class LodStore {
354
417
 
355
418
  declare interface MainModule {
356
419
  AttributeInfo: new () => AttributeInfo;
420
+ CompressionType: {
421
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
422
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
423
+ };
357
424
  Handedness: { Right: number; Left: number };
358
425
  HEAPF32: Float32Array<ArrayBuffer>;
359
426
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -379,7 +446,9 @@ declare interface MainModule {
379
446
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
380
447
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
381
448
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
449
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
382
450
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
451
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
383
452
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
384
453
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
385
454
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -388,13 +457,17 @@ declare interface MainModule {
388
457
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
389
458
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
390
459
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
460
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
461
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
391
462
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
392
463
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
393
464
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
394
465
  GetActiveClientSideIdsCheckSum(): number;
395
466
  TakeRenderRequired(handle: number): boolean;
467
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
396
468
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
397
469
  setMaxCacheSize(maxSizeBytes: number): void;
470
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
398
471
  }
399
472
 
400
473
  /**
@@ -407,6 +480,7 @@ declare interface MainModule {
407
480
  */
408
481
  export declare class Miris {
409
482
  #private;
483
+ static tryUseShark: boolean;
410
484
  static _instance: Miris;
411
485
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
412
486
  readonly engine: Engine;
@@ -416,14 +490,35 @@ export declare class Miris {
416
490
  get viewerKey(): string | null | undefined;
417
491
  set viewerKey(viewerKey: string | null | undefined);
418
492
  get scenes(): Set<Scene>;
493
+ get useSphericalHarmonics(): boolean;
494
+ set useSphericalHarmonics(value: boolean);
419
495
  constructor();
420
496
  dispose(): void;
421
497
  updateParentedTransform(_modelTransform: Float32Array<ArrayBuffer>, _parentTransform: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer> | undefined;
498
+ protected _xrModeActive: boolean;
499
+ protected _xrSession: XRSession | null;
500
+ protected _requestAnimationFrame: RequestAnimationFrameFn | null;
501
+ signalResumeFromIdle(): void;
502
+ get _splatCountBudget(): number;
503
+ /**
504
+ * Why 43? Because the AVP throttles down to 45Hz :(
505
+ */
506
+ static readonly _XR_TARGET_FRAME_RATE = 43;
507
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
508
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
509
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP = 3000000;
510
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
511
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2500000;
512
+ /* Excluded from this release type: _isMobileDevice */
513
+ /* Excluded from this release type: _sharkSplatCapacity */
514
+ /* Excluded from this release type: _sharkSplatBudgetCap */
515
+ /* Excluded from this release type: _setTargetFrameRate */
422
516
  /* Excluded from this release type: _setXRModeActive */
517
+ /* Excluded from this release type: _setSplatCountBudgetOverride */
423
518
  /* Excluded from this release type: _update */
424
519
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
425
520
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
426
- update(): boolean;
521
+ /* Excluded from this release type: _updateForScene */
427
522
  applyChanges(_entries: Change[]): void;
428
523
  _computeAdditionalRenderNeeded(): boolean;
429
524
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -452,11 +547,37 @@ export declare type ModelRootInit = {
452
547
  stream: Stream;
453
548
  };
454
549
 
550
+ /**
551
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
552
+ * contract, returning bytes rather than words.
553
+ *
554
+ * Use this rather than that one wherever the stride is not a whole number of words:
555
+ * reflectanceDataV1's 26-byte record is not, and an odd record count would lose that record's
556
+ * last field to dataPtrView's truncation.
557
+ */
558
+ export declare type RawByteAttributeWithBounds = {
559
+ bytes: Uint8Array<ArrayBuffer>;
560
+ minValue: {
561
+ x: number;
562
+ y: number;
563
+ z: number;
564
+ };
565
+ maxValue: {
566
+ x: number;
567
+ y: number;
568
+ z: number;
569
+ };
570
+ };
571
+
572
+ declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
573
+
455
574
  declare interface RuntimeSettings extends EmbindObject {
456
575
  maxBandwidthBitsPerSecond: number;
457
576
  maxConcurrentRequests: number;
458
577
  targetFramesPerSecond: number;
459
578
  xrModeActive: boolean;
579
+ splatCountBudget: number;
580
+ splatCountBudgetCap: number;
460
581
  }
461
582
 
462
583
  export declare class Scene extends EventTarget {
@@ -468,6 +589,7 @@ export declare class Scene extends EventTarget {
468
589
  readonly id: number;
469
590
  get key(): unknown;
470
591
  set key(key: unknown);
592
+ /* Excluded from this release type: _assetFormat */
471
593
  get viewerKey(): string | null;
472
594
  set viewerKey(viewerKey: string | null);
473
595
  get streams(): Set<Stream>;
@@ -477,6 +599,18 @@ export declare class Scene extends EventTarget {
477
599
  readonly client: Client;
478
600
  readonly handle?: number;
479
601
  constructor({ miris, viewerKey }: SceneInit);
602
+ /**
603
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
604
+ * displayed frame from the host's animation loop, and render when it returns true.
605
+ *
606
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
607
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
608
+ *
609
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
610
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
611
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
612
+ */
613
+ update(ts?: DOMHighResTimeStamp): boolean;
480
614
  dispose(): void;
481
615
  fetchAssets(tags?: string | Iterable<string>): Promise<{
482
616
  name: string;
@@ -484,12 +618,14 @@ export declare class Scene extends EventTarget {
484
618
  uuid: string;
485
619
  tags: string[];
486
620
  }[]>;
487
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
488
621
  add(stream: Stream): void;
489
622
  getStreamForId(streamObjectId: number): Stream | undefined;
490
623
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
491
624
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
625
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
626
+ /* Excluded from this release type: _getFeatureMesh */
492
627
  /* Excluded from this release type: _getDrMap */
628
+ /* Excluded from this release type: _onDrMapLadder */
493
629
  /* Excluded from this release type: _onFeatureData */
494
630
  /* Excluded from this release type: _onSceneLoaded */
495
631
  delete(stream: Stream): void;
@@ -502,6 +638,7 @@ declare interface SceneChangeIds extends EmbindObject {
502
638
  readonly modifiedObjectsCount: number;
503
639
  readonly deactivatedObjectsCount: number;
504
640
  readonly deletedObjectsCount: number;
641
+ readonly remaskedObjectsCount: number;
505
642
  }
506
643
 
507
644
  export declare type SceneInit = {
@@ -513,6 +650,13 @@ declare interface SceneMetadata extends EmbindObject {
513
650
  readonly inputColorSpace: string;
514
651
  }
515
652
 
653
+ declare type SparkAttributeInfo = {
654
+ elementsPerSplat: number;
655
+ discard: boolean;
656
+ };
657
+
658
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
659
+
516
660
  declare interface SpatialFormat extends EmbindObject {
517
661
  metersPerUnit: number;
518
662
  upAxis: number;
@@ -540,6 +684,8 @@ export declare class Stream extends EventTarget {
540
684
  set key(key: unknown);
541
685
  get matrix(): Matrix4x4Tuple;
542
686
  set matrix(matrix: Matrix4x4Tuple);
687
+ get opacity(): number;
688
+ set opacity(opacity: number);
543
689
  get boundingBox(): {
544
690
  min: {
545
691
  x: number;
@@ -570,6 +716,8 @@ export declare class Stream extends EventTarget {
570
716
  constructor(options: StreamInit);
571
717
  _initStream({ uuid }: StreamInit): void;
572
718
  /* Excluded from this release type: _onStreamLoaded */
719
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
720
+ /* Excluded from this release type: _getViewingVolumeObb */
573
721
  /* Excluded from this release type: _onRootLoaded */
574
722
  add(modelRoot: ModelRoot): void;
575
723
  end(): void;