@needle-tools/engine 4.13.0 → 4.13.1

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 (428) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/README.md +37 -0
  3. package/components.needle.json +1 -1
  4. package/custom-elements.json +138 -4
  5. package/dist/{needle-engine.bundle-CxaKFQVS.min.js → needle-engine.bundle-BNIUpreS.min.js} +107 -107
  6. package/dist/{needle-engine.bundle-Dl3TFYyv.js → needle-engine.bundle-DauZUYl7.js} +2347 -1845
  7. package/dist/{needle-engine.bundle-J4k4znv8.umd.cjs → needle-engine.bundle-tjI5Fq2c.umd.cjs} +108 -108
  8. package/dist/needle-engine.d.ts +4022 -419
  9. package/dist/needle-engine.js +2 -2
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/lib/engine/engine_context.d.ts +16 -0
  13. package/lib/engine/engine_context.js +16 -0
  14. package/lib/engine/engine_context.js.map +1 -1
  15. package/lib/engine/engine_gameobject.d.ts +72 -0
  16. package/lib/engine/engine_gameobject.js +38 -0
  17. package/lib/engine/engine_gameobject.js.map +1 -1
  18. package/lib/engine/engine_input.d.ts +80 -4
  19. package/lib/engine/engine_input.js +78 -2
  20. package/lib/engine/engine_input.js.map +1 -1
  21. package/lib/engine/engine_math.d.ts +81 -2
  22. package/lib/engine/engine_math.js +68 -2
  23. package/lib/engine/engine_math.js.map +1 -1
  24. package/lib/engine/engine_networking.d.ts +181 -14
  25. package/lib/engine/engine_networking.js +181 -14
  26. package/lib/engine/engine_networking.js.map +1 -1
  27. package/lib/engine/engine_networking_auto.d.ts +35 -8
  28. package/lib/engine/engine_networking_auto.js +35 -8
  29. package/lib/engine/engine_networking_auto.js.map +1 -1
  30. package/lib/engine/engine_physics.d.ts +37 -1
  31. package/lib/engine/engine_physics.js +37 -1
  32. package/lib/engine/engine_physics.js.map +1 -1
  33. package/lib/engine/engine_physics_rapier.d.ts +78 -0
  34. package/lib/engine/engine_physics_rapier.js +78 -0
  35. package/lib/engine/engine_physics_rapier.js.map +1 -1
  36. package/lib/engine/engine_serialization_decorator.d.ts +28 -2
  37. package/lib/engine/engine_serialization_decorator.js +28 -2
  38. package/lib/engine/engine_serialization_decorator.js.map +1 -1
  39. package/lib/engine/engine_time.d.ts +23 -3
  40. package/lib/engine/engine_time.js +23 -3
  41. package/lib/engine/engine_time.js.map +1 -1
  42. package/lib/engine/engine_util_decorator.d.ts +31 -1
  43. package/lib/engine/engine_util_decorator.js +31 -1
  44. package/lib/engine/engine_util_decorator.js.map +1 -1
  45. package/lib/engine/engine_utils.d.ts +21 -5
  46. package/lib/engine/engine_utils.js +21 -5
  47. package/lib/engine/engine_utils.js.map +1 -1
  48. package/lib/engine/extensions/NEEDLE_materialx.d.ts +2 -2
  49. package/lib/engine/extensions/NEEDLE_materialx.js +2 -2
  50. package/lib/engine/extensions/NEEDLE_materialx.js.map +1 -1
  51. package/lib/engine/extensions/index.d.ts +1 -1
  52. package/lib/engine/extensions/index.js +1 -1
  53. package/lib/engine/extensions/index.js.map +1 -1
  54. package/lib/engine-components/AlignmentConstraint.d.ts +23 -3
  55. package/lib/engine-components/AlignmentConstraint.js +23 -3
  56. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  57. package/lib/engine-components/Animation.d.ts +42 -0
  58. package/lib/engine-components/Animation.js +36 -0
  59. package/lib/engine-components/Animation.js.map +1 -1
  60. package/lib/engine-components/Animator.d.ts +37 -4
  61. package/lib/engine-components/Animator.js +37 -4
  62. package/lib/engine-components/Animator.js.map +1 -1
  63. package/lib/engine-components/AudioListener.d.ts +1 -1
  64. package/lib/engine-components/AudioListener.js +1 -1
  65. package/lib/engine-components/AudioSource.d.ts +32 -10
  66. package/lib/engine-components/AudioSource.js +32 -10
  67. package/lib/engine-components/AudioSource.js.map +1 -1
  68. package/lib/engine-components/AxesHelper.d.ts +22 -3
  69. package/lib/engine-components/AxesHelper.js +22 -3
  70. package/lib/engine-components/AxesHelper.js.map +1 -1
  71. package/lib/engine-components/BasicIKConstraint.d.ts +27 -4
  72. package/lib/engine-components/BasicIKConstraint.js +27 -4
  73. package/lib/engine-components/BasicIKConstraint.js.map +1 -1
  74. package/lib/engine-components/Camera.d.ts +32 -2
  75. package/lib/engine-components/Camera.js +32 -2
  76. package/lib/engine-components/Camera.js.map +1 -1
  77. package/lib/engine-components/CharacterController.d.ts +68 -4
  78. package/lib/engine-components/CharacterController.js +68 -4
  79. package/lib/engine-components/CharacterController.js.map +1 -1
  80. package/lib/engine-components/Collider.d.ts +69 -12
  81. package/lib/engine-components/Collider.js +69 -12
  82. package/lib/engine-components/Collider.js.map +1 -1
  83. package/lib/engine-components/ContactShadows.d.ts +28 -6
  84. package/lib/engine-components/ContactShadows.js +33 -8
  85. package/lib/engine-components/ContactShadows.js.map +1 -1
  86. package/lib/engine-components/DeleteBox.d.ts +43 -2
  87. package/lib/engine-components/DeleteBox.js +43 -2
  88. package/lib/engine-components/DeleteBox.js.map +1 -1
  89. package/lib/engine-components/DeviceFlag.d.ts +21 -2
  90. package/lib/engine-components/DeviceFlag.js +21 -2
  91. package/lib/engine-components/DeviceFlag.js.map +1 -1
  92. package/lib/engine-components/DragControls.d.ts +32 -2
  93. package/lib/engine-components/DragControls.js +32 -2
  94. package/lib/engine-components/DragControls.js.map +1 -1
  95. package/lib/engine-components/DropListener.d.ts +33 -21
  96. package/lib/engine-components/DropListener.js +33 -21
  97. package/lib/engine-components/DropListener.js.map +1 -1
  98. package/lib/engine-components/Duplicatable.d.ts +36 -5
  99. package/lib/engine-components/Duplicatable.js +36 -5
  100. package/lib/engine-components/Duplicatable.js.map +1 -1
  101. package/lib/engine-components/EventList.d.ts +38 -10
  102. package/lib/engine-components/EventList.js +40 -12
  103. package/lib/engine-components/EventList.js.map +1 -1
  104. package/lib/engine-components/EventTrigger.d.ts +1 -1
  105. package/lib/engine-components/EventTrigger.js +1 -1
  106. package/lib/engine-components/Fog.d.ts +23 -1
  107. package/lib/engine-components/Fog.js +23 -1
  108. package/lib/engine-components/Fog.js.map +1 -1
  109. package/lib/engine-components/GridHelper.d.ts +18 -2
  110. package/lib/engine-components/GridHelper.js +18 -2
  111. package/lib/engine-components/GridHelper.js.map +1 -1
  112. package/lib/engine-components/GroundProjection.d.ts +24 -2
  113. package/lib/engine-components/GroundProjection.js +24 -2
  114. package/lib/engine-components/GroundProjection.js.map +1 -1
  115. package/lib/engine-components/Interactable.d.ts +17 -2
  116. package/lib/engine-components/Interactable.js +17 -2
  117. package/lib/engine-components/Interactable.js.map +1 -1
  118. package/lib/engine-components/Joints.d.ts +50 -7
  119. package/lib/engine-components/Joints.js +50 -7
  120. package/lib/engine-components/Joints.js.map +1 -1
  121. package/lib/engine-components/LODGroup.d.ts +36 -14
  122. package/lib/engine-components/LODGroup.js +43 -11
  123. package/lib/engine-components/LODGroup.js.map +1 -1
  124. package/lib/engine-components/Light.d.ts +30 -5
  125. package/lib/engine-components/Light.js +30 -5
  126. package/lib/engine-components/Light.js.map +1 -1
  127. package/lib/engine-components/LookAtConstraint.d.ts +22 -7
  128. package/lib/engine-components/LookAtConstraint.js +22 -7
  129. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  130. package/lib/engine-components/NeedleMenu.d.ts +27 -5
  131. package/lib/engine-components/NeedleMenu.js +27 -5
  132. package/lib/engine-components/NeedleMenu.js.map +1 -1
  133. package/lib/engine-components/NestedGltf.d.ts +39 -4
  134. package/lib/engine-components/NestedGltf.js +42 -4
  135. package/lib/engine-components/NestedGltf.js.map +1 -1
  136. package/lib/engine-components/OffsetConstraint.d.ts +27 -3
  137. package/lib/engine-components/OffsetConstraint.js +27 -3
  138. package/lib/engine-components/OffsetConstraint.js.map +1 -1
  139. package/lib/engine-components/OrbitControls.d.ts +41 -3
  140. package/lib/engine-components/OrbitControls.js +41 -3
  141. package/lib/engine-components/OrbitControls.js.map +1 -1
  142. package/lib/engine-components/PlayerColor.d.ts +1 -1
  143. package/lib/engine-components/PlayerColor.js +1 -1
  144. package/lib/engine-components/ReflectionProbe.d.ts +17 -2
  145. package/lib/engine-components/ReflectionProbe.js +17 -3
  146. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  147. package/lib/engine-components/Renderer.d.ts +35 -0
  148. package/lib/engine-components/Renderer.js +36 -2
  149. package/lib/engine-components/Renderer.js.map +1 -1
  150. package/lib/engine-components/RigidBody.d.ts +57 -5
  151. package/lib/engine-components/RigidBody.js +57 -5
  152. package/lib/engine-components/RigidBody.js.map +1 -1
  153. package/lib/engine-components/SceneSwitcher.d.ts +11 -0
  154. package/lib/engine-components/SceneSwitcher.js +11 -0
  155. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  156. package/lib/engine-components/ScreenCapture.d.ts +39 -6
  157. package/lib/engine-components/ScreenCapture.js +39 -6
  158. package/lib/engine-components/ScreenCapture.js.map +1 -1
  159. package/lib/engine-components/SeeThrough.d.ts +70 -5
  160. package/lib/engine-components/SeeThrough.js +70 -5
  161. package/lib/engine-components/SeeThrough.js.map +1 -1
  162. package/lib/engine-components/ShadowCatcher.d.ts +56 -4
  163. package/lib/engine-components/ShadowCatcher.js +56 -4
  164. package/lib/engine-components/ShadowCatcher.js.map +1 -1
  165. package/lib/engine-components/Skybox.d.ts +43 -7
  166. package/lib/engine-components/Skybox.js +43 -7
  167. package/lib/engine-components/Skybox.js.map +1 -1
  168. package/lib/engine-components/SmoothFollow.d.ts +66 -7
  169. package/lib/engine-components/SmoothFollow.js +66 -7
  170. package/lib/engine-components/SmoothFollow.js.map +1 -1
  171. package/lib/engine-components/SpatialTrigger.d.ts +48 -1
  172. package/lib/engine-components/SpatialTrigger.js +48 -1
  173. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  174. package/lib/engine-components/SpectatorCamera.d.ts +21 -3
  175. package/lib/engine-components/SpectatorCamera.js +21 -3
  176. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  177. package/lib/engine-components/SyncedRoom.d.ts +7 -1
  178. package/lib/engine-components/SyncedRoom.js +7 -1
  179. package/lib/engine-components/SyncedRoom.js.map +1 -1
  180. package/lib/engine-components/SyncedTransform.d.ts +55 -6
  181. package/lib/engine-components/SyncedTransform.js +55 -6
  182. package/lib/engine-components/SyncedTransform.js.map +1 -1
  183. package/lib/engine-components/TransformGizmo.d.ts +30 -3
  184. package/lib/engine-components/TransformGizmo.js +30 -3
  185. package/lib/engine-components/TransformGizmo.js.map +1 -1
  186. package/lib/engine-components/VideoPlayer.d.ts +33 -6
  187. package/lib/engine-components/VideoPlayer.js +45 -6
  188. package/lib/engine-components/VideoPlayer.js.map +1 -1
  189. package/lib/engine-components/Voip.d.ts +33 -2
  190. package/lib/engine-components/Voip.js +33 -2
  191. package/lib/engine-components/Voip.js.map +1 -1
  192. package/lib/engine-components/export/usdz/USDZExporter.d.ts +47 -13
  193. package/lib/engine-components/export/usdz/USDZExporter.js +47 -13
  194. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  195. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +82 -3
  196. package/lib/engine-components/particlesystem/ParticleSystem.js +82 -3
  197. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  198. package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +1 -0
  199. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +1 -0
  200. package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -1
  201. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -1
  202. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +1 -1
  203. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +1 -1
  204. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +1 -1
  205. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +1 -1
  206. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +1 -1
  207. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +1 -1
  208. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +1 -1
  209. package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +1 -0
  210. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +1 -0
  211. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js.map +1 -1
  212. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +1 -1
  213. package/lib/engine-components/postprocessing/Effects/Pixelation.js +1 -1
  214. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +1 -1
  215. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +1 -1
  216. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +1 -1
  217. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +1 -1
  218. package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +1 -1
  219. package/lib/engine-components/postprocessing/Effects/Sharpening.js +1 -1
  220. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +1 -1
  221. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +1 -1
  222. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +1 -1
  223. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +1 -1
  224. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +1 -1
  225. package/lib/engine-components/postprocessing/Effects/Vignette.js +1 -1
  226. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +1 -1
  227. package/lib/engine-components/postprocessing/PostProcessingHandler.js +1 -1
  228. package/lib/engine-components/postprocessing/Volume.d.ts +1 -1
  229. package/lib/engine-components/postprocessing/Volume.js +1 -1
  230. package/lib/engine-components/splines/Spline.d.ts +409 -12
  231. package/lib/engine-components/splines/Spline.js +409 -12
  232. package/lib/engine-components/splines/Spline.js.map +1 -1
  233. package/lib/engine-components/splines/SplineUtils.d.ts +1 -0
  234. package/lib/engine-components/splines/SplineUtils.js +1 -0
  235. package/lib/engine-components/splines/SplineUtils.js.map +1 -1
  236. package/lib/engine-components/splines/SplineWalker.d.ts +3 -1
  237. package/lib/engine-components/splines/SplineWalker.js +3 -1
  238. package/lib/engine-components/splines/SplineWalker.js.map +1 -1
  239. package/lib/engine-components/timeline/PlayableDirector.d.ts +103 -14
  240. package/lib/engine-components/timeline/PlayableDirector.js +95 -25
  241. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  242. package/lib/engine-components/timeline/TimelineModels.d.ts +14 -0
  243. package/lib/engine-components/timeline/TimelineModels.js +4 -0
  244. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  245. package/lib/engine-components/ui/Button.d.ts +29 -3
  246. package/lib/engine-components/ui/Button.js +29 -3
  247. package/lib/engine-components/ui/Button.js.map +1 -1
  248. package/lib/engine-components/ui/Canvas.d.ts +29 -4
  249. package/lib/engine-components/ui/Canvas.js +29 -4
  250. package/lib/engine-components/ui/Canvas.js.map +1 -1
  251. package/lib/engine-components/ui/CanvasGroup.d.ts +1 -1
  252. package/lib/engine-components/ui/CanvasGroup.js +1 -1
  253. package/lib/engine-components/ui/EventSystem.d.ts +1 -1
  254. package/lib/engine-components/ui/EventSystem.js +1 -1
  255. package/lib/engine-components/ui/Graphic.d.ts +1 -0
  256. package/lib/engine-components/ui/Graphic.js +1 -0
  257. package/lib/engine-components/ui/Graphic.js.map +1 -1
  258. package/lib/engine-components/ui/Image.d.ts +22 -3
  259. package/lib/engine-components/ui/Image.js +22 -3
  260. package/lib/engine-components/ui/Image.js.map +1 -1
  261. package/lib/engine-components/ui/InputField.d.ts +1 -1
  262. package/lib/engine-components/ui/InputField.js +1 -1
  263. package/lib/engine-components/ui/Layout.d.ts +3 -0
  264. package/lib/engine-components/ui/Layout.js +3 -0
  265. package/lib/engine-components/ui/Layout.js.map +1 -1
  266. package/lib/engine-components/ui/Outline.d.ts +1 -1
  267. package/lib/engine-components/ui/Outline.js +1 -1
  268. package/lib/engine-components/ui/PointerEvents.d.ts +1 -1
  269. package/lib/engine-components/ui/PointerEvents.js +1 -1
  270. package/lib/engine-components/ui/Raycaster.d.ts +55 -6
  271. package/lib/engine-components/ui/Raycaster.js +55 -6
  272. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  273. package/lib/engine-components/ui/RectTransform.d.ts +1 -1
  274. package/lib/engine-components/ui/RectTransform.js +1 -1
  275. package/lib/engine-components/ui/SpatialHtml.d.ts +1 -1
  276. package/lib/engine-components/ui/SpatialHtml.js +1 -1
  277. package/lib/engine-components/ui/Text.d.ts +23 -1
  278. package/lib/engine-components/ui/Text.js +23 -1
  279. package/lib/engine-components/ui/Text.js.map +1 -1
  280. package/lib/engine-components/utils/LookAt.d.ts +1 -1
  281. package/lib/engine-components/utils/LookAt.js +1 -1
  282. package/lib/engine-components/utils/OpenURL.d.ts +1 -1
  283. package/lib/engine-components/utils/OpenURL.js +1 -1
  284. package/lib/engine-components/web/Clickthrough.d.ts +116 -7
  285. package/lib/engine-components/web/Clickthrough.js +116 -7
  286. package/lib/engine-components/web/Clickthrough.js.map +1 -1
  287. package/lib/engine-components/web/CursorFollow.d.ts +171 -7
  288. package/lib/engine-components/web/CursorFollow.js +171 -7
  289. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  290. package/lib/engine-components/web/HoverAnimation.d.ts +140 -11
  291. package/lib/engine-components/web/HoverAnimation.js +140 -11
  292. package/lib/engine-components/web/HoverAnimation.js.map +1 -1
  293. package/lib/engine-components/web/ScrollFollow.d.ts +4 -1
  294. package/lib/engine-components/web/ScrollFollow.js +4 -1
  295. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  296. package/lib/engine-components/web/ViewBox.d.ts +116 -16
  297. package/lib/engine-components/web/ViewBox.js +110 -16
  298. package/lib/engine-components/web/ViewBox.js.map +1 -1
  299. package/lib/engine-components/webxr/TeleportTarget.d.ts +21 -2
  300. package/lib/engine-components/webxr/TeleportTarget.js +21 -2
  301. package/lib/engine-components/webxr/TeleportTarget.js.map +1 -1
  302. package/lib/engine-components/webxr/WebXR.d.ts +10 -2
  303. package/lib/engine-components/webxr/WebXR.js +10 -2
  304. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  305. package/lib/engine-components/webxr/WebXRAvatar.d.ts +39 -2
  306. package/lib/engine-components/webxr/WebXRAvatar.js +35 -3
  307. package/lib/engine-components/webxr/WebXRAvatar.js.map +1 -1
  308. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +266 -30
  309. package/lib/engine-components/webxr/WebXRImageTracking.js +266 -30
  310. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  311. package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +1 -1
  312. package/lib/engine-components/webxr/WebXRPlaneTracking.js +1 -1
  313. package/lib/engine-components/webxr/XRFlag.d.ts +29 -2
  314. package/lib/engine-components/webxr/XRFlag.js +29 -2
  315. package/lib/engine-components/webxr/XRFlag.js.map +1 -1
  316. package/package.json +1 -1
  317. package/plugins/vite/custom-element-data.js +128 -19
  318. package/src/engine/engine_context.ts +16 -0
  319. package/src/engine/engine_gameobject.ts +73 -0
  320. package/src/engine/engine_input.ts +83 -7
  321. package/src/engine/engine_math.ts +81 -2
  322. package/src/engine/engine_networking.ts +186 -17
  323. package/src/engine/engine_networking_auto.ts +36 -9
  324. package/src/engine/engine_physics.ts +41 -1
  325. package/src/engine/engine_physics_rapier.ts +81 -0
  326. package/src/engine/engine_serialization_decorator.ts +28 -2
  327. package/src/engine/engine_time.ts +23 -3
  328. package/src/engine/engine_util_decorator.ts +31 -1
  329. package/src/engine/engine_utils.ts +21 -5
  330. package/src/engine/extensions/NEEDLE_materialx.ts +5 -4
  331. package/src/engine/extensions/index.ts +2 -2
  332. package/src/engine-components/AlignmentConstraint.ts +24 -4
  333. package/src/engine-components/Animation.ts +44 -2
  334. package/src/engine-components/Animator.ts +40 -7
  335. package/src/engine-components/AudioListener.ts +1 -1
  336. package/src/engine-components/AudioSource.ts +37 -15
  337. package/src/engine-components/AxesHelper.ts +23 -4
  338. package/src/engine-components/BasicIKConstraint.ts +28 -5
  339. package/src/engine-components/Camera.ts +33 -3
  340. package/src/engine-components/CharacterController.ts +74 -7
  341. package/src/engine-components/Collider.ts +78 -21
  342. package/src/engine-components/ContactShadows.ts +41 -11
  343. package/src/engine-components/DeleteBox.ts +43 -2
  344. package/src/engine-components/DeviceFlag.ts +22 -3
  345. package/src/engine-components/DragControls.ts +32 -2
  346. package/src/engine-components/DropListener.ts +41 -29
  347. package/src/engine-components/Duplicatable.ts +37 -6
  348. package/src/engine-components/EventList.ts +43 -15
  349. package/src/engine-components/EventTrigger.ts +1 -1
  350. package/src/engine-components/Fog.ts +23 -1
  351. package/src/engine-components/GridHelper.ts +18 -2
  352. package/src/engine-components/GroundProjection.ts +25 -3
  353. package/src/engine-components/Interactable.ts +17 -2
  354. package/src/engine-components/Joints.ts +51 -8
  355. package/src/engine-components/LODGroup.ts +45 -11
  356. package/src/engine-components/Light.ts +35 -13
  357. package/src/engine-components/LookAtConstraint.ts +26 -8
  358. package/src/engine-components/NeedleMenu.ts +29 -7
  359. package/src/engine-components/NestedGltf.ts +40 -4
  360. package/src/engine-components/OffsetConstraint.ts +27 -3
  361. package/src/engine-components/OrbitControls.ts +41 -3
  362. package/src/engine-components/PlayerColor.ts +1 -1
  363. package/src/engine-components/ReflectionProbe.ts +19 -5
  364. package/src/engine-components/Renderer.ts +35 -1
  365. package/src/engine-components/RigidBody.ts +64 -8
  366. package/src/engine-components/SceneSwitcher.ts +11 -0
  367. package/src/engine-components/ScreenCapture.ts +42 -9
  368. package/src/engine-components/SeeThrough.ts +76 -9
  369. package/src/engine-components/ShadowCatcher.ts +61 -6
  370. package/src/engine-components/Skybox.ts +48 -12
  371. package/src/engine-components/SmoothFollow.ts +68 -7
  372. package/src/engine-components/SpatialTrigger.ts +51 -4
  373. package/src/engine-components/SpectatorCamera.ts +23 -5
  374. package/src/engine-components/SyncedRoom.ts +8 -2
  375. package/src/engine-components/SyncedTransform.ts +59 -10
  376. package/src/engine-components/TransformGizmo.ts +31 -4
  377. package/src/engine-components/VideoPlayer.ts +48 -6
  378. package/src/engine-components/Voip.ts +33 -2
  379. package/src/engine-components/export/usdz/USDZExporter.ts +47 -13
  380. package/src/engine-components/particlesystem/ParticleSystem.ts +84 -5
  381. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +1 -0
  382. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +1 -1
  383. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +1 -1
  384. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +1 -1
  385. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +1 -1
  386. package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +1 -0
  387. package/src/engine-components/postprocessing/Effects/Pixelation.ts +1 -1
  388. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +1 -1
  389. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +1 -1
  390. package/src/engine-components/postprocessing/Effects/Sharpening.ts +1 -1
  391. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +1 -1
  392. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +1 -1
  393. package/src/engine-components/postprocessing/Effects/Vignette.ts +1 -1
  394. package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
  395. package/src/engine-components/postprocessing/Volume.ts +1 -1
  396. package/src/engine-components/splines/Spline.ts +412 -14
  397. package/src/engine-components/splines/SplineUtils.ts +1 -0
  398. package/src/engine-components/splines/SplineWalker.ts +4 -2
  399. package/src/engine-components/timeline/PlayableDirector.ts +108 -27
  400. package/src/engine-components/timeline/SignalAsset.ts +1 -1
  401. package/src/engine-components/timeline/TimelineModels.ts +18 -2
  402. package/src/engine-components/ui/Button.ts +29 -3
  403. package/src/engine-components/ui/Canvas.ts +29 -4
  404. package/src/engine-components/ui/CanvasGroup.ts +2 -2
  405. package/src/engine-components/ui/EventSystem.ts +1 -1
  406. package/src/engine-components/ui/Graphic.ts +1 -0
  407. package/src/engine-components/ui/Image.ts +22 -3
  408. package/src/engine-components/ui/InputField.ts +2 -2
  409. package/src/engine-components/ui/Layout.ts +3 -0
  410. package/src/engine-components/ui/Outline.ts +1 -1
  411. package/src/engine-components/ui/PointerEvents.ts +1 -1
  412. package/src/engine-components/ui/Raycaster.ts +57 -8
  413. package/src/engine-components/ui/RectTransform.ts +2 -2
  414. package/src/engine-components/ui/SpatialHtml.ts +1 -1
  415. package/src/engine-components/ui/Text.ts +24 -2
  416. package/src/engine-components/utils/LookAt.ts +1 -1
  417. package/src/engine-components/utils/OpenURL.ts +1 -1
  418. package/src/engine-components/web/Clickthrough.ts +119 -10
  419. package/src/engine-components/web/CursorFollow.ts +174 -9
  420. package/src/engine-components/web/HoverAnimation.ts +142 -13
  421. package/src/engine-components/web/ScrollFollow.ts +4 -1
  422. package/src/engine-components/web/ViewBox.ts +118 -18
  423. package/src/engine-components/webxr/TeleportTarget.ts +23 -4
  424. package/src/engine-components/webxr/WebXR.ts +11 -3
  425. package/src/engine-components/webxr/WebXRAvatar.ts +41 -4
  426. package/src/engine-components/webxr/WebXRImageTracking.ts +282 -38
  427. package/src/engine-components/webxr/WebXRPlaneTracking.ts +1 -1
  428. package/src/engine-components/webxr/XRFlag.ts +30 -3
