@needle-tools/engine 4.14.0-next.31f837e → 4.14.0-next.52fdb13

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 (142) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{generateMeshBVH.worker-DFcS3P04.js → generateMeshBVH.worker-DiCnZlf3.js} +1 -1
  4. package/dist/{gltf-progressive-8voIgNp_.js → gltf-progressive-Bm_6aEi4.js} +4 -4
  5. package/dist/{gltf-progressive-BRRBj-nY.umd.cjs → gltf-progressive-BttGBXw6.umd.cjs} +3 -3
  6. package/dist/{gltf-progressive-Dkh3tG4-.min.js → gltf-progressive-T5WKTux5.min.js} +1 -1
  7. package/dist/{loader.worker-C6cXDgR1.js → loader.worker-BqODMeeW.js} +1 -1
  8. package/dist/{materialx-Dx8st96L.min.js → materialx-CJyQZtjt.min.js} +1 -1
  9. package/dist/{materialx-D66rYPqe.js → materialx-DMs1E08Z.js} +2 -2
  10. package/dist/{materialx-CxlgposR.umd.cjs → materialx-DaKKOoVk.umd.cjs} +1 -1
  11. package/dist/{needle-engine.bundle-D7w0XD7M.min.js → needle-engine.bundle-BwfaInTa.min.js} +156 -148
  12. package/dist/{needle-engine.bundle-BQXG5qbQ.umd.cjs → needle-engine.bundle-DJE-Bjpa.umd.cjs} +141 -133
  13. package/dist/{needle-engine.bundle-Byl5i6zJ.js → needle-engine.bundle-TmE5-_na.js} +6741 -6449
  14. package/dist/needle-engine.d.ts +896 -51
  15. package/dist/needle-engine.js +571 -570
  16. package/dist/needle-engine.min.js +1 -1
  17. package/dist/needle-engine.umd.cjs +1 -1
  18. package/dist/{postprocessing-Ce5-UWiA.min.js → postprocessing-06AXuvdv.min.js} +2 -2
  19. package/dist/{postprocessing-BkSpxpYB.js → postprocessing-CI2x8Cln.js} +4 -4
  20. package/dist/{postprocessing-DFVElmAh.umd.cjs → postprocessing-CPDcA21P.umd.cjs} +2 -2
  21. package/dist/{three-Bad8p1pf.umd.cjs → three-BjYim-vL.umd.cjs} +47 -47
  22. package/dist/{three-DFV1-P9z.js → three-Bvk2VKbF.js} +2 -2
  23. package/dist/{three-CWn13_u1.min.js → three-IG2qPafA.min.js} +2 -2
  24. package/dist/{three-examples-CO-tx3Sp.umd.cjs → three-examples-BMmNgNCN.umd.cjs} +1 -1
  25. package/dist/{three-examples-43yqn3mL.js → three-examples-CMYCd5nH.js} +1 -1
  26. package/dist/{three-examples-DKuJVGT4.min.js → three-examples-CQl1fFZp.min.js} +1 -1
  27. package/dist/{three-mesh-ui-DyEA5HQF.min.js → three-mesh-ui-5HVE2RV-.min.js} +1 -1
  28. package/dist/{three-mesh-ui-fSAQJxdI.js → three-mesh-ui-BlakAItG.js} +1 -1
  29. package/dist/{three-mesh-ui-ChzVOraf.umd.cjs → three-mesh-ui-D828VbQp.umd.cjs} +1 -1
  30. package/dist/{vendor-pe19S9r5.min.js → vendor-BxK0WKmT.min.js} +1 -1
  31. package/dist/{vendor-B51YffMU.umd.cjs → vendor-CIDkyBaO.umd.cjs} +1 -1
  32. package/dist/{vendor-CgpZ5ivC.js → vendor-ixwD-vv2.js} +1 -1
  33. package/lib/engine/api.d.ts +203 -18
  34. package/lib/engine/api.js +271 -18
  35. package/lib/engine/api.js.map +1 -1
  36. package/lib/engine/engine_accessibility.d.ts +58 -0
  37. package/lib/engine/engine_accessibility.js +143 -0
  38. package/lib/engine/engine_accessibility.js.map +1 -0
  39. package/lib/engine/engine_context.d.ts +2 -0
  40. package/lib/engine/engine_context.js +7 -0
  41. package/lib/engine/engine_context.js.map +1 -1
  42. package/lib/engine/engine_materialpropertyblock.d.ts +309 -11
  43. package/lib/engine/engine_materialpropertyblock.js +396 -36
  44. package/lib/engine/engine_materialpropertyblock.js.map +1 -1
  45. package/lib/engine/engine_math.d.ts +34 -1
  46. package/lib/engine/engine_math.js +34 -1
  47. package/lib/engine/engine_math.js.map +1 -1
  48. package/lib/engine/engine_networking.js +1 -1
  49. package/lib/engine/engine_networking.js.map +1 -1
  50. package/lib/engine/engine_types.d.ts +2 -0
  51. package/lib/engine/engine_types.js +2 -0
  52. package/lib/engine/engine_types.js.map +1 -1
  53. package/lib/engine/webcomponents/icons.js +3 -0
  54. package/lib/engine/webcomponents/icons.js.map +1 -1
  55. package/lib/engine/webcomponents/logo-element.d.ts +1 -0
  56. package/lib/engine/webcomponents/logo-element.js +3 -1
  57. package/lib/engine/webcomponents/logo-element.js.map +1 -1
  58. package/lib/engine/webcomponents/needle-button.d.ts +37 -11
  59. package/lib/engine/webcomponents/needle-button.js +42 -11
  60. package/lib/engine/webcomponents/needle-button.js.map +1 -1
  61. package/lib/engine/webcomponents/needle-engine.d.ts +10 -2
  62. package/lib/engine/webcomponents/needle-engine.js +13 -3
  63. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  64. package/lib/engine-components/Camera.js.map +1 -1
  65. package/lib/engine-components/Component.d.ts +1 -2
  66. package/lib/engine-components/Component.js +1 -2
  67. package/lib/engine-components/Component.js.map +1 -1
  68. package/lib/engine-components/DragControls.d.ts +1 -0
  69. package/lib/engine-components/DragControls.js +21 -0
  70. package/lib/engine-components/DragControls.js.map +1 -1
  71. package/lib/engine-components/DropListener.js.map +1 -1
  72. package/lib/engine-components/Duplicatable.js.map +1 -1
  73. package/lib/engine-components/GroundProjection.js.map +1 -1
  74. package/lib/engine-components/NeedleMenu.d.ts +2 -0
  75. package/lib/engine-components/NeedleMenu.js +2 -0
  76. package/lib/engine-components/NeedleMenu.js.map +1 -1
  77. package/lib/engine-components/NestedGltf.js.map +1 -1
  78. package/lib/engine-components/Networking.d.ts +28 -3
  79. package/lib/engine-components/Networking.js +28 -3
  80. package/lib/engine-components/Networking.js.map +1 -1
  81. package/lib/engine-components/ReflectionProbe.d.ts +33 -3
  82. package/lib/engine-components/ReflectionProbe.js +76 -27
  83. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  84. package/lib/engine-components/Renderer.d.ts +2 -0
  85. package/lib/engine-components/Renderer.js +30 -6
  86. package/lib/engine-components/Renderer.js.map +1 -1
  87. package/lib/engine-components/RendererLightmap.js +2 -3
  88. package/lib/engine-components/RendererLightmap.js.map +1 -1
  89. package/lib/engine-components/SeeThrough.d.ts +0 -2
  90. package/lib/engine-components/SeeThrough.js +114 -88
  91. package/lib/engine-components/SeeThrough.js.map +1 -1
  92. package/lib/engine-components/SmoothFollow.js.map +1 -1
  93. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +107 -13
  94. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +167 -30
  95. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  96. package/lib/engine-components/ui/Button.d.ts +1 -0
  97. package/lib/engine-components/ui/Button.js +11 -0
  98. package/lib/engine-components/ui/Button.js.map +1 -1
  99. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  100. package/lib/engine-components/ui/Text.d.ts +1 -0
  101. package/lib/engine-components/ui/Text.js +11 -0
  102. package/lib/engine-components/ui/Text.js.map +1 -1
  103. package/lib/engine-components/web/ViewBox.d.ts +2 -2
  104. package/lib/engine-components/web/ViewBox.js +2 -2
  105. package/lib/engine-components/web/ViewBox.js.map +1 -1
  106. package/lib/engine-components/webxr/WebXRPlaneTracking.js.map +1 -1
  107. package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
  108. package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
  109. package/package.json +4 -4
  110. package/src/engine/api.ts +371 -19
  111. package/src/engine/engine_accessibility.ts +178 -0
  112. package/src/engine/engine_context.ts +9 -0
  113. package/src/engine/engine_materialpropertyblock.ts +499 -42
  114. package/src/engine/engine_math.ts +34 -1
  115. package/src/engine/engine_networking.ts +1 -1
  116. package/src/engine/engine_types.ts +5 -0
  117. package/src/engine/webcomponents/icons.ts +3 -0
  118. package/src/engine/webcomponents/logo-element.ts +4 -1
  119. package/src/engine/webcomponents/needle-button.ts +44 -13
  120. package/src/engine/webcomponents/needle-engine.ts +18 -7
  121. package/src/engine-components/Camera.ts +2 -2
  122. package/src/engine-components/Component.ts +1 -3
  123. package/src/engine-components/DragControls.ts +29 -4
  124. package/src/engine-components/DropListener.ts +1 -1
  125. package/src/engine-components/Duplicatable.ts +1 -1
  126. package/src/engine-components/GroundProjection.ts +3 -0
  127. package/src/engine-components/NeedleMenu.ts +8 -3
  128. package/src/engine-components/NestedGltf.ts +1 -1
  129. package/src/engine-components/Networking.ts +29 -4
  130. package/src/engine-components/ReflectionProbe.ts +81 -31
  131. package/src/engine-components/Renderer.ts +34 -6
  132. package/src/engine-components/RendererLightmap.ts +2 -3
  133. package/src/engine-components/SeeThrough.ts +122 -107
  134. package/src/engine-components/SmoothFollow.ts +2 -2
  135. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +198 -65
  136. package/src/engine-components/ui/Button.ts +13 -1
  137. package/src/engine-components/ui/Raycaster.ts +1 -1
  138. package/src/engine-components/ui/Text.ts +13 -0
  139. package/src/engine-components/web/ViewBox.ts +9 -2
  140. package/src/engine-components/webxr/WebXRPlaneTracking.ts +3 -3
  141. package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -1
  142. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +4 -4
