@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
@@ -1,7 +1,22 @@
1
1
  import { type ITime } from './engine_types.js';
2
2
  /**
3
- * Time is a class that provides time-related information.
4
- * It is created and used within the Needle Engine Context.
3
+ * Provides time-related information for frame-based game logic.
4
+ * Access via `this.context.time` from any component.
5
+ *
6
+ * @example Using deltaTime for frame-rate independent movement
7
+ * ```ts
8
+ * update() {
9
+ * // Move 1 unit per second regardless of frame rate
10
+ * this.gameObject.position.x += 1 * this.context.time.deltaTime;
11
+ * }
12
+ * ```
13
+ * @example Checking elapsed time
14
+ * ```ts
15
+ * start() {
16
+ * console.log(`Time since start: ${this.context.time.time}s`);
17
+ * console.log(`Current frame: ${this.context.time.frameCount}`);
18
+ * }
19
+ * ```
5
20
  */
6
21
  export declare class Time implements ITime {
7
22
  /** The time in seconds since the start of Needle Engine. */
@@ -15,7 +30,12 @@ export declare class Time implements ITime {
15
30
  /** The time in seconds it took to complete the last frame (Read Only). Timescale is not applied. */
16
31
  get deltaTimeUnscaled(): number;
17
32
  private _deltaTimeUnscaled;
18
- /** The scale at which time passes. This can be used for slow motion effects or to speed up time. */
33
+ /**
34
+ * The scale at which time passes. Default is 1.
35
+ * - Values < 1 create slow motion (e.g. 0.5 = half speed)
36
+ * - Values > 1 speed up time (e.g. 2 = double speed)
37
+ * - Value of 0 effectively pauses time-dependent logic
38
+ */
19
39
  timeScale: number;
20
40
  /** same as frameCount */
21
41
  get frame(): number;
@@ -5,8 +5,23 @@ let timeScale = 1;
5
5
  if (typeof timescaleUrl === "number")
6
6
  timeScale = timescaleUrl;
7
7
  /**
8
- * Time is a class that provides time-related information.
9
- * It is created and used within the Needle Engine Context.
8
+ * Provides time-related information for frame-based game logic.
9
+ * Access via `this.context.time` from any component.
10
+ *
11
+ * @example Using deltaTime for frame-rate independent movement
12
+ * ```ts
13
+ * update() {
14
+ * // Move 1 unit per second regardless of frame rate
15
+ * this.gameObject.position.x += 1 * this.context.time.deltaTime;
16
+ * }
17
+ * ```
18
+ * @example Checking elapsed time
19
+ * ```ts
20
+ * start() {
21
+ * console.log(`Time since start: ${this.context.time.time}s`);
22
+ * console.log(`Current frame: ${this.context.time.frameCount}`);
23
+ * }
24
+ * ```
10
25
  */
11
26
  export class Time {
12
27
  /** The time in seconds since the start of Needle Engine. */
@@ -20,7 +35,12 @@ export class Time {
20
35
  /** The time in seconds it took to complete the last frame (Read Only). Timescale is not applied. */
21
36
  get deltaTimeUnscaled() { return this._deltaTimeUnscaled; }
22
37
  _deltaTimeUnscaled = 0;
23
- /** The scale at which time passes. This can be used for slow motion effects or to speed up time. */
38
+ /**
39
+ * The scale at which time passes. Default is 1.
40
+ * - Values < 1 create slow motion (e.g. 0.5 = half speed)
41
+ * - Values > 1 speed up time (e.g. 2 = double speed)
42
+ * - Value of 0 effectively pauses time-dependent logic
43
+ */
24
44
  timeScale = 1;
25
45
  /** same as frameCount */
26
46
  get frame() { return this._frame; }
@@ -1 +1 @@
1
- {"version":3,"file":"engine_time.js","sourceRoot":"","sources":["../../src/engine/engine_time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_time.js","sourceRoot":"","sources":["../../src/engine/engine_time.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,37 @@
1
1
  import { type Constructor, type IComponent } from "./engine_types.js";
2
2
  declare type setter = (v: any) => void;
3
3
  declare type getter = () => any;
4
- /** create accessor callbacks for a field */
4
+ /**
5
+ * Marks a field to trigger the `onValidate` callback when its value changes.
6
+ * Useful for reacting to property changes from the editor or at runtime.
7
+ *
8
+ * Your component must implement `onValidate(property?: string)` to receive notifications.
9
+ *
10
+ * @param set Optional custom setter called before the value is assigned
11
+ * @param get Optional custom getter called when the value is read
12
+ *
13
+ * @example Basic usage
14
+ * ```ts
15
+ * export class MyComponent extends Behaviour {
16
+ * @serializable()
17
+ * @validate()
18
+ * color: Color = new Color(1, 0, 0);
19
+ *
20
+ * onValidate(property?: string) {
21
+ * if (property === "color") {
22
+ * console.log("Color changed to:", this.color);
23
+ * }
24
+ * }
25
+ * }
26
+ * ```
27
+ * @example With custom setter
28
+ * ```ts
29
+ * @validate(function(value) {
30
+ * console.log("Setting speed to", value);
31
+ * })
32
+ * speed: number = 1;
33
+ * ```
34
+ */
5
35
  export declare const validate: (set?: setter, get?: getter) => (target: IComponent | any, propertyKey: string, descriptor?: undefined) => void;
6
36
  /** Experimental attribute
7
37
  * Use to hook into another type's methods and run before the other methods run (similar to Harmony prefixes).
@@ -2,7 +2,37 @@ import { Quaternion, Vector2, Vector3, Vector4 } from "three";
2
2
  import { isDevEnvironment, LogType, showBalloonMessage } from "./debug/index.js";
3
3
  import { $isAssigningProperties } from "./engine_serialization_core.js";
4
4
  import { watchWrite } from "./engine_utils.js";
5
- /** create accessor callbacks for a field */
5
+ /**
6
+ * Marks a field to trigger the `onValidate` callback when its value changes.
7
+ * Useful for reacting to property changes from the editor or at runtime.
8
+ *
9
+ * Your component must implement `onValidate(property?: string)` to receive notifications.
10
+ *
11
+ * @param set Optional custom setter called before the value is assigned
12
+ * @param get Optional custom getter called when the value is read
13
+ *
14
+ * @example Basic usage
15
+ * ```ts
16
+ * export class MyComponent extends Behaviour {
17
+ * @serializable()
18
+ * @validate()
19
+ * color: Color = new Color(1, 0, 0);
20
+ *
21
+ * onValidate(property?: string) {
22
+ * if (property === "color") {
23
+ * console.log("Color changed to:", this.color);
24
+ * }
25
+ * }
26
+ * }
27
+ * ```
28
+ * @example With custom setter
29
+ * ```ts
30
+ * @validate(function(value) {
31
+ * console.log("Setting speed to", value);
32
+ * })
33
+ * speed: number = 1;
34
+ * ```
35
+ */
6
36
  export const validate = function (set, get) {
7
37
  // "descriptor : undefined" prevents @validate() to be added to property getters or setters
8
38
  return function (target, propertyKey, descriptor) {
@@ -1 +1 @@
1
- {"version":3,"file":"engine_util_decorator.js","sourceRoot":"","sources":["../../src/engine/engine_util_decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_util_decorator.js","sourceRoot":"","sources":["../../src/engine/engine_util_decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,GAAY,EAAE,GAAY;IACxD,2FAA2F;IAC3F,OAAO,UAAU,MAAwB,EAAE,WAAmB,EAAE,UAAsB;QAClF,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,CAAA;AACL,CAAC,CAAA;AAGD,SAAS,qBAAqB,CAAC,MAAwB,EAAE,YAAuC,EAAE,UAA+B,EAC7H,GAAY,EACZ,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO;IAE/C,0FAA0F;IAC1F,iDAAiD;IACjD,IAAI,UAAU,KAAK,SAAS,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,oEAAoE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QACtH,kBAAkB,CAAC,+EAA+E,GAAG,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAClI,OAAO;KACV;IAED,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,WAAW,GAAG,YAAY,CAAC;;QAC5D,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;IAErC,IAAI,MAAM,CAAC,eAAe,EAAE;QACxB,0DAA0D;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAClC,iCAAiC;QACjC,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC;QACrC,MAAM,CAAC,eAAe,GAAG;YAErB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAClB,IAAG,gBAAgB,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,0FAA0F,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,CAAA;gBACjK,OAAO;aACV;YAED,mCAAmC;YACnC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;gBAE3B,0DAA0D;gBAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBAEhC,iFAAiF;gBACjF,mDAAmD;gBACnD,2GAA2G;gBAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/B,IAAI,IAAI,YAAY,OAAO;oBACvB,IAAI,YAAY,OAAO;oBACvB,IAAI,YAAY,OAAO;oBACvB,IAAI,YAAY,UAAU,EAAE;oBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9B,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;oBAClD,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;iBACtB;gBAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;oBACrC,GAAG,EAAE,UAAU,CAAC;wBACZ,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,IAAI,EAAE;4BACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;yBACnB;6BACI;4BACD,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAChB,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;yBACtD;oBACL,CAAC;oBACD,GAAG,EAAE;wBACD,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;iBACJ,CAAC,CAAC;aACN;YAED,iCAAiC;YACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;KACL;AACL,CAAC;AAKD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAa,IAAoB;IACnD,OAAO,UAAU,MAAwB,EAAE,YAAuC,EAAE,mBAAuC;QAEvH,IAAI,WAAW,GAAW,EAAE,CAAC;QAC7B,IAAI,OAAO,YAAY,KAAK,QAAQ;YAAE,WAAW,GAAG,YAAY,CAAC;;YAC5D,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;QAErC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC1F,OAAO;SACV;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;YAC3C,KAAK,EAAE,UAAU,GAAG,IAAI;gBACpB,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBACxC,4EAA4E;gBAC5E,0DAA0D;gBAC1D,IAAI,GAAG,YAAY,OAAO,EAAE;oBACxB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACX,IAAI,CAAC,KAAK,KAAK;4BAAE,OAAO;wBACxB,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC;oBACH,OAAO;iBACV;gBACD,IAAI,GAAG,KAAK,KAAK;oBAAE,OAAO;gBAC1B,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;SACJ,CAAC,CAAC;IACP,CAAC,CAAA;AACL,CAAC,CAAA"}
@@ -36,11 +36,27 @@ export declare class CircularBuffer<T> {
36
36
  }
37
37
  export declare function getUrlParams(): URLSearchParams;
38
38
  type Param<T extends string> = string | boolean | number | T;
39
- /** Checks if a url parameter exists.
40
- * Returns true if it exists but has no value (e.g. ?help)
41
- * Returns false if it does not exist
42
- * Returns false if it's set to 0 e.g. ?debug=0
43
- * Returns the value if it exists e.g. ?message=hello
39
+ /**
40
+ * Checks if a URL parameter exists and returns its value.
41
+ * Useful for debugging, feature flags, and configuration.
42
+ *
43
+ * @param paramName The URL parameter name to check
44
+ * @returns
45
+ * - `true` if the parameter exists without a value (e.g. `?debug`)
46
+ * - `false` if the parameter doesn't exist or is set to `0`
47
+ * - The numeric value if it's a number (e.g. `?level=5` returns `5`)
48
+ * - The string value otherwise (e.g. `?name=test` returns `"test"`)
49
+ *
50
+ * @example Check debug mode
51
+ * ```ts
52
+ * if (getParam("debug")) {
53
+ * console.log("Debug mode enabled");
54
+ * }
55
+ * ```
56
+ * @example Get a numeric value
57
+ * ```ts
58
+ * const level = getParam("level"); // Returns number if ?level=5
59
+ * ```
44
60
  */
45
61
  export declare function getParam<T extends string>(paramName: T): Param<T>;
46
62
  export declare function setParam(paramName: string, paramValue: string): void;
@@ -89,11 +89,27 @@ export function getUrlParams() {
89
89
  // "window" may not exist in node.js
90
90
  return new URLSearchParams(globalThis.location?.search);
91
91
  }
92
- /** Checks if a url parameter exists.
93
- * Returns true if it exists but has no value (e.g. ?help)
94
- * Returns false if it does not exist
95
- * Returns false if it's set to 0 e.g. ?debug=0
96
- * Returns the value if it exists e.g. ?message=hello
92
+ /**
93
+ * Checks if a URL parameter exists and returns its value.
94
+ * Useful for debugging, feature flags, and configuration.
95
+ *
96
+ * @param paramName The URL parameter name to check
97
+ * @returns
98
+ * - `true` if the parameter exists without a value (e.g. `?debug`)
99
+ * - `false` if the parameter doesn't exist or is set to `0`
100
+ * - The numeric value if it's a number (e.g. `?level=5` returns `5`)
101
+ * - The string value otherwise (e.g. `?name=test` returns `"test"`)
102
+ *
103
+ * @example Check debug mode
104
+ * ```ts
105
+ * if (getParam("debug")) {
106
+ * console.log("Debug mode enabled");
107
+ * }
108
+ * ```
109
+ * @example Get a numeric value
110
+ * ```ts
111
+ * const level = getParam("level"); // Returns number if ?level=5
112
+ * ```
97
113
  */
98
114
  export function getParam(paramName) {
99
115
  if (showHelp && !requestedParams.includes(paramName))
@@ -1 +1 @@
1
- {"version":3,"file":"engine_utils.js","sourceRoot":"","sources":["../../src/engine/engine_utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_utils.js","sourceRoot":"","sources":["../../src/engine/engine_utils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The supported file types that can be determined by the engine. Used in {@link tryDetermineMimetypeFromURL} and {@link tryDetermineMimetypeFromBinary}
3
3
  */
4
- export type NeedleMimetype = "unknown" | "unsupported" | "model/gltf+json" | "model/gltf-binary" | "model/vrm" | "model/vnd.usdz+zip" | "model/vnd.usd" | "model/vnd.usda" | "model/vnd.usdc" | "model/fbx" | "model/vnd.autodesk.fbx" | "model/obj" | (string & {});
4
+ export type NeedleMimetype = "unknown" | "unsupported" | "model/gltf+json" | "model/gltf-binary" | "model/vrm" | "model/vnd.usdz+zip" | "model/vnd.usd" | "model/vnd.usda" | "model/vnd.usdc" | "model/fbx" | "model/vnd.autodesk.fbx" | "model/obj" | "application/materialx+xml" | (string & {});
5
5
  export declare function determineMimeTypeFromExtension(name: string): NeedleMimetype | null;
6
6
  /**
7
7
  * Tries to determine the file type of a file from its URL
@@ -74,6 +74,8 @@ export async function tryDetermineMimetypeFromURL(url, opts) {
74
74
  return "model/vnd.usdz+zip";
75
75
  case "OBJ":
76
76
  return "model/obj";
77
+ case "MTLX":
78
+ return "application/materialx+xml";
77
79
  }
78
80
  }
79
81
  // If the URL doesnt contain a filetype we need to check the header
@@ -190,6 +192,7 @@ export function tryDetermineMimetypeFromBinary(url, data, response) {
190
192
  case "model/fbx":
191
193
  case "model/vnd.autodesk.fbx":
192
194
  case "model/obj":
195
+ case "application/materialx+xml":
193
196
  return content_type;
194
197
  // case "model/stl":
195
198
  // return "stl";
@@ -236,7 +239,7 @@ export function tryDetermineMimetypeFromBinary(url, data, response) {
236
239
  }
237
240
  if (isDevEnvironment() || debug) {
238
241
  const text = new TextDecoder().decode(data.slice(0, Math.min(data.byteLength, 32)));
239
- console.warn(`Could not determine file type.\n\nConsider registering a custom loader via the 'onCreateCustomModelLoader' callback: 'NeedleEngineModelLoader.onCreateCustomModelLoader(args => { })'\n\nContent-Type: \"${response.headers.get("content-type")}\n\"Text: \"${text}\"\nBinary:`, bytes);
242
+ console.warn(`Could not determine file type.\n\nConsider registering a custom loader via the 'onCreateCustomModelLoader' callback: 'NeedleEngineModelLoader.onCreateCustomModelLoader(args => { })'\n\nContent-Type: \"${response.headers.get("content-type")}\"\n\"Text: \"${text}\"\nBinary:`, bytes);
240
243
  }
241
244
  else {
242
245
  console.debug(`Could not determine file type from binary data`);
@@ -1 +1 @@
1
- {"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Loader, LoadingManager, Material, Object3D } from "three";
2
+ import { GLTFLoader, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader.js";
3
+ import { IContext } from "../engine_types.js";
4
+ export declare namespace MaterialX {
5
+ /**
6
+ * Utility function to load a MaterialX material from a URL. This can be used in your own code to load MaterialX materials outside of the glTF loading process. The URL should point to a MaterialX XML file.
7
+ */
8
+ function loadFromUrl(urlOrXML: string, opts?: {
9
+ url?: string;
10
+ loadingManager?: LoadingManager;
11
+ materialNameOrIndex?: number | string;
12
+ }): Promise<import("three").Material | null>;
13
+ }
14
+ export declare class MaterialXLoader extends Loader<Object3D | null> {
15
+ loadAsync(url: string, onProgress?: ((event: ProgressEvent<EventTarget>) => void) | undefined): Promise<Object3D>;
16
+ load(url: string, onLoad: (data: Object3D) => void, onProgress?: ((event: ProgressEvent<EventTarget>) => void) | undefined, onError?: ((err: unknown) => void) | undefined): void;
17
+ private onLoaded;
18
+ }
19
+ export declare class NEEDLE_materialx implements GLTFLoaderPlugin {
20
+ private readonly context;
21
+ private readonly loader;
22
+ private readonly url;
23
+ private readonly parser;
24
+ get name(): string;
25
+ constructor(context: IContext, loader: GLTFLoader, url: string, parser: GLTFParser);
26
+ private mtlxLoader?;
27
+ beforeRoot(): Promise<void>;
28
+ loadMaterial(index: any): Promise<Material> | null;
29
+ }
@@ -0,0 +1,115 @@
1
+ import { Loader, TextureLoader } from "three";
2
+ import { ObjectUtils } from "../engine_create_objects.js";
3
+ import { MODULES } from "../engine_modules.js";
4
+ // #region Utils
5
+ export var MaterialX;
6
+ (function (MaterialX) {
7
+ /**
8
+ * Utility function to load a MaterialX material from a URL. This can be used in your own code to load MaterialX materials outside of the glTF loading process. The URL should point to a MaterialX XML file.
9
+ */
10
+ async function loadFromUrl(urlOrXML, opts) {
11
+ if (!urlOrXML)
12
+ throw new Error("URL or XML string is required to load a MaterialX material");
13
+ // Ensure the MaterialX module is loaded
14
+ const module = await MODULES.MaterialX.load();
15
+ // Check if the input is an XML string or a URL
16
+ // And fetch the XML content if it's a URL
17
+ const isXmlString = urlOrXML.trimStart().startsWith("<");
18
+ const xml = isXmlString ? urlOrXML : await fetch(urlOrXML).then(r => r.text()).catch(console.error);
19
+ if (!xml) {
20
+ console.warn("Failed to load MaterialX file from url", urlOrXML);
21
+ return null;
22
+ }
23
+ // For relative texture paths we might need to detect the base directory of the material file.
24
+ // We can only do this if we have a URL (not an XML string) and if the URL is not a data URL. In that case we can use the URL to determine the base path for textures.
25
+ // This can be used by the loader callback to resolve texture paths relative to the material file.
26
+ let dir = undefined;
27
+ if (opts?.url || !isXmlString) {
28
+ const parts = (opts?.url || urlOrXML).split('/');
29
+ parts.pop();
30
+ dir = parts.join('/');
31
+ }
32
+ const textureLoader = new TextureLoader();
33
+ return module.Experimental_API.createMaterialXMaterial(xml, opts?.materialNameOrIndex ?? 0, {
34
+ getTexture: async (url) => {
35
+ if (!url.startsWith("http") && !url.startsWith("data:") && !url.startsWith("blob:") && !url.startsWith("file:")) {
36
+ if (dir) {
37
+ url = dir + "/" + url;
38
+ }
39
+ }
40
+ return textureLoader.loadAsync(url).catch(e => {
41
+ console.warn(`Failed to load texture for MaterialX material ${url}`, e);
42
+ });
43
+ }
44
+ }, {
45
+ cacheKey: urlOrXML,
46
+ });
47
+ }
48
+ MaterialX.loadFromUrl = loadFromUrl;
49
+ })(MaterialX || (MaterialX = {}));
50
+ // #region Loader
51
+ export class MaterialXLoader extends Loader {
52
+ loadAsync(url, onProgress) {
53
+ return new Promise((resolve, reject) => {
54
+ this.load(url, resolve, onProgress, reject);
55
+ });
56
+ }
57
+ load(url, onLoad, onProgress, onError) {
58
+ onProgress?.({ type: "progress", loaded: 0, total: 0 });
59
+ MaterialX.loadFromUrl(url, {}).then(mat => {
60
+ if (mat) {
61
+ onLoad(this.onLoaded(mat));
62
+ }
63
+ else {
64
+ onError?.(new Error("Failed to load MaterialX material from url: " + url));
65
+ }
66
+ });
67
+ }
68
+ onLoaded(mat) {
69
+ const shaderball = ObjectUtils.createPrimitive("ShaderBall", { material: mat });
70
+ return shaderball;
71
+ }
72
+ }
73
+ // #region GLTF Extension
74
+ export class NEEDLE_materialx {
75
+ context;
76
+ loader;
77
+ url;
78
+ parser;
79
+ get name() {
80
+ return "materialx-loading-helper";
81
+ }
82
+ constructor(context, loader, url, parser) {
83
+ this.context = context;
84
+ this.loader = loader;
85
+ this.url = url;
86
+ this.parser = parser;
87
+ }
88
+ mtlxLoader;
89
+ async beforeRoot() {
90
+ const mtlxExtension = this.parser.json.extensions?.["NEEDLE_materials_mtlx"];
91
+ if (mtlxExtension) {
92
+ const module = await MODULES.MaterialX.load();
93
+ try {
94
+ this.mtlxLoader = new module.MaterialXLoader(this.parser, {
95
+ cacheKey: `${this.url}:materialx`,
96
+ parameters: {
97
+ precision: this.context.renderer?.capabilities.precision,
98
+ }
99
+ }, {
100
+ getFrame: () => this.context.time.frame,
101
+ getTime: () => this.context.time.time,
102
+ });
103
+ }
104
+ catch (error) {
105
+ console.error(error);
106
+ }
107
+ }
108
+ }
109
+ loadMaterial(index) {
110
+ if (this.mtlxLoader)
111
+ return this.mtlxLoader.loadMaterial(index);
112
+ return null;
113
+ }
114
+ }
115
+ //# sourceMappingURL=NEEDLE_materialx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NEEDLE_materialx.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_materialx.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { EXT_texture_exr } from "./EXT_texture_exr.js";
7
7
  import { NEEDLE_components } from "./NEEDLE_components.js";
8
8
  import { NEEDLE_gameobject_data } from "./NEEDLE_gameobject_data.js";
9
9
  import { NEEDLE_lighting_settings } from "./NEEDLE_lighting_settings.js";
10
+ import { NEEDLE_materialx } from "./NEEDLE_materialx.js";
10
11
  import { NEEDLE_persistent_assets } from "./NEEDLE_persistent_assets.js";
11
12
  import { NEEDLE_progressive } from "./NEEDLE_progressive.js";
12
13
  import { NEEDLE_render_objects } from "./NEEDLE_render_objects.js";
@@ -77,6 +78,7 @@ export async function registerExtensions(loader, context, url, sourceId) {
77
78
  loader.register(p => new NEEDLE_render_objects(p, sourceId));
78
79
  loader.register(p => new NEEDLE_progressive(p));
79
80
  loader.register(p => new EXT_texture_exr(p));
81
+ loader.register(p => new NEEDLE_materialx(context, loader, url, p));
80
82
  if (isResourceTrackingEnabled())
81
83
  loader.register(p => new InternalUsageTrackerPlugin(p));
82
84
  await KHR_ANIMATIONPOINTER_IMPORT.catch(_ => { });