@@ -4,43 +4,107 @@ import { Animator } from "./Animator.js";
4
4
  import { Behaviour } from "./Component.js";
5
5
  import { Rigidbody } from "./RigidBody.js";
6
6
  /**
7
- * CharacterController adds a capsule collider and rigidbody to the object, constrains rotation, and provides movement and grounded state.
7
+ * The [CharacterController](https://engine.needle.tools/docs/api/CharacterController) adds a capsule collider and rigidbody to the object, constrains rotation, and provides movement and grounded state.
8
8
  * It is designed for typical character movement in 3D environments.
9
+ *
10
+ * The controller automatically:
11
+ * - Creates a {@link CapsuleCollider} if one doesn't exist
12
+ * - Creates a {@link Rigidbody} if one doesn't exist
13
+ * - Locks rotation on all axes to prevent tipping over
14
+ * - Tracks ground contact for jump detection
15
+ *
16
+ * @example Basic character movement
17
+ * ```ts
18
+ * export class MyCharacter extends Behaviour {
19
+ * @serializable(CharacterController)
20
+ * controller?: CharacterController;
21
+ *
22
+ * update() {
23
+ * const input = this.context.input;
24
+ * const move = new Vector3();
25
+ * if (input.isKeyPressed("KeyW")) move.z = 0.1;
26
+ * if (input.isKeyPressed("KeyS")) move.z = -0.1;
27
+ * this.controller?.move(move);
28
+ * }
29
+ * }
30
+ * ```
31
+ *
9
32
  * @summary Character Movement Controller
10
33
  * @category Character
11
34
  * @group Components
35
+ * @see {@link CharacterControllerInput} for ready-to-use input handling
36
+ * @see {@link Rigidbody} for physics configuration
37
+ * @see {@link CapsuleCollider} for collision shape
12
38
  */