@@ -6,14 +6,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Object3D, Vector3 } from "three";
8
8
  import { Gizmos } from "../engine/engine_gizmos.js";
9
+ import { MaterialPropertyBlock } from "../engine/engine_materialpropertyblock.js";
9
10
  import { Mathf } from "../engine/engine_math.js";
10
11
  import { serializable } from "../engine/engine_serialization_decorator.js";
11
12
  import { getTempVector } from "../engine/engine_three_utils.js";
12
13
  import { getParam } from "../engine/engine_utils.js";
13
14
  import { Behaviour } from "./Component.js";
14
- import { USDZExporter } from "./export/usdz/USDZExporter.js";
15
15
  import { Renderer } from "./Renderer.js";
16
16
  const debugSeeThrough = getParam("debugseethrough");
17
+ // type MaterialState = {
18
+ // opacity: number,
19
+ // transparent: boolean,
20
+ // alphaHash: boolean
21
+ // }
22
+ // type MaterialWithState = Material & {
23
+ // /** Original values */
24
+ // userData: {
25
+ // seeThrough: {
26
+ // initial: MaterialState,
27
+ // }
28
+ // }
29
+ // };
17
30
  let i = 0;
18
31
  /**
19
32
  * Automatically fades objects to transparent when they obscure a reference point from the camera's view.
@@ -142,26 +155,24 @@ export class SeeThrough extends Behaviour {
142
155
  onEnable() {
143
156
  this._needsUpdate = true;
144
157
  this._renderer = null;
145
- SeeThroughUsdzExporterPlugin.components.push(this);
158
+ // SeeThroughUsdzExporterPlugin.components.push(this);
146
159
  }
147
160
  /** @internal */
