@needle-tools/engine 4.8.6 → 4.8.7-next.011f757

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 (102) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{gltf-progressive-DXRy9EQz.js → gltf-progressive-BcHT3Nyo.js} +1 -1
  4. package/dist/{gltf-progressive-C-U_onhf.umd.cjs → gltf-progressive-CH3Q4H06.umd.cjs} +1 -1
  5. package/dist/{gltf-progressive-DViD_J_l.min.js → gltf-progressive-DR6HqF_h.min.js} +1 -1
  6. package/dist/{needle-engine.bundle-CQIq7Zg-.min.js → needle-engine.bundle-A4MqukqV.min.js} +137 -137
  7. package/dist/{needle-engine.bundle-BTJDRZkJ.js → needle-engine.bundle-BcKlrcH5.js} +6559 -6499
  8. package/dist/{needle-engine.bundle-CaNItSG7.umd.cjs → needle-engine.bundle-D4U_nRHo.umd.cjs} +139 -139
  9. package/dist/needle-engine.js +402 -400
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/dist/{postprocessing-61aXdqNz.umd.cjs → postprocessing-CVb_x9YY.umd.cjs} +1 -1
  13. package/dist/{postprocessing-D9jDHD0U.js → postprocessing-ORx-0eCx.js} +1 -1
  14. package/dist/{postprocessing-Be9Ds4NK.min.js → postprocessing-Ywv5oKkX.min.js} +1 -1
  15. package/dist/three-examples-BX_Sktc9.min.js +501 -0
  16. package/dist/{three-examples-BihZ_R96.js → three-examples-CNexix3E.js} +2436 -2781
  17. package/dist/{three-examples-Ce6Th3bv.umd.cjs → three-examples-DWxXVnws.umd.cjs} +21 -21
  18. package/dist/{vendor-BRpzuoJE.min.js → vendor-C43vobGc.min.js} +37 -37
  19. package/dist/{vendor-p_xp9KuJ.js → vendor-Z4SPrTcP.js} +2402 -2047
  20. package/dist/vendor-xfQ8tKF3.umd.cjs +1121 -0
  21. package/lib/engine/api.d.ts +2 -0
  22. package/lib/engine/api.js +2 -0
  23. package/lib/engine/api.js.map +1 -1
  24. package/lib/engine/engine_addressables.d.ts +12 -12
  25. package/lib/engine/engine_addressables.js +30 -23
  26. package/lib/engine/engine_addressables.js.map +1 -1
  27. package/lib/engine/engine_animation.d.ts +1 -3
  28. package/lib/engine/engine_animation.js +15 -9
  29. package/lib/engine/engine_animation.js.map +1 -1
  30. package/lib/engine/engine_camera.d.ts +8 -1
  31. package/lib/engine/engine_camera.js +25 -0
  32. package/lib/engine/engine_camera.js.map +1 -1
  33. package/lib/engine/engine_context.d.ts +9 -0
  34. package/lib/engine/engine_context.js +15 -0
  35. package/lib/engine/engine_context.js.map +1 -1
  36. package/lib/engine/engine_feature_flags.d.ts +3 -0
  37. package/lib/engine/engine_feature_flags.js +6 -0
  38. package/lib/engine/engine_feature_flags.js.map +1 -0
  39. package/lib/engine/engine_gameobject.js +0 -4
  40. package/lib/engine/engine_gameobject.js.map +1 -1
  41. package/lib/engine/engine_loaders.js +15 -11
  42. package/lib/engine/engine_loaders.js.map +1 -1
  43. package/lib/engine/engine_mainloop_utils.d.ts +2 -1
  44. package/lib/engine/engine_mainloop_utils.js +18 -6
  45. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  46. package/lib/engine/engine_pmrem.d.ts +6 -0
  47. package/lib/engine/engine_pmrem.js +9 -40
  48. package/lib/engine/engine_pmrem.js.map +1 -1
  49. package/lib/engine/extensions/extensions.js +2 -2
  50. package/lib/engine/extensions/extensions.js.map +1 -1
  51. package/lib/engine/js-extensions/Object3D.js +19 -0
  52. package/lib/engine/js-extensions/Object3D.js.map +1 -1
  53. package/lib/engine-components/Animation.js +2 -1
  54. package/lib/engine-components/Animation.js.map +1 -1
  55. package/lib/engine-components/AnimationUtilsAutoplay.js +1 -6
  56. package/lib/engine-components/AnimationUtilsAutoplay.js.map +1 -1
  57. package/lib/engine-components/DropListener.d.ts +17 -12
  58. package/lib/engine-components/DropListener.js +34 -31
  59. package/lib/engine-components/DropListener.js.map +1 -1
  60. package/lib/engine-components/LookAtConstraint.d.ts +5 -1
  61. package/lib/engine-components/LookAtConstraint.js +8 -0
  62. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  63. package/lib/engine-components/OrbitControls.d.ts +5 -7
  64. package/lib/engine-components/OrbitControls.js +12 -11
  65. package/lib/engine-components/OrbitControls.js.map +1 -1
  66. package/lib/engine-components/Skybox.js +9 -3
  67. package/lib/engine-components/Skybox.js.map +1 -1
  68. package/lib/engine-components/export/usdz/Extension.d.ts +1 -1
  69. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1 -1
  70. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
  71. package/lib/engine-components/export/usdz/USDZExporter.d.ts +7 -0
  72. package/lib/engine-components/export/usdz/USDZExporter.js +8 -1
  73. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  74. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +4 -2
  75. package/lib/engine-components/webxr/WebXRImageTracking.js +117 -81
  76. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  77. package/package.json +4 -3
  78. package/plugins/vite/alias.js +45 -23
  79. package/src/engine/api.ts +3 -1
  80. package/src/engine/engine_addressables.ts +44 -33
  81. package/src/engine/engine_animation.ts +17 -9
  82. package/src/engine/engine_camera.ts +40 -1
  83. package/src/engine/engine_context.ts +21 -1
  84. package/src/engine/engine_feature_flags.ts +8 -0
  85. package/src/engine/engine_gameobject.ts +0 -4
  86. package/src/engine/engine_loaders.ts +18 -13
  87. package/src/engine/engine_mainloop_utils.ts +24 -8
  88. package/src/engine/engine_pmrem.ts +9 -45
  89. package/src/engine/extensions/extensions.ts +2 -2
  90. package/src/engine/js-extensions/Object3D.ts +25 -2
  91. package/src/engine-components/Animation.ts +1 -1
  92. package/src/engine-components/AnimationUtilsAutoplay.ts +1 -6
  93. package/src/engine-components/DropListener.ts +40 -31
  94. package/src/engine-components/LookAtConstraint.ts +9 -1
  95. package/src/engine-components/OrbitControls.ts +19 -16
  96. package/src/engine-components/Skybox.ts +8 -4
  97. package/src/engine-components/export/usdz/Extension.ts +1 -1
  98. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1 -1
  99. package/src/engine-components/export/usdz/USDZExporter.ts +21 -12
  100. package/src/engine-components/webxr/WebXRImageTracking.ts +138 -90
  101. package/dist/three-examples-DKY9Nfge.min.js +0 -501
  102. package/dist/vendor-Ja-vKV-a.umd.cjs +0 -1121