13
39
  export declare class CharacterController extends Behaviour {
40
+ /** Center offset of the capsule collider in local space */
14
41
  center: Vector3;
42
+ /** Radius of the capsule collider */
15
43
  radius: number;
44
+ /** Height of the capsule collider */
16
45
  height: number;
17
46
  private _rigidbody;
18
47
  get rigidbody(): Rigidbody;
19
48
  private _activeGroundCollisions;
20
49
  awake(): void;
21
50
  onEnable(): void;
51
+ /**
52
+ * Moves the character by adding the given vector to its position.
53
+ * Movement is applied directly without physics simulation.
54
+ * @param vec The movement vector to apply
55
+ */
22
56
  move(vec: Vector3): void;
23
57
  onCollisionEnter(col: Collision): void;
24
58
  onCollisionExit(col: Collision): void;
59
+ /** Returns true if the character is currently touching the ground */
25
60
  get isGrounded(): boolean;
26
61
  private _contactVelocity;
62
+ /**
63
+ * Returns the combined velocity of all objects the character is standing on.
64
+ * Useful for moving platforms - add this to your movement for proper platform riding.
65
+ */
27
66
  get contactVelocity(): Vector3;
28
67
  }
29
68
  /**
30
- * CharacterControllerInput handles user input to control a CharacterController.
69
+ * CharacterControllerInput handles user input to control a {@link CharacterController}.
31
70
  * It supports movement, looking around, jumping, and double jumping.
32
- * You can customize movement speed, rotation speed, and jump forces.
33
- * It also integrates with an Animator component for character animations.
71
+ *
72
+ * Default controls:
73
+ * - **W/S**: Move forward/backward
74
+ * - **A/D**: Rotate left/right
75
+ * - **Space**: Jump (supports double jump)
76
+ *
77
+ * The component automatically sets animator parameters:
78
+ * - `running` (bool): True when moving
79
+ * - `jumping` (bool): True when starting a jump
80
+ * - `doubleJump` (bool): True during double jump
81
+ * - `falling` (bool): True when falling from height
82
+ *
83
+ * @example Custom input handling
84
+ * ```ts
85
+ * const input = this.gameObject.getComponent(CharacterControllerInput);
86
+ * input?.move(new Vector2(0, 1)); // Move forward
87
+ * input?.jump(); // Trigger jump
88
+ * ```
89
+ *
34
90
  * @summary User Input for Character Controller
35
91
  * @category Character
36
92
  * @group Components
93
+ * @see {@link CharacterController} for the movement controller
94
+ * @see {@link Animator} for animation integration
37
95
  */
