@needle-tools/engine 4.12.5 → 4.13.0-next.1eca7a7

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 (322) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +38 -1
  3. package/components.needle.json +1 -1
  4. package/custom-elements.json +156 -5
  5. package/dist/{gltf-progressive-BqUnxvCx.umd.cjs → gltf-progressive-BURrJW0U.umd.cjs} +1 -1
  6. package/dist/{gltf-progressive-CSaX5HQb.min.js → gltf-progressive-DHLDFNvQ.min.js} +1 -1
  7. package/dist/{gltf-progressive-ChnIhDXx.js → gltf-progressive-eiJCrjLb.js} +3 -3
  8. package/dist/materialx-B9ddsHcF.min.js +90 -0
  9. package/dist/materialx-BF23AVE8.umd.cjs +90 -0
  10. package/dist/materialx-fkoFuRh3.js +4636 -0
  11. package/dist/{needle-engine.bundle-Cnemui9H.umd.cjs → needle-engine.bundle-BfrDWglE.umd.cjs} +124 -124
  12. package/dist/{needle-engine.bundle-B_IGIr6Z.min.js → needle-engine.bundle-Bx_Lq_3v.min.js} +131 -131
  13. package/dist/{needle-engine.bundle-Cj66livk.js → needle-engine.bundle-MQyZGnMF.js} +3754 -3374
  14. package/dist/needle-engine.d.ts +2791 -309
  15. package/dist/needle-engine.js +415 -414
  16. package/dist/needle-engine.min.js +1 -1
  17. package/dist/needle-engine.umd.cjs +1 -1
  18. package/dist/{postprocessing-12-UW7je.min.js → postprocessing-BVNrgYZK.min.js} +1 -1
  19. package/dist/{postprocessing-B3Hu0Ryi.umd.cjs → postprocessing-CI2TjWpu.umd.cjs} +1 -1
  20. package/dist/{postprocessing-R535krvT.js → postprocessing-DdM-tz1j.js} +2 -2
  21. package/dist/{three-BzxwLtUE.umd.cjs → three-BW2s1Yl-.umd.cjs} +25 -25
  22. package/dist/{three-DMvLgxja.min.js → three-I__hSXzr.min.js} +26 -26
  23. package/dist/{three-D9pcFbxc.js → three-VvRoMeIN.js} +22 -0
  24. package/dist/{three-examples-F0MJj0vr.js → three-examples-BhfOE7NG.js} +1 -1
  25. package/dist/{three-examples-CjSwCv_b.umd.cjs → three-examples-Bpfu6ke_.umd.cjs} +1 -1
  26. package/dist/{three-examples-CIv2roOA.min.js → three-examples-D8zAE_7t.min.js} +1 -1
  27. package/dist/{three-mesh-ui-BLnJQzMl.umd.cjs → three-mesh-ui-BU55xDxJ.umd.cjs} +1 -1
  28. package/dist/{three-mesh-ui-BllgajJz.min.js → three-mesh-ui-C3QbemOV.min.js} +1 -1
  29. package/dist/{three-mesh-ui-DYyiRn5Y.js → three-mesh-ui-CcMp-FQm.js} +1 -1
  30. package/dist/{vendor-BIFy-gRe.js → vendor-BiyIZ61v.js} +1 -1
  31. package/dist/{vendor-BFgQSG2m.umd.cjs → vendor-COVQl0b8.umd.cjs} +1 -1
  32. package/dist/{vendor-ChgmXMYr.min.js → vendor-DW7zqjuT.min.js} +1 -1
  33. package/lib/engine/engine_context.d.ts +16 -0
  34. package/lib/engine/engine_context.js +16 -0
  35. package/lib/engine/engine_context.js.map +1 -1
  36. package/lib/engine/engine_gameobject.d.ts +72 -0
  37. package/lib/engine/engine_gameobject.js +38 -0
  38. package/lib/engine/engine_gameobject.js.map +1 -1
  39. package/lib/engine/engine_input.d.ts +80 -4
  40. package/lib/engine/engine_input.js +78 -2
  41. package/lib/engine/engine_input.js.map +1 -1
  42. package/lib/engine/engine_loaders.js +7 -1
  43. package/lib/engine/engine_loaders.js.map +1 -1
  44. package/lib/engine/engine_math.d.ts +81 -2
  45. package/lib/engine/engine_math.js +68 -2
  46. package/lib/engine/engine_math.js.map +1 -1
  47. package/lib/engine/engine_modules.d.ts +9 -0
  48. package/lib/engine/engine_modules.js +25 -0
  49. package/lib/engine/engine_modules.js.map +1 -1
  50. package/lib/engine/engine_networking.d.ts +181 -14
  51. package/lib/engine/engine_networking.js +181 -14
  52. package/lib/engine/engine_networking.js.map +1 -1
  53. package/lib/engine/engine_networking_auto.d.ts +35 -8
  54. package/lib/engine/engine_networking_auto.js +35 -8
  55. package/lib/engine/engine_networking_auto.js.map +1 -1
  56. package/lib/engine/engine_physics.d.ts +35 -1
  57. package/lib/engine/engine_physics.js +35 -1
  58. package/lib/engine/engine_physics.js.map +1 -1
  59. package/lib/engine/engine_physics_rapier.d.ts +76 -0
  60. package/lib/engine/engine_physics_rapier.js +76 -0
  61. package/lib/engine/engine_physics_rapier.js.map +1 -1
  62. package/lib/engine/engine_serialization_decorator.d.ts +28 -2
  63. package/lib/engine/engine_serialization_decorator.js +28 -2
  64. package/lib/engine/engine_serialization_decorator.js.map +1 -1
  65. package/lib/engine/engine_time.d.ts +23 -3
  66. package/lib/engine/engine_time.js +23 -3
  67. package/lib/engine/engine_time.js.map +1 -1
  68. package/lib/engine/engine_util_decorator.d.ts +31 -1
  69. package/lib/engine/engine_util_decorator.js +31 -1
  70. package/lib/engine/engine_util_decorator.js.map +1 -1
  71. package/lib/engine/engine_utils.d.ts +21 -5
  72. package/lib/engine/engine_utils.js +21 -5
  73. package/lib/engine/engine_utils.js.map +1 -1
  74. package/lib/engine/engine_utils_format.d.ts +1 -1
  75. package/lib/engine/engine_utils_format.js +4 -1
  76. package/lib/engine/engine_utils_format.js.map +1 -1
  77. package/lib/engine/extensions/NEEDLE_materialx.d.ts +29 -0
  78. package/lib/engine/extensions/NEEDLE_materialx.js +115 -0
  79. package/lib/engine/extensions/NEEDLE_materialx.js.map +1 -0
  80. package/lib/engine/extensions/extensions.js +2 -0
  81. package/lib/engine/extensions/extensions.js.map +1 -1
  82. package/lib/engine/extensions/index.d.ts +1 -0
  83. package/lib/engine/extensions/index.js +1 -0
  84. package/lib/engine/extensions/index.js.map +1 -1
  85. package/lib/engine-components/AlignmentConstraint.d.ts +23 -3
  86. package/lib/engine-components/AlignmentConstraint.js +23 -3
  87. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  88. package/lib/engine-components/Animation.d.ts +42 -0
  89. package/lib/engine-components/Animation.js +36 -0
  90. package/lib/engine-components/Animation.js.map +1 -1
  91. package/lib/engine-components/Animator.d.ts +37 -4
  92. package/lib/engine-components/Animator.js +37 -4
  93. package/lib/engine-components/Animator.js.map +1 -1
  94. package/lib/engine-components/AudioSource.d.ts +32 -10
  95. package/lib/engine-components/AudioSource.js +32 -10
  96. package/lib/engine-components/AudioSource.js.map +1 -1
  97. package/lib/engine-components/AxesHelper.d.ts +22 -3
  98. package/lib/engine-components/AxesHelper.js +22 -3
  99. package/lib/engine-components/AxesHelper.js.map +1 -1
  100. package/lib/engine-components/BasicIKConstraint.d.ts +27 -4
  101. package/lib/engine-components/BasicIKConstraint.js +27 -4
  102. package/lib/engine-components/BasicIKConstraint.js.map +1 -1
  103. package/lib/engine-components/Camera.d.ts +31 -1
  104. package/lib/engine-components/Camera.js +31 -1
  105. package/lib/engine-components/Camera.js.map +1 -1
  106. package/lib/engine-components/CharacterController.d.ts +67 -3
  107. package/lib/engine-components/CharacterController.js +67 -3
  108. package/lib/engine-components/CharacterController.js.map +1 -1
  109. package/lib/engine-components/Collider.d.ts +69 -12
  110. package/lib/engine-components/Collider.js +69 -12
  111. package/lib/engine-components/Collider.js.map +1 -1
  112. package/lib/engine-components/ContactShadows.d.ts +26 -6
  113. package/lib/engine-components/ContactShadows.js +46 -8
  114. package/lib/engine-components/ContactShadows.js.map +1 -1
  115. package/lib/engine-components/DeleteBox.d.ts +43 -2
  116. package/lib/engine-components/DeleteBox.js +43 -2
  117. package/lib/engine-components/DeleteBox.js.map +1 -1
  118. package/lib/engine-components/DeviceFlag.d.ts +21 -2
  119. package/lib/engine-components/DeviceFlag.js +21 -2
  120. package/lib/engine-components/DeviceFlag.js.map +1 -1
  121. package/lib/engine-components/DragControls.d.ts +32 -2
  122. package/lib/engine-components/DragControls.js +32 -2
  123. package/lib/engine-components/DragControls.js.map +1 -1
  124. package/lib/engine-components/DropListener.d.ts +33 -21
  125. package/lib/engine-components/DropListener.js +33 -21
  126. package/lib/engine-components/DropListener.js.map +1 -1
  127. package/lib/engine-components/Duplicatable.d.ts +36 -5
  128. package/lib/engine-components/Duplicatable.js +36 -5
  129. package/lib/engine-components/Duplicatable.js.map +1 -1
  130. package/lib/engine-components/EventList.d.ts +38 -10
  131. package/lib/engine-components/EventList.js +38 -10
  132. package/lib/engine-components/EventList.js.map +1 -1
  133. package/lib/engine-components/Fog.d.ts +23 -1
  134. package/lib/engine-components/Fog.js +23 -1
  135. package/lib/engine-components/Fog.js.map +1 -1
  136. package/lib/engine-components/GridHelper.d.ts +18 -2
  137. package/lib/engine-components/GridHelper.js +18 -2
  138. package/lib/engine-components/GridHelper.js.map +1 -1
  139. package/lib/engine-components/GroundProjection.d.ts +24 -2
  140. package/lib/engine-components/GroundProjection.js +24 -2
  141. package/lib/engine-components/GroundProjection.js.map +1 -1
  142. package/lib/engine-components/Interactable.d.ts +17 -2
  143. package/lib/engine-components/Interactable.js +17 -2
  144. package/lib/engine-components/Interactable.js.map +1 -1
  145. package/lib/engine-components/Joints.d.ts +50 -7
  146. package/lib/engine-components/Joints.js +50 -7
  147. package/lib/engine-components/Joints.js.map +1 -1
  148. package/lib/engine-components/LODGroup.d.ts +36 -14
  149. package/lib/engine-components/LODGroup.js +43 -11
  150. package/lib/engine-components/LODGroup.js.map +1 -1
  151. package/lib/engine-components/Light.d.ts +27 -5
  152. package/lib/engine-components/Light.js +27 -5
  153. package/lib/engine-components/Light.js.map +1 -1
  154. package/lib/engine-components/LookAtConstraint.d.ts +22 -7
  155. package/lib/engine-components/LookAtConstraint.js +22 -7
  156. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  157. package/lib/engine-components/NeedleMenu.d.ts +27 -5
  158. package/lib/engine-components/NeedleMenu.js +27 -5
  159. package/lib/engine-components/NeedleMenu.js.map +1 -1
  160. package/lib/engine-components/NestedGltf.d.ts +39 -4
  161. package/lib/engine-components/NestedGltf.js +42 -4
  162. package/lib/engine-components/NestedGltf.js.map +1 -1
  163. package/lib/engine-components/OffsetConstraint.d.ts +27 -3
  164. package/lib/engine-components/OffsetConstraint.js +27 -3
  165. package/lib/engine-components/OffsetConstraint.js.map +1 -1
  166. package/lib/engine-components/OrbitControls.d.ts +41 -3
  167. package/lib/engine-components/OrbitControls.js +41 -3
  168. package/lib/engine-components/OrbitControls.js.map +1 -1
  169. package/lib/engine-components/ReflectionProbe.d.ts +17 -2
  170. package/lib/engine-components/ReflectionProbe.js +28 -10
  171. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  172. package/lib/engine-components/Renderer.d.ts +34 -0
  173. package/lib/engine-components/Renderer.js +35 -2
  174. package/lib/engine-components/Renderer.js.map +1 -1
  175. package/lib/engine-components/SceneSwitcher.d.ts +11 -0
  176. package/lib/engine-components/SceneSwitcher.js +11 -0
  177. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  178. package/lib/engine-components/ScreenCapture.d.ts +38 -6
  179. package/lib/engine-components/ScreenCapture.js +38 -6
  180. package/lib/engine-components/ScreenCapture.js.map +1 -1
  181. package/lib/engine-components/Skybox.js +1 -1
  182. package/lib/engine-components/Skybox.js.map +1 -1
  183. package/lib/engine-components/SmoothFollow.d.ts +66 -7
  184. package/lib/engine-components/SmoothFollow.js +66 -7
  185. package/lib/engine-components/SmoothFollow.js.map +1 -1
  186. package/lib/engine-components/SpatialTrigger.d.ts +48 -1
  187. package/lib/engine-components/SpatialTrigger.js +48 -1
  188. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  189. package/lib/engine-components/SpectatorCamera.d.ts +21 -3
  190. package/lib/engine-components/SpectatorCamera.js +21 -3
  191. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  192. package/lib/engine-components/SyncedRoom.d.ts +6 -0
  193. package/lib/engine-components/SyncedRoom.js +6 -0
  194. package/lib/engine-components/SyncedRoom.js.map +1 -1
  195. package/lib/engine-components/SyncedTransform.d.ts +55 -6
  196. package/lib/engine-components/SyncedTransform.js +55 -6
  197. package/lib/engine-components/SyncedTransform.js.map +1 -1
  198. package/lib/engine-components/TransformGizmo.d.ts +30 -3
  199. package/lib/engine-components/TransformGizmo.js +30 -3
  200. package/lib/engine-components/TransformGizmo.js.map +1 -1
  201. package/lib/engine-components/VideoPlayer.d.ts +33 -6
  202. package/lib/engine-components/VideoPlayer.js +45 -6
  203. package/lib/engine-components/VideoPlayer.js.map +1 -1
  204. package/lib/engine-components/Voip.d.ts +33 -2
  205. package/lib/engine-components/Voip.js +33 -2
  206. package/lib/engine-components/Voip.js.map +1 -1
  207. package/lib/engine-components/export/usdz/USDZExporter.d.ts +47 -13
  208. package/lib/engine-components/export/usdz/USDZExporter.js +47 -13
  209. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  210. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +82 -3
  211. package/lib/engine-components/particlesystem/ParticleSystem.js +82 -3
  212. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  213. package/lib/engine-components/timeline/PlayableDirector.d.ts +99 -14
  214. package/lib/engine-components/timeline/PlayableDirector.js +91 -25
  215. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  216. package/lib/engine-components/ui/Button.d.ts +29 -3
  217. package/lib/engine-components/ui/Button.js +29 -3
  218. package/lib/engine-components/ui/Button.js.map +1 -1
  219. package/lib/engine-components/ui/Canvas.d.ts +28 -3
  220. package/lib/engine-components/ui/Canvas.js +28 -3
  221. package/lib/engine-components/ui/Canvas.js.map +1 -1
  222. package/lib/engine-components/ui/Image.d.ts +22 -3
  223. package/lib/engine-components/ui/Image.js +22 -3
  224. package/lib/engine-components/ui/Image.js.map +1 -1
  225. package/lib/engine-components/ui/Raycaster.d.ts +55 -6
  226. package/lib/engine-components/ui/Raycaster.js +55 -6
  227. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  228. package/lib/engine-components/ui/Text.d.ts +23 -1
  229. package/lib/engine-components/ui/Text.js +23 -1
  230. package/lib/engine-components/ui/Text.js.map +1 -1
  231. package/lib/engine-components/webxr/TeleportTarget.d.ts +21 -2
  232. package/lib/engine-components/webxr/TeleportTarget.js +21 -2
  233. package/lib/engine-components/webxr/TeleportTarget.js.map +1 -1
  234. package/lib/engine-components/webxr/WebXR.d.ts +10 -2
  235. package/lib/engine-components/webxr/WebXR.js +10 -2
  236. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  237. package/lib/engine-components/webxr/WebXRAvatar.d.ts +39 -2
  238. package/lib/engine-components/webxr/WebXRAvatar.js +35 -3
  239. package/lib/engine-components/webxr/WebXRAvatar.js.map +1 -1
  240. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +266 -30
  241. package/lib/engine-components/webxr/WebXRImageTracking.js +266 -30
  242. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  243. package/lib/engine-components/webxr/XRFlag.d.ts +29 -2
  244. package/lib/engine-components/webxr/XRFlag.js +29 -2
  245. package/lib/engine-components/webxr/XRFlag.js.map +1 -1
  246. package/package.json +3 -2
  247. package/plugins/vite/custom-element-data.js +128 -19
  248. package/plugins/vite/dependencies.js +9 -4
  249. package/plugins/vite/index.js +0 -2
  250. package/src/engine/engine_context.ts +16 -0
  251. package/src/engine/engine_gameobject.ts +73 -0
  252. package/src/engine/engine_input.ts +83 -7
  253. package/src/engine/engine_loaders.ts +9 -2
  254. package/src/engine/engine_math.ts +81 -2
  255. package/src/engine/engine_modules.ts +24 -0
  256. package/src/engine/engine_networking.ts +187 -17
  257. package/src/engine/engine_networking_auto.ts +36 -9
  258. package/src/engine/engine_physics.ts +37 -1
  259. package/src/engine/engine_physics_rapier.ts +77 -0
  260. package/src/engine/engine_serialization_decorator.ts +28 -2
  261. package/src/engine/engine_time.ts +23 -3
  262. package/src/engine/engine_util_decorator.ts +31 -1
  263. package/src/engine/engine_utils.ts +21 -5
  264. package/src/engine/engine_utils_format.ts +6 -2
  265. package/src/engine/extensions/NEEDLE_materialx.ts +143 -0
  266. package/src/engine/extensions/extensions.ts +2 -0
  267. package/src/engine/extensions/index.ts +1 -0
  268. package/src/engine-components/AlignmentConstraint.ts +24 -4
  269. package/src/engine-components/Animation.ts +44 -2
  270. package/src/engine-components/Animator.ts +40 -7
  271. package/src/engine-components/AudioSource.ts +37 -15
  272. package/src/engine-components/AxesHelper.ts +23 -4
  273. package/src/engine-components/BasicIKConstraint.ts +28 -5
  274. package/src/engine-components/Camera.ts +33 -3
  275. package/src/engine-components/CharacterController.ts +73 -6
  276. package/src/engine-components/Collider.ts +78 -21
  277. package/src/engine-components/ContactShadows.ts +51 -11
  278. package/src/engine-components/DeleteBox.ts +43 -2
  279. package/src/engine-components/DeviceFlag.ts +22 -3
  280. package/src/engine-components/DragControls.ts +32 -2
  281. package/src/engine-components/DropListener.ts +42 -29
  282. package/src/engine-components/Duplicatable.ts +37 -6
  283. package/src/engine-components/EventList.ts +41 -13
  284. package/src/engine-components/Fog.ts +23 -1
  285. package/src/engine-components/GridHelper.ts +18 -2
  286. package/src/engine-components/GroundProjection.ts +25 -3
  287. package/src/engine-components/Interactable.ts +17 -2
  288. package/src/engine-components/Joints.ts +51 -8
  289. package/src/engine-components/LODGroup.ts +45 -11
  290. package/src/engine-components/Light.ts +30 -8
  291. package/src/engine-components/LookAtConstraint.ts +26 -8
  292. package/src/engine-components/NeedleMenu.ts +29 -7
  293. package/src/engine-components/NestedGltf.ts +40 -4
  294. package/src/engine-components/OffsetConstraint.ts +27 -3
  295. package/src/engine-components/OrbitControls.ts +41 -3
  296. package/src/engine-components/ReflectionProbe.ts +31 -13
  297. package/src/engine-components/Renderer.ts +34 -1
  298. package/src/engine-components/SceneSwitcher.ts +11 -0
  299. package/src/engine-components/ScreenCapture.ts +41 -9
  300. package/src/engine-components/Skybox.ts +1 -1
  301. package/src/engine-components/SmoothFollow.ts +69 -7
  302. package/src/engine-components/SpatialTrigger.ts +51 -4
  303. package/src/engine-components/SpectatorCamera.ts +23 -5
  304. package/src/engine-components/SyncedRoom.ts +6 -0
  305. package/src/engine-components/SyncedTransform.ts +59 -10
  306. package/src/engine-components/TransformGizmo.ts +31 -4
  307. package/src/engine-components/VideoPlayer.ts +48 -6
  308. package/src/engine-components/Voip.ts +33 -2
  309. package/src/engine-components/export/usdz/USDZExporter.ts +47 -13
  310. package/src/engine-components/particlesystem/ParticleSystem.ts +84 -5
  311. package/src/engine-components/timeline/PlayableDirector.ts +104 -27
  312. package/src/engine-components/ui/Button.ts +29 -3
  313. package/src/engine-components/ui/Canvas.ts +28 -3
  314. package/src/engine-components/ui/Image.ts +22 -3
  315. package/src/engine-components/ui/Raycaster.ts +57 -8
  316. package/src/engine-components/ui/Text.ts +24 -2
  317. package/src/engine-components/webxr/TeleportTarget.ts +23 -4
  318. package/src/engine-components/webxr/WebXR.ts +11 -3
  319. package/src/engine-components/webxr/WebXRAvatar.ts +41 -4
  320. package/src/engine-components/webxr/WebXRImageTracking.ts +282 -38
  321. package/src/engine-components/webxr/XRFlag.ts +30 -3
  322. package/plugins/vite/materialx.js +0 -32
