@needle-tools/engine 2.51.0-pre → 2.53.0-pre

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.
Files changed (128) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/needle-engine.d.ts +243 -56
  3. package/dist/needle-engine.js +380 -381
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +41 -42
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_components.js +2 -2
  8. package/lib/engine/engine_components.js.map +1 -1
  9. package/lib/engine/engine_networking_instantiate.d.ts +1 -1
  10. package/lib/engine/engine_networking_instantiate.js +3 -0
  11. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  12. package/lib/engine/engine_serialization_builtin_serializer.d.ts +6 -0
  13. package/lib/engine/engine_serialization_builtin_serializer.js +31 -6
  14. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  15. package/lib/engine/engine_serialization_core.d.ts +1 -0
  16. package/lib/engine/engine_serialization_core.js +6 -0
  17. package/lib/engine/engine_serialization_core.js.map +1 -1
  18. package/lib/engine/engine_setup.js +2 -2
  19. package/lib/engine/engine_setup.js.map +1 -1
  20. package/lib/engine/engine_texture.d.ts +3 -0
  21. package/lib/engine/engine_texture.js +4 -0
  22. package/lib/engine/engine_texture.js.map +1 -0
  23. package/lib/engine/engine_utils.d.ts +2 -0
  24. package/lib/engine/engine_utils.js +9 -0
  25. package/lib/engine/engine_utils.js.map +1 -1
  26. package/lib/engine/extensions/{NEEDLE_deferred_texture.d.ts → NEEDLE_progressive.d.ts} +2 -2
  27. package/lib/engine/extensions/{NEEDLE_deferred_texture.js → NEEDLE_progressive.js} +10 -9
  28. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -0
  29. package/lib/engine/extensions/extensions.js +2 -2
  30. package/lib/engine/extensions/extensions.js.map +1 -1
  31. package/lib/engine-components/Camera.d.ts +8 -2
  32. package/lib/engine-components/Camera.js +56 -4
  33. package/lib/engine-components/Camera.js.map +1 -1
  34. package/lib/engine-components/EventTrigger.d.ts +10 -1
  35. package/lib/engine-components/EventTrigger.js +47 -0
  36. package/lib/engine-components/EventTrigger.js.map +1 -1
  37. package/lib/engine-components/Light.js +6 -2
  38. package/lib/engine-components/Light.js.map +1 -1
  39. package/lib/engine-components/OrbitControls.js +6 -2
  40. package/lib/engine-components/OrbitControls.js.map +1 -1
  41. package/lib/engine-components/ParticleSystemModules.js +0 -1
  42. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  43. package/lib/engine-components/Renderer.d.ts +1 -0
  44. package/lib/engine-components/Renderer.js +13 -6
  45. package/lib/engine-components/Renderer.js.map +1 -1
  46. package/lib/engine-components/ShadowCatcher.js +5 -6
  47. package/lib/engine-components/ShadowCatcher.js.map +1 -1
  48. package/lib/engine-components/Skybox.d.ts +1 -0
  49. package/lib/engine-components/Skybox.js +5 -0
  50. package/lib/engine-components/Skybox.js.map +1 -1
  51. package/lib/engine-components/SpriteRenderer.d.ts +19 -3
  52. package/lib/engine-components/SpriteRenderer.js +154 -41
  53. package/lib/engine-components/SpriteRenderer.js.map +1 -1
  54. package/lib/engine-components/Voip.js +13 -4
  55. package/lib/engine-components/Voip.js.map +1 -1
  56. package/lib/engine-components/WebXRRig.js +12 -0
  57. package/lib/engine-components/WebXRRig.js.map +1 -1
  58. package/lib/engine-components/codegen/components.d.ts +7 -2
  59. package/lib/engine-components/codegen/components.js +7 -2
  60. package/lib/engine-components/codegen/components.js.map +1 -1
  61. package/lib/engine-components/export/{GltfExport.d.ts → gltf/GltfExport.d.ts} +2 -2
  62. package/lib/engine-components/export/{GltfExport.js → gltf/GltfExport.js} +7 -7
  63. package/lib/engine-components/export/gltf/GltfExport.js.map +1 -0
  64. package/lib/engine-components/export/usdz/Extension.d.ts +9 -0
  65. package/lib/engine-components/export/usdz/Extension.js +2 -0
  66. package/lib/engine-components/export/usdz/Extension.js.map +1 -0
  67. package/lib/engine-components/export/usdz/USDZExporter.d.ts +25 -0
  68. package/lib/engine-components/export/usdz/USDZExporter.js +193 -0
  69. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -0
  70. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +44 -0
  71. package/lib/engine-components/export/usdz/extensions/Animation.js +264 -0
  72. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -0
  73. package/lib/engine-components/export/usdz/types.d.ts +34 -0
  74. package/lib/engine-components/export/usdz/types.js +2 -0
  75. package/lib/engine-components/export/usdz/types.js.map +1 -0
  76. package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -0
  77. package/lib/engine-components/export/usdz/utils/animationutils.js +46 -0
  78. package/lib/engine-components/export/usdz/utils/animationutils.js.map +1 -0
  79. package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -0
  80. package/lib/engine-components/export/usdz/utils/quicklook.js +36 -0
  81. package/lib/engine-components/export/usdz/utils/quicklook.js.map +1 -0
  82. package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -0
  83. package/lib/engine-components/export/usdz/utils/timeutils.js +15 -0
  84. package/lib/engine-components/export/usdz/utils/timeutils.js.map +1 -0
  85. package/lib/engine-components/timeline/PlayableDirector.js +6 -0
  86. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  87. package/lib/engine-components/ui/Graphic.d.ts +2 -0
  88. package/lib/engine-components/ui/Graphic.js +15 -0
  89. package/lib/engine-components/ui/Graphic.js.map +1 -1
  90. package/lib/engine-components/ui/Utils.d.ts +2 -1
  91. package/lib/engine-components/ui/Utils.js +5 -3
  92. package/lib/engine-components/ui/Utils.js.map +1 -1
  93. package/package.json +2 -2
  94. package/src/engine/codegen/register_types.js +16 -6
  95. package/src/engine/engine_components.ts +2 -2
  96. package/src/engine/engine_networking_instantiate.ts +4 -1
  97. package/src/engine/engine_serialization_builtin_serializer.ts +35 -7
  98. package/src/engine/engine_serialization_core.ts +7 -1
  99. package/src/engine/engine_setup.ts +2 -2
  100. package/src/engine/engine_texture.ts +6 -0
  101. package/src/engine/engine_utils.ts +13 -2
  102. package/src/engine/extensions/{NEEDLE_deferred_texture.ts → NEEDLE_progressive.ts} +18 -17
  103. package/src/engine/extensions/extensions.ts +2 -2
  104. package/src/engine-components/Camera.ts +53 -5
  105. package/src/engine-components/EventTrigger.ts +39 -19
  106. package/src/engine-components/Light.ts +6 -2
  107. package/src/engine-components/OrbitControls.ts +7 -3
  108. package/src/engine-components/ParticleSystemModules.ts +0 -3
  109. package/src/engine-components/Renderer.ts +13 -7
  110. package/src/engine-components/ShadowCatcher.ts +5 -6
  111. package/src/engine-components/Skybox.ts +4 -0
  112. package/src/engine-components/SpriteRenderer.ts +140 -44
  113. package/src/engine-components/Voip.ts +14 -4
  114. package/src/engine-components/WebXRRig.ts +14 -1
  115. package/src/engine-components/codegen/components.ts +7 -2
  116. package/src/engine-components/export/{GltfExport.ts → gltf/GltfExport.ts} +7 -7
  117. package/src/engine-components/export/usdz/Extension.ts +12 -0
  118. package/src/engine-components/export/usdz/USDZExporter.ts +216 -0
  119. package/src/engine-components/export/usdz/extensions/Animation.ts +306 -0
  120. package/src/engine-components/export/usdz/types.ts +39 -0
  121. package/src/engine-components/export/usdz/utils/animationutils.ts +60 -0
  122. package/src/engine-components/export/usdz/utils/quicklook.ts +43 -0
  123. package/src/engine-components/export/usdz/utils/timeutils.ts +20 -0
  124. package/src/engine-components/timeline/PlayableDirector.ts +5 -0
  125. package/src/engine-components/ui/Graphic.ts +15 -1
  126. package/src/engine-components/ui/Utils.ts +5 -3
  127. package/lib/engine/extensions/NEEDLE_deferred_texture.js.map +0 -1
  128. package/lib/engine-components/export/GltfExport.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.53.0-pre] - 2022-12-08