38
96
  export declare class CharacterControllerInput extends Behaviour {
97
+ /** The CharacterController to drive with input */
39
98
  controller?: CharacterController;
99
+ /** Movement speed multiplier */
40
100
  movementSpeed: number;
101
+ /** Rotation speed multiplier */
41
102
  rotationSpeed: number;
103
+ /** Impulse force applied when jumping from ground */
42
104
  jumpForce: number;
105
+ /** Impulse force applied for the second jump (set to 0 to disable double jump) */
43
106
  doubleJumpForce: number;
107
+ /** Optional Animator for character animations */
44
108
  animator?: Animator;
45
109
  lookForward: boolean;
46
110
  awake(): void;
@@ -16,15 +16,44 @@ import { Behaviour } from "./Component.js";
16
16
  import { Rigidbody } from "./RigidBody.js";
17
17
  const debug = getParam("debugcharactercontroller");
18
18
  /**
19
- * CharacterController adds a capsule collider and rigidbody to the object, constrains rotation, and provides movement and grounded state.
19
+ * The [CharacterController](https://engine.needle.tools/docs/api/CharacterController) adds a capsule collider and rigidbody to the object, constrains rotation, and provides movement and grounded state.
20
20
  * It is designed for typical character movement in 3D environments.
21
+ *
22
+ * The controller automatically:
23
+ * - Creates a {@link CapsuleCollider} if one doesn't exist
24
+ * - Creates a {@link Rigidbody} if one doesn't exist
25
+ * - Locks rotation on all axes to prevent tipping over
26
+ * - Tracks ground contact for jump detection
27
+ *
28
+ * @example Basic character movement
29
+ * ```ts
30
+ * export class MyCharacter extends Behaviour {
31
+ * @serializable(CharacterController)
32
+ * controller?: CharacterController;
33
+ *
34
+ * update() {
35
+ * const input = this.context.input;
36
+ * const move = new Vector3();
37
+ * if (input.isKeyPressed("KeyW")) move.z = 0.1;
38
+ * if (input.isKeyPressed("KeyS")) move.z = -0.1;
39
+ * this.controller?.move(move);
40
+ * }
41
+ * }
42
+ * ```
43
+ *
21
44
  * @summary Character Movement Controller
22
45
  * @category Character
23
46
  * @group Components
47
+ * @see {@link CharacterControllerInput} for ready-to-use input handling
48
+ * @see {@link Rigidbody} for physics configuration
49
+ * @see {@link CapsuleCollider} for collision shape
24
50
  */
25
51
  export class CharacterController extends Behaviour {
52
+ /** Center offset of the capsule collider in local space */
26
53
  center = new Vector3(0, 0, 0);
54
+ /** Radius of the capsule collider */
27
55
  radius = .5;
56
+ /** Height of the capsule collider */
28
57
  height = 2;
29
58
  _rigidbody = null;
30
59
  get rigidbody() {
@@ -60,6 +89,11 @@ export class CharacterController extends Behaviour {
60
89
  rb.lockRotationY = true;
61
90
  rb.lockRotationZ = true;
62
91
  }
92
+ /**
93
+ * Moves the character by adding the given vector to its position.
94
+ * Movement is applied directly without physics simulation.
95
+ * @param vec The movement vector to apply
96
+ */
63
97
  move(vec) {
64
98
  this.gameObject.position.add(vec);
65
99
  }
@@ -79,8 +113,13 @@ export class CharacterController extends Behaviour {
79
113
  console.log(`Collision(${this._activeGroundCollisions.size}) - ${this.isGrounded}`);
80
114
  }
81
115
  }
116
+ /** Returns true if the character is currently touching the ground */
82
117
  get isGrounded() { return this._activeGroundCollisions.size > 0; }
83
118
  _contactVelocity = new Vector3();
119
+ /**
120
+ * Returns the combined velocity of all objects the character is standing on.
121
+ * Useful for moving platforms - add this to your movement for proper platform riding.
122
+ */
84
123
  get contactVelocity() {
85
124
  this._contactVelocity.set(0, 0, 0);
86
125
  for (const col of this._activeGroundCollisions) {
@@ -105,20 +144,45 @@ __decorate([
105
144
  serializable()
106
145
  ], CharacterController.prototype, "height", void 0);
107
146
  /**
108
- * CharacterControllerInput handles user input to control a CharacterController.
147
+ * CharacterControllerInput handles user input to control a {@link CharacterController}.
109
148
  * It supports movement, looking around, jumping, and double jumping.
110
- * You can customize movement speed, rotation speed, and jump forces.
111
- * It also integrates with an Animator component for character animations.
149
+ *
150
+ * Default controls:
151
+ * - **W/S**: Move forward/backward
152
+ * - **A/D**: Rotate left/right
153
+ * - **Space**: Jump (supports double jump)
154
+ *
155
+ * The component automatically sets animator parameters:
156
+ * - `running` (bool): True when moving
157
+ * - `jumping` (bool): True when starting a jump
158
+ * - `doubleJump` (bool): True during double jump
159
+ * - `falling` (bool): True when falling from height
160
+ *
161
+ * @example Custom input handling
162
+ * ```ts
163
+ * const input = this.gameObject.getComponent(CharacterControllerInput);
164
+ * input?.move(new Vector2(0, 1)); // Move forward
165
+ * input?.jump(); // Trigger jump
166
+ * ```
167
+ *
112
168
  * @summary User Input for Character Controller
113
169
  * @category Character
114
170
  * @group Components
171
+ * @see {@link CharacterController} for the movement controller
172
+ * @see {@link Animator} for animation integration
115
173
  */
116
174
  export class CharacterControllerInput extends Behaviour {
175
+ /** The CharacterController to drive with input */
117
176
  controller;
177
+ /** Movement speed multiplier */
118
178
  movementSpeed = 2;
179
+ /** Rotation speed multiplier */
119
180
  rotationSpeed = 2;
181
+ /** Impulse force applied when jumping from ground */
120
182
  jumpForce = 1;
183
+ /** Impulse force applied for the second jump (set to 0 to disable double jump) */
121
184
  doubleJumpForce = 2;
185
+ /** Optional Animator for character animations */
122
186
  animator;
123
187
  lookForward = true;
124
188
  awake() {
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterController.js","sourceRoot":"","sources":["../../src/engine-components/CharacterController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CharacterController.js","sourceRoot":"","sources":["../../src/engine-components/CharacterController.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,43 @@ import type { IBoxCollider, ICollider, ISphereCollider } from "../engine/engine_
4
4
  import { Behaviour } from "./Component.js";
5
5
  import { Rigidbody } from "./RigidBody.js";
6
6
  /**
7
- * Collider is the base class for all colliders. A collider is a physical shape that is used to detect collisions with other objects in the scene.
8
- * Colliders are used in combination with a {@link Rigidbody} to create physical interactions between objects.
9
- * Colliders are registered with the physics engine when they are enabled and removed when they are disabled.
7
+ * Collider is the base class for all physics collision shapes.
8
+ * Colliders define the physical boundary of objects for collision detection.
9
+ *
10
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
11
+ *
12
+ * **Usage with Rigidbody:**
13
+ * - Add a collider to define collision shape
14
+ * - Add a {@link Rigidbody} to the same or parent object for physics simulation
15
+ * - Without Rigidbody, collider acts as static geometry
16
+ *
17
+ * **Trigger mode:**
18
+ * Set `isTrigger = true` for detection without physical collision.
19
+ * Triggers fire `onTriggerEnter`, `onTriggerStay`, `onTriggerExit` events.
20
+ *
21
+ * **Collision filtering:**
22
+ * Use `membership` and `filter` arrays to control which objects collide.
23
+ *
24
+ * @example Add a box collider to an object
25
+ * ```ts
26
+ * const collider = myObject.addComponent(BoxCollider);
27
+ * collider.size = new Vector3(1, 2, 1);
28
+ * collider.center = new Vector3(0, 1, 0);
29
+ * ```
10
30
  *
11
31
  * - Example: https://samples.needle.tools/physics-basic
12
32
  * - Example: https://samples.needle.tools/physics-playground
13
- * - Example: https://samples.needle.tools/physics-&-animation
14
33
  *
15
- * @summary Physics collider
34
+ * @summary Physics collider base class
16
35
  * @category Physics
17
36
  * @group Components
37
+ * @see {@link BoxCollider} for box-shaped colliders
38
+ * @see {@link SphereCollider} for sphere-shaped colliders
39
+ * @see {@link CapsuleCollider} for capsule-shaped colliders
40
+ * @see {@link MeshCollider} for mesh-based colliders
41
+ * @see {@link Rigidbody} for physics simulation
42
+ * @link https://engine.needle.tools/samples/?room=needle272&overlay=samples&tag=physics
43
+ * @link https://engine.needle.tools/samples-uploads/basic-physics/?showcolliders
18
44
  */
19
45
  export declare abstract class Collider extends Behaviour implements ICollider {
20
46
  /**
@@ -70,14 +96,25 @@ export declare abstract class Collider extends Behaviour implements ICollider {
70
96
  }
71
97
  /**
72
98
  * SphereCollider represents a sphere-shaped collision volume.
73
- * Useful for objects that are roughly spherical in shape or need a simple collision boundary.
99
+ * Efficient and suitable for balls, projectiles, or approximate collision bounds.
100
+ *
101
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
102
+ *
103
+ * @example Create a bouncing ball
104
+ * ```ts
105
+ * const sphere = ball.addComponent(SphereCollider);
106
+ * sphere.radius = 0.5;
107
+ * const rb = ball.addComponent(Rigidbody);
108
+ * rb.mass = 1;
109
+ * ```
74
110
  *
75
111
  * - Example: https://samples.needle.tools/physics-basic
76
- * - Example: https://samples.needle.tools/physics-playground
77
- * - Example: https://samples.needle.tools/physics-&-animation
78
112
  *
113
+ * @summary Sphere-shaped physics collider
79
114
  * @category Physics
80
115
  * @group Components
116
+ * @see {@link Collider} for base collider functionality
117
+ * @see {@link CapsuleCollider} for elongated sphere shapes
81
118
  */
82
119
  export declare class SphereCollider extends Collider implements ISphereCollider {
83
120
  /**
@@ -102,15 +139,31 @@ export declare class SphereCollider extends Collider implements ISphereCollider
102
139
  onValidate(): void;
103
140
  }
104
141
  /**
105
- * BoxCollider represents a box-shaped collision volume.
106
- * Ideal for rectangular objects or objects that need a simple cuboid collision boundary.
142
+ * BoxCollider represents a box-shaped (cuboid) collision volume.
143
+ * Most common collider type, efficient for walls, floors, crates, and rectangular objects.
144
+ *
145
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
146
+ *
147
+ * @example Create a floor collider
148
+ * ```ts
149
+ * const box = floor.addComponent(BoxCollider);
150
+ * box.size = new Vector3(10, 0.1, 10);
151
+ * box.center = new Vector3(0, -0.05, 0);
152
+ * ```
153
+ *
154
+ * @example Auto-fit to mesh geometry
155
+ * ```ts
156
+ * const collider = BoxCollider.add(myMesh, { rigidbody: true });
157
+ * // Collider size is automatically set from mesh bounds
158
+ * ```
107
159
  *
108
160
  * - Example: https://samples.needle.tools/physics-basic
109
- * - Example: https://samples.needle.tools/physics-playground
110
- * - Example: https://samples.needle.tools/physics-&-animation
111
161
  *
162
+ * @summary Box-shaped physics collider
112
163
  * @category Physics
113
164
  * @group Components
165
+ * @see {@link Collider} for base collider functionality
166
+ * @see {@link SphereCollider} for sphere shapes
114
167
  */
115
168
  export declare class BoxCollider extends Collider implements IBoxCollider {
116
169
  /**
@@ -159,6 +212,8 @@ export declare class BoxCollider extends Collider implements IBoxCollider {
159
212
  * MeshCollider creates a collision shape from a mesh geometry.
160
213
  * Allows for complex collision shapes that match the exact geometry of an object.
161
214
  *
215
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
216
+ *
162
217
  * - Example: https://samples.needle.tools/physics-basic
163
218
  * - Example: https://samples.needle.tools/physics-playground
164
219
  * - Example: https://samples.needle.tools/physics-&-animation
@@ -187,6 +242,8 @@ export declare class MeshCollider extends Collider {
187
242
  * CapsuleCollider represents a capsule-shaped collision volume (cylinder with hemispherical ends).
188
243
  * Ideal for character controllers and objects that need a rounded collision shape.
189
244
  *
245
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
246
+ *
190
247
  * - Example: https://samples.needle.tools/physics-basic
191
248
  * - Example: https://samples.needle.tools/physics-playground
192
249
  * - Example: https://samples.needle.tools/physics-&-animation
@@ -16,17 +16,43 @@ import { NEEDLE_progressive } from "../engine/extensions/NEEDLE_progressive.js";
16
16
  import { Behaviour } from "./Component.js";
17
17
  import { Rigidbody } from "./RigidBody.js";
18
18
  /**
19
- * Collider is the base class for all colliders. A collider is a physical shape that is used to detect collisions with other objects in the scene.
20
- * Colliders are used in combination with a {@link Rigidbody} to create physical interactions between objects.
21
- * Colliders are registered with the physics engine when they are enabled and removed when they are disabled.
19
+ * Collider is the base class for all physics collision shapes.
20
+ * Colliders define the physical boundary of objects for collision detection.
21
+ *
22
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
23
+ *
24
+ * **Usage with Rigidbody:**
25
+ * - Add a collider to define collision shape
26
+ * - Add a {@link Rigidbody} to the same or parent object for physics simulation
27
+ * - Without Rigidbody, collider acts as static geometry
28
+ *
29
+ * **Trigger mode:**
30
+ * Set `isTrigger = true` for detection without physical collision.
31
+ * Triggers fire `onTriggerEnter`, `onTriggerStay`, `onTriggerExit` events.
32
+ *
33
+ * **Collision filtering:**
34
+ * Use `membership` and `filter` arrays to control which objects collide.
35
+ *
36
+ * @example Add a box collider to an object
37
+ * ```ts
38
+ * const collider = myObject.addComponent(BoxCollider);
39
+ * collider.size = new Vector3(1, 2, 1);
40
+ * collider.center = new Vector3(0, 1, 0);
41
+ * ```
22
42
  *
23
43
  * - Example: https://samples.needle.tools/physics-basic
24
44
  * - Example: https://samples.needle.tools/physics-playground
25
- * - Example: https://samples.needle.tools/physics-&-animation
26
45
  *
27
- * @summary Physics collider
46
+ * @summary Physics collider base class
28
47
  * @category Physics
29
48
  * @group Components
49
+ * @see {@link BoxCollider} for box-shaped colliders
50
+ * @see {@link SphereCollider} for sphere-shaped colliders
51
+ * @see {@link CapsuleCollider} for capsule-shaped colliders
52
+ * @see {@link MeshCollider} for mesh-based colliders
53
+ * @see {@link Rigidbody} for physics simulation
54
+ * @link https://engine.needle.tools/samples/?room=needle272&overlay=samples&tag=physics
55
+ * @link https://engine.needle.tools/samples-uploads/basic-physics/?showcolliders
30
56
  */
31
57
  export class Collider extends Behaviour {
32
58
  /**
@@ -118,14 +144,25 @@ __decorate([
118
144
  ], Collider.prototype, "filter", void 0);
119
145
  /**
120
146
  * SphereCollider represents a sphere-shaped collision volume.
121
- * Useful for objects that are roughly spherical in shape or need a simple collision boundary.
147
+ * Efficient and suitable for balls, projectiles, or approximate collision bounds.
148
+ *
149
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
150
+ *
151
+ * @example Create a bouncing ball
152
+ * ```ts
153
+ * const sphere = ball.addComponent(SphereCollider);
154
+ * sphere.radius = 0.5;
155
+ * const rb = ball.addComponent(Rigidbody);
156
+ * rb.mass = 1;
157
+ * ```
122
158
  *
123
159
  * - Example: https://samples.needle.tools/physics-basic
124
- * - Example: https://samples.needle.tools/physics-playground
125
- * - Example: https://samples.needle.tools/physics-&-animation
126
160
  *
161
+ * @summary Sphere-shaped physics collider
127
162
  * @category Physics
128
163
  * @group Components
164
+ * @see {@link Collider} for base collider functionality
165
+ * @see {@link CapsuleCollider} for elongated sphere shapes
129
166
  */
130
167
  export class SphereCollider extends Collider {
131
168
  /**
@@ -166,15 +203,31 @@ __decorate([
166
203
  serializable(Vector3)
167
204
  ], SphereCollider.prototype, "center", void 0);
168
205
  /**
169
- * BoxCollider represents a box-shaped collision volume.
170
- * Ideal for rectangular objects or objects that need a simple cuboid collision boundary.
206
+ * BoxCollider represents a box-shaped (cuboid) collision volume.
207
+ * Most common collider type, efficient for walls, floors, crates, and rectangular objects.
208
+ *
209
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
210
+ *
211
+ * @example Create a floor collider
212
+ * ```ts
213
+ * const box = floor.addComponent(BoxCollider);
214
+ * box.size = new Vector3(10, 0.1, 10);
215
+ * box.center = new Vector3(0, -0.05, 0);
216
+ * ```
217
+ *
218
+ * @example Auto-fit to mesh geometry
219
+ * ```ts
220
+ * const collider = BoxCollider.add(myMesh, { rigidbody: true });
221
+ * // Collider size is automatically set from mesh bounds
222
+ * ```
171
223
  *
172
224
  * - Example: https://samples.needle.tools/physics-basic
173
- * - Example: https://samples.needle.tools/physics-playground
174
- * - Example: https://samples.needle.tools/physics-&-animation
175
225
  *
226
+ * @summary Box-shaped physics collider
176
227
  * @category Physics
177
228
  * @group Components
229
+ * @see {@link Collider} for base collider functionality
230
+ * @see {@link SphereCollider} for sphere shapes
178
231
  */
179
232
  export class BoxCollider extends Collider {
180
233
  /**
@@ -269,6 +322,8 @@ __decorate([
269
322
  * MeshCollider creates a collision shape from a mesh geometry.
270
323
  * Allows for complex collision shapes that match the exact geometry of an object.
271
324
  *
325
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
326
+ *
272
327
  * - Example: https://samples.needle.tools/physics-basic
273
328
  * - Example: https://samples.needle.tools/physics-playground
274
329
  * - Example: https://samples.needle.tools/physics-&-animation
@@ -356,6 +411,8 @@ __decorate([
356
411
  * CapsuleCollider represents a capsule-shaped collision volume (cylinder with hemispherical ends).
357
412
  * Ideal for character controllers and objects that need a rounded collision shape.
358
413
  *
414
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
415
+ *
359
416
  * - Example: https://samples.needle.tools/physics-basic
360
417
  * - Example: https://samples.needle.tools/physics-playground
361
418
  * - Example: https://samples.needle.tools/physics-&-animation
@@ -1 +1 @@
1
- {"version":3,"file":"Collider.js","sourceRoot":"","sources":["../../src/engine-components/Collider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Collider.js","sourceRoot":"","sources":["../../src/engine-components/Collider.ts"],"names":[],"mappings":"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"}
@@ -9,19 +9,40 @@ type FitParameters = {
9
9
  scaleFactor?: Partial<Vector3Like>;
10
10
  };
11
11
  /**
12
- * ContactShadows is a component that allows to display contact shadows in the scene. It has options for darkness, opacity and blur of the shadows.
12
+ * [ContactShadows](https://engine.needle.tools/docs/api/ContactShadows) renders proximity-based soft shadows on flat surfaces.
13
+ * Ideal for products or objects that need visual grounding without real-time shadows.
14
+ * Produces soft, blurred shadows that hug the ground, giving a sense of contact and depth.
13
15
  *
14
- * - Example: https://samples.needle.tools/contact-shadows
16
+ * ![](https://cloud.needle.tools/-/media/87bPTNXHcsbV-An-oSEvHQ.gif)
15
17
  *
16
- * ## Usage
17
- * You can use {@link ContactShadows.auto} to automatically create a ContactShadows instance for the scene or you can add the component to an object in the scene. Note that the scale of the object will be used to define the size of the shadow area.
18
+ * **Setup options:**
19
+ * 1. `ContactShadows.auto(context)` - Auto-create and fit to scene
20
+ * 2. Add component manually to control position and scale
21
+ * 3. HTML attribute: `<needle-engine contactshadows="0.7">`
18
22
  *
19
- * ContactShadows can also be enabled on the `<needle-engine>` web component directly by adding the `contactshadows` attribute. The value of the attribute will be used as opacity and darkness of the shadows: `<needle-engine contactshadows="0.7">`.
23
+ * **Properties:**
24
+ * - `opacity` / `darkness` - Shadow intensity
25
+ * - `blur` - Softness of shadow edges
26
+ * - Object scale defines shadow area size
27
+ *
28
+ * **Debug:** Use `?debugcontactshadows` URL parameter.
29
+ *
30
+ *
31
+ * @example Auto-create contact shadows
32
+ * ```ts
33
+ * const shadows = ContactShadows.auto(this.context);
34
+ * shadows.opacity = 0.5;
35
+ * shadows.darkness = 0.8;
36
+ * ```
20
37
  *
21
38
  * @summary Display contact shadows on the ground
22
39
  * @category Rendering
23
40
  * @group Components
24
- */
41
+ * @see {@link ShadowCatcher} for real-time shadows from lights (more accurate, higher performance cost)
42
+ * @see {@link Light} for real-time shadow casting
43
+ * @see {@link Renderer} for material/rendering control
44
+ * @link https://engine.needle.tools/samples/contact-shadows for a demo of contact shadows
45
+ */
25
46
  export declare class ContactShadows extends Behaviour {
26
47
  private static readonly _instances;
27
48
  /**
@@ -90,6 +111,7 @@ export declare class ContactShadows extends Behaviour {
90
111
  private plane?;
91
112
  private occluderMesh?;
92
113
  private blurPlane?;
114
+ private planeMaterial?;
93
115
  private depthMaterial?;
94
116
  private horizontalBlurMaterial?;
95
117
  private verticalBlurMaterial?;