@@ -32,6 +32,7 @@ export * from "./engine_context.js";
32
32
  export * from "./engine_context_registry.js";
33
33
  export * from "./engine_coroutine.js";
34
34
  export * from "./engine_create_objects.js";
35
+ export * from "./engine_feature_flags.js";
35
36
  export * from "./engine_gameobject.js";
36
37
  export { Gizmos } from "./engine_gizmos.js";
37
38
  export * from "./engine_gltf.js";
@@ -58,6 +59,7 @@ export * from "./engine_physics.js";
58
59
  export * from "./engine_physics.types.js";
59
60
  export * from "./engine_physics_rapier.js";
60
61
  export * from "./engine_playerview.js";
62
+ export { loadPMREM } from "./engine_pmrem.js";
61
63
  export * from "./engine_scenelighting.js";
62
64
  export * from "./engine_serialization.js";
63
65
  export { type ISerializable } from "./engine_serialization_core.js";
package/lib/engine/api.js CHANGED
@@ -32,6 +32,7 @@ export * from "./engine_context.js";
32
32
  export * from "./engine_context_registry.js";
33
33
  export * from "./engine_coroutine.js";
34
34
  export * from "./engine_create_objects.js";
35
+ export * from "./engine_feature_flags.js";
35
36
  export * from "./engine_gameobject.js";
