@needle-tools/engine 4.12.0-beta → 4.12.0-next.0b39d59

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 (201) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/components.needle.json +1 -1
  3. package/dist/{generateMeshBVH.worker-mO20N_b8.js → generateMeshBVH.worker-BvGEI0r7.js} +4 -4
  4. package/dist/{gltf-progressive-DZrY8VT6.min.js → gltf-progressive-BmSygnAC.min.js} +2 -2
  5. package/dist/{gltf-progressive-DgYz5BYa.js → gltf-progressive-DnLBuGK5.js} +24 -24
  6. package/dist/{gltf-progressive-DWcmTMCh.umd.cjs → gltf-progressive-Rs-ojtXy.umd.cjs} +1 -1
  7. package/dist/{loader.worker-Dip-PthR.js → loader.worker-DWzfDpAl.js} +4 -4
  8. package/dist/{needle-engine.bundle-DmY4g6s0.umd.cjs → needle-engine.bundle-BZJhFSnI.umd.cjs} +72 -72
  9. package/dist/{needle-engine.bundle-DBdgyYGK.js → needle-engine.bundle-BktxajaZ.js} +1103 -1163
  10. package/dist/{needle-engine.bundle-DhdNodjw.min.js → needle-engine.bundle-C6Ko3O_C.min.js} +76 -76
  11. package/dist/needle-engine.d.ts +101 -34
  12. package/dist/needle-engine.js +4 -4
  13. package/dist/needle-engine.min.js +1 -1
  14. package/dist/needle-engine.umd.cjs +1 -1
  15. package/dist/{postprocessing-CMgoN5t5.umd.cjs → postprocessing-BWZIqm3N.umd.cjs} +81 -81
  16. package/dist/{postprocessing-DYDtB188.min.js → postprocessing-BkY94MUG.min.js} +62 -62
  17. package/dist/{postprocessing-BTW9pD_s.js → postprocessing-CLbPDsD8.js} +588 -570
  18. package/dist/{three-DfMvBzXi.js → three-BCCkyCA5.js} +1 -7
  19. package/dist/{three-qj71I7J3.umd.cjs → three-Bf2NBxAw.umd.cjs} +2 -2
  20. package/dist/{three-B7CT31Bt.min.js → three-W7zWTcfP.min.js} +1 -1
  21. package/dist/{three-examples-CsW4_6LI.umd.cjs → three-examples-Dho7cuu4.umd.cjs} +4 -4
  22. package/dist/{three-examples-D1P7eEhn.min.js → three-examples-MsJjauyk.min.js} +10 -10
  23. package/dist/{three-examples-D1SK93ek.js → three-examples-y2GeYlze.js} +2 -20
  24. package/dist/{three-mesh-ui-C_uSB5dD.js → three-mesh-ui-3nSSizT4.js} +1 -1
  25. package/dist/{three-mesh-ui-LQ44s0AL.min.js → three-mesh-ui-CIez6qJQ.min.js} +1 -1
  26. package/dist/{three-mesh-ui-DpATDXwU.umd.cjs → three-mesh-ui-zsOOA5Pq.umd.cjs} +1 -1
  27. package/dist/vendor-BiJQtqow.min.js +1116 -0
  28. package/dist/{vendor-D0zoswDa.js → vendor-C_oHRUjX.js} +2686 -2663
  29. package/dist/{vendor-UCpFAwt1.umd.cjs → vendor-DN-NsXVB.umd.cjs} +30 -30
  30. package/lib/engine/codegen/register_types.js +0 -2
  31. package/lib/engine/codegen/register_types.js.map +1 -1
  32. package/lib/engine/engine_license.js +3 -9
  33. package/lib/engine/engine_license.js.map +1 -1
  34. package/lib/engine/engine_physics_rapier.js +1 -1
  35. package/lib/engine/engine_physics_rapier.js.map +1 -1
  36. package/lib/engine/webcomponents/needle-engine.js +1 -1
  37. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  38. package/lib/engine-components/AlignmentConstraint.d.ts +1 -2
  39. package/lib/engine-components/AlignmentConstraint.js +1 -2
  40. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  41. package/lib/engine-components/Animation.d.ts +2 -0
  42. package/lib/engine-components/Animation.js +2 -0
  43. package/lib/engine-components/Animation.js.map +1 -1
  44. package/lib/engine-components/Animator.d.ts +1 -0
  45. package/lib/engine-components/Animator.js +1 -0
  46. package/lib/engine-components/Animator.js.map +1 -1
  47. package/lib/engine-components/AudioListener.d.ts +1 -1
  48. package/lib/engine-components/AudioListener.js +1 -1
  49. package/lib/engine-components/AudioSource.d.ts +1 -1
  50. package/lib/engine-components/AudioSource.js +1 -1
  51. package/lib/engine-components/BasicIKConstraint.d.ts +8 -0
  52. package/lib/engine-components/BasicIKConstraint.js +8 -0
  53. package/lib/engine-components/BasicIKConstraint.js.map +1 -1
  54. package/lib/engine-components/BoxHelperComponent.d.ts +1 -0
  55. package/lib/engine-components/BoxHelperComponent.js +1 -0
  56. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  57. package/lib/engine-components/Camera.d.ts +2 -2
  58. package/lib/engine-components/Camera.js +2 -2
  59. package/lib/engine-components/CharacterController.d.ts +6 -2
  60. package/lib/engine-components/CharacterController.js +6 -2
  61. package/lib/engine-components/CharacterController.js.map +1 -1
  62. package/lib/engine-components/Collider.d.ts +2 -2
  63. package/lib/engine-components/Collider.js +1 -1
  64. package/lib/engine-components/Collider.js.map +1 -1
  65. package/lib/engine-components/ContactShadows.d.ts +1 -1
  66. package/lib/engine-components/ContactShadows.js +1 -1
  67. package/lib/engine-components/DragControls.js +3 -0
  68. package/lib/engine-components/DragControls.js.map +1 -1
  69. package/lib/engine-components/Gizmos.d.ts +2 -0
  70. package/lib/engine-components/Gizmos.js +2 -0
  71. package/lib/engine-components/Gizmos.js.map +1 -1
  72. package/lib/engine-components/Joints.d.ts +20 -0
  73. package/lib/engine-components/Joints.js +20 -0
  74. package/lib/engine-components/Joints.js.map +1 -1
  75. package/lib/engine-components/LODGroup.d.ts +1 -1
  76. package/lib/engine-components/LODGroup.js +1 -1
  77. package/lib/engine-components/LookAtConstraint.d.ts +1 -1
  78. package/lib/engine-components/LookAtConstraint.js +1 -1
  79. package/lib/engine-components/Networking.d.ts +1 -1
  80. package/lib/engine-components/Networking.js +1 -1
  81. package/lib/engine-components/OrbitControls.d.ts +1 -1
  82. package/lib/engine-components/OrbitControls.js +1 -1
  83. package/lib/engine-components/Renderer.d.ts +6 -0
  84. package/lib/engine-components/Renderer.js +6 -0
  85. package/lib/engine-components/Renderer.js.map +1 -1
  86. package/lib/engine-components/RendererInstancing.js +5 -3
  87. package/lib/engine-components/RendererInstancing.js.map +1 -1
  88. package/lib/engine-components/SceneSwitcher.js +18 -14
  89. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  90. package/lib/engine-components/ShadowCatcher.d.ts +1 -1
  91. package/lib/engine-components/ShadowCatcher.js +1 -1
  92. package/lib/engine-components/SpectatorCamera.d.ts +1 -1
  93. package/lib/engine-components/SpectatorCamera.js +1 -1
  94. package/lib/engine-components/SpriteRenderer.d.ts +2 -1
  95. package/lib/engine-components/SpriteRenderer.js +2 -1
  96. package/lib/engine-components/SpriteRenderer.js.map +1 -1
  97. package/lib/engine-components/Voip.d.ts +1 -1
  98. package/lib/engine-components/Voip.js +1 -1
  99. package/lib/engine-components/api.d.ts +1 -0
  100. package/lib/engine-components/api.js +1 -0
  101. package/lib/engine-components/api.js.map +1 -1
  102. package/lib/engine-components/codegen/components.d.ts +0 -1
  103. package/lib/engine-components/codegen/components.js +0 -1
  104. package/lib/engine-components/codegen/components.js.map +1 -1
  105. package/lib/engine-components/export/gltf/GltfExport.d.ts +5 -0
  106. package/lib/engine-components/export/gltf/GltfExport.js +5 -0
  107. package/lib/engine-components/export/gltf/GltfExport.js.map +1 -1
  108. package/lib/engine-components/export/usdz/USDZExporter.d.ts +1 -0
  109. package/lib/engine-components/export/usdz/USDZExporter.js +1 -0
  110. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  111. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -1
  112. package/lib/engine-components/particlesystem/ParticleSystem.js +1 -1
  113. package/lib/engine-components/timeline/SignalAsset.d.ts +1 -1
  114. package/lib/engine-components/timeline/SignalAsset.js +1 -1
  115. package/lib/engine-components/ui/Button.d.ts +1 -1
  116. package/lib/engine-components/ui/Button.js +1 -1
  117. package/lib/engine-components/ui/Canvas.d.ts +1 -1
  118. package/lib/engine-components/ui/Canvas.js +1 -1
  119. package/lib/engine-components/ui/CanvasGroup.d.ts +1 -1
  120. package/lib/engine-components/ui/CanvasGroup.js +1 -1
  121. package/lib/engine-components/ui/EventSystem.d.ts +1 -1
  122. package/lib/engine-components/ui/EventSystem.js +1 -1
  123. package/lib/engine-components/ui/Image.d.ts +1 -1
  124. package/lib/engine-components/ui/Image.js +1 -1
  125. package/lib/engine-components/ui/InputField.d.ts +1 -1
  126. package/lib/engine-components/ui/InputField.js +1 -1
  127. package/lib/engine-components/ui/Outline.d.ts +1 -1
  128. package/lib/engine-components/ui/Outline.js +1 -1
  129. package/lib/engine-components/ui/Raycaster.d.ts +3 -2
  130. package/lib/engine-components/ui/Raycaster.js +3 -2
  131. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  132. package/lib/engine-components/ui/RectTransform.d.ts +6 -0
  133. package/lib/engine-components/ui/RectTransform.js +6 -0
  134. package/lib/engine-components/ui/RectTransform.js.map +1 -1
  135. package/lib/engine-components/ui/SpatialHtml.d.ts +7 -0
  136. package/lib/engine-components/ui/SpatialHtml.js +7 -0
  137. package/lib/engine-components/ui/SpatialHtml.js.map +1 -1
  138. package/lib/engine-components/ui/Text.d.ts +2 -0
  139. package/lib/engine-components/ui/Text.js +2 -0
  140. package/lib/engine-components/ui/Text.js.map +1 -1
  141. package/lib/engine-components/utils/LookAt.d.ts +2 -1
  142. package/lib/engine-components/utils/LookAt.js +2 -1
  143. package/lib/engine-components/utils/LookAt.js.map +1 -1
  144. package/lib/engine-components/web/CursorFollow.d.ts +1 -1
  145. package/lib/engine-components/web/CursorFollow.js +1 -1
  146. package/lib/engine-components/web/HoverAnimation.d.ts +1 -1
  147. package/lib/engine-components/web/HoverAnimation.js +1 -1
  148. package/lib/engine-components/web/ViewBox.d.ts +1 -1
  149. package/lib/engine-components/web/ViewBox.js +1 -1
  150. package/package.json +4 -4
  151. package/src/engine/codegen/register_types.ts +0 -2
  152. package/src/engine/engine_license.ts +3 -8
  153. package/src/engine/engine_physics_rapier.ts +1 -1
  154. package/src/engine/webcomponents/needle-engine.ts +2 -2
  155. package/src/engine-components/AlignmentConstraint.ts +1 -2
  156. package/src/engine-components/Animation.ts +2 -0
  157. package/src/engine-components/Animator.ts +1 -0
  158. package/src/engine-components/AudioListener.ts +1 -1
  159. package/src/engine-components/AudioSource.ts +1 -1
  160. package/src/engine-components/BasicIKConstraint.ts +8 -0
  161. package/src/engine-components/BoxHelperComponent.ts +1 -0
  162. package/src/engine-components/Camera.ts +2 -2
  163. package/src/engine-components/CharacterController.ts +6 -2
  164. package/src/engine-components/Collider.ts +2 -2
  165. package/src/engine-components/ContactShadows.ts +1 -1
  166. package/src/engine-components/DragControls.ts +4 -0
  167. package/src/engine-components/Gizmos.ts +2 -0
  168. package/src/engine-components/Joints.ts +20 -0
  169. package/src/engine-components/LODGroup.ts +1 -1
  170. package/src/engine-components/LookAtConstraint.ts +1 -1
  171. package/src/engine-components/Networking.ts +1 -1
  172. package/src/engine-components/OrbitControls.ts +1 -1
  173. package/src/engine-components/Renderer.ts +6 -0
  174. package/src/engine-components/RendererInstancing.ts +6 -3
  175. package/src/engine-components/SceneSwitcher.ts +17 -17
  176. package/src/engine-components/ShadowCatcher.ts +1 -1
  177. package/src/engine-components/SpectatorCamera.ts +1 -1
  178. package/src/engine-components/SpriteRenderer.ts +2 -1
  179. package/src/engine-components/Voip.ts +1 -1
  180. package/src/engine-components/api.ts +2 -1
  181. package/src/engine-components/codegen/components.ts +0 -1
  182. package/src/engine-components/export/gltf/GltfExport.ts +5 -0
  183. package/src/engine-components/export/usdz/USDZExporter.ts +1 -0
  184. package/src/engine-components/particlesystem/ParticleSystem.ts +1 -1
  185. package/src/engine-components/timeline/SignalAsset.ts +1 -1
  186. package/src/engine-components/ui/Button.ts +1 -1
  187. package/src/engine-components/ui/Canvas.ts +1 -1
  188. package/src/engine-components/ui/CanvasGroup.ts +1 -1
  189. package/src/engine-components/ui/EventSystem.ts +1 -1
  190. package/src/engine-components/ui/Image.ts +1 -1
  191. package/src/engine-components/ui/InputField.ts +1 -1
  192. package/src/engine-components/ui/Outline.ts +1 -1
  193. package/src/engine-components/ui/Raycaster.ts +3 -2
  194. package/src/engine-components/ui/RectTransform.ts +6 -0
  195. package/src/engine-components/ui/SpatialHtml.ts +7 -0
  196. package/src/engine-components/ui/Text.ts +2 -0
  197. package/src/engine-components/utils/LookAt.ts +2 -1
  198. package/src/engine-components/web/CursorFollow.ts +1 -1
  199. package/src/engine-components/web/HoverAnimation.ts +1 -1
  200. package/src/engine-components/web/ViewBox.ts +1 -1
  201. package/dist/vendor-BKGa4GE0.min.js +0 -1116