8
+ - Add: InstantiateIdProvider constructor can now take string too for initializing seed
9
+ - Add: USDZExpoter component enabling ``Open in Quicklook`` option by default when running on iOS Safari
10
+ - Fix: Light intensity
11
+ - Fix: Add workaround texture image encoding issue: https://github.com/needle-tools/needle-engine-support/issues/109
12
+ - Fix: OrbitControls.enableKeys
13
+ - Fix: Remove warning message about missing ``serializable`` when the reference is really missing
14
+ - Fix: ``context.domX`` and ``domY`` using wrong values when in AR mode
15
+
16
+ ## [2.52.0-pre] - 2022-12-05
17
+ - Add iOS platform util methods
18
+ - Add ``?debugrig`` to render XRRig gizmo
19
+ - Add support for Spritesheet Animation
20
+ - Add: EventTrigger implementations for onPointerClick, onPointerEnter, onPointerExit, onPointerDown, onPointerUp
21
+ - Add: RemoteSkybox environmentBlurriness setting
22
+ - Fix: Renderer reflection probe event order issue not applying reflection probes when enabling/disabling object because reflection probes have not been enabled
23
+ - Fix: remove log in ParticleSystemModules
24
+
7
25
  ## [2.51.0-pre] - 2022-11-30
8
26
  - Change: remove nebula, dat.gui and symlink package dependencies