36
37
  export { Gizmos } from "./engine_gizmos.js";
37
38
  export * from "./engine_gltf.js";
@@ -58,6 +59,7 @@ export * from "./engine_physics.js";
58
59
  export * from "./engine_physics.types.js";
59
60
  export * from "./engine_physics_rapier.js";
60
61
  export * from "./engine_playerview.js";
62
+ export { loadPMREM } from "./engine_pmrem.js";
61
63
  export * from "./engine_scenelighting.js";
62
64
  export * from "./engine_serialization.js";
63
65
  export * from "./engine_test_utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/engine/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC/G,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3F,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAC,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACpE,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvE,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC9D,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/engine/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC/G,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3F,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrE,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvE,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC9D,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,aAAa,CAAA"}
@@ -51,13 +51,15 @@ export declare class AssetReference {
51
51
  * AssetReferences are cached so calling this method multiple times with the same arguments will always return the same AssetReference.
52
52
  */
53
53
  static getOrCreate(sourceId: SourceIdentifier | IComponent, url: string, context?: Context): AssetReference;
54
- private static currentlyInstantiating;
55
- /** @returns true if this is an AssetReference instance */
56
- get isAssetReference(): boolean;
57
- /** The loaded asset */
54
+ readonly isAssetReference = true;
55
+ /**
56
+ * This is the loaded asset root object. If the asset is a glb/gltf file this will be the {@link three#Scene} object.
57
+ */
58
+ get rawAsset(): any;
59
+ /** The loaded asset root
60
+ */
58
61
  get asset(): Object3D | null;
59
- protected set asset(val: any);
60
- private _loading?;
62
+ protected set asset(val: Object3D | null);
61
63
  /** The url of the loaded asset (or the asset to be loaded)
62
64
  * @deprecated use url */
63
65
  get uri(): string;
@@ -69,11 +71,7 @@ export declare class AssetReference {
69
71
  * @returns true if the uri is a valid URL (http, https, blob)
70
72
  */
71
73
  get hasUrl(): boolean;
72
- /**
73
- * This is the loaded asset root object. If the asset is a glb/gltf file this will be the {@link three#Scene} object.
74
- */
75
- get rawAsset(): any;
76
- private _asset;
74
+ private _rawAsset;
77
75
  private _glbRoot?;
78
76
  private _url;
79
77
  private _urlName;
@@ -84,6 +82,7 @@ export declare class AssetReference {
84
82
  constructor(uri: string, _hash?: string, asset?: any);
85
83
  private onResolvePrefab;
86
84
  private get mustLoad();
85
+ private _loadingPromise;
87
86
  /**
88
87
  * @returns `true` if the asset has been loaded (via preload) or if it exists already (assigned to `asset`) */
89
88
  isLoaded(): boolean | ArrayBuffer;
@@ -94,7 +93,7 @@ export declare class AssetReference {
94
93
  /** Loads the asset and creates one instance (assigned to `asset`)
95
94
  * @returns the loaded asset
96
95
  */
97
- loadAssetAsync(prog?: ProgressCallback | null): Promise<Object3D<import("three").Object3DEventMap> | null>;
96
+ loadAssetAsync(prog?: ProgressCallback | null): Promise<Object3D | null>;
98
97
  /** loads and returns a new instance of `asset` */
99
98
  instantiate(parent?: Object3D | IInstantiateOptions | null): Promise<Object3D<import("three").Object3DEventMap> | null>;
100
99
  /** loads and returns a new instance of `asset` - this call is networked so an instance will be created on all connected users */
@@ -102,6 +101,7 @@ export declare class AssetReference {
102
101
  beginListenDownload(evt: ProgressCallback): void;
103
102
  endListenDownload(evt: ProgressCallback): void;
104
103
  private raiseProgressEvent;
104
+ private static readonly currentlyInstantiating;
105
105
  private onInstantiate;
106
106
  /**
107
107
  * try to ignore the intermediate created object
@@ -120,17 +120,27 @@ export class AssetReference {
120
120
  addressables.registerAssetReference(ref);
121
121
  return ref;
122
122
  }
123
- static currentlyInstantiating = new Map();
124
- /** @returns true if this is an AssetReference instance */
125
- get isAssetReference() { return true; }
126
- /** The loaded asset */
123
+ isAssetReference = true;
124
+ /**
125
+ * This is the loaded asset root object. If the asset is a glb/gltf file this will be the {@link three#Scene} object.
126
+ */
127
+ get rawAsset() { return this._rawAsset; }
128
+ /** The loaded asset root
129
+ */
127
130
  get asset() {
128
- return this._glbRoot ?? this._asset;
131
+ return this._glbRoot ?? (this._rawAsset?.scene || null);
129
132
  }
130
133
  set asset(val) {
131
- this._asset = val;
134
+ if (val) {
135
+ this._rawAsset = {
136
+ animations: val.animations,
137
+ scene: val,
138
+ scenes: [val],
139
+ };
140
+ }
141
+ else
142
+ this._rawAsset = null;
132
143
  }
133
- _loading;
134
144
  /** The url of the loaded asset (or the asset to be loaded)
135
145
  * @deprecated use url */
136
146
  get uri() {
@@ -152,11 +162,7 @@ export class AssetReference {
152
162
  return this._url !== undefined &&
153
163
  (this._url.startsWith("http") || this._url.startsWith("blob:") || this._url.startsWith("www.") || this._url.includes("/"));
154
164
  }
155
- /**
156
- * This is the loaded asset root object. If the asset is a glb/gltf file this will be the {@link three#Scene} object.
157
- */
158
- get rawAsset() { return this._asset; }
159
- _asset;
165
+ _rawAsset = null;
160
166
  _glbRoot;
161
167
  _url;
162
168
  _urlName;
@@ -195,6 +201,7 @@ export class AssetReference {
195
201
  get mustLoad() {
196
202
  return !this.asset || this.asset.__destroyed === true || isDestroyed(this.asset) === true;
197
203
  }
204
+ _loadingPromise = null;
198
205
  /**
199
206
  * @returns `true` if the asset has been loaded (via preload) or if it exists already (assigned to `asset`) */
200
207
  isLoaded() { return this._rawBinary || this.asset !== undefined; }
@@ -211,7 +218,7 @@ export class AssetReference {
211
218
  this.asset = null;
212
219
  this._rawBinary = undefined;
213
220
  this._glbRoot = null;
214
- this._loading = undefined;
221
+ this._loadingPromise = null;
215
222
  if (Context.Current) {
216
223
  Context.Current.addressables.unregisterAssetReference(this);
217
224
  }
@@ -240,14 +247,13 @@ export class AssetReference {
240
247
  */
241
248
  async loadAssetAsync(prog) {
242
249
  if (debug)
243
- console.log("loadAssetAsync", this.url);
250
+ console.log("[AssetReference] loadAssetAsync", this.url);
244
251
  if (!this.mustLoad)
245
252
  return this.asset;
246
253
  if (prog)
247
254
  this._progressListeners.push(prog);
248
- if (this._loading !== undefined) {
249
- // console.warn("Wait for other loading thiny");
250
- return this._loading.then(_ => this.asset);
255
+ if (this._loadingPromise !== null) {
256
+ return this._loadingPromise.then(_ => this.asset);
251
257
  }
252
258
  const context = Context.Current;
253
259
  // TODO: technically we shouldnt call awake only when the object is added to a scene
@@ -256,24 +262,24 @@ export class AssetReference {
256
262
  // console.log("START LOADING");
257
263
  if (this._rawBinary) {
258
264
  if (!(this._rawBinary instanceof ArrayBuffer)) {
259
- console.error("Failed loading: Invalid raw binary data. Must be of type ArrayBuffer. " + (typeof this._rawBinary));
265
+ console.error("[AssetReference] Failed loading Invalid data. Must be of type ArrayBuffer. " + (typeof this._rawBinary));
260
266
  return null;
261
267
  }
262
- this._loading = getLoader().parseSync(context, this._rawBinary, this.url, null);
268
+ this._loadingPromise = getLoader().parseSync(context, this._rawBinary, this.url, null);
263
269
  this.raiseProgressEvent(new ProgressEvent("progress", { loaded: this._rawBinary.byteLength, total: this._rawBinary.byteLength }));
264
270
  }
265
271
  else {
266
272
  if (debug)
267
273
  console.log("Load async", this.url);
268
- this._loading = getLoader().loadSync(context, this.url, this.url, null, prog => {
274
+ this._loadingPromise = getLoader().loadSync(context, this.url, this.url, null, prog => {
269
275
  this.raiseProgressEvent(prog);
270
276
  });
271
277
  }
272
- const res = await this._loading;
278
+ this._loadingPromise.finally(() => this._loadingPromise = null);
279
+ const res = await this._loadingPromise;
273
280
  // clear all progress listeners after download has finished
274
281
  this._progressListeners.length = 0;
275
282
  this._glbRoot = this.tryGetActualGameObjectRoot(res);
276
- this._loading = undefined;
277
283
  if (res) {
278
284
  // Make sure the loaded roots all have a reference to this AssetReference
279
285
  // that was originally loading it.
@@ -288,7 +294,7 @@ export class AssetReference {
288
294
  // because that is where deserialization happens
289
295
  processNewScripts(context);
290
296
  if (res.scene !== undefined) {
291
- this.asset = res;
297
+ this._rawAsset = res;
292
298
  }
293
299
  return this.asset;
294
300
  }
@@ -317,6 +323,7 @@ export class AssetReference {
317
323
  list(this, prog);
318
324
  }
319
325
  }
326
+ static currentlyInstantiating = new Map();
320
327
  async onInstantiate(opts, networked = false, saveOnServer) {
321
328
  const context = Context.Current;
322
329
  // clone the instantiate options immediately
@@ -1 +1 @@
1
- {"version":3,"file":"engine_addressables.js","sourceRoot":"","sources":["../../src/engine/engine_addressables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_addressables.js","sourceRoot":"","sources":["../../src/engine/engine_addressables.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,5 @@ export declare class AnimationUtils {
37
37
  * This method will look for objects in the scene that have animations and assign them to the correct objects.
38
38
  * @param file The GLTF file to assign the animations from
39
39
  */
40
- static assignAnimationsFromFile(file: Pick<Model, "animations" | "scene">, opts?: {
41
- createAnimationComponent(obj: Object3D, animation: AnimationClip): IAnimationComponent;
42
- }): void;
40
+ static autoplayAnimations(file: Object3D | Pick<Model, "animations" | "scene">): Array<IAnimationComponent> | null;
43
41
  }
@@ -1,4 +1,5 @@
1
1
  import { PropertyBinding } from "three";
2
+ import { TypeStore } from "./engine_typestore.js";
2
3
  /**
3
4
  * Registry for animation related data. Use {@link registerAnimationMixer} to register an animation mixer instance.
4
5
  * Can be accessed from {@link Context.animations} and is used internally e.g. when exporting GLTF files.
@@ -77,11 +78,13 @@ export class AnimationUtils {
77
78
  * This method will look for objects in the scene that have animations and assign them to the correct objects.
78
79
  * @param file The GLTF file to assign the animations from
79
80
  */
80
- static assignAnimationsFromFile(file, opts) {
81
+ static autoplayAnimations(file) {
81
82
  if (!file || !file.animations) {
82
83
  console.debug("No animations found in file");
83
- return;
84
+ return null;
84
85
  }
86
+ const scene = "scene" in file ? file.scene : file;
87
+ const animationComponents = new Array();
85
88
  for (let i = 0; i < file.animations.length; i++) {
86
89
  const animation = file.animations[i];
87
90
  if (!animation.tracks || animation.tracks.length <= 0) {
@@ -91,30 +94,33 @@ export class AnimationUtils {
91
94
  for (const t in animation.tracks) {
92
95
  const track = animation.tracks[t];
93
96
  const parsedPath = PropertyBinding.parseTrackName(track.name);
94
- let obj = PropertyBinding.findNode(file.scene, parsedPath.nodeName);
97
+ let obj = PropertyBinding.findNode(scene, parsedPath.nodeName);
95
98
  if (!obj) {
96
99
  const objectName = track["__objectName"] ?? track.name.substring(0, track.name.indexOf("."));
97
100
  // let obj = gltf.scene.getObjectByName(objectName);
98
101
  // this finds unnamed objects that still have tracks targeting them
99
- obj = file.scene.getObjectByProperty('uuid', objectName);
102
+ obj = scene.getObjectByProperty('uuid', objectName);
100
103
  if (!obj) {
101
104
  // console.warn("could not find " + objectName, animation, gltf.scene);
102
105
  continue;
103
106
  }
104
107
  }
105
- let animationComponent = findAnimationGameObjectInParent(obj);
108
+ let animationComponent = findAnimationGameObjectInParent(obj) || findAnimationGameObjectInParent(scene);
106
109
  if (!animationComponent) {
107
- if (!opts?.createAnimationComponent) {
108
- console.warn("No AnimationComponent found in parent hierarchy of object and no 'createAnimationComponent' callback was provided in options.");
109
- continue;
110
+ const anim = TypeStore.get("Animation");
111
+ animationComponent = scene.addComponent(anim);
112
+ if (!animationComponent) {
113
+ console.error("Failed creating Animation component: No 'Animation' component found in TypeStore");
114
+ break;
110
115
  }
111
- animationComponent = opts.createAnimationComponent(file.scene, animation);
112
116
  }
117
+ animationComponents.push(animationComponent);
113
118
  if (animationComponent.addClip) {
114
119
  animationComponent.addClip(animation);
115
120
  }
116
121
  }
117
122
  }
123
+ return animationComponents;
118
124
  function findAnimationGameObjectInParent(obj) {
119
125
  if (!obj)
120
126
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"engine_animation.js","sourceRoot":"","sources":["../../src/engine/engine_animation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_animation.js","sourceRoot":"","sources":["../../src/engine/engine_animation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Camera, Object3D } from "three";
1
+ import { Camera, Object3D, PerspectiveCamera, WebGLRenderer } from "three";
2
2
  import type { ICameraController } from "./engine_types.js";
3
3
  /** Get the camera controller for the given camera (if any)
4
4
  */
@@ -11,3 +11,10 @@ export declare function useForAutoFit(obj: Object3D): boolean;
11
11
  * Enable or disable autofitting for the given object
12
12
  */
13
13
  export declare function setAutoFitEnabled(obj: Object3D, enabled: boolean): void;
14
+ export type FocusRect = DOMRect | Element | {
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ };
20
+ export declare function updateCameraFocusRect(focusRect: FocusRect, dt: number, camera: PerspectiveCamera, renderer: WebGLRenderer): void;
@@ -1,3 +1,4 @@
1
+ import { Mathf } from "./engine_math.js";
1
2
  const $cameraController = "needle:cameraController";
2
3
  /** Get the camera controller for the given camera (if any)
3
4
  */
@@ -28,4 +29,28 @@ export function useForAutoFit(obj) {
28
29
  export function setAutoFitEnabled(obj, enabled) {
29
30
  obj[autofit] = enabled;
30
31
  }
32
+ let rendererRect = undefined;
33
+ let overlapRect = { x: 0, y: 0, width: 0, height: 0 };
34
+ export function updateCameraFocusRect(focusRect, dt, camera, renderer) {
35
+ if (focusRect instanceof Element) {
36
+ focusRect = focusRect.getBoundingClientRect();
37
+ }
38
+ rendererRect = renderer.domElement.getBoundingClientRect();
39
+ const rect = overlapRect;
40
+ rect.x = focusRect.x;
41
+ rect.y = focusRect.y;
42
+ rect.width = focusRect.width;
43
+ rect.height = focusRect.height;
44
+ rect.x -= rendererRect.x;
45
+ rect.y -= rendererRect.y;
46
+ let targetX = rect.width / -2 - (rect.x - (rendererRect.width / 2));
47
+ let targetY = rect.height / -2 - (rect.y - (rendererRect.height / 2));
48
+ const view = camera.view;
49
+ let offsetX = view?.offsetX || 0;
50
+ let offsetY = view?.offsetY || 0;
51
+ offsetX = Mathf.lerp(offsetX, targetX, dt);
52
+ offsetY = Mathf.lerp(offsetY, targetY, dt);
53
+ camera.setViewOffset(rendererRect.width, rendererRect.height, offsetX, offsetY, rendererRect.width, rendererRect.height);
54
+ camera.updateProjectionMatrix();
55
+ }
31
56
  //# sourceMappingURL=engine_camera.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine_camera.js","sourceRoot":"","sources":["../../src/engine/engine_camera.ts"],"names":[],"mappings":"AAKA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD;GACG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,gBAAmC,EAAE,MAAe;IACjG,IAAI,MAAM;QACN,GAAG,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC;SACzC;QACD,IAAI,GAAG,CAAC,iBAAiB,CAAC,KAAK,gBAAgB;YAC3C,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KACrC;AACL,CAAC;AAGD,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,GAAa;IACvC,yDAAyD;IACzD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,4EAA4E;IAC5E,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAa,EAAE,OAAgB;IAC7D,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"engine_camera.js","sourceRoot":"","sources":["../../src/engine/engine_camera.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import type { CoroutineData, ICamera, IComponent, IContext, ILight, Model, Vec2
19
19
  import type { INeedleXRSessionEventReceiver, NeedleXRSession } from './engine_xr.js';
20
20
  import { NeedleMenu } from './webcomponents/needle menu/needle-menu.js';
21
21
  import type { NeedleEngineWebComponent } from './webcomponents/needle-engine.js';
22
+ import { FocusRect } from './engine_camera.js';
22
23
  export declare const build_scene_functions: {
23
24
  [name: string]: (context: Context) => Promise<void>;
24
25
  };
@@ -455,6 +456,14 @@ export declare class Context implements IContext {
455
456
  * If you just want to increase the accuracy of physics you can instead set the `physicsSteps` property to a higher value
456
457
  * */
457
458
  updatePhysics(steps: number): void;
459
+ /**
460
+ * Set a rect or dom element. The camera center will be moved to the center of the rect.
461
+ * This is useful if you have Needle Engine embedded in a HTML layout and while you want the webgl background to fill e.g. the whole screen you want to move the camera center to free space.
462
+ * For that you can simply pass in the rect or HMTL div that you want the camera to center on.
463
+ */
464
+ setCameraFocusRect(rect: FocusRect | null): void;
465
+ get focusRect(): FocusRect | null;
466
+ private _focusRect;
458
467
  private _lastTimestamp;
459
468
  private _accumulatedTime;
460
469
  private _dispatchReadyAfterFrame;
@@ -29,6 +29,7 @@ import { Time } from './engine_time.js';
29
29
  import { patchTonemapping } from './engine_tonemapping.js';
30
30
  import { deepClone, DeviceUtilities, getParam } from './engine_utils.js';
31
31
  import { NeedleMenu } from './webcomponents/needle menu/needle-menu.js';
32
+ import { updateCameraFocusRect } from './engine_camera.js';
32
33
  const debug = getParam("debugcontext");
33
34
  const stats = getParam("stats");
34
35
  const debugActive = getParam("debugactive");
@@ -1256,6 +1257,16 @@ export class Context {
1256
1257
  updatePhysics(steps) {
1257
1258
  this.internalUpdatePhysics(steps);
1258
1259
  }
1260
+ /**
1261
+ * Set a rect or dom element. The camera center will be moved to the center of the rect.
1262
+ * This is useful if you have Needle Engine embedded in a HTML layout and while you want the webgl background to fill e.g. the whole screen you want to move the camera center to free space.
1263
+ * For that you can simply pass in the rect or HMTL div that you want the camera to center on.
1264
+ */
1265
+ setCameraFocusRect(rect) {
1266
+ this._focusRect = rect;
1267
+ }
1268
+ get focusRect() { return this._focusRect; }
1269
+ _focusRect = null;
1259
1270
  _lastTimestamp = 0;
1260
1271
  _accumulatedTime = 0;
1261
1272
  _dispatchReadyAfterFrame = false;
@@ -1366,6 +1377,10 @@ export class Context {
1366
1377
  this.internalUpdatePhysics(this.physicsSteps);
1367
1378
  }
1368
1379
  if (this.isVisibleToUser || this.runInBackground) {
1380
+ if (this._focusRect) {
1381
+ if (this.mainCamera instanceof PerspectiveCamera)
1382
+ updateCameraFocusRect(this._focusRect, this.time.deltaTime / .05, this.mainCamera, this.renderer);
1383
+ }
1369
1384
  this._currentFrameEvent = FrameEvent.OnBeforeRender;
1370
1385
  // should we move these callbacks in the regular three onBeforeRender events?
1371
1386
  for (let i = 0; i < this.scripts_onBeforeRender.length; i++) {