148
161
  onDisable() {
149
- this._renderer?.forEach(r => {
150
- const original = this.rendererMaterialsOriginal.get(r);
151
- for (let i = 0; i < r.sharedMaterials.length; i++) {
152
- const mat = r.sharedMaterials[i];
153
- if (!mat)
154
- continue;
155
- if (original && original[i]) {
156
- r.sharedMaterials[i] = original[i];
157
- }
158
- }
159
- this.rendererMaterials.delete(r);
160
- this.rendererMaterialsOriginal.delete(r);
161
- });
162
- const index = SeeThroughUsdzExporterPlugin.components.indexOf(this);
163
- if (index !== -1)
164
- SeeThroughUsdzExporterPlugin.components.splice(index, 1);
162
+ // this._renderer?.forEach(r => {
163
+ // const original = this.rendererMaterialsOriginal.get(r);
164
+ // for (let i = 0; i < r.sharedMaterials.length; i++) {
165
+ // const mat = r.sharedMaterials[i];
166
+ // if (!mat) continue;
167
+ // if (original && original[i]) {
168
+ // r.sharedMaterials[i] = original[i];
169
+ // }
170
+ // }
171
+ // this.rendererMaterials.delete(r);
172
+ // this.rendererMaterialsOriginal.delete(r);
173
+ // });
174
+ // const index = SeeThroughUsdzExporterPlugin.components.indexOf(this);
175
+ // if (index !== -1) SeeThroughUsdzExporterPlugin.components.splice(index, 1);
165
176
  }