9
27
  - Change: Light does not change renderer shadowtype anymore
@@ -308,6 +308,8 @@ declare module "engine/engine_utils" {
308
308
  }
309
309
  export function isMobileDevice(): boolean;
310
310
  export function isMozillaXR(): boolean;
311
+ export function isiOS(): boolean;
312
+ export function isSafari(): boolean;
311
313
  }
312
314
  declare module "engine/engine_networking_utils" {
313
315
  export function isLocalNetwork(hostname?: string): boolean;
@@ -424,6 +426,7 @@ declare module "engine/engine_serialization_core" {
424
426
  objectToNode?: ObjectToNodeMap;
425
427
  context?: Context;
426
428
  path?: string;
429
+ type?: Constructor<any>;
427
430
  /** holds information if a field was undefined before serialization. This gives us info if we might want to warn the user about missing attributes */
428
431
  implementationInformation?: ImplementationInformation;
429
432
  constructor(root: THREE.Object3D);
@@ -702,7 +705,7 @@ declare module "engine/engine_networking_instantiate" {
702
705
  set seed(val: number);
703
706
  private _originalSeed;
704
707
  private _seed;
705
- constructor(seed: number);
708
+ constructor(seed: string | number);
706
709
  reset(): void;
707
710
  generateUUID(str?: string): any;
708
711
  initialize(strOrNumber: string | number): void;
@@ -2376,13 +2379,13 @@ declare module "engine/extensions/NEEDLE_render_objects" {
2376
2379
  }
2377
2380
  export const EXTENSION_NAME = "NEEDLE_render_objects";
2378
2381
  }
2379
- declare module "engine/extensions/NEEDLE_deferred_texture" {
2382
+ declare module "engine/extensions/NEEDLE_progressive" {
2380
2383
  import { Material } from "three";
2381
2384
  import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
2382
2385
  import { SourceIdentifier } from "engine/engine_types";
2383
2386
  import { Context } from "engine/engine_setup";
2384
- export const EXTENSION_NAME = "NEEDLE_deferred_texture";
2385
- export class NEEDLE_deferred_texture implements GLTFLoaderPlugin {
2387
+ export const EXTENSION_NAME = "NEEDLE_progressive";
2388
+ export class NEEDLE_progressive implements GLTFLoaderPlugin {
2386
2389
  static assignTextureLOD(context: Context, source: SourceIdentifier | undefined, material: Material, level?: number): void;
2387
2390
  get name(): string;
2388
2391
  private parser;
@@ -2428,12 +2431,18 @@ declare module "engine-components/EventList" {
2428
2431
  removeAllEventListeners(): void;
2429
2432
  }
2430
2433
  }
2434
+ declare module "engine/engine_texture" {
2435
+ import { WebGLRenderTarget } from "three";
2436
+ export class RenderTexture extends WebGLRenderTarget {
2437
+ }
2438
+ }
2431
2439
  declare module "engine/engine_serialization_builtin_serializer" {
2432
2440
  import * as THREE from "three";
2433
2441
  import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
2434
2442
  import { SerializationContext, TypeSerializer } from "engine/engine_serialization_core";
2435
2443
  import { Behaviour, GameObject } from "engine-components/Component";
2436
2444
  import { EventList } from "engine-components/EventList";
2445
+ import { RenderTexture } from "engine/engine_texture";
2437
2446
  class ColorSerializer extends TypeSerializer {
2438
2447
  constructor();
2439
2448
  onDeserialize(data: any): THREE.Color | RGBAColor | void;
@@ -2477,6 +2486,11 @@ declare module "engine/engine_serialization_builtin_serializer" {
2477
2486
  onDeserialize(data: EventListData, context: SerializationContext): EventList | undefined | null;
2478
2487
  }
2479
2488
  export const eventListSerializer: EventListSerializer;
2489
+ export class RenderTextureSerializer extends TypeSerializer {
2490
+ constructor();
2491
+ onSerialize(_data: any, _context: SerializationContext): void;
2492
+ onDeserialize(data: any, context: SerializationContext): RenderTexture | undefined;
2493
+ }
2480
2494
  }
2481
2495
  declare module "engine/engine_serialization" {
2482
2496
  import { serializeObject, deserializeObject } from "engine/engine_serialization_core";
@@ -2677,8 +2691,10 @@ declare module "engine-components/Camera" {
2677
2691
  set fieldOfView(val: number);
2678
2692
  get nearClipPlane(): number;
2679
2693
  set nearClipPlane(val: number);
2694
+ private _nearClipPlane;
2680
2695
  get farClipPlane(): number;
2681
2696
  set farClipPlane(val: number);
2697
+ private _farClipPlane;
2682
2698
  get clearFlags(): ClearFlags;
2683
2699
  set clearFlags(val: ClearFlags);
2684
2700
  orthographic: boolean;
@@ -2687,8 +2703,12 @@ declare module "engine-components/Camera" {
2687
2703
  set cullingMask(val: number);
2688
2704
  get cullingMask(): number;
2689
2705
  private _cullingMask;
2690
- private _nearClipPlane;
2691
- private _farClipPlane;
2706
+ set backgroundBlurriness(val: number | undefined);
2707
+ get backgroundBlurriness(): number | undefined;
2708
+ private _backgroundBlurriness?;
2709
+ set backgroundIntensity(val: number | undefined);
2710
+ get backgroundIntensity(): number | undefined;
2711
+ private _backgroundIntensity?;
2692
2712
  get backgroundColor(): RGBAColor | null;
2693
2713
  set backgroundColor(val: RGBAColor | null);
2694
2714
  private _backgroundColor?;
@@ -3593,6 +3613,7 @@ declare module "engine-components/Renderer" {
3593
3613
  private applySettings;
3594
3614
  private _reflectionProbe;
3595
3615
  private updateReflectionProbe;
3616
+ private _updateReflectionProbe;
3596
3617
  private setVisibility;
3597
3618
  private isMultiMaterialObject;
3598
3619
  private isMeshOrSkinnedMesh;
@@ -3798,6 +3819,20 @@ declare module "engine-components/WebXRController" {
3798
3819
  update(): void;
3799
3820
  }
3800
3821
  }
3822
+ declare module "engine-components/Gizmos" {
3823
+ import { Behaviour } from "engine-components/Component";
3824
+ import * as THREE from "three";
3825
+ export class BoxGizmo extends Behaviour {
3826
+ objectBounds: boolean;
3827
+ color?: THREE.Color;
3828
+ isGizmo: boolean;
3829
+ private _gizmoObject;
3830
+ private _boxHelper;
3831
+ onEnable(): void;
3832
+ onDisable(): void;
3833
+ private syncObjectBounds;
3834
+ }
3835
+ }
3801
3836
  declare module "engine-components/WebXRRig" {
3802
3837
  import { Behaviour } from "engine-components/Component";
3803
3838
  export class XRRig extends Behaviour {
@@ -4022,8 +4057,17 @@ declare module "engine-components/EventType" {
4022
4057
  }
4023
4058
  }
4024
4059
  declare module "engine-components/EventTrigger" {
4060
+ import { IPointerEventHandler, PointerEventData } from "engine-components/ui/PointerEvents";
4025
4061
  import { Behaviour } from "engine-components/Component";
4026
- export class EventTrigger extends Behaviour {
4062
+ import { EventType } from "engine-components/EventType";
4063
+ export class EventTrigger extends Behaviour implements IPointerEventHandler {
4064
+ private triggers?;
4065
+ invoke(type: EventType): void;
4066
+ onPointerClick(_: PointerEventData): void;
4067
+ onPointerEnter(_: PointerEventData): void;
4068
+ onPointerExit(_: PointerEventData): void;
4069
+ onPointerDown(_: PointerEventData): void;
4070
+ onPointerUp(_: PointerEventData): void;
4027
4071
  }
4028
4072
  }
4029
4073
  declare module "engine-components/FlyControls" {
@@ -4035,20 +4079,6 @@ declare module "engine-components/FlyControls" {
4035
4079
  update(): void;
4036
4080
  }
4037
4081
  }
4038
- declare module "engine-components/Gizmos" {
4039
- import { Behaviour } from "engine-components/Component";
4040
- import * as THREE from "three";
4041
- export class BoxGizmo extends Behaviour {
4042
- objectBounds: boolean;
4043
- color?: THREE.Color;
4044
- isGizmo: boolean;
4045
- private _gizmoObject;
4046
- private _boxHelper;
4047
- onEnable(): void;
4048
- onDisable(): void;
4049
- private syncObjectBounds;
4050
- }
4051
- }
4052
4082
  declare module "engine-components/GridHelper" {
4053
4083
  import { Behaviour } from "engine-components/Component";
4054
4084
  export class GridHelper extends Behaviour {
@@ -5013,6 +5043,7 @@ declare module "engine-components/Skybox" {
5013
5043
  url?: string;
5014
5044
  allowDrop: boolean;
5015
5045
  background: boolean;
5046
+ backgroundBlurriness: number;
5016
5047
  environment: boolean;
5017
5048
  private _loader?;
5018
5049
  private _prevLoadedEnvironment?;
@@ -5120,6 +5151,7 @@ declare module "engine-components/SpectatorCamera" {
5120
5151
  declare module "engine-components/SpriteRenderer" {
5121
5152
  import { Behaviour } from "engine-components/Component";
5122
5153
  import * as THREE from "three";
5154
+ import { Vector2 } from "three";
5123
5155
  import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
5124
5156
  export enum SpriteDrawMode {
5125
5157
  Simple = 0,
@@ -5131,20 +5163,35 @@ declare module "engine-components/SpriteRenderer" {
5131
5163
  y: number;
5132
5164
  }
5133
5165
  export class Sprite {
5166
+ guid?: string;
5134
5167
  texture?: THREE.Texture;
5135
5168
  triangles: Array<number>;
5136
5169
  uv: Array<Vec2>;
5137
5170
  vertices: Array<Vec2>;
5138
5171
  _geometry?: THREE.BufferGeometry;
5139
5172
  }
5173
+ class Slice {
5174
+ name: string;
5175
+ offset: Vector2;
5176
+ size: Vector2;
5177
+ }
5178
+ export class SpriteSheet {
5179
+ sprite?: Sprite;
5180
+ index: number;
5181
+ slices: Slice[];
5182
+ update(): void;
5183
+ }
5140
5184
  export class SpriteRenderer extends Behaviour {
5141
5185
  drawMode: SpriteDrawMode;
5142
5186
  size: Vec2;
5143
5187
  color?: RGBAColor;
5144
5188
  sharedMaterial?: THREE.Material;
5145
- get sprite(): Sprite | undefined;
5146
- set sprite(value: Sprite | undefined);
5147
- private _sprite?;
5189
+ get sprite(): SpriteSheet | undefined;
5190
+ set sprite(value: SpriteSheet | undefined | number);
5191
+ set spriteIndex(value: number);
5192
+ get spriteIndex(): number;
5193
+ get spriteFrames(): number;
5194
+ private _spriteSheet?;
5148
5195
  private _currentSprite?;
5149
5196
  awake(): void;
5150
5197
  start(): void;
@@ -5403,35 +5450,6 @@ declare module "engine-components/debug/LogStats" {
5403
5450
  run(): Generator<undefined, void, unknown>;
5404
5451
  }
5405
5452
  }
5406
- declare module "engine-components/export/GltfExport" {
5407
- import { Behaviour } from "engine-components/Component";
5408
- import { Object3D } from "three";
5409
- import { BoxHelperComponent } from "engine-components/BoxHelperComponent";
5410
- type ExportOptions = {
5411
- binary: boolean;
5412
- pivot?: THREE.Vector3;
5413
- };
5414
- export const componentsArrayExportKey = "$___Export_Components";
5415
- export class GltfExportBox extends BoxHelperComponent {
5416
- sceneRoot?: THREE.Object3D;
5417
- start(): void;
5418
- updateGltfBox(): Generator<undefined, void, unknown>;
5419
- }
5420
- export class GltfExport extends Behaviour {
5421
- binary: boolean;
5422
- objects: Object3D[];
5423
- private exporter?;
5424
- private ext?;
5425
- exportNow(name: string): Promise<void>;
5426
- export(objectsToExport: Object3D[], opts?: ExportOptions): Promise<any>;
5427
- private static saveArrayBuffer;
5428
- private static saveJson;
5429
- private static save;
5430
- private static collectAnimations;
5431
- private static calculateCenter;
5432
- private static filterTopmostParent;
5433
- }
5434
- }
5435
5453
  declare module "engine-components/timeline/SignalAsset" {
5436
5454
  import { EventList } from "engine-components/EventList";
5437
5455
  import { Behaviour } from "engine-components/Component";
@@ -5701,8 +5719,9 @@ declare module "engine-components/ui/Utils" {
5701
5719
  revoke: () => void;
5702
5720
  };
5703
5721
  /** internal method to proxy a field to detect changes */
5722
+ /**@deprecated use watcher instead */
5704
5723
  export function onChange<T extends object>(caller: T, field: string, callback: (newValue: any, oldValue: any) => void): RevocableProxy;
5705
- /** internal method to schedula a function at a specific moment in the update loop */
5724
+ /** internal method to schedule a function at a specific moment in the update loop */
5706
5725
  export function scheduleAction(caller: Behaviour, action: Function, timing?: FrameEvent): void;
5707
5726
  }
5708
5727
  declare module "engine-components/ui/RectTransform" {
@@ -5775,6 +5794,8 @@ declare module "engine-components/ui/Graphic" {
5775
5794
  protected onBeforeCreate(_opts: any): void;
5776
5795
  protected onCreate(opts: any): void;
5777
5796
  protected onAfterCreated(): void;
5797
+ /** used internally to ensure textures assigned to UI use linear encoding */
5798
+ static textureCache: Map<Texture, Texture>;
5778
5799
  protected setTexture(tex: Texture | null | undefined): Promise<void>;
5779
5800
  protected onAfterAddedToScene(): void;
5780
5801
  }
@@ -6068,6 +6089,167 @@ declare module "engine-components/ui/SpatialHtml" {
6068
6089
  start(): void;
6069
6090
  }
6070
6091
  }
6092
+ declare module "engine-components/export/gltf/GltfExport" {
6093
+ import { Behaviour } from "engine-components/Component";
6094
+ import { Object3D } from "three";
6095
+ import { BoxHelperComponent } from "engine-components/BoxHelperComponent";
6096
+ type ExportOptions = {
6097
+ binary: boolean;
6098
+ pivot?: THREE.Vector3;
6099
+ };
6100
+ export const componentsArrayExportKey = "$___Export_Components";
6101
+ export class GltfExportBox extends BoxHelperComponent {
6102
+ sceneRoot?: THREE.Object3D;
6103
+ start(): void;
6104
+ updateGltfBox(): Generator<undefined, void, unknown>;
6105
+ }
6106
+ export class GltfExport extends Behaviour {
6107
+ binary: boolean;
6108
+ objects: Object3D[];
6109
+ private exporter?;
6110
+ private ext?;
6111
+ exportNow(name: string): Promise<void>;
6112
+ export(objectsToExport: Object3D[], opts?: ExportOptions): Promise<any>;
6113
+ private static saveArrayBuffer;
6114
+ private static saveJson;
6115
+ private static save;
6116
+ private static collectAnimations;
6117
+ private static calculateCenter;
6118
+ private static filterTopmostParent;
6119
+ }
6120
+ }
6121
+ declare module "engine-components/export/usdz/types" {
6122
+ import { Object3D, Matrix4, Material, BufferGeometry } from "three";
6123
+ /** implementation is in three */
6124
+ export class USDZDocument {
6125
+ name: string;
6126
+ get isDocumentRoot(): boolean;
6127
+ add(obj: USDZObject): any;
6128
+ remove(obj: USDZObject): any;
6129
+ traverse(callback: (obj: USDZObject) => void): any;
6130
+ findById(uuid: string): USDZObject | undefined;
6131
+ get isDynamic(): boolean;
6132
+ }
6133
+ /** implementation is in three */
6134
+ export class USDZObject {
6135
+ static createEmptyParent(parent: USDZObject): any;
6136
+ uuid: string;
6137
+ name: string;
6138
+ matrix: Matrix4;
6139
+ material: Material;
6140
+ geometry: BufferGeometry;
6141
+ parent: USDZObject | USDZDocument | null;
6142
+ children: USDZObject[];
6143
+ _eventListeners: {
6144
+ [event: string]: Function[];
6145
+ };
6146
+ isDynamic: boolean;
6147
+ is(obj: Object3D): boolean;
6148
+ isEmpty(): boolean;
6149
+ clone(): any;
6150
+ getPath(): any;
6151
+ add(child: USDZObject): any;
6152
+ remove(child: USDZObject): any;
6153
+ addEventListener(evt: string, listener: Function): any;
6154
+ removeEventListener(evt: string, listener: Function): any;
6155
+ }
6156
+ }
6157
+ declare module "engine-components/export/usdz/Extension" {
6158
+ import { USDZObject } from "engine-components/export/usdz/types";
6159
+ export interface IUSDZExporterExtension {
6160
+ get extensionName(): string;
6161
+ onBeforeBuildDocument?(context: any): any;
6162
+ onAfterBuildDocument?(context: any): any;
6163
+ onExportObject?(object: any, model: USDZObject, context: any): any;
6164
+ onAfterSerialize?(context: any): any;
6165
+ onAfterHierarchy?(context: any): any;
6166
+ }
6167
+ }
6168
+ declare module "engine-components/export/usdz/extensions/Animation" {
6169
+ import { Object3D } from "three";
6170
+ import { USDZObject } from "three/examples/jsm/exporters/USDZExporter";
6171
+ import { IUSDZExporterExtension } from "engine-components/export/usdz/Extension";
6172
+ export interface UsdzAnimation {
6173
+ createAnimation(ext: AnimationExtension, model: USDZObject, context: any): any;
6174
+ }
6175
+ export type AnimationClipCollection = Array<{
6176
+ root: Object3D;
6177
+ clips: Array<THREE.AnimationClip>;
6178
+ }>;
6179
+ export class RegisteredAnimationInfo {
6180
+ get start(): number;
6181
+ get duration(): number;
6182
+ private ext;
6183
+ private root;
6184
+ private clip;
6185
+ constructor(ext: AnimationExtension, root: THREE.Object3D, clip: THREE.AnimationClip);
6186
+ }
6187
+ export class TransformData {
6188
+ clip: THREE.AnimationClip;
6189
+ pos?: THREE.KeyframeTrack;
6190
+ rot?: THREE.KeyframeTrack;
6191
+ scale?: THREE.KeyframeTrack;
6192
+ get frameRate(): number;
6193
+ private ext;
6194
+ private root;
6195
+ private target;
6196
+ constructor(ext: AnimationExtension, root: Object3D, target: Object3D, clip: THREE.AnimationClip);
6197
+ addTrack(track: any): void;
6198
+ getFrames(): number;
6199
+ getDuration(): number;
6200
+ getStartTime(arr: TransformData[]): number;
6201
+ }
6202
+ export class AnimationExtension implements IUSDZExporterExtension {
6203
+ get extensionName(): string;
6204
+ private dict;
6205
+ private rootTargetMap;
6206
+ getStartTime01(root: Object3D, clip: THREE.AnimationClip): number;
6207
+ registerAnimation(root: Object3D, clip: THREE.AnimationClip): RegisteredAnimationInfo | null;
6208
+ onAfterHierarchy(_context: any): void;
6209
+ private serializers;
6210
+ onAfterBuildDocument(_context: any): void;
6211
+ onExportObject(object: any, model: USDZObject, _context: any): void;
6212
+ }
6213
+ }
6214
+ declare module "engine-components/export/usdz/utils/quicklook" {
6215
+ import { Context } from "engine/engine_setup";
6216
+ export function ensureQuicklookLinkIsCreated(context: Context): HTMLAnchorElement;
6217
+ }
6218
+ declare module "engine-components/export/usdz/utils/timeutils" {
6219
+ export function getFormattedDate(): string;
6220
+ }
6221
+ declare module "engine-components/export/usdz/utils/animationutils" {
6222
+ import { Object3D } from "three";
6223
+ import { AnimationExtension } from "engine-components/export/usdz/extensions/Animation";
6224
+ export function registerAnimatorsImplictly(root: Object3D, ext: AnimationExtension): void;
6225
+ }
6226
+ declare module "engine-components/export/usdz/USDZExporter" {
6227
+ import * as THREE from "three";
6228
+ import { IUSDZExporterExtension } from "engine-components/export/usdz/Extension";
6229
+ import { Behaviour } from "engine-components/Component";
6230
+ export type QuickLookOverlay = {
6231
+ callToAction?: string;
6232
+ checkoutTitle?: string;
6233
+ checkoutSubtitle?: string;
6234
+ };
6235
+ export class USDZExporter extends Behaviour {
6236
+ objectToExport?: THREE.Object3D;
6237
+ autoExportAnimations: boolean;
6238
+ extensions: IUSDZExporterExtension[];
6239
+ private link;
6240
+ private webxr?;
6241
+ start(): void;
6242
+ onEnable(): void;
6243
+ onDisable(): void;
6244
+ exportAsync(): Promise<void>;
6245
+ private lastCallback?;
6246
+ private quicklookCallback;
6247
+ private buildQuicklookOverlay;
6248
+ private _arButton?;
6249
+ private createQuicklookButton;
6250
+ private resetStyles;
6251
+ }
6252
+ }
6071
6253
  declare module "engine-components/codegen/components" {
6072
6254
  export class __Ignore {
6073
6255
  }
@@ -6156,6 +6338,7 @@ declare module "engine-components/codegen/components" {
6156
6338
  export { SpatialTrigger } from "engine-components/SpatialTrigger";
6157
6339
  export { SpectatorCamera } from "engine-components/SpectatorCamera";
6158
6340
  export { Sprite } from "engine-components/SpriteRenderer";
6341
+ export { SpriteSheet } from "engine-components/SpriteRenderer";
6159
6342
  export { SpriteRenderer } from "engine-components/SpriteRenderer";
6160
6343
  export { SyncedCamera } from "engine-components/SyncedCamera";
6161
6344
  export { SyncedRoom } from "engine-components/SyncedRoom";
@@ -6193,8 +6376,6 @@ declare module "engine-components/codegen/components" {
6193
6376
  export { Avatar_MouthShapes } from "engine-components/avatar/Avatar_MouthShapes";
6194
6377
  export { Avatar_MustacheShake } from "engine-components/avatar/Avatar_MustacheShake";
6195
6378
  export { LogStats } from "engine-components/debug/LogStats";
6196
- export { GltfExportBox } from "engine-components/export/GltfExport";
6197
- export { GltfExport } from "engine-components/export/GltfExport";
6198
6379
  export { RGBAColor } from "engine-components/js-extensions/RGBAColor";
6199
6380
  export { PlayableDirector } from "engine-components/timeline/PlayableDirector";
6200
6381
  export { SignalAsset } from "engine-components/timeline/SignalAsset";
@@ -6230,6 +6411,12 @@ declare module "engine-components/codegen/components" {
6230
6411
  export { RectTransform } from "engine-components/ui/RectTransform";
6231
6412
  export { SpatialHtml } from "engine-components/ui/SpatialHtml";
6232
6413
  export { Text } from "engine-components/ui/Text";
6414
+ export { GltfExportBox } from "engine-components/export/gltf/GltfExport";
6415
+ export { GltfExport } from "engine-components/export/gltf/GltfExport";
6416
+ export { USDZExporter } from "engine-components/export/usdz/USDZExporter";
6417
+ export { RegisteredAnimationInfo } from "engine-components/export/usdz/extensions/Animation";
6418
+ export { TransformData } from "engine-components/export/usdz/extensions/Animation";
6419
+ export { AnimationExtension } from "engine-components/export/usdz/extensions/Animation";
6233
6420
  }
6234
6421
  declare module "needle-engine" {
6235
6422
  import "engine/engine_element";