@@ -261,7 +261,7 @@ export class SceneSwitcher extends Behaviour {
261
261
  if (scene && !scene.hasUrl && scene.asset instanceof Object3D) {
262
262
  GameObject.remove(scene.asset);
263
263
  }
264
- else if(scene instanceof Object3D) {
264
+ else if (scene instanceof Object3D) {
265
265
  GameObject.remove(scene);
266
266
  }
267
267
  }
@@ -477,13 +477,13 @@ export class SceneSwitcher extends Behaviour {
477
477
  * @returns a promise that resolves to true if the scene was loaded successfully
478
478
  */
479
479
  select(index: number | string): Promise<boolean> {
480
- if (debug) console.log("select", index);
480
+ if (debug) console.log("[SceneSwitcher] select", index);
481
481
 
482
482
  if (typeof index === "object") {
483
483
  // If a user tries to reference a scene object in a UnityEvent and invoke select(obj)
484
484
  // Then the object will be serialized as a object { guid : ... } or with the index json pointer
485
485
  // This case is not supported right now. Object references in the editor must not be scene references
486
- console.warn("Switching to \"" + index + "\" might not work. Please either use an index or a AssetReference (not a scene reference)");
486
+ console.warn("[SceneSwitcher] Switching to \"" + index + "\" might not work. Please either use an index or a AssetReference (not a scene reference)");
487
487
  }
488
488
 
489
489
  if (typeof index === "string") {
@@ -595,7 +595,7 @@ export class SceneSwitcher extends Behaviour {
595
595
  const current = this._currentScene;
596
596
  this._currentScene = undefined;
597
597
  if (current) {
598
- if (debug) console.log("UNLOAD", current.url, "HasURL?: " + current.hasUrl)
598
+ if (debug) console.log("[SceneSwitcher] UNLOAD", current.url, "HasURL?: " + current.hasUrl)
599
599
  const sceneListener = this.tryGetSceneEventListener(current.asset as any as Object3D);
600
600
  if (sceneListener?.sceneClosing) {
601
601
  const res = sceneListener.sceneClosing();
@@ -620,6 +620,7 @@ export class SceneSwitcher extends Behaviour {
620
620
  const index = this._currentIndex = this.scenes?.indexOf(scene) ?? -1;
621
621
 
622
622
  try {
623
+ if (debug) console.debug(`${Date.now()} [SceneSwitcher] Loading scene start: ${scene.url} (index: ${index})`);
623
624
  this._currentlyLoadingScene = scene;
624
625
  this._currentLoadingProgress = new ProgressEvent("progress", { loaded: 0, total: 1 });
625
626
 
@@ -632,7 +633,7 @@ export class SceneSwitcher extends Behaviour {
632
633
  if (debug) {
633
634
  const t01 = prog.loaded / prog.total;
634
635
  const progressBarString = "[" + "=".repeat(Math.floor(t01 * 20)) + "-".repeat(20 - Math.floor(t01 * 20)) + "]";
635
- console.debug(`[SceneSwitcher] Download ${(t01 * 100).toFixed(1)} % ${progressBarString}`, scene.url);
636
+ console.debug(`${Date.now()} [SceneSwitcher] Loading scene progress: ${(t01 * 100).toFixed(1)} % ${progressBarString}`, scene.url);
636
637
  }
637
638
  this._currentLoadingProgress = prog;
638
639
  this.dispatchEvent(prog);
@@ -646,15 +647,15 @@ export class SceneSwitcher extends Behaviour {
646
647
  this._currentlyLoadingScene = undefined;
647
648
 
648
649
  if (finishedEvt.defaultPrevented) {
649
- if (debug) console.warn("Adding loaded scene prevented:", scene, finishedEvt);
650
+ if (debug) console.warn("[SceneSwitcher] Adding loaded scene prevented:", scene, finishedEvt);
650
651
  return false;
651
652
  }
652
653
  if (!scene.asset) {
653
- if (debug) console.warn("Failed loading scene:", scene);
654
+ if (debug) console.warn("[SceneSwitcher] Failed loading scene:", scene);
654
655
  return false;
655
656
  }
656
657
  if (this._currentIndex === index) {
657
- if (debug) console.log("ADD", scene.url);
658
+ if (debug) console.log("[SceneSwitcher] ADD", scene.url);
658
659
  this._currentScene = scene;
659
660
 
660
661
 
@@ -683,7 +684,7 @@ export class SceneSwitcher extends Behaviour {
683
684
  this.context.scene.background = skybox;
684
685
  }
685
686
  else if (debug) {
686
- console.warn("SceneSwitcher: Can't find skybox for scene " + scene.url);
687
+ console.warn("[SceneSwitcher] Can't find skybox for scene " + scene.url);
687
688
  }
688
689
  }
689
690
 
@@ -713,10 +714,9 @@ export class SceneSwitcher extends Behaviour {
713
714
  const res = sceneListener.sceneOpened(this);
714
715
  if (res instanceof Promise) await res;
715
716
  }
716
-
717
+ if (debug) console.debug(`${Date.now()} [SceneSwitcher] Loading scene finished: ${scene.url} (index: ${index})`);
717
718
  const openedEvt = new CustomEvent<LoadSceneEvent>("scene-opened", { detail: { scene: scene, switcher: this, index: index } });
718
719
  this.dispatchEvent(openedEvt);
719
-
720
720
  this.sceneLoaded?.invoke(this);
721
721
  return true;
722
722
  }
@@ -772,7 +772,7 @@ export class SceneSwitcher extends Behaviour {
772
772
  }
773
773
  }
774
774
 
775
- if (isLocalNetwork()) console.warn("Can not find scene: \"" + value + "\"", this)
775
+ if (isLocalNetwork()) console.warn("[SceneSwitcher] Can not find scene: \"" + value + "\"", this)
776
776
 
777
777
  return couldNotLoadScenePromise;
778
778
  }
@@ -913,7 +913,7 @@ class PreLoadScheduler {
913
913
  */
914
914
  begin(delay: number) {
915
915
  if (this._isRunning) return;
916
- if (debug) console.log("Preload begin", { delay })
916
+ if (debug) console.log("[SceneSwitcher] Preload scheduled", { delay });
917
917
  this._isRunning = true;
918
918
  let lastRoom: number = -10;
919
919
  let searchDistance: number;
@@ -923,7 +923,7 @@ class PreLoadScheduler {
923
923
  const interval = setInterval(() => {
924
924
  if (this.allLoaded()) {
925
925
  if (debug)
926
- console.log("All scenes (pre-)loaded");
926
+ console.log("[SceneSwitcher] All scenes (pre-)loaded");
927
927
  this.stop();
928
928
  }
929
929
  if (!this._isRunning) {
@@ -950,7 +950,7 @@ class PreLoadScheduler {
950
950
  if (roomIndex < 0 || roomIndex >= array.length) return;
951
951
  if (!this._loadTasks.some(t => t.index === roomIndex)) {
952
952
  const scene = array[roomIndex];
953
- if (debug) console.log("Preload scene", { roomIndex, searchForward, lastRoom, currentIndex: this._switcher.currentIndex, tasks: this._loadTasks.length }, scene?.url);
953
+ if (debug) console.log("[SceneSwitcher] Schedule preload scene", { roomIndex, searchForward, lastRoom, currentIndex: this._switcher.currentIndex, tasks: this._loadTasks.length }, scene?.url);
954
954
  new LoadTask(roomIndex, scene, this._loadTasks);
955
955
  }
956
956
  }, 200);
@@ -1019,10 +1019,10 @@ class LoadTask {
1019
1019
  private async awaitLoading() {
1020
1020
  if (this.asset && !this.asset.isLoaded()) {
1021
1021
  if (debug)
1022
- console.log("Preload start: " + this.asset.url, this.index);
1022
+ console.log("[SceneSwitcher] Preload start: " + this.asset.url, this.index);
1023
1023
  await this.asset.preload();
1024
1024
  if (debug)
1025
- console.log("Preload finished: " + this.asset.url, this.index);
1025
+ console.log("[SceneSwitcher] Preload finished: " + this.asset.url, this.index);
1026
1026
  }
1027
1027
 
1028
1028
  const i = this.tasks.indexOf(this);
@@ -23,7 +23,7 @@ enum ShadowMode {
23
23
  *
24
24
  * Note that ShadowCatcher meshes are not raycastable by default; if you want them to be raycastable, change the layers in `onEnable()`.
25
25
  *
26
- * @summary Renders shadows or light on the object
26
+ * @summary Creates a shadow mask or a light occluder
27
27
  * @category Rendering
28
28
  * @group Components
29
29
  */
@@ -35,7 +35,7 @@ const debug = getParam("debugspectator");
35
35
  *
36
36
  * Debug mode can be enabled with the URL parameter `?debugspectator`, which provides additional console output.
37
37
  *
38
- * @summary Follow other users in a networked room
38
+ * @summary Spectator camera for following other users
39
39
  * @category Networking
40
40
  * @group Components
41
41
  */
@@ -262,7 +262,8 @@ export class SpriteData {
262
262
  *
263
263
  * - Example: https://engine.needle.tools/samples/spritesheet-animation
264
264
  *
265
- * @category Sprites
265
+ * @summary Renders 2D images from a sprite sheet
266
+ * @category Rendering
266
267
  * @group Components
267
268
  */
268
269
  export class SpriteRenderer extends Behaviour {
@@ -14,7 +14,7 @@ const debugParam = getParam("debugvoip");
14
14
  /**
15
15
  * The Voice over IP component (VoIP) allows you to send and receive audio streams to other users in the same networked room.
16
16
  * It requires a networking connection to be working (e.g. by having an active SyncedRoom component in the scene or by connecting to a room manually).
17
- * @summary Voice over IP (VoIP) for networked audio communication
17
+ * @summary Voice over IP for networked audio communication
18
18
  * @category Networking
19
19
  * @group Components
20
20
  */
@@ -35,7 +35,8 @@
35
35
  */
36
36
 
37
37
  export * from "./codegen/components.js";
38
- export { Behaviour, Component, GameObject } from "./Component.js"
38
+ export { Behaviour, Component, GameObject } from "./Component.js";
39
+ export { Collider } from "./Collider.js"; // export abstract type
39
40
 
40
41
  // We dont want to export everything in the extensions
41
42
  export { ClearFlags } from "./Camera.js"
@@ -23,7 +23,6 @@ export { BoxHelperComponent } from "../BoxHelperComponent.js";
23
23
  export { Camera } from "../Camera.js";
24
24
  export { CharacterController } from "../CharacterController.js";
25
25
  export { CharacterControllerInput } from "../CharacterController.js";
26
- export { Collider } from "../Collider.js";
27
26
  export { SphereCollider } from "../Collider.js";
28
27
  export { BoxCollider } from "../Collider.js";
29
28
  export { MeshCollider } from "../Collider.js";
@@ -30,6 +30,11 @@ export class GltfExportBox extends BoxHelperComponent {
30
30
  }
31
31
 
32
32
  /**
33
+ * GltfExport is a component that enables exporting selected 3D objects from the scene to the glTF format.
34
+ * You can specify whether to export in binary format (.glb) or JSON format (.gltf), and select specific objects to include in the export.
35
+ * The exported glTF file can be used in various 3D applications and engines that support the glTF standard.
36
+ *
37
+ * @summary Export selected 3D objects to glTF format
33
38
  * @category Asset Management
34
39
  * @group Components
35
40
  */
@@ -84,6 +84,7 @@ type BeforeLODExportArguments = {
84
84
  * usdz.autoExportAudioSources = true;
85
85
  * usdz.exportAsync();
86
86
  * ```
87
+ * @summary Export 3D objects as USDZ files for QuickLook
87
88
  * @category XR
88
89
  * @group Components
89
90
  */
@@ -692,7 +692,7 @@ class ParticlesEmissionState implements EmissionState {
692
692
  *
693
693
  * Needle Engine uses [three.quarks](https://github.com/Alchemist0823/three.quarks) under the hood to handle particles.
694
694
  *
695
- * @summary Particle System
695
+ * @summary Handles the motion and rendering of many individual particles
696
696
  * @category Rendering
697
697
  * @group Components
698
698
  */
@@ -30,7 +30,7 @@ export class SignalReceiverEvent {
30
30
  * Signals can be added to a signal track on a {@link PlayableDirector}
31
31
  *
32
32
  * @summary Receives signals and invokes reactions
33
- * @category Sequencing and Timelines
33
+ * @category Animation and Sequencing
34
34
  * @group Components
35
35
  */
36
36
  export class SignalReceiver extends Behaviour {
@@ -64,7 +64,7 @@ class AnimationTriggers {
64
64
  * Button is a UI component that can be clicked by the user to perform an action.
65
65
  * It supports different visual states such as normal, highlighted, pressed, and disabled.
66
66
  * You can customize the button's appearance using colors or animations for each state.
67
- * @summary Button UI Component
67
+ * @summary UI Button that can be clicked to perform actions
68
68
  * @category User Interface
69
69
  * @group Components
70
70
  */
@@ -29,7 +29,7 @@ const debugLayout = getParam("debuguilayout");
29
29
  * It defines the area where UI elements are rendered and manages their layout and rendering settings.
30
30
  * Canvases can be set to render in world space or screen space (overlay or camera).
31
31
  * Multiple canvases can exist in a scene, each with its own settings and hierarchy of UI elements.
32
- * @summary Canvas UI Component
32
+ * @summary Root component for UI elements, managing layout and rendering settings
33
33
  * @category User Interface
34
34
  * @group Components
35
35
  */
@@ -10,7 +10,7 @@ import { type ICanvasGroup, type IHasAlphaFactor } from "./Interfaces.js";
10
10
  * CanvasGroup is a UI component that allows you to control the transparency and interactivity of a group of UI elements.
11
11
  * By adjusting the alpha property, you can fade in or out all child UI elements simultaneously.
12
12
  * The interactable and blocksRaycasts properties let you enable or disable user interaction for the entire group.
13
- * @summary CanvasGroup UI Component
13
+ * @summary Group UI elements to control transparency and interactivity
14
14
  * @category User Interface
15
15
  * @group Components
16
16
  */
@@ -37,7 +37,7 @@ onInitialized((ctx) => {
37
37
 
38
38
  /**
39
39
  * The EventSystem is responsible for managing and dispatching input events to UI components within the scene.
40
- * @summary UI Input Event System
40
+ * @summary Manages and dispatches input events to UI components
41
41
  * @category User Interface
42
42
  * @group Components
43
43
  */
@@ -15,7 +15,7 @@ class Sprite {
15
15
  * Image is a UI component that displays a sprite (2D image) in the user interface.
16
16
  * You can set the image property to assign a texture to be displayed.
17
17
  * The sprite can be customized with various properties such as color tinting and pixel density.
18
- * @summary Image UI Component
18
+ * @summary Display a 2D image in the UI
19
19
  * @category User Interface
20
20
  * @group Components
21
21
  */
@@ -13,7 +13,7 @@ const debug = getParam("debuginputfield");
13
13
  * InputField is a UI component that allows users to enter and edit text.
14
14
  * It provides a text input area where users can type, delete, and modify text.
15
15
  * The InputField supports placeholder text, events for value changes, and end edit actions.
16
- * @summary Text Input Field UI Component
16
+ * @summary Text field for user input
17
17
  * @category User Interface
18
18
  * @group Components
19
19
  */
@@ -7,7 +7,7 @@ import { Behaviour } from "../Component.js";
7
7
  /**
8
8
  * Outline is a UI component that adds an outline effect to UI elements.
9
9
  * You can customize the outline color and distance to create a visual border around the UI element.
10
- * @summary Outline UI Component
10
+ * @summary Add an outline effect to UI elements
11
11
  * @category User Interface
12
12
  * @group Components
13
13
  */
@@ -31,7 +31,7 @@ export abstract class Raycaster extends Behaviour {
31
31
  /**
32
32
  * A Raycaster that performs raycasting against its own GameObject.
33
33
  *
34
- * @category Interaction
34
+ * @category Interactivity
35
35
  * @group Components
36
36
  */
37
37
  export class ObjectRaycaster extends Raycaster {
@@ -75,7 +75,8 @@ export class ObjectRaycaster extends Raycaster {
75
75
  /**
76
76
  * A Raycaster that performs raycasting against UI elements (objects with a CanvasRenderer component).
77
77
  *
78
- * @category UI
78
+ * @summary Raycaster for UI elements
79
+ * @category User Interface
79
80
  * @group Components
80
81
  */
81
82
  export class GraphicRaycaster extends ObjectRaycaster {
@@ -29,6 +29,12 @@ const tempVec = new Vector3();
29
29
  const tempMatrix = new Matrix4();
30
30
  const tempQuaternion = new Quaternion();
31
31
 
32
+ /**
33
+ * RectTransform is a component that defines a rectangle for UI layout.
34
+ * @summary UI Rectangle Transform
35
+ * @category User Interface
36
+ * @group Components
37
+ */
32
38
  export class RectTransform extends BaseUIComponent implements IRectTransform, IRectTransformChangedReceiver {
33
39
 
34
40
  get parent() {
@@ -6,6 +6,13 @@ import { serializable } from '../../engine/engine_serialization.js';
6
6
  import { getWorldRotation, setWorldRotationXYZ } from '../../engine/engine_three_utils.js';
7
7
  import { Behaviour } from '../Component.js';
8
8
 
9
+ /**
10
+ * SpatialHtml is a component that allows you to integrate HTML elements into a 3D scene.
11
+ * By specifying the ID of an existing HTML element, you can render it as a 3D object within the scene.
12
+ * @summary Render HTML elements as 3D objects in the scene
13
+ * @category User Interface
14
+ * @group Components
15
+ */
9
16
  export class SpatialHtml extends Behaviour {
10
17
 
11
18
  @serializable()
@@ -41,6 +41,8 @@ export enum FontStyle {
41
41
 
42
42
  /**
43
43
  * Text is a UI component that displays text in the user interface.
44
+ *
45
+ * @summary Display text in the UI
44
46
  * @category User Interface
45
47
  * @group Components
46
48
  */
@@ -13,7 +13,8 @@ import { Behaviour } from "../Component.js";
13
13
  * It can also invert the forward direction and keep the up direction.
14
14
  *
15
15
  * @summary Makes the object look at a target object or the camera
16
- * @category Interactivity, Everywhere Actions
16
+ * @category Everywhere Actions
17
+ * @category Interactivity
17
18
  * @group Components
18
19
  */
19
20
  export class LookAt extends Behaviour implements UsdzBehaviour {
@@ -15,7 +15,7 @@ const debug = getParam("debugcursor");
15
15
  * - Example: [Look At Cursor sample](https://engine.needle.tools/samples/look-at-cursor-interactive-3d-header/). This sample combines the CursorFollow component with a LookAt component to create an interactive 3D header that looks at the cursor.
16
16
  *
17
17
  * @summary Makes the object follow the cursor position on screen
18
- * @category Web
18
+ * @category Interactivity
19
19
  * @group Components
20
20
  * @component
21
21
  */
@@ -14,7 +14,7 @@ import { Behaviour } from "../Component.js";
14
14
  * By default, a simple scale-up animation is used. You can customize the hover and idle animations by providing your own animation clips.
15
15
  *
16
16
  * @summary Hover Animation on Pointer Enter/Exit
17
- * @category Web
17
+ * @category Interactivity
18
18
  * @group Components
19
19
  */
20
20
  @registerType
@@ -32,7 +32,7 @@ export type ViewBoxMode = "continuous" | "once";
32
32
  * ```
33
33
 
34
34
  * @summary Automatically fits a box area into the camera view
35
- * @category Camera
35
+ * @category Camera and Controls
36
36
  * @group Components
37
37
  * @component
38
38
  */