166
177
  /**
167
178
  * @internal
@@ -195,8 +206,8 @@ export class SeeThrough extends Behaviour {
195
206
  this.updateAlpha(1, this.fadeDuration);
196
207
  }
197
208
  }
198
- rendererMaterials = new WeakMap();
199
- rendererMaterialsOriginal = new WeakMap();
209
+ // private readonly rendererMaterials = new WeakMap<Renderer, Array<MaterialWithState>>();
210
+ // private readonly rendererMaterialsOriginal = new WeakMap<Renderer, Array<Material>>();
200
211
  updateDirection() {
201
212
  this.referencePoint ??= this.context.scene;
202
213
  this._referencePointVector.copy(this.gameObject.worldPosition.sub(this.referencePoint.worldPosition));
@@ -221,62 +232,69 @@ export class SeeThrough extends Behaviour {
221
232
  else {
222
233
  renderer.gameObject.raycastAllowed = true;
223
234
  }
224
- if (!this.rendererMaterials.has(renderer)) {
225
- const originalMaterials = new Array();
226
- const clonedMaterials = new Array();
227
- // We clone the materials once and store them, so we can modify the opacity without affecting other objects using the same material. This could potentially be optimized further to re-use materials between renderers if multiple renderers use the same material.
228
- for (let i = 0; i < renderer.sharedMaterials.length; i++) {
229
- const mat = renderer.sharedMaterials[i];
230
- if (!mat)
231
- continue;
232
- originalMaterials.push(mat);
233
- const matClone = mat.clone();
234
- // @ts-ignore
235
- matClone.userData = mat.userData || {};
236
- matClone.userData.seeThrough = {
237
- initial: {
238
- opacity: matClone.opacity,
239
- transparent: matClone.transparent,
240
- alphaHash: matClone.alphaHash
241
- }
242
- };
243
- clonedMaterials.push(matClone);
244
- renderer.sharedMaterials[i] = matClone;
245
- }
246
- this.rendererMaterials.set(renderer, clonedMaterials);
247
- this.rendererMaterialsOriginal.set(renderer, originalMaterials);
248
- }
249
- const materials = renderer.hasLightmap ? renderer.sharedMaterials : this.rendererMaterials.get(renderer);
235
+ // if (!this.rendererMaterials.has(renderer)) {
236
+ // const originalMaterials = new Array<Material>();
237
+ // const clonedMaterials = new Array<MaterialWithState>();
238
+ // // We clone the materials once and store them, so we can modify the opacity without affecting other objects using the same material. This could potentially be optimized further to re-use materials between renderers if multiple renderers use the same material.
239
+ // for (let i = 0; i < renderer.sharedMaterials.length; i++) {
240
+ // const mat = renderer.sharedMaterials[i];
241
+ // if (!mat) continue;
242
+ // originalMaterials.push(mat);
243
+ // const matClone = mat.clone() as MaterialWithState;
244
+ // // @ts-ignore
245
+ // matClone.userData = mat.userData || {};
246
+ // matClone.userData.seeThrough = {
247
+ // initial: {
248
+ // opacity: matClone.opacity,
249
+ // transparent: matClone.transparent,
250
+ // alphaHash: matClone.alphaHash
251
+ // }
252
+ // }
253
+ // clonedMaterials.push(matClone);
254
+ // // renderer.sharedMaterials[i] = matClone;
255
+ // }
256
+ // this.rendererMaterials.set(renderer, clonedMaterials);
257
+ // this.rendererMaterialsOriginal.set(renderer, originalMaterials);
258
+ // }
259
+ const materials = renderer.sharedMaterials; // : this.rendererMaterials.get(renderer);
250
260
  if (!materials)
251
261
  return;
252
- for (const mat of materials) {
253
- if (!mat)
254
- continue;
255
- let newAlpha = Mathf.lerp(mat.opacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);
256
- ;
257
- if (newAlpha >= 0.99)
258
- newAlpha = 1;
259
- else if (newAlpha <= 0.01)
260
- newAlpha = 0;
261
- const wasTransparent = mat.transparent;
262
- const wasAlphaHash = mat.alphaHash;
263
- const previousOpacity = mat.opacity;
264
- mat.alphaHash = this.useAlphaHash;
265
- if (mat.userData && "seeThrough" in mat.userData) {
266
- const initial = mat.userData.seeThrough.initial;
267
- mat.opacity = initial.opacity * newAlpha;
268
- mat.transparent = mat.opacity >= 1 ? initial.transparent : !this.useAlphaHash;
269
- }
270
- else {
271
- mat.transparent = mat.opacity >= 1 ? false : !this.useAlphaHash;
272
- }
273
- if (wasTransparent !== mat.transparent
274
- || wasAlphaHash !== mat.alphaHash
275
- || mat.opacity !== previousOpacity // MeshPhysicsMaterial needs that and maybe other materials too...
276
- ) {
277
- mat.needsUpdate = true;
278
- }
279
- }
262
+ const block = MaterialPropertyBlock.get(renderer.gameObject);
263
+ const currentOpacity = (block.getOverride("opacity")?.value ?? materials[0].opacity ?? 1);
264
+ let newAlpha = Mathf.lerp(currentOpacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);
265
+ ;
266
+ if (newAlpha >= 0.99)
267
+ newAlpha = 1;
268
+ else if (newAlpha <= 0.01)
269
+ newAlpha = 0;
270
+ // const currentTransparent = (block.getOverride("transparent")?.value ?? materials[0].transparent ?? false) as boolean;
271
+ block.setOverride("alphaHash", this.useAlphaHash);
272
+ block.setOverride("opacity", newAlpha);
273
+ block.setOverride("transparent", newAlpha >= 0.99999 ? false : !this.useAlphaHash);
274
+ // for (const mat of materials) {
275
+ // if (!mat) continue;
276
+ // let newAlpha = Mathf.lerp(mat.opacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);;
277
+ // if (newAlpha >= 0.99) newAlpha = 1;
278
+ // else if (newAlpha <= 0.01) newAlpha = 0;
279
+ // const wasTransparent = mat.transparent;
280
+ // const wasAlphaHash = mat.alphaHash;
281
+ // const previousOpacity = mat.opacity;
282
+ // mat.alphaHash = this.useAlphaHash;
283
+ // if (mat.userData && "seeThrough" in mat.userData) {
284
+ // const initial = mat.userData.seeThrough.initial as MaterialState;
285
+ // mat.opacity = initial.opacity * newAlpha;
286
+ // mat.transparent = mat.opacity >= 1 ? initial.transparent : !this.useAlphaHash;
287
+ // }
288
+ // else {
289
+ // mat.transparent = mat.opacity >= 1 ? false : !this.useAlphaHash;
290
+ // }
291
+ // if (wasTransparent !== mat.transparent
292
+ // || wasAlphaHash !== mat.alphaHash
293
+ // || mat.opacity !== previousOpacity // MeshPhysicsMaterial needs that and maybe other materials too...
294
+ // ) {
295
+ // mat.needsUpdate = true;
296
+ // }
297
+ // }
280
298
  });
281
299
  }
282
300
  }
@@ -299,18 +317,26 @@ __decorate([
299
317
  serializable()
300
318
  ], SeeThrough.prototype, "autoUpdate", void 0);
301
319
  ;
302
- class SeeThroughUsdzExporterPlugin {
303
- static components = [];
304
- get extensionName() {
305
- return "SeeThrough";
306
- }
307
- }
308
- const seeThroughUsdzExporterPlugin = new SeeThroughUsdzExporterPlugin();
309
- USDZExporter.beforeExport.addEventListener(args => {
310
- if (SeeThroughUsdzExporterPlugin.components.length === 0)
311
- return;
312
- if (args.exporter.extensions.includes(seeThroughUsdzExporterPlugin) === false) {
313
- args.exporter.extensions.push(seeThroughUsdzExporterPlugin);
314
- }
315
- });
320
+ // class SeeThroughUsdzExporterPlugin implements IUSDExporterExtension {
321
+ // static readonly components: SeeThrough[] = [];
322
+ // get extensionName() {
323
+ // return "SeeThrough";
324
+ // }
325
+ // // onExportObject(object: Object3D<Object3DEventMap>, model: USDObject, context: USDZExporterContext) {
326
+ // // const component = SeeThroughUsdzExporterPlugin.components.find(c => c.gameObject === object);
327
+ // // if(!component) return;
328
+ // // console.log("OH MY GOD SEE THROUGH USDZ EXPORTER", component, model);
329
+ // // model.materialName = "AlphaHashMaterialInstance"; // we could make this unique per object if needed
330
+ // // model.addEventListener("serialize", (writer, context) => {
331
+ // // writer.appendLine(`# SeeThrough component on ${object.name}`);
332
+ // // });
333
+ // // }
334
+ // }
335
+ // const seeThroughUsdzExporterPlugin = new SeeThroughUsdzExporterPlugin();
336
+ // USDZExporter.beforeExport.addEventListener(args => {
337
+ // if (SeeThroughUsdzExporterPlugin.components.length === 0) return;
338
+ // if (args.exporter.extensions.includes(seeThroughUsdzExporterPlugin) === false) {
339
+ // args.exporter.extensions.push(seeThroughUsdzExporterPlugin);
340
+ // }
341
+ // });
316
342
  //# sourceMappingURL=SeeThrough.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SeeThrough.js","sourceRoot":"","sources":["../../src/engine-components/SeeThrough.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeeThrough.js","sourceRoot":"","sources":["../../src/engine-components/SeeThrough.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmoothFollow.js","sourceRoot":"","sources":["../../src/engine-components/SmoothFollow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SmoothFollow.js","sourceRoot":"","sources":["../../src/engine-components/SmoothFollow.ts"],"names":[],"mappings":"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"}
@@ -9,21 +9,32 @@ import { AnimationExtension, RegisteredAnimationInfo, type UsdzAnimation } from
9
9
  import type { BehaviorExtension, UsdzBehaviour } from "./Behaviour.js";
10
10
  import { EmphasizeActionMotionType, GroupActionModel, Target } from "./BehavioursBuilder.js";
11
11
  /**
12
- * Make the object move to the target object's transform when clicked.
12
+ * Moves an object to the target object's transform when clicked.
13
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
14
+ *
15
+ * @see {@link SetActiveOnClick}to toggle visibility of objects when clicked
16
+ * @see {@link PlayAnimationOnClick} to play animations when clicked
17
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
13
18
  * @summary Moves an object to a target transform upon click
14
19
  * @category Everywhere Actions
15
20
  * @group Components
16
21
  */
