@needle-tools/engine 2.52.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 (98) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/needle-engine.d.ts +187 -36
  3. package/dist/needle-engine.js +385 -385
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +40 -40
  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/extensions/{NEEDLE_deferred_texture.d.ts → NEEDLE_progressive.d.ts} +2 -2
  24. package/lib/engine/extensions/{NEEDLE_deferred_texture.js → NEEDLE_progressive.js} +6 -6
  25. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -0
  26. package/lib/engine/extensions/extensions.js +2 -2
  27. package/lib/engine/extensions/extensions.js.map +1 -1
  28. package/lib/engine-components/Camera.js +17 -2
  29. package/lib/engine-components/Camera.js.map +1 -1
  30. package/lib/engine-components/Light.js +1 -0
  31. package/lib/engine-components/Light.js.map +1 -1
  32. package/lib/engine-components/OrbitControls.js +6 -2
  33. package/lib/engine-components/OrbitControls.js.map +1 -1
  34. package/lib/engine-components/Renderer.js +3 -3
  35. package/lib/engine-components/Renderer.js.map +1 -1
  36. package/lib/engine-components/Voip.js +13 -4
  37. package/lib/engine-components/Voip.js.map +1 -1
  38. package/lib/engine-components/codegen/components.d.ts +6 -2
  39. package/lib/engine-components/codegen/components.js +6 -2
  40. package/lib/engine-components/codegen/components.js.map +1 -1
  41. package/lib/engine-components/export/{GltfExport.d.ts → gltf/GltfExport.d.ts} +2 -2
  42. package/lib/engine-components/export/{GltfExport.js → gltf/GltfExport.js} +7 -7
  43. package/lib/engine-components/export/gltf/GltfExport.js.map +1 -0
  44. package/lib/engine-components/export/usdz/Extension.d.ts +9 -0
  45. package/lib/engine-components/export/usdz/Extension.js +2 -0
  46. package/lib/engine-components/export/usdz/Extension.js.map +1 -0
  47. package/lib/engine-components/export/usdz/USDZExporter.d.ts +25 -0
  48. package/lib/engine-components/export/usdz/USDZExporter.js +193 -0
  49. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -0
  50. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +44 -0
  51. package/lib/engine-components/export/usdz/extensions/Animation.js +264 -0
  52. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -0
  53. package/lib/engine-components/export/usdz/types.d.ts +34 -0
  54. package/lib/engine-components/export/usdz/types.js +2 -0
  55. package/lib/engine-components/export/usdz/types.js.map +1 -0
  56. package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -0
  57. package/lib/engine-components/export/usdz/utils/animationutils.js +46 -0
  58. package/lib/engine-components/export/usdz/utils/animationutils.js.map +1 -0
  59. package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -0
  60. package/lib/engine-components/export/usdz/utils/quicklook.js +36 -0
  61. package/lib/engine-components/export/usdz/utils/quicklook.js.map +1 -0
  62. package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -0
  63. package/lib/engine-components/export/usdz/utils/timeutils.js +15 -0
  64. package/lib/engine-components/export/usdz/utils/timeutils.js.map +1 -0
  65. package/lib/engine-components/ui/Graphic.d.ts +2 -0
  66. package/lib/engine-components/ui/Graphic.js +15 -0
  67. package/lib/engine-components/ui/Graphic.js.map +1 -1
  68. package/lib/engine-components/ui/Utils.d.ts +2 -1
  69. package/lib/engine-components/ui/Utils.js +5 -3
  70. package/lib/engine-components/ui/Utils.js.map +1 -1
  71. package/package.json +2 -2
  72. package/src/engine/codegen/register_types.js +14 -6
  73. package/src/engine/engine_components.ts +2 -2
  74. package/src/engine/engine_networking_instantiate.ts +4 -1
  75. package/src/engine/engine_serialization_builtin_serializer.ts +35 -7
  76. package/src/engine/engine_serialization_core.ts +7 -1
  77. package/src/engine/engine_setup.ts +2 -2
  78. package/src/engine/engine_texture.ts +6 -0
  79. package/src/engine/extensions/{NEEDLE_deferred_texture.ts → NEEDLE_progressive.ts} +9 -11
  80. package/src/engine/extensions/extensions.ts +2 -2
  81. package/src/engine-components/Camera.ts +17 -3
  82. package/src/engine-components/Light.ts +3 -1
  83. package/src/engine-components/OrbitControls.ts +7 -3
  84. package/src/engine-components/Renderer.ts +3 -3
  85. package/src/engine-components/Voip.ts +14 -4
  86. package/src/engine-components/codegen/components.ts +6 -2
  87. package/src/engine-components/export/{GltfExport.ts → gltf/GltfExport.ts} +7 -7
  88. package/src/engine-components/export/usdz/Extension.ts +12 -0
  89. package/src/engine-components/export/usdz/USDZExporter.ts +216 -0
  90. package/src/engine-components/export/usdz/extensions/Animation.ts +306 -0
  91. package/src/engine-components/export/usdz/types.ts +39 -0
  92. package/src/engine-components/export/usdz/utils/animationutils.ts +60 -0
  93. package/src/engine-components/export/usdz/utils/quicklook.ts +43 -0
  94. package/src/engine-components/export/usdz/utils/timeutils.ts +20 -0
  95. package/src/engine-components/ui/Graphic.ts +15 -1
  96. package/src/engine-components/ui/Utils.ts +5 -3
  97. package/lib/engine/extensions/NEEDLE_deferred_texture.js.map +0 -1
  98. package/lib/engine-components/export/GltfExport.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ 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