@@ -63,16 +63,38 @@ var LightShadows;
63
63
  LightShadows[LightShadows["Soft"] = 2] = "Soft";
64
64
  })(LightShadows || (LightShadows = {}));
65
65
  /**
66
- * The Light component creates a light source in the scene.
67
- * Supports directional, spot, and point light types with various customization options.
68
- * Lights can cast shadows with configurable settings and can be set to baked or realtime rendering.
66
+ * Light component creates a light source in the scene for illuminating 3D objects.
69
67
  *
70
- * Debug mode can be enabled with the URL parameter `?debuglights`, which shows
71
- * additional console output and visual helpers for lights.
68
+ * **Light types:**
69
+ * - `Directional` - Sun-like parallel rays (best for outdoor scenes)
70
+ * - `Point` - Omnidirectional from a point (bulbs, candles)
71
+ * - `Spot` - Cone-shaped (flashlights, stage lights)
72
+ *
73
+ * **Shadows:**
74
+ * Enable shadows via `shadows` property. Configure quality with shadow resolution
75
+ * settings. Directional lights support adaptive shadow cascades.
76
+ *
77
+ * **Performance tips:**
78
+ * - Use baked lighting (`lightmapBakeType = Baked`) when possible
79
+ * - Limit shadow-casting lights (1-2 recommended)
80
+ * - Reduce shadow resolution for mobile
81
+ *
82
+ * **Debug:** Use `?debuglights` URL parameter for visual helpers.
83
+ *
84
+ * @example Configure a directional light
85
+ * ```ts
86
+ * const light = myLight.getComponent(Light);
87
+ * light.intensity = 1.5;
88
+ * light.color = new Color(1, 0.95, 0.9); // Warm white
89
+ * light.shadows = LightShadows.Soft;
90
+ * ```
72
91
  *
73
92
  * @summary Light component for various light types and shadow settings
74
93
  * @category Rendering
75
94
  * @group Components
95
+ * @see {@link LightType} for available light types
96
+ * @see {@link ReflectionProbe} for environment reflections
97
+ * @see {@link Camera} for rendering configuration
76
98
  */