17
22
  export declare class ChangeTransformOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
23
+ /** The object to move. */
18
24
  object?: Object3D;
25
+ /** The target object whose transform to move to. */
19
26
  target?: Object3D;
27
+ /** The duration of the movement animation in seconds. */
20
28
  duration: number;
29
+ /** If true, the motion is relative to the object's current transform instead of moving to the target's absolute position. */
21
30
  relativeMotion: boolean;
22
31
  private coroutine;
23
32
  private targetPos;
24
33
  private targetRot;
25
34
  private targetScale;
26
- start(): void;
35
+ onEnable(): void;
36
+ onDisable(): void;
37
+ onDestroy(): void;
27
38
  onPointerEnter(): void;
28
39
  onPointerExit(): void;
29
40
  onPointerClick(args: PointerEventData): void;
@@ -32,7 +43,15 @@ export declare class ChangeTransformOnClick extends Behaviour implements IPointe
32
43
  beforeCreateDocument(ext: any): void;
33
44
  }
34
45
  /**
35
- * Change the material of objects when clicked.
46
+ * Switches the material of objects in the scene when clicked.
47
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
48
+ *
49
+ * Finds all objects in the scene that use `materialToSwitch` and replaces it with `variantMaterial`.
50
+ * Multiple `ChangeMaterialOnClick` components using the same `materialToSwitch` can be combined to create a material selection UI.
51
+ *
52
+ * @see {@link SetActiveOnClick} to toggle visibility of objects when clicked
53
+ * @see {@link PlayAnimationOnClick} to play animations when clicked
54
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
36
55
  * @summary Changes the material of objects when clicked
37
56
  * @category Everywhere Actions
38
57
  * @group Components
@@ -52,6 +71,9 @@ export declare class ChangeMaterialOnClick extends Behaviour implements IPointer
52
71
  */