+
7
16
  ## [2.52.0-pre] - 2022-12-05
8
17
  - Add iOS platform util methods
9
18
  - Add ``?debugrig`` to render XRRig gizmo
@@ -426,6 +426,7 @@ declare module "engine/engine_serialization_core" {
426
426
  objectToNode?: ObjectToNodeMap;
427
427
  context?: Context;
428
428
  path?: string;
429
+ type?: Constructor<any>;
429
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 */
430
431
  implementationInformation?: ImplementationInformation;
431
432
  constructor(root: THREE.Object3D);
@@ -704,7 +705,7 @@ declare module "engine/engine_networking_instantiate" {
704
705
  set seed(val: number);
705
706
  private _originalSeed;
706
707
  private _seed;
707
- constructor(seed: number);
708
+ constructor(seed: string | number);
708
709
  reset(): void;
709
710
  generateUUID(str?: string): any;
710
711
  initialize(strOrNumber: string | number): void;
@@ -2378,13 +2379,13 @@ declare module "engine/extensions/NEEDLE_render_objects" {
2378
2379
  }
2379
2380
  export const EXTENSION_NAME = "NEEDLE_render_objects";
2380
2381
  }
2381
- declare module "engine/extensions/NEEDLE_deferred_texture" {
2382
+ declare module "engine/extensions/NEEDLE_progressive" {
2382
2383
  import { Material } from "three";
2383
2384
  import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
2384
2385
  import { SourceIdentifier } from "engine/engine_types";
2385
2386
  import { Context } from "engine/engine_setup";
2386
- export const EXTENSION_NAME = "NEEDLE_deferred_texture";
2387
- export class NEEDLE_deferred_texture implements GLTFLoaderPlugin {
2387
+ export const EXTENSION_NAME = "NEEDLE_progressive";
2388
+ export class NEEDLE_progressive implements GLTFLoaderPlugin {
2388
2389
  static assignTextureLOD(context: Context, source: SourceIdentifier | undefined, material: Material, level?: number): void;
2389
2390
  get name(): string;
2390
2391
  private parser;
@@ -2430,12 +2431,18 @@ declare module "engine-components/EventList" {
2430
2431
  removeAllEventListeners(): void;
2431
2432
  }
2432
2433
  }
2434
+ declare module "engine/engine_texture" {
2435
+ import { WebGLRenderTarget } from "three";
2436
+ export class RenderTexture extends WebGLRenderTarget {
2437
+ }
2438
+ }
2433
2439
  declare module "engine/engine_serialization_builtin_serializer" {
2434
2440
  import * as THREE from "three";
2435
2441
  import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
2436
2442
  import { SerializationContext, TypeSerializer } from "engine/engine_serialization_core";
2437
2443
  import { Behaviour, GameObject } from "engine-components/Component";
2438
2444
  import { EventList } from "engine-components/EventList";
2445
+ import { RenderTexture } from "engine/engine_texture";
2439
2446
  class ColorSerializer extends TypeSerializer {
2440
2447
  constructor();
2441
2448
  onDeserialize(data: any): THREE.Color | RGBAColor | void;
@@ -2479,6 +2486,11 @@ declare module "engine/engine_serialization_builtin_serializer" {
2479
2486
  onDeserialize(data: EventListData, context: SerializationContext): EventList | undefined | null;
2480
2487
  }
2481
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
+ }
2482
2494
  }
2483
2495
  declare module "engine/engine_serialization" {
2484
2496
  import { serializeObject, deserializeObject } from "engine/engine_serialization_core";
@@ -5438,35 +5450,6 @@ declare module "engine-components/debug/LogStats" {
5438
5450
  run(): Generator<undefined, void, unknown>;
5439
5451
  }
5440
5452
  }
5441
- declare module "engine-components/export/GltfExport" {
5442
- import { Behaviour } from "engine-components/Component";
5443
- import { Object3D } from "three";
5444
- import { BoxHelperComponent } from "engine-components/BoxHelperComponent";
5445
- type ExportOptions = {
5446
- binary: boolean;
5447
- pivot?: THREE.Vector3;
5448
- };
5449
- export const componentsArrayExportKey = "$___Export_Components";
5450
- export class GltfExportBox extends BoxHelperComponent {
5451
- sceneRoot?: THREE.Object3D;
5452
- start(): void;
5453
- updateGltfBox(): Generator<undefined, void, unknown>;
5454
- }
5455
- export class GltfExport extends Behaviour {
5456
- binary: boolean;
5457
- objects: Object3D[];
5458
- private exporter?;
5459
- private ext?;
5460
- exportNow(name: string): Promise<void>;
5461
- export(objectsToExport: Object3D[], opts?: ExportOptions): Promise<any>;
5462
- private static saveArrayBuffer;
5463
- private static saveJson;
5464
- private static save;
5465
- private static collectAnimations;
5466
- private static calculateCenter;
5467
- private static filterTopmostParent;
5468
- }
5469
- }
5470
5453
  declare module "engine-components/timeline/SignalAsset" {
5471
5454
  import { EventList } from "engine-components/EventList";
5472
5455
  import { Behaviour } from "engine-components/Component";
@@ -5736,8 +5719,9 @@ declare module "engine-components/ui/Utils" {
5736
5719
  revoke: () => void;
5737
5720
  };
5738
5721
  /** internal method to proxy a field to detect changes */
5722
+ /**@deprecated use watcher instead */
5739
5723
  export function onChange<T extends object>(caller: T, field: string, callback: (newValue: any, oldValue: any) => void): RevocableProxy;
5740
- /** 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 */
5741
5725
  export function scheduleAction(caller: Behaviour, action: Function, timing?: FrameEvent): void;
5742
5726
  }
5743
5727
  declare module "engine-components/ui/RectTransform" {
@@ -5810,6 +5794,8 @@ declare module "engine-components/ui/Graphic" {
5810
5794
  protected onBeforeCreate(_opts: any): void;
5811
5795
  protected onCreate(opts: any): void;
5812
5796
  protected onAfterCreated(): void;
5797
+ /** used internally to ensure textures assigned to UI use linear encoding */
5798
+ static textureCache: Map<Texture, Texture>;
5813
5799
  protected setTexture(tex: Texture | null | undefined): Promise<void>;
5814
5800
  protected onAfterAddedToScene(): void;
5815
5801
  }
@@ -6103,6 +6089,167 @@ declare module "engine-components/ui/SpatialHtml" {
6103
6089
  start(): void;
6104
6090
  }
6105
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
+ }
6106
6253
  declare module "engine-components/codegen/components" {
6107
6254
  export class __Ignore {
6108
6255
  }
@@ -6229,8 +6376,6 @@ declare module "engine-components/codegen/components" {
6229
6376
  export { Avatar_MouthShapes } from "engine-components/avatar/Avatar_MouthShapes";
6230
6377
  export { Avatar_MustacheShake } from "engine-components/avatar/Avatar_MustacheShake";
6231
6378
  export { LogStats } from "engine-components/debug/LogStats";
6232
- export { GltfExportBox } from "engine-components/export/GltfExport";
6233
- export { GltfExport } from "engine-components/export/GltfExport";
6234
6379
  export { RGBAColor } from "engine-components/js-extensions/RGBAColor";
6235
6380
  export { PlayableDirector } from "engine-components/timeline/PlayableDirector";
6236
6381
  export { SignalAsset } from "engine-components/timeline/SignalAsset";
@@ -6266,6 +6411,12 @@ declare module "engine-components/codegen/components" {
6266
6411
  export { RectTransform } from "engine-components/ui/RectTransform";
6267
6412
  export { SpatialHtml } from "engine-components/ui/SpatialHtml";
6268
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";
6269
6420
  }
6270
6421
  declare module "needle-engine" {
6271
6422
  import "engine/engine_element";