77
99
  export class Light extends Behaviour {
78
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Light.js","sourceRoot":"","sources":["../../src/engine-components/Light.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Light.js","sourceRoot":"","sources":["../../src/engine-components/Light.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,43 @@
1
1
  import { Object3D, Vector3 } from "three";
2
2
  import { Behaviour } from "./Component.js";
3
3
  /**
4
- * A LookAtConstraint is used by OrbitControls to make the camera look at a target.
5
- * This component is used by {@link OrbitControls} internally.
4
+ * LookAtConstraint component is primarely used by {@link OrbitControls} to set the camera's focus point.
5
+ * It does not have its own logic to update the look-at position.
6
6
  *
7
- * @summary Look At Constraint for OrbitControls
7
+ * The constraint uses a list of source objects - the look-at target is
8
+ * calculated from the first source in the `sources` array.
9
+ *
10
+ * **Integration with OrbitControls:**
11
+ * When attached to the same GameObject as OrbitControls, this constraint
12
+ * controls where the camera orbits around and looks at.
13
+ *
14
+ * @summary Look At Constraint for camera targeting
8
15
  * @category Camera and Controls
9
16
  * @group Components
17
+ * @see {@link OrbitControls} for camera orbit controls
18
+ * @see {@link SmoothFollow} for smooth position/rotation following
19
+ * @see {@link LookAt} for directly making an object look at a target without using a constraint
10
20
  */
11
21
  export declare class LookAtConstraint extends Behaviour {
12
22
  /**
13
- * When true the constraint is active.
23
+ * When true, the constraint is active and affects the target.
24
+ * Set to false to temporarily disable without removing sources.
14
25
  */
15
26
  constraintActive: boolean;
16
27
  /**
17
- * When true the look at is locked to the position of the assigned sources.
28
+ * When true, the look-at position is locked and won't update
29
+ * even if source objects move.
18
30
  */
19
31
  locked: boolean;
20
32
  /**
21
- * The sources to look at.
33
+ * Objects to look at. The first object in the array is used
34
+ * as the primary look-at target.
22
35
  */
23
36
  sources: Object3D[];
24
37
  /**
25
- * Set the position of the constraint.
38
+ * Sets the world position that the constraint should look at.
39
+ * Updates the first source object's position.
40
+ * @param worldPosition The world-space position to look at
26
41
  */
27
42
  setConstraintPosition(worldPosition: Vector3): void;
28
43
  }
@@ -8,28 +8,43 @@ import { Object3D } from "three";
8
8
  import { serializable } from "../engine/engine_serialization_decorator.js";
9
9
  import { Behaviour } from "./Component.js";
10
10
  /**
11
- * A LookAtConstraint is used by OrbitControls to make the camera look at a target.
12
- * This component is used by {@link OrbitControls} internally.
11
+ * LookAtConstraint component is primarely used by {@link OrbitControls} to set the camera's focus point.
12
+ * It does not have its own logic to update the look-at position.
13
13
  *
14
- * @summary Look At Constraint for OrbitControls
14
+ * The constraint uses a list of source objects - the look-at target is
15
+ * calculated from the first source in the `sources` array.
16
+ *
17
+ * **Integration with OrbitControls:**
18
+ * When attached to the same GameObject as OrbitControls, this constraint
19
+ * controls where the camera orbits around and looks at.
20
+ *
21
+ * @summary Look At Constraint for camera targeting
15
22
  * @category Camera and Controls
16
23
  * @group Components
24
+ * @see {@link OrbitControls} for camera orbit controls
25
+ * @see {@link SmoothFollow} for smooth position/rotation following
26
+ * @see {@link LookAt} for directly making an object look at a target without using a constraint
17
27
  */
18
28
  export class LookAtConstraint extends Behaviour {
19
29
  /**
20
- * When true the constraint is active.
30
+ * When true, the constraint is active and affects the target.
31
+ * Set to false to temporarily disable without removing sources.
21
32
  */
22
33
  constraintActive = true;
23
34
  /**
24
- * When true the look at is locked to the position of the assigned sources.
35
+ * When true, the look-at position is locked and won't update
36
+ * even if source objects move.
25
37
  */
26
38
  locked = false;
27
39
  /**
28
- * The sources to look at.
40
+ * Objects to look at. The first object in the array is used
41
+ * as the primary look-at target.
29
42
  */
30
43
  sources = [];
31
44
  /**
32
- * Set the position of the constraint.
45
+ * Sets the world position that the constraint should look at.
46
+ * Updates the first source object's position.
47
+ * @param worldPosition The world-space position to look at
33
48
  */
34
49
  setConstraintPosition(worldPosition) {
35
50
  const source = this.sources[0];
@@ -1 +1 @@
1
- {"version":3,"file":"LookAtConstraint.js","sourceRoot":"","sources":["../../src/engine-components/LookAtConstraint.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAW,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAE3C;;OAEG;IAEH,gBAAgB,GAAY,IAAI,CAAC;IACjC;;OAEG;IAEH,MAAM,GAAY,KAAK,CAAC;IACxB;;OAEG;IAEH,OAAO,GAAe,EAAE,CAAC;IAEzB;;OAEG;IACH,qBAAqB,CAAC,aAAsB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,MAAM;YAAE,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IACrD,CAAC;CACJ;AAnBG;IADC,YAAY,EAAE;0DACkB;AAKjC;IADC,YAAY,EAAE;gDACS;AAKxB;IADC,YAAY,CAAC,QAAQ,CAAC;iDACE"}
1
+ {"version":3,"file":"LookAtConstraint.js","sourceRoot":"","sources":["../../src/engine-components/LookAtConstraint.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAW,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAE3C;;;OAGG;IAEH,gBAAgB,GAAY,IAAI,CAAC;IAEjC;;;OAGG;IAEH,MAAM,GAAY,KAAK,CAAC;IAExB;;;OAGG;IAEH,OAAO,GAAe,EAAE,CAAC;IAEzB;;;;OAIG;IACH,qBAAqB,CAAC,aAAsB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,MAAM;YAAE,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IACrD,CAAC;CACJ;AAzBG;IADC,YAAY,EAAE;0DACkB;AAOjC;IADC,YAAY,EAAE;gDACS;AAOxB;IADC,YAAY,CAAC,QAAQ,CAAC;iDACE"}
@@ -1,14 +1,36 @@
1
1
  import { Behaviour } from './Component.js';
2
2
  /**
3
- * Provides configuration options for the built-in Needle Menu.
4
- * Needle Menu uses HTML in 2D mode, and automatically switches to a 3D menu in VR/AR mode.
3
+ * NeedleMenu provides configuration for the built-in UI menu.
4
+ * The menu renders as HTML overlay in browser mode and automatically
5
+ * switches to a 3D spatial menu in VR/AR.
5
6
  *
6
- * Controls display options, button visibility, and menu positioning.
7
- * From code, you can access the menu via {@link Context.menu}.
7
+ * ![](https://cloud.needle.tools/-/media/YKleg1oPy_I8Hv8sg_k40Q.png)
8
8
  *
9
- * @summary Configuration component for the Needle Menu
9
+ * **Features:**
10
+ * - Fullscreen toggle button
11
+ * - Audio mute/unmute button
12
+ * - QR code sharing (desktop only)
13
+ * - Spatial menu in XR (appears when looking up)
14
+ * - Custom positioning (top/bottom)
15
+ *
16
+ * **Programmatic access:**
17
+ * Access the menu API via `this.context.menu` to add custom buttons,
18
+ * show/hide elements, or modify behavior at runtime.
19
+ *
20
+ * @example Configure menu from code
21
+ * ```ts
22
+ * // Access the menu API
23
+ * this.context.menu.appendChild(myCustomButton);
24
+ * this.context.menu.setPosition("top");
25
+ * this.context.menu.showFullscreenOption(true);
26
+ * ```
27
+ *
28
+ * @summary Configuration component for the Needle Menu overlay
10
29
  * @category User Interface
11
30
  * @group Components
31
+ * @see {@link Context.menu} for programmatic menu control
32
+ * @see {@link Voip} adds a microphone button to the menu
33
+ * @see {@link ScreenCapture} adds a screen sharing button
12
34
  **/
13
35
  export declare class NeedleMenu extends Behaviour {
14
36
  /**
@@ -8,15 +8,37 @@ import { serializable } from '../engine/engine_serialization.js';
8
8
  import { DeviceUtilities } from '../engine/engine_utils.js';
9
9
  import { Behaviour } from './Component.js';
10
10
  /**
11
- * Provides configuration options for the built-in Needle Menu.
12
- * Needle Menu uses HTML in 2D mode, and automatically switches to a 3D menu in VR/AR mode.
11
+ * NeedleMenu provides configuration for the built-in UI menu.
12
+ * The menu renders as HTML overlay in browser mode and automatically
13
+ * switches to a 3D spatial menu in VR/AR.
13
14
  *
14
- * Controls display options, button visibility, and menu positioning.
15
- * From code, you can access the menu via {@link Context.menu}.
15
+ * ![](https://cloud.needle.tools/-/media/YKleg1oPy_I8Hv8sg_k40Q.png)
16
16
  *
17
- * @summary Configuration component for the Needle Menu
17
+ * **Features:**
18
+ * - Fullscreen toggle button
19
+ * - Audio mute/unmute button
20
+ * - QR code sharing (desktop only)
21
+ * - Spatial menu in XR (appears when looking up)
22
+ * - Custom positioning (top/bottom)
23
+ *
24
+ * **Programmatic access:**
25
+ * Access the menu API via `this.context.menu` to add custom buttons,
26
+ * show/hide elements, or modify behavior at runtime.
27
+ *
28
+ * @example Configure menu from code
29
+ * ```ts
30
+ * // Access the menu API
31
+ * this.context.menu.appendChild(myCustomButton);
32
+ * this.context.menu.setPosition("top");
33
+ * this.context.menu.showFullscreenOption(true);
34
+ * ```
35
+ *
36
+ * @summary Configuration component for the Needle Menu overlay
18
37
  * @category User Interface
19
38
  * @group Components
39
+ * @see {@link Context.menu} for programmatic menu control
40
+ * @see {@link Voip} adds a microphone button to the menu
41
+ * @see {@link ScreenCapture} adds a screen sharing button
20
42
  **/
21
43
  export class NeedleMenu extends Behaviour {
22
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"NeedleMenu.js","sourceRoot":"","sources":["../../src/engine-components/NeedleMenu.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;IAUI;AACJ,MAAM,OAAO,UAAW,SAAQ,SAAS;IAErC;;OAEG;IAEH,QAAQ,GAAqB,QAAQ,CAAC;IAEtC;;OAEG;IAEH,cAAc,GAAY,KAAK,CAAC;IAEhC;;;OAGG;IAEH,eAAe,CAAW;IAE1B;;;OAGG;IAEH,sBAAsB,CAAW;IAEjC;;;OAGG;IAEH,gBAAgB,CAAW;IAE3B;;;;OAIG;IAEH,kBAAkB,CAAW;IAE7B;;;OAGG;IACH,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,YAAY;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC5C;SACJ;IACL,CAAC;CAEJ;AAhEG;IADC,YAAY,EAAE;4CACuB;AAMtC;IADC,YAAY,EAAE;kDACiB;AAOhC;IADC,YAAY,EAAE;mDACW;AAO1B;IADC,YAAY,EAAE;0DACkB;AAOjC;IADC,YAAY,EAAE;oDACY;AAQ3B;IADC,YAAY,EAAE;sDACc"}
1
+ {"version":3,"file":"NeedleMenu.js","sourceRoot":"","sources":["../../src/engine-components/NeedleMenu.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCI;AACJ,MAAM,OAAO,UAAW,SAAQ,SAAS;IAErC;;OAEG;IAEH,QAAQ,GAAqB,QAAQ,CAAC;IAEtC;;OAEG;IAEH,cAAc,GAAY,KAAK,CAAC;IAEhC;;;OAGG;IAEH,eAAe,CAAW;IAE1B;;;OAGG;IAEH,sBAAsB,CAAW;IAEjC;;;OAGG;IAEH,gBAAgB,CAAW;IAE3B;;;;OAIG;IAEH,kBAAkB,CAAW;IAE7B;;;OAGG;IACH,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,YAAY;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC5C;SACJ;IACL,CAAC;CAEJ;AAhEG;IADC,YAAY,EAAE;4CACuB;AAMtC;IADC,YAAY,EAAE;kDACiB;AAOhC;IADC,YAAY,EAAE;mDACW;AAO1B;IADC,YAAY,EAAE;0DACkB;AAOjC;IADC,YAAY,EAAE;oDACY;AAQ3B;IADC,YAAY,EAAE;sDACc"}
@@ -1,17 +1,52 @@
1
1
  import { AssetReference, type ProgressCallback } from "../engine/engine_addressables.js";
2
2
  import { Behaviour } from "../engine-components/Component.js";
3
3
  import { EventList } from "./EventList.js";
4
- /** The nested gltf is a component that is used to load a gltf file when the component becomes active (start)
5
- * It will load the gltf file and instantiate it as a child of the parent of the GameObject that has this component
4
+ /**
5
+ * NestedGltf loads and instantiates a glTF file when the component starts.
6
+ * NestedGltf components are created by the Unity exporter when nesting Objects with the GltfObject component (in Unity).
7
+ * Use this for lazy-loading content, modular scene composition, or dynamic asset loading.
8
+ *
9
+ * ![](https://cloud.needle.tools/-/media/lJKrr_2tWlqRFdFc46U4bQ.gif)
10
+ *
11
+ * The loaded glTF is instantiated as a sibling (child of parent) by default,
12
+ * inheriting the transform of the GameObject with this component.
13
+ *
14
+ * **Features:**
15
+ * - Automatic loading on start
16
+ * - Progress callbacks for loading UI
17
+ * - Preloading support for faster display
18
+ * - Event callback when loading completes
19
+ *
20
+ * @example Load a glTF when object becomes active
21
+ * ```ts
22
+ * const nested = myPlaceholder.addComponent(NestedGltf);
23
+ * nested.filePath = new AssetReference("models/furniture.glb");
24
+ * nested.loaded.addEventListener(({ instance }) => {
25
+ * console.log("Loaded:", instance.name);
26
+ * });
27
+ * ```
28
+ *
29
+ * @example Preload for instant display
30
+ * ```ts
31
+ * // Preload during loading screen
32
+ * await nested.preload();
33
+ * // Later, when object becomes active, it displays instantly
34
+ * ```
6
35
  *
7
36
  * @summary Loads and instantiates a nested glTF file
8
37
  * @category Asset Management
9
38
  * @group Components
39
+ * @see {@link AssetReference} for asset loading utilities
40
+ * @see {@link SceneSwitcher} for scene-level loading
41
+ * @link https://engine.needle.tools/samples/hotspots
10
42
  */
11
43
  export declare class NestedGltf extends Behaviour {
12
- /** A reference to the gltf file that should be loaded */
44
+ /** Reference to the glTF file to load. Can be a URL or asset path. */
13
45
  filePath?: AssetReference;
14
- /** Invoked when the nested glTF file has been instantiated */
46
+ /**
47
+ * Event fired when the glTF has been loaded and instantiated.
48
+ * Provides the component, loaded instance, and asset reference.
49
+ */
15
50
  loaded: EventList<{
16
51
  component: NestedGltf;
17
52
  instance: any;
@@ -12,17 +12,52 @@ import { getParam } from "../engine/engine_utils.js";
12
12
  import { Behaviour } from "../engine-components/Component.js";
13
13
  import { EventList } from "./EventList.js";
14
14
  const debug = getParam("debugnestedgltf");
15
- /** The nested gltf is a component that is used to load a gltf file when the component becomes active (start)
16
- * It will load the gltf file and instantiate it as a child of the parent of the GameObject that has this component
15
+ /**
16
+ * NestedGltf loads and instantiates a glTF file when the component starts.
17
+ * NestedGltf components are created by the Unity exporter when nesting Objects with the GltfObject component (in Unity).
18
+ * Use this for lazy-loading content, modular scene composition, or dynamic asset loading.
19
+ *
20
+ * ![](https://cloud.needle.tools/-/media/lJKrr_2tWlqRFdFc46U4bQ.gif)
21
+ *
22
+ * The loaded glTF is instantiated as a sibling (child of parent) by default,
23
+ * inheriting the transform of the GameObject with this component.
24
+ *
25
+ * **Features:**
26
+ * - Automatic loading on start
27
+ * - Progress callbacks for loading UI
28
+ * - Preloading support for faster display
29
+ * - Event callback when loading completes
30
+ *
31
+ * @example Load a glTF when object becomes active
32
+ * ```ts
33
+ * const nested = myPlaceholder.addComponent(NestedGltf);
34
+ * nested.filePath = new AssetReference("models/furniture.glb");
35
+ * nested.loaded.addEventListener(({ instance }) => {
36
+ * console.log("Loaded:", instance.name);
37
+ * });
38
+ * ```
39
+ *
40
+ * @example Preload for instant display
41
+ * ```ts
42
+ * // Preload during loading screen
43
+ * await nested.preload();
44
+ * // Later, when object becomes active, it displays instantly
45
+ * ```
17
46
  *
18
47
  * @summary Loads and instantiates a nested glTF file
19
48
  * @category Asset Management
20
49
  * @group Components
50
+ * @see {@link AssetReference} for asset loading utilities
51
+ * @see {@link SceneSwitcher} for scene-level loading
52
+ * @link https://engine.needle.tools/samples/hotspots
21
53
  */
22
54
  export class NestedGltf extends Behaviour {
23
- /** A reference to the gltf file that should be loaded */
55
+ /** Reference to the glTF file to load. Can be a URL or asset path. */
24
56
  filePath;
25
- /** Invoked when the nested glTF file has been instantiated */
57
+ /**
58
+ * Event fired when the glTF has been loaded and instantiated.
59
+ * Provides the component, loaded instance, and asset reference.
60
+ */
26
61
  loaded = new EventList();
27
62
  /**
28
63
  * EXPERIMENTAL for cloud asset loading
@@ -96,4 +131,7 @@ __decorate([
96
131
  __decorate([
97
132
  serializable(EventList)
98
133
  ], NestedGltf.prototype, "loaded", void 0);
134
+ __decorate([
135
+ serializable()
136
+ ], NestedGltf.prototype, "loadAssetInParent", void 0);
99
137
  //# sourceMappingURL=NestedGltf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NestedGltf.js","sourceRoot":"","sources":["../../src/engine-components/NestedGltf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestedGltf.js","sourceRoot":"","sources":["../../src/engine-components/NestedGltf.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,34 @@
1
1
  import { Behaviour } from "./Component.js";
2
2
  /**
3
- * OffsetConstraint component allows an object to maintain a specified positional and rotational offset
4
- * relative to another object, with options for alignment and leveling.
5
- * @summary Maintains positional and rotational offset relative to another object
3
+ * OffsetConstraint maintains a fixed positional and rotational offset relative to a target object.
4
+ * Useful for attaching objects to moving targets while preserving a specific spatial relationship.
5
+ *
6
+ * **Use cases:**
7
+ * - Camera following a player with offset
8
+ * - UI elements attached to characters
9
+ * - Weapons attached to hands
10
+ * - Objects orbiting around a target
11
+ *
12
+ * **Options:**
13
+ * - `affectPosition` - Apply position offset
14
+ * - `affectRotation` - Apply rotation offset
15
+ * - `alignLookDirection` - Make object face same direction as target
16
+ * - `levelLookDirection` - Keep look direction horizontal (ignore pitch)
17
+ * - `levelPosition` - Project position onto horizontal plane
18
+ * - `referenceSpace` - Transform offset in this object's coordinate space
19
+ *
20
+ * @example Attach camera offset to player
21
+ * ```ts
22
+ * const constraint = camera.addComponent(OffsetConstraint);
23
+ * // Configure via serialized properties in editor
24
+ * ```
25
+ *
26
+ * @summary Maintains positional/rotational offset relative to target
6
27
  * @category Constraints
7
28
  * @group Components
29
+ * @see {@link SmoothFollow} for smoothed following
30
+ * @see {@link LookAtConstraint} for aim constraints
31
+ * @see {@link AlignmentConstraint} for alignment between two objects
8
32
  */
9
33
  export declare class OffsetConstraint extends Behaviour {
10
34
  private referenceSpace;
@@ -9,11 +9,35 @@ import { serializable } from "../engine/engine_serialization_decorator.js";
9
9
  import * as utils from "./../engine/engine_three_utils.js";
10
10
  import { Behaviour, GameObject } from "./Component.js";
11
11
  /**
12
- * OffsetConstraint component allows an object to maintain a specified positional and rotational offset
13
- * relative to another object, with options for alignment and leveling.
14
- * @summary Maintains positional and rotational offset relative to another object
12
+ * OffsetConstraint maintains a fixed positional and rotational offset relative to a target object.
13
+ * Useful for attaching objects to moving targets while preserving a specific spatial relationship.
14
+ *
15
+ * **Use cases:**
16
+ * - Camera following a player with offset
17
+ * - UI elements attached to characters
18
+ * - Weapons attached to hands
19
+ * - Objects orbiting around a target
20
+ *
21
+ * **Options:**
22
+ * - `affectPosition` - Apply position offset
23
+ * - `affectRotation` - Apply rotation offset
24
+ * - `alignLookDirection` - Make object face same direction as target
25
+ * - `levelLookDirection` - Keep look direction horizontal (ignore pitch)
26
+ * - `levelPosition` - Project position onto horizontal plane
27
+ * - `referenceSpace` - Transform offset in this object's coordinate space
28
+ *
29
+ * @example Attach camera offset to player
30
+ * ```ts
31
+ * const constraint = camera.addComponent(OffsetConstraint);
32
+ * // Configure via serialized properties in editor
33
+ * ```
34
+ *
35
+ * @summary Maintains positional/rotational offset relative to target
15
36
  * @category Constraints
16
37
  * @group Components
38
+ * @see {@link SmoothFollow} for smoothed following
39
+ * @see {@link LookAtConstraint} for aim constraints
40
+ * @see {@link AlignmentConstraint} for alignment between two objects
17
41
  */
18
42
  export class OffsetConstraint extends Behaviour {
19
43
  referenceSpace;
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetConstraint.js","sourceRoot":"","sources":["../../src/engine-components/OffsetConstraint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OffsetConstraint.js","sourceRoot":"","sources":["../../src/engine-components/OffsetConstraint.ts"],"names":[],"mappings":"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"}
@@ -28,12 +28,50 @@ declare module 'three/examples/jsm/controls/OrbitControls.js' {
28
28
  endMovement: Event;
29
29
  }
30
30
  }
31
- /** The OrbitControls component is used to control a camera using the [OrbitControls from three.js](https://threejs.org/docs/#examples/en/controls/OrbitControls) library.
32
- * The three OrbitControls object can be accessed via the `controls` property.
33
- * The object being controlled by the OrbitControls (usually the camera) can be accessed via the `controllerObject` property.
31
+ /**
32
+ * OrbitControls provides interactive camera control using three.js OrbitControls.
33
+ * Users can rotate, pan, and zoom the camera to explore 3D scenes.
34
+ *
35
+ * **Features:**
36
+ * - Rotation around a target point (orbit)
37
+ * - Panning to move the view
38
+ * - Zooming via scroll or pinch
39
+ * - Auto-rotation for showcases
40
+ * - Configurable angle and distance limits
41
+ * - Smooth damping for natural feel
42
+ *
43
+ * ![](https://cloud.needle.tools/-/media/ylC34hrC3srwyzGNhFRbEQ.gif)
44
+ *
45
+ * **Access underlying controls:**
46
+ * - `controls` - The three.js OrbitControls instance
47
+ * - `controllerObject` - The object being controlled (usually the camera)
48
+ *
49
+ * **Debug options:**
50
+ * - `?debugorbit` - Log orbit control events
51
+ * - `?freecam` - Enable unrestricted camera movement
52
+ *
53
+ * @example Basic setup
54
+ * ```ts
55
+ * const orbitControls = camera.getComponent(OrbitControls);
56
+ * orbitControls.autoRotate = true;
57
+ * orbitControls.autoRotateSpeed = 2;
58
+ * ```
59
+ *
60
+ * @example Set look-at target
61
+ * ```ts
62
+ * orbitControls.setLookTargetPosition(new Vector3(0, 1, 0), true);
63
+ * // Or move both camera and target
64
+ * orbitControls.setCameraTargetPosition(new Vector3(5, 2, 5), new Vector3(0, 0, 0));
65
+ * ```
66
+ *
34
67
  * @summary Camera controller using three.js OrbitControls
35
68
  * @category Camera and Controls
36
69
  * @group Components
70
+ * @see {@link LookAtConstraint} for setting the look-at target
71
+ * @see {@link SmoothFollow} for smooth camera following
72
+ * @see {@link Camera} for camera configuration
73
+ * @link https://threejs.org/docs/#examples/en/controls/OrbitControls
74
+ * @link https://engine.needle.tools/samples/panorama-controls alternative controls in samples
37
75
  */
38
76
  export declare class OrbitControls extends Behaviour implements ICameraController {
39
77
  /**