53
72
  fadeDuration: number;
54
73
  start(): void;
74
+ onEnable(): void;
75
+ onDisable(): void;
76
+ onDestroy(): void;
55
77
  onPointerEnter(_args: PointerEventData): void;
56
78
  onPointerExit(_: PointerEventData): void;
57
79
  onPointerClick(args: PointerEventData): void;
@@ -72,17 +94,28 @@ export declare class ChangeMaterialOnClick extends Behaviour implements IPointer
72
94
  private createVariants;
73
95
  }
74
96
  /**
75
- * Set the active state of an object when clicked.
97
+ * Shows or hides a target object when this object is clicked.
98
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
99
+ *
100
+ * Optionally hides itself after being clicked (`hideSelf`), or toggles the target's visibility on each click (`toggleOnClick`).
101
+ *
102
+ * @see {@link HideOnStart}to hide an object when the scene starts
103
+ * @see {@link PlayAnimationOnClick} to play animations when clicked
104
+ * @see {@link ChangeMaterialOnClick} to change material when clicked
105
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
76
106
  * @summary Sets the active state of an object when clicked
77
107
  * @category Everywhere Actions
78
108
  * @group Components
79
109
  */
80
110
  export declare class SetActiveOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
111
+ /** The target object to show or hide. */
81
112
  target?: Object3D;
113
+ /** If true, the target's visibility will be toggled on each click. When enabled, `hideSelf` and `targetState` are ignored. */
82
114
  toggleOnClick: boolean;
115
+ /** The visibility state to apply to the target when clicked. Only used when `toggleOnClick` is false. */
83
116
  targetState: boolean;
117
+ /** If true, this object will hide itself after being clicked. Only used when `toggleOnClick` is false. */
84
118
  hideSelf: boolean;
85
- start(): void;
86
119
  onPointerEnter(): void;
87
120
  onPointerExit(): void;
88
121
  onPointerClick(args: PointerEventData): void;
@@ -102,7 +135,13 @@ export declare class SetActiveOnClick extends Behaviour implements IPointerClick
102
135
  afterSerialize(_ext: BehaviorExtension, _context: USDZExporterContext): void;
103
136
  }
104
137
  /**
105
- * Hides the object on scene start.
138
+ * Hides the object when the scene starts.
139
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
140
+ *
141
+ * Useful for setting up objects that should initially be hidden and shown later via a {@link SetActiveOnClick} component.
142
+ *
143
+ * @see {@link SetActiveOnClick} to show or hide objects on click
144
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
106
145
  * @summary Hides the object on scene start
107
146
  * @category Everywhere Actions
108
147
  * @group Components
@@ -117,50 +156,93 @@ export declare class HideOnStart extends Behaviour implements UsdzBehaviour {
117
156
  beforeCreateDocument(): void;
118
157
  }
119
158
  /**
120
- * Emphasize the target object when clicked.
159
+ * Applies an emphasis animation to a target object when this object is clicked.
160
+ * Works in USDZ/QuickLook (Everywhere Actions).
161
+ *
162
+ * The emphasis effect can be a bounce, jiggle, or other motion type defined by `motionType`.
163
+ *
164
+ * @see {@link PlayAnimationOnClick} to play animations when clicked
165
+ * @see {@link SetActiveOnClick} to toggle visibility when clicked
166
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
121
167
  * @summary Emphasizes the target object when clicked
122
168
  * @category Everywhere Actions
123
169
  * @group Components
124
170
  */
125
171
  export declare class EmphasizeOnClick extends Behaviour implements UsdzBehaviour {
172
+ /** The target object to emphasize. */
126
173
  target?: Object3D;
174
+ /** The duration of the emphasis animation in seconds. */
127
175
  duration: number;
176
+ /** The type of motion to use for the emphasis effect (e.g. `"bounce"`, `"jiggle"`). */
128
177
  motionType: EmphasizeActionMotionType;
178
+ onEnable(): void;
179
+ onDisable(): void;
180
+ onDestroy(): void;
129
181
  beforeCreateDocument(): void;
130
182
  createBehaviours(ext: any, model: any, _context: any): void;
131
183
  afterCreateDocument(_ext: any, _context: any): void;
132
184
  }
133
185
  /**
134
- * Plays an audio clip when clicked.
186
+ * Plays an audio clip when this object is clicked.
187
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
188
+ *
189
+ * Assign a `target` {@link AudioSource} to use its spatial audio settings, or assign a `clip` URL directly.
190
+ * If no `target` is assigned, an {@link AudioSource} will be created automatically on this object.
191
+ *
192
+ * @see {@link AudioSource}for spatial audio settings
193
+ * @see {@link PlayAnimationOnClick} to play animations when clicked
194
+ * @see {@link SetActiveOnClick} to toggle visibility when clicked
195
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
135
196
  * @summary Plays an audio clip when clicked
136
197
  * @category Everywhere Actions
137
198
  * @group Components
138
199
  */
139
200
  export declare class PlayAudioOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour {
201
+ /** The {@link AudioSource} to use for playback. If not set, one will be created automatically on this object. */
140
202
  target?: AudioSource;
203
+ /** URL of the audio clip to play. If not set, the clip assigned to `target` is used. */
141
204
  clip: string;
205
+ /** If true, clicking again while the audio is playing will stop it. */
142
206
  toggleOnClick: boolean;
143
207
  trigger: "tap" | "start";
144
- start(): void;
145
208
  ensureAudioSource(): void;
209
+ onEnable(): void;
210
+ onDisable(): void;
211
+ onDestroy(): void;
146
212
  onPointerEnter(): void;
147
213
  onPointerExit(): void;
148
214
  onPointerClick(args: PointerEventData): void;
149
215
  createBehaviours(ext: BehaviorExtension, model: USDObject, _context: USDZExporterContext): void;
150
216
  }
151
217
  /**
152
- * Plays an animation when clicked.
218
+ * Plays an animation state when this object is clicked.
219
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
220
+ *
221
+ * Assign an {@link Animator} and a `stateName` to play a specific animation state,
222
+ * or assign an {@link Animation} component to play a legacy animation clip.
223
+ *
224
+ * For USDZ export, the component follows animator state transitions automatically, including looping states.
225
+ *
226
+ * @see {@link Animator}for playing animator state machine animations
227
+ * @see {@link Animation} for playing legacy animation clips
228
+ * @see {@link PlayAudioOnClick} to play audio when clicked
229
+ * @see {@link SetActiveOnClick} to toggle visibility when clicked
230
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
153
231
  * @summary Plays an animation when clicked
154
232
  * @category Everywhere Actions
155
233
  * @group Components
156
234
  */
157
235
  export declare class PlayAnimationOnClick extends Behaviour implements IPointerClickHandler, UsdzBehaviour, UsdzAnimation {
236
+ /** The {@link Animator} component whose state to play when clicked. */
158
237
  animator?: Animator;
238
+ /** The name of the animation state to play. Required when using an {@link Animator}. */
159
239
  stateName?: string;
160
240
  trigger: "tap" | "start";
161
241
  animation?: Animation;
162
242
  private get target();
163
- start(): void;
243
+ onEnable(): void;
244
+ onDisable(): void;
245
+ onDestroy(): void;
164
246
  onPointerEnter(): void;
165
247
  onPointerExit(): void;
166
248
  onPointerClick(args: PointerEventData): void;
@@ -191,19 +273,31 @@ export declare class PreliminaryTrigger extends Behaviour {
191
273
  target?: PreliminaryAction;
192
274
  }
193
275
  /**
194
- * Hides or shows the object when clicked.
276
+ * Action to show or hide an object.
277
+ * Use together with a {@link TapGestureTrigger} to show or hide objects when tapped or clicked.
278
+ *
279
+ * @see {@link TapGestureTrigger} to trigger actions on tap/click
280
+ * @see {@link SetActiveOnClick} for a combined trigger and action component
281
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
195
282
  * @summary Hides or shows the object when clicked
196
283
  * @category Everywhere Actions
197
284
  * @group Components
198
285
  */
199
286
  export declare class VisibilityAction extends PreliminaryAction {
287
+ /** The type of visibility action to apply. */
200
288
  type: VisibilityActionType;
289
+ /** The duration of the fade animation in seconds. */
201
290
  duration: number;
202
291
  getType(): "show" | "hide";
203
292
  getDuration(): number;
204
293
  }
205
294
  /**
206
- * Triggers an action when the object is tapped/clicked.
295
+ * Triggers a {@link PreliminaryAction} (such as {@link VisibilityAction}) when the object is tapped or clicked.
296
+ * Works in the browser and in USDZ/QuickLook (Everywhere Actions).
297
+ *
298
+ * @see {@link VisibilityAction} for controlling object visibility on tap
299
+ * @see {@link SetActiveOnClick} for a combined trigger and action component
300
+ * @see [Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions)
207
301
  * @summary Triggers an action when the object is tapped/clicked
208
302
  * @category Everywhere Actions
209
303
  * @group Components