@needle-tools/engine 4.7.0 → 4.7.2-alpha

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 (1074) hide show
  1. package/CHANGELOG.md +3782 -3778
  2. package/LICENSE.md +10 -10
  3. package/README.md +64 -64
  4. package/components.needle.json +1 -1
  5. package/dist/generateMeshBVH.worker-Cdfpaq5W.js +25 -0
  6. package/dist/gltf-progressive-YjtQYFa9.js +1052 -0
  7. package/dist/gltf-progressive-yOP1mp5W.min.js +8 -0
  8. package/dist/gltf-progressive-zdhlW609.umd.cjs +8 -0
  9. package/dist/{needle-engine.bundle-BFsiOavn.min.js → needle-engine.bundle-BhDF-YSv.min.js} +107 -107
  10. package/dist/{needle-engine.bundle-BxOXkBoQ.umd.cjs → needle-engine.bundle-D2myV4E4.umd.cjs} +114 -114
  11. package/dist/{needle-engine.bundle-BodidWhS.js → needle-engine.bundle-gp00DTS4.js} +2932 -2920
  12. package/dist/needle-engine.d.ts +129 -130
  13. package/dist/needle-engine.js +4 -4
  14. package/dist/needle-engine.min.js +1 -1
  15. package/dist/needle-engine.umd.cjs +1 -1
  16. package/dist/{postprocessing-CjW23fio.umd.cjs → postprocessing-8AQTeZsr.umd.cjs} +2 -2
  17. package/dist/{postprocessing-xYQWCHFu.min.js → postprocessing-BDScN9yu.min.js} +2 -2
  18. package/dist/{postprocessing-DYLNOL3W.js → postprocessing-BkxN_08g.js} +3 -3
  19. package/dist/{three-DuDKwKB8.min.js → three-Boa-jOq-.min.js} +33 -33
  20. package/dist/{three-DrqIzZTH.js → three-Bz6X1mrw.js} +4198 -4198
  21. package/dist/{three-B_hneGZr.umd.cjs → three-DMrv-4ar.umd.cjs} +4 -4
  22. package/dist/{three-examples-X3OadjXB.umd.cjs → three-examples-C7ryg8vN.umd.cjs} +3 -3
  23. package/dist/{three-examples-DaDLBuy6.min.js → three-examples-DuVhxqft.min.js} +14 -14
  24. package/dist/{three-examples-B50TT3Iu.js → three-examples-GggCDHv0.js} +5 -5
  25. package/dist/{three-mesh-ui-CxuWt7m-.js → three-mesh-ui-CLNOfsWn.js} +1 -1
  26. package/dist/{three-mesh-ui-B3p3gyUz.min.js → three-mesh-ui-CY6Izc7C.min.js} +1 -1
  27. package/dist/{three-mesh-ui-CQiIQIlA.umd.cjs → three-mesh-ui-CwlN0FUC.umd.cjs} +1 -1
  28. package/dist/{vendor-BmYIgaS1.js → vendor-BSD1RQIh.js} +3 -3
  29. package/dist/{vendor-Cavtu3CP.umd.cjs → vendor-DHr4aqIZ.umd.cjs} +3 -3
  30. package/dist/{vendor-BlSxe9JJ.min.js → vendor-zxXa3Dmr.min.js} +3 -3
  31. package/lib/asap/needle-asap.d.ts +1 -1
  32. package/lib/asap/needle-asap.js +95 -95
  33. package/lib/asap/sessiongranted.d.ts +3 -3
  34. package/lib/asap/sessiongranted.js +65 -65
  35. package/lib/asap/utils.d.ts +1 -1
  36. package/lib/asap/utils.js +3 -3
  37. package/lib/engine/analytics/index.d.ts +6 -6
  38. package/lib/engine/analytics/index.js +12 -12
  39. package/lib/engine/analytics/lcp.d.ts +3 -3
  40. package/lib/engine/analytics/lcp.js +34 -34
  41. package/lib/engine/api.d.ts +82 -82
  42. package/lib/engine/api.js +81 -81
  43. package/lib/engine/assets/index.d.ts +11 -11
  44. package/lib/engine/assets/index.js +47 -47
  45. package/lib/engine/assets/static.d.ts +1 -1
  46. package/lib/engine/assets/static.js +4 -4
  47. package/lib/engine/codegen/register_types.d.ts +1 -1
  48. package/lib/engine/codegen/register_types.js +300 -300
  49. package/lib/engine/debug/debug.d.ts +15 -15
  50. package/lib/engine/debug/debug.js +44 -44
  51. package/lib/engine/debug/debug_console.d.ts +2 -2
  52. package/lib/engine/debug/debug_console.js +307 -307
  53. package/lib/engine/debug/debug_overlay.d.ts +22 -22
  54. package/lib/engine/debug/debug_overlay.js +316 -316
  55. package/lib/engine/debug/debug_spatial_console.d.ts +2 -2
  56. package/lib/engine/debug/debug_spatial_console.js +390 -390
  57. package/lib/engine/debug/index.d.ts +2 -2
  58. package/lib/engine/debug/index.js +2 -2
  59. package/lib/engine/engine_addressables.d.ts +164 -166
  60. package/lib/engine/engine_addressables.js +601 -608
  61. package/lib/engine/engine_addressables.js.map +1 -1
  62. package/lib/engine/engine_animation.d.ts +43 -43
  63. package/lib/engine/engine_animation.js +133 -133
  64. package/lib/engine/engine_application.d.ts +45 -45
  65. package/lib/engine/engine_application.js +104 -104
  66. package/lib/engine/engine_assetdatabase.d.ts +25 -25
  67. package/lib/engine/engine_assetdatabase.js +346 -346
  68. package/lib/engine/engine_audio.d.ts +4 -4
  69. package/lib/engine/engine_audio.js +23 -23
  70. package/lib/engine/engine_camera.d.ts +13 -13
  71. package/lib/engine/engine_camera.js +30 -30
  72. package/lib/engine/engine_components.d.ts +110 -110
  73. package/lib/engine/engine_components.js +374 -374
  74. package/lib/engine/engine_components_internal.d.ts +9 -9
  75. package/lib/engine/engine_components_internal.js +36 -36
  76. package/lib/engine/engine_constants.d.ts +10 -10
  77. package/lib/engine/engine_constants.js +41 -41
  78. package/lib/engine/engine_context.d.ts +475 -475
  79. package/lib/engine/engine_context.js +1673 -1673
  80. package/lib/engine/engine_context_registry.d.ts +71 -71
  81. package/lib/engine/engine_context_registry.js +117 -117
  82. package/lib/engine/engine_coroutine.d.ts +35 -35
  83. package/lib/engine/engine_coroutine.js +52 -52
  84. package/lib/engine/engine_create_objects.d.ts +119 -119
  85. package/lib/engine/engine_create_objects.js +320 -320
  86. package/lib/engine/engine_default_parameters.d.ts +2 -2
  87. package/lib/engine/engine_default_parameters.js +3 -3
  88. package/lib/engine/engine_editor-sync.d.ts +21 -21
  89. package/lib/engine/engine_editor-sync.js +4 -4
  90. package/lib/engine/engine_fileloader.d.ts +2 -2
  91. package/lib/engine/engine_fileloader.js +8 -8
  92. package/lib/engine/engine_gameobject.d.ts +68 -68
  93. package/lib/engine/engine_gameobject.js +619 -619
  94. package/lib/engine/engine_generic_utils.d.ts +1 -1
  95. package/lib/engine/engine_generic_utils.js +13 -13
  96. package/lib/engine/engine_gizmos.d.ts +149 -149
  97. package/lib/engine/engine_gizmos.js +530 -530
  98. package/lib/engine/engine_gltf.d.ts +12 -12
  99. package/lib/engine/engine_gltf.js +15 -15
  100. package/lib/engine/engine_gltf_builtin_components.d.ts +11 -11
  101. package/lib/engine/engine_gltf_builtin_components.js +341 -341
  102. package/lib/engine/engine_hot_reload.d.ts +8 -8
  103. package/lib/engine/engine_hot_reload.js +197 -197
  104. package/lib/engine/engine_input.d.ts +362 -362
  105. package/lib/engine/engine_input.js +1294 -1294
  106. package/lib/engine/engine_input_utils.d.ts +2 -2
  107. package/lib/engine/engine_input_utils.js +22 -22
  108. package/lib/engine/engine_instancing.d.ts +19 -19
  109. package/lib/engine/engine_instancing.js +39 -39
  110. package/lib/engine/engine_license.d.ts +11 -11
  111. package/lib/engine/engine_license.js +369 -369
  112. package/lib/engine/engine_lifecycle_api.d.ts +83 -83
  113. package/lib/engine/engine_lifecycle_api.js +106 -106
  114. package/lib/engine/engine_lifecycle_functions_internal.d.ts +32 -32
  115. package/lib/engine/engine_lifecycle_functions_internal.js +146 -146
  116. package/lib/engine/engine_lightdata.d.ts +23 -23
  117. package/lib/engine/engine_lightdata.js +101 -91
  118. package/lib/engine/engine_lightdata.js.map +1 -1
  119. package/lib/engine/engine_loaders.callbacks.d.ts +97 -97
  120. package/lib/engine/engine_loaders.callbacks.js +86 -86
  121. package/lib/engine/engine_loaders.d.ts +48 -48
  122. package/lib/engine/engine_loaders.gltf.d.ts +13 -13
  123. package/lib/engine/engine_loaders.gltf.js +62 -62
  124. package/lib/engine/engine_loaders.js +337 -337
  125. package/lib/engine/engine_lods.d.ts +35 -31
  126. package/lib/engine/engine_lods.js +160 -146
  127. package/lib/engine/engine_lods.js.map +1 -1
  128. package/lib/engine/engine_mainloop_utils.d.ts +32 -32
  129. package/lib/engine/engine_mainloop_utils.js +466 -466
  130. package/lib/engine/engine_math.d.ts +114 -114
  131. package/lib/engine/engine_math.js +247 -247
  132. package/lib/engine/engine_modules.d.ts +36 -36
  133. package/lib/engine/engine_modules.js +85 -85
  134. package/lib/engine/engine_networking.d.ts +260 -260
  135. package/lib/engine/engine_networking.js +764 -764
  136. package/lib/engine/engine_networking_auto.d.ts +24 -24
  137. package/lib/engine/engine_networking_auto.js +310 -310
  138. package/lib/engine/engine_networking_blob.d.ts +48 -48
  139. package/lib/engine/engine_networking_blob.js +228 -228
  140. package/lib/engine/engine_networking_files.d.ts +35 -35
  141. package/lib/engine/engine_networking_files.js +172 -172
  142. package/lib/engine/engine_networking_files_default_components.d.ts +6 -6
  143. package/lib/engine/engine_networking_files_default_components.js +42 -42
  144. package/lib/engine/engine_networking_instantiate.d.ts +100 -100
  145. package/lib/engine/engine_networking_instantiate.js +345 -345
  146. package/lib/engine/engine_networking_peer.d.ts +15 -15
  147. package/lib/engine/engine_networking_peer.js +132 -132
  148. package/lib/engine/engine_networking_streams.d.ts +123 -123
  149. package/lib/engine/engine_networking_streams.js +645 -645
  150. package/lib/engine/engine_networking_types.d.ts +22 -22
  151. package/lib/engine/engine_networking_types.js +7 -7
  152. package/lib/engine/engine_networking_utils.d.ts +2 -2
  153. package/lib/engine/engine_networking_utils.js +20 -20
  154. package/lib/engine/engine_networking_websocket.d.ts +1 -1
  155. package/lib/engine/engine_networking_websocket.js +2 -2
  156. package/lib/engine/engine_patcher.d.ts +10 -10
  157. package/lib/engine/engine_patcher.js +142 -142
  158. package/lib/engine/engine_physics.d.ts +152 -152
  159. package/lib/engine/engine_physics.js +645 -645
  160. package/lib/engine/engine_physics.types.d.ts +40 -40
  161. package/lib/engine/engine_physics.types.js +33 -33
  162. package/lib/engine/engine_physics_rapier.d.ts +147 -147
  163. package/lib/engine/engine_physics_rapier.js +1433 -1433
  164. package/lib/engine/engine_playerview.d.ts +26 -26
  165. package/lib/engine/engine_playerview.js +64 -64
  166. package/lib/engine/engine_scenelighting.d.ts +71 -71
  167. package/lib/engine/engine_scenelighting.js +226 -226
  168. package/lib/engine/engine_serialization.d.ts +3 -3
  169. package/lib/engine/engine_serialization.js +3 -3
  170. package/lib/engine/engine_serialization_builtin_serializer.d.ts +72 -72
  171. package/lib/engine/engine_serialization_builtin_serializer.js +403 -403
  172. package/lib/engine/engine_serialization_core.d.ts +94 -94
  173. package/lib/engine/engine_serialization_core.js +607 -607
  174. package/lib/engine/engine_serialization_decorator.d.ts +23 -23
  175. package/lib/engine/engine_serialization_decorator.js +66 -66
  176. package/lib/engine/engine_setup.d.ts +1 -1
  177. package/lib/engine/engine_setup.js +2 -2
  178. package/lib/engine/engine_shaders.d.ts +53 -53
  179. package/lib/engine/engine_shaders.js +252 -252
  180. package/lib/engine/engine_shims.d.ts +4 -4
  181. package/lib/engine/engine_shims.js +24 -24
  182. package/lib/engine/engine_test_utils.d.ts +39 -39
  183. package/lib/engine/engine_test_utils.js +83 -83
  184. package/lib/engine/engine_texture.d.ts +28 -28
  185. package/lib/engine/engine_texture.js +64 -64
  186. package/lib/engine/engine_three_utils.d.ts +204 -204
  187. package/lib/engine/engine_three_utils.js +788 -788
  188. package/lib/engine/engine_time.d.ts +51 -51
  189. package/lib/engine/engine_time.js +82 -82
  190. package/lib/engine/engine_time_utils.d.ts +88 -88
  191. package/lib/engine/engine_time_utils.js +215 -215
  192. package/lib/engine/engine_tonemapping.d.ts +6 -6
  193. package/lib/engine/engine_tonemapping.js +197 -197
  194. package/lib/engine/engine_types.d.ts +578 -578
  195. package/lib/engine/engine_types.js +95 -95
  196. package/lib/engine/engine_typestore.d.ts +28 -28
  197. package/lib/engine/engine_typestore.js +55 -55
  198. package/lib/engine/engine_util_decorator.d.ts +13 -13
  199. package/lib/engine/engine_util_decorator.js +116 -116
  200. package/lib/engine/engine_utils.d.ts +248 -248
  201. package/lib/engine/engine_utils.js +1012 -1012
  202. package/lib/engine/engine_utils_format.d.ts +24 -24
  203. package/lib/engine/engine_utils_format.js +239 -239
  204. package/lib/engine/engine_utils_screenshot.d.ts +159 -159
  205. package/lib/engine/engine_utils_screenshot.js +522 -522
  206. package/lib/engine/engine_utils_screenshot.xr.d.ts +5 -5
  207. package/lib/engine/engine_utils_screenshot.xr.js +90 -90
  208. package/lib/engine/engine_xr.d.ts +1 -1
  209. package/lib/engine/engine_xr.js +1 -1
  210. package/lib/engine/export/gltf/Writers.d.ts +19 -19
  211. package/lib/engine/export/gltf/Writers.js +24 -24
  212. package/lib/engine/export/gltf/index.d.ts +11 -11
  213. package/lib/engine/export/gltf/index.js +123 -123
  214. package/lib/engine/export/index.d.ts +2 -2
  215. package/lib/engine/export/index.js +2 -2
  216. package/lib/engine/export/state.d.ts +7 -7
  217. package/lib/engine/export/state.js +17 -17
  218. package/lib/engine/export/utils.d.ts +2 -2
  219. package/lib/engine/export/utils.js +7 -7
  220. package/lib/engine/extensions/EXT_texture_exr.d.ts +8 -8
  221. package/lib/engine/extensions/EXT_texture_exr.js +32 -32
  222. package/lib/engine/extensions/NEEDLE_animator_controller_model.d.ts +122 -122
  223. package/lib/engine/extensions/NEEDLE_animator_controller_model.js +95 -95
  224. package/lib/engine/extensions/NEEDLE_components.d.ts +35 -35
  225. package/lib/engine/extensions/NEEDLE_components.js +220 -220
  226. package/lib/engine/extensions/NEEDLE_gameobject_data.d.ts +10 -10
  227. package/lib/engine/extensions/NEEDLE_gameobject_data.js +57 -57
  228. package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +37 -37
  229. package/lib/engine/extensions/NEEDLE_lighting_settings.js +157 -157
  230. package/lib/engine/extensions/NEEDLE_lightmaps.d.ts +18 -18
  231. package/lib/engine/extensions/NEEDLE_lightmaps.js +99 -99
  232. package/lib/engine/extensions/NEEDLE_persistent_assets.d.ts +11 -11
  233. package/lib/engine/extensions/NEEDLE_persistent_assets.js +63 -63
  234. package/lib/engine/extensions/NEEDLE_progressive.d.ts +1 -1
  235. package/lib/engine/extensions/NEEDLE_progressive.js +1 -1
  236. package/lib/engine/extensions/NEEDLE_render_objects.d.ts +13 -13
  237. package/lib/engine/extensions/NEEDLE_render_objects.js +159 -159
  238. package/lib/engine/extensions/NEEDLE_techniques_webgl.d.ts +38 -38
  239. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +564 -564
  240. package/lib/engine/extensions/extension_resolver.d.ts +4 -4
  241. package/lib/engine/extensions/extension_resolver.js +1 -1
  242. package/lib/engine/extensions/extension_utils.d.ts +12 -12
  243. package/lib/engine/extensions/extension_utils.js +152 -152
  244. package/lib/engine/extensions/extensions.d.ts +32 -32
  245. package/lib/engine/extensions/extensions.js +107 -107
  246. package/lib/engine/extensions/index.d.ts +6 -6
  247. package/lib/engine/extensions/index.js +6 -6
  248. package/lib/engine/extensions/usage_tracker.d.ts +13 -13
  249. package/lib/engine/extensions/usage_tracker.js +65 -65
  250. package/lib/engine/js-extensions/Camera.d.ts +1 -1
  251. package/lib/engine/js-extensions/Camera.js +39 -39
  252. package/lib/engine/js-extensions/ExtensionUtils.d.ts +9 -9
  253. package/lib/engine/js-extensions/ExtensionUtils.js +67 -67
  254. package/lib/engine/js-extensions/Layers.d.ts +6 -6
  255. package/lib/engine/js-extensions/Layers.js +22 -22
  256. package/lib/engine/js-extensions/Object3D.d.ts +120 -120
  257. package/lib/engine/js-extensions/Object3D.js +136 -136
  258. package/lib/engine/js-extensions/RGBAColor.d.ts +23 -23
  259. package/lib/engine/js-extensions/RGBAColor.js +111 -111
  260. package/lib/engine/js-extensions/Vector.d.ts +3 -3
  261. package/lib/engine/js-extensions/Vector.js +13 -13
  262. package/lib/engine/js-extensions/index.d.ts +5 -5
  263. package/lib/engine/js-extensions/index.js +5 -5
  264. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.d.ts +4 -4
  265. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +79 -79
  266. package/lib/engine/shaders/shaderData.d.ts +55 -55
  267. package/lib/engine/shaders/shaderData.js +58 -58
  268. package/lib/engine/tests/test_utils.d.ts +2 -2
  269. package/lib/engine/tests/test_utils.js +53 -53
  270. package/lib/engine/webcomponents/WebXRButtons.d.ts +56 -56
  271. package/lib/engine/webcomponents/WebXRButtons.js +230 -230
  272. package/lib/engine/webcomponents/api.d.ts +5 -5
  273. package/lib/engine/webcomponents/api.js +4 -4
  274. package/lib/engine/webcomponents/buttons.d.ts +51 -51
  275. package/lib/engine/webcomponents/buttons.js +264 -264
  276. package/lib/engine/webcomponents/fonts.d.ts +9 -9
  277. package/lib/engine/webcomponents/fonts.js +32 -32
  278. package/lib/engine/webcomponents/icons.d.ts +9 -9
  279. package/lib/engine/webcomponents/icons.js +52 -52
  280. package/lib/engine/webcomponents/index.d.ts +1 -1
  281. package/lib/engine/webcomponents/index.js +1 -1
  282. package/lib/engine/webcomponents/logo-element.d.ts +10 -10
  283. package/lib/engine/webcomponents/logo-element.js +67 -67
  284. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.d.ts +37 -37
  285. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +513 -513
  286. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +155 -155
  287. package/lib/engine/webcomponents/needle menu/needle-menu.js +1029 -1029
  288. package/lib/engine/webcomponents/needle-button.d.ts +34 -34
  289. package/lib/engine/webcomponents/needle-button.js +161 -161
  290. package/lib/engine/webcomponents/needle-engine.ar-overlay.d.ts +21 -21
  291. package/lib/engine/webcomponents/needle-engine.ar-overlay.js +166 -166
  292. package/lib/engine/webcomponents/needle-engine.attributes.d.ts +69 -69
  293. package/lib/engine/webcomponents/needle-engine.attributes.js +1 -1
  294. package/lib/engine/webcomponents/needle-engine.d.ts +116 -116
  295. package/lib/engine/webcomponents/needle-engine.extras.d.ts +6 -6
  296. package/lib/engine/webcomponents/needle-engine.extras.js +13 -13
  297. package/lib/engine/webcomponents/needle-engine.js +821 -821
  298. package/lib/engine/webcomponents/needle-engine.loading.d.ts +44 -44
  299. package/lib/engine/webcomponents/needle-engine.loading.js +341 -341
  300. package/lib/engine/xr/NeedleXRController.d.ts +313 -313
  301. package/lib/engine/xr/NeedleXRController.js +1007 -1007
  302. package/lib/engine/xr/NeedleXRSession.d.ts +340 -340
  303. package/lib/engine/xr/NeedleXRSession.js +1463 -1463
  304. package/lib/engine/xr/NeedleXRSync.d.ts +22 -22
  305. package/lib/engine/xr/NeedleXRSync.js +188 -188
  306. package/lib/engine/xr/SceneTransition.d.ts +18 -18
  307. package/lib/engine/xr/SceneTransition.js +69 -69
  308. package/lib/engine/xr/TempXRContext.d.ts +34 -34
  309. package/lib/engine/xr/TempXRContext.js +187 -187
  310. package/lib/engine/xr/XRRig.d.ts +7 -7
  311. package/lib/engine/xr/XRRig.js +1 -1
  312. package/lib/engine/xr/api.d.ts +6 -6
  313. package/lib/engine/xr/api.js +6 -6
  314. package/lib/engine/xr/events.d.ts +66 -66
  315. package/lib/engine/xr/events.js +93 -93
  316. package/lib/engine/xr/internal.d.ts +12 -12
  317. package/lib/engine/xr/internal.js +25 -25
  318. package/lib/engine/xr/usdz.d.ts +12 -12
  319. package/lib/engine/xr/usdz.js +29 -29
  320. package/lib/engine/xr/utils.d.ts +11 -11
  321. package/lib/engine/xr/utils.js +34 -34
  322. package/lib/engine-components/AlignmentConstraint.d.ts +10 -10
  323. package/lib/engine-components/AlignmentConstraint.js +39 -39
  324. package/lib/engine-components/Animation.d.ts +156 -156
  325. package/lib/engine-components/Animation.js +508 -508
  326. package/lib/engine-components/AnimationCurve.d.ts +40 -40
  327. package/lib/engine-components/AnimationCurve.js +159 -159
  328. package/lib/engine-components/AnimationUtils.d.ts +8 -8
  329. package/lib/engine-components/AnimationUtils.js +27 -27
  330. package/lib/engine-components/AnimationUtilsAutoplay.d.ts +1 -1
  331. package/lib/engine-components/AnimationUtilsAutoplay.js +39 -39
  332. package/lib/engine-components/Animator.d.ts +217 -217
  333. package/lib/engine-components/Animator.js +354 -354
  334. package/lib/engine-components/AnimatorController.d.ts +227 -227
  335. package/lib/engine-components/AnimatorController.js +1152 -1152
  336. package/lib/engine-components/AudioListener.d.ts +33 -33
  337. package/lib/engine-components/AudioListener.js +86 -86
  338. package/lib/engine-components/AudioSource.d.ts +217 -217
  339. package/lib/engine-components/AudioSource.js +635 -635
  340. package/lib/engine-components/AvatarLoader.d.ts +80 -80
  341. package/lib/engine-components/AvatarLoader.js +231 -231
  342. package/lib/engine-components/AxesHelper.d.ts +32 -32
  343. package/lib/engine-components/AxesHelper.js +67 -67
  344. package/lib/engine-components/BasicIKConstraint.d.ts +9 -9
  345. package/lib/engine-components/BasicIKConstraint.js +43 -43
  346. package/lib/engine-components/BoxCollider.d.ts +2 -2
  347. package/lib/engine-components/BoxCollider.js +2 -2
  348. package/lib/engine-components/BoxHelperComponent.d.ts +47 -47
  349. package/lib/engine-components/BoxHelperComponent.js +102 -102
  350. package/lib/engine-components/Camera.d.ts +231 -231
  351. package/lib/engine-components/Camera.js +700 -700
  352. package/lib/engine-components/CameraUtils.d.ts +1 -1
  353. package/lib/engine-components/CameraUtils.js +123 -123
  354. package/lib/engine-components/CharacterController.d.ts +55 -55
  355. package/lib/engine-components/CharacterController.js +236 -236
  356. package/lib/engine-components/Collider.d.ts +188 -188
  357. package/lib/engine-components/Collider.js +369 -369
  358. package/lib/engine-components/Component.d.ts +792 -792
  359. package/lib/engine-components/Component.js +920 -920
  360. package/lib/engine-components/ContactShadows.d.ts +94 -94
  361. package/lib/engine-components/ContactShadows.js +453 -453
  362. package/lib/engine-components/DeleteBox.d.ts +19 -19
  363. package/lib/engine-components/DeleteBox.js +58 -58
  364. package/lib/engine-components/DeviceFlag.d.ts +16 -16
  365. package/lib/engine-components/DeviceFlag.js +47 -47
  366. package/lib/engine-components/DragControls.d.ts +170 -170
  367. package/lib/engine-components/DragControls.js +1421 -1421
  368. package/lib/engine-components/DropListener.d.ts +215 -215
  369. package/lib/engine-components/DropListener.js +642 -642
  370. package/lib/engine-components/Duplicatable.d.ts +35 -35
  371. package/lib/engine-components/Duplicatable.js +202 -202
  372. package/lib/engine-components/EventList.d.ts +54 -54
  373. package/lib/engine-components/EventList.js +232 -232
  374. package/lib/engine-components/EventTrigger.d.ts +33 -33
  375. package/lib/engine-components/EventTrigger.js +75 -75
  376. package/lib/engine-components/EventType.d.ts +22 -22
  377. package/lib/engine-components/EventType.js +23 -23
  378. package/lib/engine-components/Fog.d.ts +22 -22
  379. package/lib/engine-components/Fog.js +61 -61
  380. package/lib/engine-components/Gizmos.d.ts +17 -17
  381. package/lib/engine-components/Gizmos.js +64 -64
  382. package/lib/engine-components/GridHelper.d.ts +20 -20
  383. package/lib/engine-components/GridHelper.js +54 -54
  384. package/lib/engine-components/GroundProjection.d.ts +67 -67
  385. package/lib/engine-components/GroundProjection.js +343 -343
  386. package/lib/engine-components/Interactable.d.ts +12 -12
  387. package/lib/engine-components/Interactable.js +12 -12
  388. package/lib/engine-components/Joints.d.ts +19 -19
  389. package/lib/engine-components/Joints.js +51 -51
  390. package/lib/engine-components/LODGroup.d.ts +35 -35
  391. package/lib/engine-components/LODGroup.js +152 -152
  392. package/lib/engine-components/Light.d.ts +180 -180
  393. package/lib/engine-components/Light.js +535 -535
  394. package/lib/engine-components/LookAtConstraint.d.ts +19 -19
  395. package/lib/engine-components/LookAtConstraint.js +35 -35
  396. package/lib/engine-components/NeedleMenu.d.ts +50 -50
  397. package/lib/engine-components/NeedleMenu.js +92 -92
  398. package/lib/engine-components/NestedGltf.d.ts +25 -25
  399. package/lib/engine-components/NestedGltf.js +88 -88
  400. package/lib/engine-components/Networking.d.ts +54 -54
  401. package/lib/engine-components/Networking.js +112 -112
  402. package/lib/engine-components/OffsetConstraint.d.ts +14 -14
  403. package/lib/engine-components/OffsetConstraint.js +65 -65
  404. package/lib/engine-components/OrbitControls.d.ts +268 -268
  405. package/lib/engine-components/OrbitControls.js +1015 -1015
  406. package/lib/engine-components/PlayerColor.d.ts +19 -19
  407. package/lib/engine-components/PlayerColor.js +94 -94
  408. package/lib/engine-components/ReflectionProbe.d.ts +28 -28
  409. package/lib/engine-components/ReflectionProbe.js +204 -204
  410. package/lib/engine-components/Renderer.d.ts +153 -153
  411. package/lib/engine-components/Renderer.js +834 -834
  412. package/lib/engine-components/RendererInstancing.d.ts +140 -140
  413. package/lib/engine-components/RendererInstancing.js +744 -744
  414. package/lib/engine-components/RendererInstancing.js.map +1 -1
  415. package/lib/engine-components/RendererLightmap.d.ts +24 -24
  416. package/lib/engine-components/RendererLightmap.js +182 -182
  417. package/lib/engine-components/RigidBody.d.ts +155 -155
  418. package/lib/engine-components/RigidBody.js +517 -517
  419. package/lib/engine-components/SceneSwitcher.d.ts +263 -263
  420. package/lib/engine-components/SceneSwitcher.js +971 -971
  421. package/lib/engine-components/ScreenCapture.d.ts +144 -144
  422. package/lib/engine-components/ScreenCapture.js +547 -547
  423. package/lib/engine-components/ShadowCatcher.d.ts +33 -33
  424. package/lib/engine-components/ShadowCatcher.js +166 -166
  425. package/lib/engine-components/Skybox.d.ts +88 -88
  426. package/lib/engine-components/Skybox.js +469 -469
  427. package/lib/engine-components/SmoothFollow.d.ts +34 -34
  428. package/lib/engine-components/SmoothFollow.js +82 -82
  429. package/lib/engine-components/SpatialTrigger.d.ts +102 -102
  430. package/lib/engine-components/SpatialTrigger.js +225 -225
  431. package/lib/engine-components/SpectatorCamera.d.ts +111 -111
  432. package/lib/engine-components/SpectatorCamera.js +715 -715
  433. package/lib/engine-components/SphereCollider.d.ts +2 -2
  434. package/lib/engine-components/SphereCollider.js +2 -2
  435. package/lib/engine-components/SpriteRenderer.d.ts +132 -132
  436. package/lib/engine-components/SpriteRenderer.js +472 -472
  437. package/lib/engine-components/SyncedCamera.d.ts +41 -41
  438. package/lib/engine-components/SyncedCamera.js +199 -199
  439. package/lib/engine-components/SyncedRoom.d.ts +106 -106
  440. package/lib/engine-components/SyncedRoom.js +371 -371
  441. package/lib/engine-components/SyncedTransform.d.ts +94 -94
  442. package/lib/engine-components/SyncedTransform.js +331 -331
  443. package/lib/engine-components/TestRunner.d.ts +16 -16
  444. package/lib/engine-components/TestRunner.js +102 -102
  445. package/lib/engine-components/TransformGizmo.d.ts +75 -75
  446. package/lib/engine-components/TransformGizmo.js +209 -209
  447. package/lib/engine-components/VideoPlayer.d.ts +184 -184
  448. package/lib/engine-components/VideoPlayer.js +978 -978
  449. package/lib/engine-components/Voip.d.ts +67 -67
  450. package/lib/engine-components/Voip.js +360 -360
  451. package/lib/engine-components/api.d.ts +51 -51
  452. package/lib/engine-components/api.js +50 -50
  453. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +11 -11
  454. package/lib/engine-components/avatar/AvatarBlink_Simple.js +76 -76
  455. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +14 -14
  456. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +68 -68
  457. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +29 -29
  458. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +121 -121
  459. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +15 -15
  460. package/lib/engine-components/avatar/Avatar_MouthShapes.js +79 -79
  461. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +9 -9
  462. package/lib/engine-components/avatar/Avatar_MustacheShake.js +29 -29
  463. package/lib/engine-components/codegen/components.d.ts +216 -216
  464. package/lib/engine-components/codegen/components.js +218 -218
  465. package/lib/engine-components/debug/LogStats.d.ts +5 -5
  466. package/lib/engine-components/debug/LogStats.js +18 -18
  467. package/lib/engine-components/export/gltf/GltfExport.d.ts +30 -30
  468. package/lib/engine-components/export/gltf/GltfExport.js +246 -246
  469. package/lib/engine-components/export/gltf/index.d.ts +1 -1
  470. package/lib/engine-components/export/gltf/index.js +1 -1
  471. package/lib/engine-components/export/index.d.ts +1 -1
  472. package/lib/engine-components/export/index.js +1 -1
  473. package/lib/engine-components/export/usdz/Extension.d.ts +22 -22
  474. package/lib/engine-components/export/usdz/Extension.js +1 -1
  475. package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +162 -162
  476. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1789 -1789
  477. package/lib/engine-components/export/usdz/USDZExporter.d.ts +130 -130
  478. package/lib/engine-components/export/usdz/USDZExporter.js +663 -663
  479. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +106 -106
  480. package/lib/engine-components/export/usdz/extensions/Animation.js +1071 -1071
  481. package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -5
  482. package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +6 -6
  483. package/lib/engine-components/export/usdz/extensions/NodeMaterialConverter.d.ts +10 -10
  484. package/lib/engine-components/export/usdz/extensions/NodeMaterialConverter.js +451 -451
  485. package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +54 -54
  486. package/lib/engine-components/export/usdz/extensions/USDZText.js +203 -203
  487. package/lib/engine-components/export/usdz/extensions/USDZUI.d.ts +8 -8
  488. package/lib/engine-components/export/usdz/extensions/USDZUI.js +158 -158
  489. package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -30
  490. package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +88 -88
  491. package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.d.ts +10 -10
  492. package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.js +86 -86
  493. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +28 -28
  494. package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +290 -290
  495. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +190 -190
  496. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +1060 -1060
  497. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +135 -135
  498. package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +548 -548
  499. package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.d.ts +7 -7
  500. package/lib/engine-components/export/usdz/extensions/behavior/PhysicsExtension.js +115 -115
  501. package/lib/engine-components/export/usdz/index.d.ts +3 -3
  502. package/lib/engine-components/export/usdz/index.js +2 -2
  503. package/lib/engine-components/export/usdz/utils/animationutils.d.ts +7 -7
  504. package/lib/engine-components/export/usdz/utils/animationutils.js +163 -163
  505. package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -2
  506. package/lib/engine-components/export/usdz/utils/quicklook.js +43 -43
  507. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +177 -177
  508. package/lib/engine-components/particlesystem/ParticleSystem.js +1176 -1176
  509. package/lib/engine-components/particlesystem/ParticleSystemModules.d.ts +526 -526
  510. package/lib/engine-components/particlesystem/ParticleSystemModules.js +1930 -1930
  511. package/lib/engine-components/particlesystem/ParticleSystemSubEmitter.d.ts +25 -25
  512. package/lib/engine-components/particlesystem/ParticleSystemSubEmitter.js +87 -87
  513. package/lib/engine-components/particlesystem/api.d.ts +2 -2
  514. package/lib/engine-components/particlesystem/api.js +2 -2
  515. package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +17 -17
  516. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +59 -59
  517. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +46 -46
  518. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +113 -113
  519. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +11 -11
  520. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +39 -39
  521. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +23 -23
  522. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +111 -111
  523. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +25 -25
  524. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +104 -104
  525. package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +12 -12
  526. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +18 -18
  527. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +11 -11
  528. package/lib/engine-components/postprocessing/Effects/Pixelation.js +32 -32
  529. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +18 -18
  530. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +91 -91
  531. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +70 -70
  532. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +176 -176
  533. package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +18 -18
  534. package/lib/engine-components/postprocessing/Effects/Sharpening.js +127 -127
  535. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +17 -17
  536. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +70 -70
  537. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +19 -19
  538. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +94 -94
  539. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +13 -13
  540. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.js +51 -51
  541. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +15 -15
  542. package/lib/engine-components/postprocessing/Effects/Vignette.js +60 -60
  543. package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +90 -90
  544. package/lib/engine-components/postprocessing/PostProcessingEffect.js +168 -168
  545. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +42 -42
  546. package/lib/engine-components/postprocessing/PostProcessingHandler.js +494 -494
  547. package/lib/engine-components/postprocessing/Volume.d.ts +90 -90
  548. package/lib/engine-components/postprocessing/Volume.js +385 -385
  549. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +26 -26
  550. package/lib/engine-components/postprocessing/VolumeParameter.js +136 -136
  551. package/lib/engine-components/postprocessing/VolumeProfile.d.ts +15 -15
  552. package/lib/engine-components/postprocessing/VolumeProfile.js +60 -60
  553. package/lib/engine-components/postprocessing/index.d.ts +6 -6
  554. package/lib/engine-components/postprocessing/index.js +6 -6
  555. package/lib/engine-components/postprocessing/utils.d.ts +55 -55
  556. package/lib/engine-components/postprocessing/utils.js +119 -119
  557. package/lib/engine-components/timeline/PlayableDirector.d.ts +163 -163
  558. package/lib/engine-components/timeline/PlayableDirector.js +686 -686
  559. package/lib/engine-components/timeline/SignalAsset.d.ts +24 -24
  560. package/lib/engine-components/timeline/SignalAsset.js +130 -130
  561. package/lib/engine-components/timeline/TimelineModels.d.ts +89 -89
  562. package/lib/engine-components/timeline/TimelineModels.js +22 -22
  563. package/lib/engine-components/timeline/TimelineTracks.d.ts +110 -110
  564. package/lib/engine-components/timeline/TimelineTracks.js +879 -879
  565. package/lib/engine-components/timeline/index.d.ts +4 -4
  566. package/lib/engine-components/timeline/index.js +3 -3
  567. package/lib/engine-components/ui/BaseUIComponent.d.ts +48 -48
  568. package/lib/engine-components/ui/BaseUIComponent.js +170 -170
  569. package/lib/engine-components/ui/Button.d.ts +64 -64
  570. package/lib/engine-components/ui/Button.js +315 -315
  571. package/lib/engine-components/ui/Canvas.d.ts +74 -74
  572. package/lib/engine-components/ui/Canvas.js +407 -407
  573. package/lib/engine-components/ui/CanvasGroup.d.ts +19 -19
  574. package/lib/engine-components/ui/CanvasGroup.js +58 -58
  575. package/lib/engine-components/ui/EventSystem.d.ts +125 -125
  576. package/lib/engine-components/ui/EventSystem.js +765 -765
  577. package/lib/engine-components/ui/Graphic.d.ts +55 -55
  578. package/lib/engine-components/ui/Graphic.js +255 -255
  579. package/lib/engine-components/ui/Image.d.ts +35 -35
  580. package/lib/engine-components/ui/Image.js +116 -116
  581. package/lib/engine-components/ui/InputField.d.ts +42 -42
  582. package/lib/engine-components/ui/InputField.js +268 -268
  583. package/lib/engine-components/ui/Interfaces.d.ts +38 -38
  584. package/lib/engine-components/ui/Interfaces.js +12 -12
  585. package/lib/engine-components/ui/Layout.d.ts +84 -84
  586. package/lib/engine-components/ui/Layout.js +330 -330
  587. package/lib/engine-components/ui/Outline.d.ts +7 -7
  588. package/lib/engine-components/ui/Outline.js +20 -20
  589. package/lib/engine-components/ui/PointerEvents.d.ts +115 -115
  590. package/lib/engine-components/ui/PointerEvents.js +145 -145
  591. package/lib/engine-components/ui/RaycastUtils.d.ts +11 -11
  592. package/lib/engine-components/ui/RaycastUtils.js +67 -67
  593. package/lib/engine-components/ui/Raycaster.d.ts +30 -30
  594. package/lib/engine-components/ui/Raycaster.js +95 -95
  595. package/lib/engine-components/ui/RectTransform.d.ts +61 -61
  596. package/lib/engine-components/ui/RectTransform.js +356 -356
  597. package/lib/engine-components/ui/SpatialHtml.d.ts +8 -8
  598. package/lib/engine-components/ui/SpatialHtml.js +79 -79
  599. package/lib/engine-components/ui/Symbols.d.ts +1 -1
  600. package/lib/engine-components/ui/Symbols.js +1 -1
  601. package/lib/engine-components/ui/Text.d.ts +78 -78
  602. package/lib/engine-components/ui/Text.js +539 -539
  603. package/lib/engine-components/ui/Utils.d.ts +24 -24
  604. package/lib/engine-components/ui/Utils.js +90 -90
  605. package/lib/engine-components/ui/index.d.ts +1 -1
  606. package/lib/engine-components/ui/index.js +1 -1
  607. package/lib/engine-components/utils/EnvironmentScene.d.ts +5 -5
  608. package/lib/engine-components/utils/EnvironmentScene.js +205 -205
  609. package/lib/engine-components/utils/LookAt.d.ts +31 -31
  610. package/lib/engine-components/utils/LookAt.js +82 -82
  611. package/lib/engine-components/utils/OpenURL.d.ts +42 -42
  612. package/lib/engine-components/utils/OpenURL.js +119 -119
  613. package/lib/engine-components/webxr/Avatar.d.ts +25 -25
  614. package/lib/engine-components/webxr/Avatar.js +255 -255
  615. package/lib/engine-components/webxr/TeleportTarget.d.ts +7 -7
  616. package/lib/engine-components/webxr/TeleportTarget.js +7 -7
  617. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +30 -30
  618. package/lib/engine-components/webxr/WebARCameraBackground.js +155 -155
  619. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +98 -98
  620. package/lib/engine-components/webxr/WebARSessionRoot.js +770 -770
  621. package/lib/engine-components/webxr/WebXR.d.ts +232 -232
  622. package/lib/engine-components/webxr/WebXR.js +561 -561
  623. package/lib/engine-components/webxr/WebXRAvatar.d.ts +27 -27
  624. package/lib/engine-components/webxr/WebXRAvatar.js +44 -44
  625. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +86 -86
  626. package/lib/engine-components/webxr/WebXRImageTracking.js +471 -471
  627. package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +92 -92
  628. package/lib/engine-components/webxr/WebXRPlaneTracking.js +500 -500
  629. package/lib/engine-components/webxr/WebXRRig.d.ts +32 -32
  630. package/lib/engine-components/webxr/WebXRRig.js +72 -72
  631. package/lib/engine-components/webxr/XRFlag.d.ts +38 -38
  632. package/lib/engine-components/webxr/XRFlag.js +139 -139
  633. package/lib/engine-components/webxr/controllers/XRControllerFollow.d.ts +47 -47
  634. package/lib/engine-components/webxr/controllers/XRControllerFollow.js +120 -120
  635. package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +43 -43
  636. package/lib/engine-components/webxr/controllers/XRControllerModel.js +352 -352
  637. package/lib/engine-components/webxr/controllers/XRControllerMovement.d.ts +78 -78
  638. package/lib/engine-components/webxr/controllers/XRControllerMovement.js +506 -506
  639. package/lib/engine-components/webxr/index.d.ts +3 -3
  640. package/lib/engine-components/webxr/index.js +3 -3
  641. package/lib/engine-components/webxr/types.d.ts +3 -3
  642. package/lib/engine-components/webxr/types.js +1 -1
  643. package/lib/engine-components-experimental/Presentation.d.ts +6 -6
  644. package/lib/engine-components-experimental/Presentation.js +9 -9
  645. package/lib/engine-components-experimental/api.d.ts +4 -4
  646. package/lib/engine-components-experimental/api.js +4 -4
  647. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +156 -156
  648. package/lib/engine-components-experimental/networking/PlayerSync.js +377 -377
  649. package/lib/engine-schemes/api.d.ts +12 -12
  650. package/lib/engine-schemes/api.js +12 -12
  651. package/lib/engine-schemes/schemes.d.ts +7 -7
  652. package/lib/engine-schemes/schemes.js +19 -19
  653. package/lib/engine-schemes/synced-camera-model.d.ts +25 -25
  654. package/lib/engine-schemes/synced-camera-model.js +67 -67
  655. package/lib/engine-schemes/synced-transform-model.d.ts +31 -31
  656. package/lib/engine-schemes/synced-transform-model.js +66 -66
  657. package/lib/engine-schemes/transform.d.ts +12 -12
  658. package/lib/engine-schemes/transform.js +39 -39
  659. package/lib/engine-schemes/vec2.d.ts +10 -10
  660. package/lib/engine-schemes/vec2.js +25 -25
  661. package/lib/engine-schemes/vec3.d.ts +11 -11
  662. package/lib/engine-schemes/vec3.js +29 -29
  663. package/lib/engine-schemes/vec4.d.ts +12 -12
  664. package/lib/engine-schemes/vec4.js +33 -33
  665. package/lib/engine-schemes/vr-user-state-buffer.d.ts +37 -37
  666. package/lib/engine-schemes/vr-user-state-buffer.js +110 -110
  667. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -6
  668. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +45 -45
  669. package/lib/needle-engine.d.ts +7 -7
  670. package/lib/needle-engine.js +64 -64
  671. package/package.json +2 -2
  672. package/plugins/common/buildinfo.js +64 -64
  673. package/plugins/common/cloud.js +1 -1
  674. package/plugins/common/config.cjs +31 -31
  675. package/plugins/common/config.js +35 -35
  676. package/plugins/common/files.js +31 -31
  677. package/plugins/common/generator.js +10 -10
  678. package/plugins/common/license.js +452 -452
  679. package/plugins/common/logger.js +327 -320
  680. package/plugins/common/npm.js +15 -15
  681. package/plugins/common/timers.js +7 -7
  682. package/plugins/common/version.js +37 -37
  683. package/plugins/gltf-packer.mjs +1 -1
  684. package/plugins/next/alias.cjs +39 -39
  685. package/plugins/next/license.cjs +24 -24
  686. package/plugins/next/meshbvhworker.cjs +18 -18
  687. package/plugins/next/next.js +141 -141
  688. package/plugins/types/index.d.ts +2 -2
  689. package/plugins/types/license.d.ts +24 -24
  690. package/plugins/types/needleConfig.d.ts +27 -27
  691. package/plugins/types/next.d.ts +2 -2
  692. package/plugins/types/userconfig.d.ts +124 -124
  693. package/plugins/types/vite.d.ts +13 -13
  694. package/plugins/types/webmanifest.d.ts +32 -32
  695. package/plugins/vite/alias.js +189 -189
  696. package/plugins/vite/asap.js +251 -251
  697. package/plugins/vite/build-pipeline.js +371 -371
  698. package/plugins/vite/build.js +19 -19
  699. package/plugins/vite/buildinfo.js +41 -41
  700. package/plugins/vite/config.js +106 -106
  701. package/plugins/vite/copyfiles.js +138 -138
  702. package/plugins/vite/defines.js +70 -70
  703. package/plugins/vite/dependencies.js +232 -232
  704. package/plugins/vite/dependency-watcher.js +237 -237
  705. package/plugins/vite/drop-client.js +76 -76
  706. package/plugins/vite/drop.js +87 -87
  707. package/plugins/vite/editor-connection.js +124 -124
  708. package/plugins/vite/facebook-instant-games.js +102 -102
  709. package/plugins/vite/gzip.js +5 -5
  710. package/plugins/vite/imports-logger.js +143 -143
  711. package/plugins/vite/index.js +147 -147
  712. package/plugins/vite/license.js +56 -56
  713. package/plugins/vite/local-files.js +440 -440
  714. package/plugins/vite/logger.client.js +272 -262
  715. package/plugins/vite/logger.js +100 -100
  716. package/plugins/vite/materialx.js +31 -31
  717. package/plugins/vite/meta.js +163 -163
  718. package/plugins/vite/npm.js +7 -7
  719. package/plugins/vite/peer.js +29 -29
  720. package/plugins/vite/poster-client.js +73 -73
  721. package/plugins/vite/poster.js +79 -79
  722. package/plugins/vite/pwa.js +604 -604
  723. package/plugins/vite/reload-client.js +15 -15
  724. package/plugins/vite/reload.js +351 -351
  725. package/plugins/vite/server.js +66 -66
  726. package/plugins/vite/transform-codegen.js +55 -55
  727. package/plugins/vite/transform.js +32 -32
  728. package/plugins/vite/vite-4.4-hack.js +31 -31
  729. package/src/asap/needle-asap.ts +111 -111
  730. package/src/asap/sessiongranted.ts +75 -75
  731. package/src/asap/utils.ts +4 -4
  732. package/src/engine/analytics/index.ts +10 -10
  733. package/src/engine/analytics/lcp.ts +35 -35
  734. package/src/engine/api.ts +82 -82
  735. package/src/engine/assets/index.ts +59 -59
  736. package/src/engine/assets/static.js +5 -5
  737. package/src/engine/codegen/register_types.ts +300 -300
  738. package/src/engine/debug/debug.ts +51 -51
  739. package/src/engine/debug/debug_console.ts +333 -333
  740. package/src/engine/debug/debug_overlay.ts +332 -332
  741. package/src/engine/debug/debug_spatial_console.ts +429 -429
  742. package/src/engine/debug/index.ts +1 -1
  743. package/src/engine/engine_addressables.ts +671 -680
  744. package/src/engine/engine_animation.ts +145 -145
  745. package/src/engine/engine_application.ts +113 -113
  746. package/src/engine/engine_assetdatabase.ts +389 -389
  747. package/src/engine/engine_audio.ts +24 -24
  748. package/src/engine/engine_camera.ts +39 -39
  749. package/src/engine/engine_components.ts +366 -366
  750. package/src/engine/engine_components_internal.ts +40 -40
  751. package/src/engine/engine_constants.ts +52 -52
  752. package/src/engine/engine_context.ts +1824 -1824
  753. package/src/engine/engine_context_registry.ts +129 -129
  754. package/src/engine/engine_coroutine.ts +54 -54
  755. package/src/engine/engine_create_objects.ts +411 -411
  756. package/src/engine/engine_default_parameters.ts +3 -3
  757. package/src/engine/engine_editor-sync.ts +28 -28
  758. package/src/engine/engine_fileloader.js +9 -9
  759. package/src/engine/engine_gameobject.ts +712 -712
  760. package/src/engine/engine_generic_utils.js +13 -13
  761. package/src/engine/engine_gizmos.ts +577 -577
  762. package/src/engine/engine_gltf.ts +29 -29
  763. package/src/engine/engine_gltf_builtin_components.ts +403 -403
  764. package/src/engine/engine_hot_reload.ts +210 -210
  765. package/src/engine/engine_input.ts +1500 -1500
  766. package/src/engine/engine_input_utils.ts +23 -23
  767. package/src/engine/engine_instancing.ts +45 -45
  768. package/src/engine/engine_license.ts +386 -386
  769. package/src/engine/engine_lifecycle_api.ts +113 -113
  770. package/src/engine/engine_lifecycle_functions_internal.ts +193 -193
  771. package/src/engine/engine_lightdata.ts +125 -117
  772. package/src/engine/engine_loaders.callbacks.ts +136 -136
  773. package/src/engine/engine_loaders.gltf.ts +82 -82
  774. package/src/engine/engine_loaders.ts +378 -378
  775. package/src/engine/engine_lods.ts +186 -168
  776. package/src/engine/engine_mainloop_utils.ts +472 -472
  777. package/src/engine/engine_math.ts +282 -282
  778. package/src/engine/engine_modules.ts +83 -83
  779. package/src/engine/engine_networking.ts +862 -862
  780. package/src/engine/engine_networking_auto.ts +352 -352
  781. package/src/engine/engine_networking_blob.ts +275 -275
  782. package/src/engine/engine_networking_files.ts +217 -217
  783. package/src/engine/engine_networking_files_default_components.ts +58 -58
  784. package/src/engine/engine_networking_instantiate.ts +419 -419
  785. package/src/engine/engine_networking_peer.ts +159 -159
  786. package/src/engine/engine_networking_streams.ts +713 -713
  787. package/src/engine/engine_networking_types.ts +24 -24
  788. package/src/engine/engine_networking_utils.ts +23 -23
  789. package/src/engine/engine_networking_websocket.ts +2 -2
  790. package/src/engine/engine_patcher.ts +199 -199
  791. package/src/engine/engine_physics.ts +783 -783
  792. package/src/engine/engine_physics.types.ts +46 -46
  793. package/src/engine/engine_physics_rapier.ts +1577 -1577
  794. package/src/engine/engine_playerview.ts +80 -80
  795. package/src/engine/engine_scenelighting.ts +294 -294
  796. package/src/engine/engine_serialization.ts +2 -2
  797. package/src/engine/engine_serialization_builtin_serializer.ts +473 -473
  798. package/src/engine/engine_serialization_core.ts +720 -720
  799. package/src/engine/engine_serialization_decorator.ts +80 -80
  800. package/src/engine/engine_setup.ts +1 -1
  801. package/src/engine/engine_shaders.ts +267 -267
  802. package/src/engine/engine_shims.ts +32 -32
  803. package/src/engine/engine_test_utils.ts +109 -109
  804. package/src/engine/engine_texture.ts +82 -82
  805. package/src/engine/engine_three_utils.ts +928 -928
  806. package/src/engine/engine_time.ts +94 -94
  807. package/src/engine/engine_time_utils.ts +237 -237
  808. package/src/engine/engine_tonemapping.ts +208 -208
  809. package/src/engine/engine_types.ts +730 -730
  810. package/src/engine/engine_typestore.ts +63 -63
  811. package/src/engine/engine_util_decorator.ts +136 -136
  812. package/src/engine/engine_utils.ts +1115 -1115
  813. package/src/engine/engine_utils_format.ts +273 -273
  814. package/src/engine/engine_utils_screenshot.ts +708 -708
  815. package/src/engine/engine_utils_screenshot.xr.ts +103 -103
  816. package/src/engine/export/gltf/Writers.ts +34 -34
  817. package/src/engine/export/gltf/index.ts +158 -158
  818. package/src/engine/export/index.ts +2 -2
  819. package/src/engine/export/state.ts +19 -19
  820. package/src/engine/export/utils.ts +9 -9
  821. package/src/engine/extensions/EXT_texture_exr.ts +50 -50
  822. package/src/engine/extensions/NEEDLE_animator_controller_model.ts +195 -195
  823. package/src/engine/extensions/NEEDLE_components.ts +268 -268
  824. package/src/engine/extensions/NEEDLE_gameobject_data.ts +81 -81
  825. package/src/engine/extensions/NEEDLE_lighting_settings.ts +185 -185
  826. package/src/engine/extensions/NEEDLE_lightmaps.ts +119 -119
  827. package/src/engine/extensions/NEEDLE_persistent_assets.ts +76 -76
  828. package/src/engine/extensions/NEEDLE_render_objects.ts +209 -209
  829. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +640 -640
  830. package/src/engine/extensions/extension_resolver.ts +4 -4
  831. package/src/engine/extensions/extension_utils.ts +166 -166
  832. package/src/engine/extensions/extensions.ts +140 -140
  833. package/src/engine/extensions/index.ts +5 -5
  834. package/src/engine/extensions/usage_tracker.ts +100 -100
  835. package/src/engine/js-extensions/Camera.ts +37 -37
  836. package/src/engine/js-extensions/ExtensionUtils.ts +85 -85
  837. package/src/engine/js-extensions/Layers.ts +23 -23
  838. package/src/engine/js-extensions/Object3D.ts +296 -296
  839. package/src/engine/js-extensions/RGBAColor.ts +126 -126
  840. package/src/engine/js-extensions/Vector.ts +18 -18
  841. package/src/engine/js-extensions/index.ts +4 -4
  842. package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +125 -125
  843. package/src/engine/shaders/shaderData.ts +67 -67
  844. package/src/engine/tests/test_utils.ts +63 -63
  845. package/src/engine/webcomponents/WebXRButtons.ts +260 -260
  846. package/src/engine/webcomponents/api.ts +6 -6
  847. package/src/engine/webcomponents/buttons.ts +292 -292
  848. package/src/engine/webcomponents/fonts.ts +41 -41
  849. package/src/engine/webcomponents/icons.ts +57 -57
  850. package/src/engine/webcomponents/index.ts +1 -1
  851. package/src/engine/webcomponents/logo-element.ts +78 -78
  852. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +573 -573
  853. package/src/engine/webcomponents/needle menu/needle-menu.ts +1118 -1118
  854. package/src/engine/webcomponents/needle-button.ts +181 -181
  855. package/src/engine/webcomponents/needle-engine.ar-overlay.ts +186 -186
  856. package/src/engine/webcomponents/needle-engine.attributes.ts +82 -82
  857. package/src/engine/webcomponents/needle-engine.extras.ts +16 -16
  858. package/src/engine/webcomponents/needle-engine.loading.ts +373 -373
  859. package/src/engine/webcomponents/needle-engine.ts +860 -860
  860. package/src/engine/xr/NeedleXRController.ts +1125 -1125
  861. package/src/engine/xr/NeedleXRSession.ts +1624 -1624
  862. package/src/engine/xr/NeedleXRSync.ts +220 -220
  863. package/src/engine/xr/SceneTransition.ts +78 -78
  864. package/src/engine/xr/TempXRContext.ts +216 -216
  865. package/src/engine/xr/XRRig.ts +9 -9
  866. package/src/engine/xr/api.ts +5 -5
  867. package/src/engine/xr/events.ts +102 -102
  868. package/src/engine/xr/internal.ts +34 -34
  869. package/src/engine/xr/usdz.ts +30 -30
  870. package/src/engine/xr/utils.ts +39 -39
  871. package/src/engine-components/AlignmentConstraint.ts +36 -36
  872. package/src/engine-components/Animation.ts +557 -557
  873. package/src/engine-components/AnimationCurve.ts +150 -150
  874. package/src/engine-components/AnimationUtils.ts +28 -28
  875. package/src/engine-components/AnimationUtilsAutoplay.ts +43 -43
  876. package/src/engine-components/Animator.ts +397 -397
  877. package/src/engine-components/AnimatorController.ts +1293 -1293
  878. package/src/engine-components/AudioListener.ts +92 -92
  879. package/src/engine-components/AudioSource.ts +644 -644
  880. package/src/engine-components/AvatarLoader.ts +263 -263
  881. package/src/engine-components/AxesHelper.ts +59 -59
  882. package/src/engine-components/BasicIKConstraint.ts +54 -54
  883. package/src/engine-components/BoxCollider.ts +1 -1
  884. package/src/engine-components/BoxHelperComponent.ts +114 -114
  885. package/src/engine-components/Camera.ts +719 -719
  886. package/src/engine-components/CameraUtils.ts +138 -138
  887. package/src/engine-components/CharacterController.ts +253 -253
  888. package/src/engine-components/Collider.ts +374 -374
  889. package/src/engine-components/Component.ts +1297 -1297
  890. package/src/engine-components/ContactShadows.ts +506 -506
  891. package/src/engine-components/DeleteBox.ts +62 -62
  892. package/src/engine-components/DeviceFlag.ts +46 -46
  893. package/src/engine-components/DragControls.ts +1623 -1623
  894. package/src/engine-components/DropListener.ts +713 -713
  895. package/src/engine-components/Duplicatable.ts +198 -198
  896. package/src/engine-components/EventList.ts +266 -266
  897. package/src/engine-components/EventTrigger.ts +74 -74
  898. package/src/engine-components/EventType.ts +22 -22
  899. package/src/engine-components/Fog.ts +60 -60
  900. package/src/engine-components/Gizmos.ts +56 -56
  901. package/src/engine-components/GridHelper.ts +48 -48
  902. package/src/engine-components/GroundProjection.ts +356 -356
  903. package/src/engine-components/Interactable.ts +14 -14
  904. package/src/engine-components/Joints.ts +52 -52
  905. package/src/engine-components/LODGroup.ts +153 -153
  906. package/src/engine-components/Light.ts +558 -558
  907. package/src/engine-components/LookAtConstraint.ts +25 -25
  908. package/src/engine-components/NeedleMenu.ts +84 -84
  909. package/src/engine-components/NestedGltf.ts +86 -86
  910. package/src/engine-components/Networking.ts +114 -114
  911. package/src/engine-components/OffsetConstraint.ts +60 -60
  912. package/src/engine-components/OrbitControls.ts +1074 -1074
  913. package/src/engine-components/PlayerColor.ts +103 -103
  914. package/src/engine-components/ReflectionProbe.ts +220 -220
  915. package/src/engine-components/Renderer.ts +903 -903
  916. package/src/engine-components/RendererInstancing.ts +855 -855
  917. package/src/engine-components/RendererLightmap.ts +198 -198
  918. package/src/engine-components/RigidBody.ts +526 -526
  919. package/src/engine-components/SceneSwitcher.ts +1030 -1030
  920. package/src/engine-components/ScreenCapture.ts +592 -592
  921. package/src/engine-components/ShadowCatcher.ts +172 -172
  922. package/src/engine-components/Skybox.ts +475 -475
  923. package/src/engine-components/SmoothFollow.ts +76 -76
  924. package/src/engine-components/SpatialTrigger.ts +229 -229
  925. package/src/engine-components/SpectatorCamera.ts +787 -787
  926. package/src/engine-components/SphereCollider.ts +1 -1
  927. package/src/engine-components/SpriteRenderer.ts +468 -468
  928. package/src/engine-components/SyncedCamera.ts +220 -220
  929. package/src/engine-components/SyncedRoom.ts +380 -380
  930. package/src/engine-components/SyncedTransform.ts +383 -383
  931. package/src/engine-components/TestRunner.ts +118 -118
  932. package/src/engine-components/TransformGizmo.ts +219 -219
  933. package/src/engine-components/VideoPlayer.ts +1025 -1025
  934. package/src/engine-components/Voip.ts +363 -363
  935. package/src/engine-components/api.ts +60 -60
  936. package/src/engine-components/avatar/AvatarBlink_Simple.ts +69 -69
  937. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +63 -63
  938. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +139 -139
  939. package/src/engine-components/avatar/Avatar_MouthShapes.ts +83 -83
  940. package/src/engine-components/avatar/Avatar_MustacheShake.ts +31 -31
  941. package/src/engine-components/codegen/components.ts +217 -217
  942. package/src/engine-components/debug/LogStats.ts +21 -21
  943. package/src/engine-components/export/gltf/GltfExport.ts +265 -265
  944. package/src/engine-components/export/usdz/Extension.ts +24 -24
  945. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +2426 -2426
  946. package/src/engine-components/export/usdz/USDZExporter.ts +705 -705
  947. package/src/engine-components/export/usdz/extensions/Animation.ts +1204 -1204
  948. package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +9 -9
  949. package/src/engine-components/export/usdz/extensions/NodeMaterialConverter.ts +532 -532
  950. package/src/engine-components/export/usdz/extensions/USDZText.ts +240 -240
  951. package/src/engine-components/export/usdz/extensions/USDZUI.ts +189 -189
  952. package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +99 -99
  953. package/src/engine-components/export/usdz/extensions/behavior/AudioExtension.ts +102 -102
  954. package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +320 -320
  955. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +1225 -1225
  956. package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +646 -646
  957. package/src/engine-components/export/usdz/extensions/behavior/PhysicsExtension.ts +132 -132
  958. package/src/engine-components/export/usdz/index.ts +2 -2
  959. package/src/engine-components/export/usdz/utils/animationutils.ts +191 -191
  960. package/src/engine-components/export/usdz/utils/quicklook.ts +50 -50
  961. package/src/engine-components/particlesystem/ParticleSystem.ts +1287 -1287
  962. package/src/engine-components/particlesystem/ParticleSystemModules.ts +1765 -1765
  963. package/src/engine-components/particlesystem/ParticleSystemSubEmitter.ts +111 -111
  964. package/src/engine-components/particlesystem/api.ts +1 -1
  965. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +64 -64
  966. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +116 -116
  967. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +37 -37
  968. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +106 -106
  969. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +103 -103
  970. package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +25 -25
  971. package/src/engine-components/postprocessing/Effects/Pixelation.ts +32 -32
  972. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +90 -90
  973. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +192 -192
  974. package/src/engine-components/postprocessing/Effects/Sharpening.ts +143 -143
  975. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +61 -61
  976. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +103 -103
  977. package/src/engine-components/postprocessing/Effects/Tonemapping.utils.ts +60 -60
  978. package/src/engine-components/postprocessing/Effects/Vignette.ts +59 -59
  979. package/src/engine-components/postprocessing/PostProcessingEffect.ts +192 -192
  980. package/src/engine-components/postprocessing/PostProcessingHandler.ts +572 -572
  981. package/src/engine-components/postprocessing/Volume.ts +426 -426
  982. package/src/engine-components/postprocessing/VolumeParameter.ts +158 -158
  983. package/src/engine-components/postprocessing/VolumeProfile.ts +61 -61
  984. package/src/engine-components/postprocessing/index.ts +5 -5
  985. package/src/engine-components/postprocessing/utils.ts +154 -154
  986. package/src/engine-components/timeline/PlayableDirector.ts +722 -722
  987. package/src/engine-components/timeline/SignalAsset.ts +144 -144
  988. package/src/engine-components/timeline/TimelineModels.ts +92 -92
  989. package/src/engine-components/timeline/TimelineTracks.ts +967 -967
  990. package/src/engine-components/timeline/index.ts +3 -3
  991. package/src/engine-components/ui/BaseUIComponent.ts +203 -203
  992. package/src/engine-components/ui/Button.ts +307 -307
  993. package/src/engine-components/ui/Canvas.ts +419 -419
  994. package/src/engine-components/ui/CanvasGroup.ts +54 -54
  995. package/src/engine-components/ui/EventSystem.ts +854 -854
  996. package/src/engine-components/ui/Graphic.ts +275 -275
  997. package/src/engine-components/ui/Image.ts +112 -112
  998. package/src/engine-components/ui/InputField.ts +321 -321
  999. package/src/engine-components/ui/Interfaces.ts +57 -57
  1000. package/src/engine-components/ui/Layout.ts +334 -334
  1001. package/src/engine-components/ui/Outline.ts +13 -13
  1002. package/src/engine-components/ui/PointerEvents.ts +206 -206
  1003. package/src/engine-components/ui/RaycastUtils.ts +69 -69
  1004. package/src/engine-components/ui/Raycaster.ts +102 -102
  1005. package/src/engine-components/ui/RectTransform.ts +375 -375
  1006. package/src/engine-components/ui/SpatialHtml.ts +79 -79
  1007. package/src/engine-components/ui/Symbols.ts +1 -1
  1008. package/src/engine-components/ui/Text.ts +578 -578
  1009. package/src/engine-components/ui/Utils.ts +113 -113
  1010. package/src/engine-components/utils/EnvironmentScene.ts +245 -245
  1011. package/src/engine-components/utils/LookAt.ts +88 -88
  1012. package/src/engine-components/utils/OpenURL.ts +114 -114
  1013. package/src/engine-components/webxr/Avatar.ts +265 -265
  1014. package/src/engine-components/webxr/TeleportTarget.ts +9 -9
  1015. package/src/engine-components/webxr/WebARCameraBackground.ts +175 -175
  1016. package/src/engine-components/webxr/WebARSessionRoot.ts +880 -880
  1017. package/src/engine-components/webxr/WebXR.ts +585 -585
  1018. package/src/engine-components/webxr/WebXRAvatar.ts +66 -66
  1019. package/src/engine-components/webxr/WebXRImageTracking.ts +519 -519
  1020. package/src/engine-components/webxr/WebXRPlaneTracking.ts +570 -570
  1021. package/src/engine-components/webxr/WebXRRig.ts +77 -77
  1022. package/src/engine-components/webxr/XRFlag.ts +147 -147
  1023. package/src/engine-components/webxr/controllers/XRControllerFollow.ts +118 -118
  1024. package/src/engine-components/webxr/controllers/XRControllerModel.ts +373 -373
  1025. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +550 -550
  1026. package/src/engine-components/webxr/index.ts +2 -2
  1027. package/src/engine-components/webxr/types.ts +3 -3
  1028. package/src/engine-components-experimental/Presentation.ts +12 -12
  1029. package/src/engine-components-experimental/api.ts +4 -4
  1030. package/src/engine-components-experimental/networking/PlayerSync.ts +401 -401
  1031. package/src/engine-schemes/COMPILE_SCHEMES.bat +3 -3
  1032. package/src/engine-schemes/COMPILE_TS.bat +11 -11
  1033. package/src/engine-schemes/README.md +1 -1
  1034. package/src/engine-schemes/api.ts +12 -12
  1035. package/src/engine-schemes/dist/api.js +17 -0
  1036. package/src/engine-schemes/dist/api.js.meta +7 -0
  1037. package/src/engine-schemes/dist/schemes.js +25 -0
  1038. package/src/engine-schemes/dist/schemes.js.meta +7 -0
  1039. package/src/engine-schemes/dist/synced-camera-model.js +74 -0
  1040. package/src/engine-schemes/dist/synced-camera-model.js.meta +7 -0
  1041. package/src/engine-schemes/dist/synced-transform-model.js +73 -0
  1042. package/src/engine-schemes/dist/synced-transform-model.js.meta +7 -0
  1043. package/src/engine-schemes/dist/transform.js +46 -0
  1044. package/src/engine-schemes/dist/transform.js.meta +7 -0
  1045. package/src/engine-schemes/dist/vec2.js +32 -0
  1046. package/src/engine-schemes/dist/vec2.js.meta +7 -0
  1047. package/src/engine-schemes/dist/vec3.js +36 -0
  1048. package/src/engine-schemes/dist/vec3.js.meta +7 -0
  1049. package/src/engine-schemes/dist/vec4.js +40 -0
  1050. package/src/engine-schemes/dist/vec4.js.meta +7 -0
  1051. package/src/engine-schemes/dist/vr-user-state-buffer.js +110 -0
  1052. package/src/engine-schemes/dist/vr-user-state-buffer.js.meta +7 -0
  1053. package/src/engine-schemes/schemes.ts +28 -28
  1054. package/src/engine-schemes/synced-camera-model.ts +92 -92
  1055. package/src/engine-schemes/synced-transform-model.ts +90 -90
  1056. package/src/engine-schemes/syncedCamera.fbs +10 -10
  1057. package/src/engine-schemes/transform.ts +50 -50
  1058. package/src/engine-schemes/transforms.fbs +25 -25
  1059. package/src/engine-schemes/vec.fbs +19 -19
  1060. package/src/engine-schemes/vec2.ts +33 -33
  1061. package/src/engine-schemes/vec3.ts +38 -38
  1062. package/src/engine-schemes/vec4.ts +43 -43
  1063. package/src/engine-schemes/vr-user-state-buffer.ts +145 -145
  1064. package/src/engine-schemes/vrUserStateBuffer.fbs +17 -17
  1065. package/src/include/draco/draco_decoder.js +34 -34
  1066. package/src/include/ktx2/basis_transcoder.js +21 -21
  1067. package/src/include/needle/arial-msdf.json +1471 -1471
  1068. package/src/include/three/DragControls.js +231 -231
  1069. package/src/include/three/EXT_mesh_gpu_instancing_exporter.js +66 -66
  1070. package/src/needle-engine.ts +70 -70
  1071. package/dist/generateMeshBVH.worker-BaNp_Xtp.js +0 -25
  1072. package/dist/gltf-progressive-Bl4okF1b.min.js +0 -8
  1073. package/dist/gltf-progressive-DSpdn0QT.js +0 -1054
  1074. package/dist/gltf-progressive-P8b8a0qY.umd.cjs +0 -8
@@ -1,1054 +0,0 @@
1
- var qe = Object.defineProperty;
2
- var Ae = (o) => {
3
- throw TypeError(o);
4
- };
5
- var Ke = (o, e, t) => e in o ? qe(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
6
- var d = (o, e, t) => Ke(o, typeof e != "symbol" ? e + "" : e, t), Pe = (o, e, t) => e.has(o) || Ae("Cannot " + t);
7
- var m = (o, e, t) => (Pe(o, e, "read from private field"), t ? t.call(o) : e.get(o)), H = (o, e, t) => e.has(o) ? Ae("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(o) : e.set(o, t), F = (o, e, t, s) => (Pe(o, e, "write to private field"), s ? s.call(o, t) : e.set(o, t), t);
8
- import { BufferGeometry as he, Mesh as Z, Texture as se, TextureLoader as Ye, Matrix4 as Ee, Clock as He, MeshStandardMaterial as Je, Sphere as Qe, Box3 as Ce, Vector3 as W } from "./three-DrqIzZTH.js";
9
- import { DRACOLoader as Ze, KTX2Loader as je, MeshoptDecoder as et, GLTFLoader as Te } from "./three-examples-B50TT3Iu.js";
10
- const tt = "";
11
- globalThis.GLTF_PROGRESSIVE_VERSION = tt;
12
- console.debug("[gltf-progressive] version -");
13
- let N = "https://www.gstatic.com/draco/versioned/decoders/1.5.7/", j = "https://www.gstatic.com/basis-universal/versioned/2021-04-15-ba1c3e4/";
14
- const st = N, rt = j, Ge = new URL(N + "draco_decoder.js");
15
- Ge.searchParams.append("range", "true");
16
- fetch(Ge, {
17
- method: "GET",
18
- headers: {
19
- Range: "bytes=0-1"
20
- }
21
- }).catch((o) => {
22
- console.debug(`Failed to fetch remote Draco decoder from ${N} (offline: ${typeof navigator < "u" ? navigator.onLine : "unknown"})`), N === st && nt("./include/draco/"), j === rt && it("./include/ktx2/");
23
- }).finally(() => {
24
- $e();
25
- });
26
- function nt(o) {
27
- N = o, C && C[Oe] != N ? (console.debug("Updating Draco decoder path to " + o), C[Oe] = N, C.setDecoderPath(N), C.preload()) : console.debug("Setting Draco decoder path to " + o);
28
- }
29
- function it(o) {
30
- j = o, G && G.transcoderPath != j ? (console.debug("Updating KTX2 transcoder path to " + o), G.setTranscoderPath(j), G.init()) : console.debug("Setting KTX2 transcoder path to " + o);
31
- }
32
- const Oe = Symbol("dracoDecoderPath");
33
- let C, ge, G;
34
- function $e() {
35
- C || (C = new Ze(), C[Oe] = N, C.setDecoderPath(N), C.setDecoderConfig({ type: "js" }), C.preload()), G || (G = new je(), G.setTranscoderPath(j), G.init()), ge || (ge = et);
36
- }
37
- function Ue(o) {
38
- return $e(), o ? G.detectSupport(o) : o !== null && console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures might fail"), { dracoLoader: C, ktx2Loader: G, meshoptDecoder: ge };
39
- }
40
- function Fe(o) {
41
- o.dracoLoader || o.setDRACOLoader(C), o.ktx2Loader || o.setKTX2Loader(G), o.meshoptDecoder || o.setMeshoptDecoder(ge);
42
- }
43
- const _e = /* @__PURE__ */ new WeakMap();
44
- function Ne(o, e) {
45
- let t = _e.get(o);
46
- t ? t = Object.assign(t, e) : t = e, _e.set(o, t);
47
- }
48
- const De = Te.prototype.load;
49
- function ot(...o) {
50
- const e = _e.get(this);
51
- let t = o[0];
52
- const s = new URL(t, window.location.href);
53
- if (s.hostname.endsWith("needle.tools")) {
54
- const r = (e == null ? void 0 : e.progressive) !== void 0 ? e.progressive : !0, n = e != null && e.usecase ? e.usecase : "default";
55
- r ? this.requestHeader.Accept = `*/*;progressive=allowed;usecase=${n}` : this.requestHeader.Accept = `*/*;usecase=${n}`, t = s.toString();
56
- }
57
- return o[0] = t, De == null ? void 0 : De.call(this, ...o);
58
- }
59
- Te.prototype.load = ot;
60
- ae("debugprogressive");
61
- function ae(o) {
62
- if (typeof window > "u") return !1;
63
- const t = new URL(window.location.href).searchParams.get(o);
64
- return t == null || t === "0" || t === "false" ? !1 : t === "" ? !0 : t;
65
- }
66
- function at(o, e) {
67
- if (e === void 0 || e.startsWith("./") || e.startsWith("http") || o === void 0)
68
- return e;
69
- const t = o.lastIndexOf("/");
70
- if (t >= 0) {
71
- const s = o.substring(0, t + 1);
72
- for (; s.endsWith("/") && e.startsWith("/"); ) e = e.substring(1);
73
- return s + e;
74
- }
75
- return e;
76
- }
77
- let re;
78
- function lt() {
79
- return re !== void 0 || (re = /iPhone|iPad|iPod|Android|IEMobile/i.test(navigator.userAgent), ae("debugprogressive") && console.log("[glTF Progressive]: isMobileDevice", re)), re;
80
- }
81
- const ct = typeof window > "u" && typeof document > "u", be = Symbol("needle:raycast-mesh");
82
- function le(o) {
83
- return (o == null ? void 0 : o[be]) instanceof he ? o[be] : null;
84
- }
85
- function ut(o, e) {
86
- if ((o.type === "Mesh" || o.type === "SkinnedMesh") && !le(o)) {
87
- const s = dt(e);
88
- s.userData = { isRaycastMesh: !0 }, o[be] = s;
89
- }
90
- }
91
- function ft(o = !0) {
92
- if (o) {
93
- if (ne) return;
94
- const e = ne = Z.prototype.raycast;
95
- Z.prototype.raycast = function(t, s) {
96
- const i = this, r = le(i);
97
- let n;
98
- r && i.isMesh && (n = i.geometry, i.geometry = r), e.call(this, t, s), n && (i.geometry = n);
99
- };
100
- } else {
101
- if (!ne) return;
102
- Z.prototype.raycast = ne, ne = null;
103
- }
104
- }
105
- let ne = null;
106
- function dt(o) {
107
- const e = new he();
108
- for (const t in o.attributes)
109
- e.setAttribute(t, o.getAttribute(t));
110
- return e.setIndex(o.getIndex()), e;
111
- }
112
- const Q = new Array(), X = "NEEDLE_progressive", L = ae("debugprogressive"), Me = Symbol("needle-progressive-texture"), oe = /* @__PURE__ */ new Map(), Se = /* @__PURE__ */ new Set();
113
- if (L) {
114
- let o = function() {
115
- e += 1, console.log("Toggle LOD level", e, oe), oe.forEach((i, r) => {
116
- for (const n of i.keys) {
117
- const a = r[n];
118
- if (a != null)
119
- if (a.isBufferGeometry === !0) {
120
- const l = z.getMeshLODInformation(a), u = l ? Math.min(e, l.lods.length) : 0;
121
- r["DEBUG:LOD"] = u, l && (t = Math.max(t, l.lods.length - 1));
122
- } else r.isMaterial === !0 && (r["DEBUG:LOD"] = e);
123
- }
124
- }), e >= t && (e = -1);
125
- }, e = -1, t = 2, s = !1;
126
- window.addEventListener("keyup", (i) => {
127
- i.key === "p" && o(), i.key === "w" && (s = !s, Se && Se.forEach((r) => {
128
- r.name != "BackgroundCubeMaterial" && r.glyphMap == null && "wireframe" in r && (r.wireframe = s);
129
- }));
130
- });
131
- }
132
- function Be(o, e, t) {
133
- var i;
134
- if (!L) return;
135
- oe.has(o) || oe.set(o, { keys: [], sourceId: t });
136
- const s = oe.get(o);
137
- ((i = s == null ? void 0 : s.keys) == null ? void 0 : i.includes(e)) == !1 && s.keys.push(e);
138
- }
139
- const x = class x {
140
- constructor(e, t) {
141
- d(this, "parser");
142
- d(this, "url");
143
- d(this, "_isLoadingMesh");
144
- d(this, "loadMesh", (e) => {
145
- var s, i;
146
- if (this._isLoadingMesh) return null;
147
- const t = (i = (s = this.parser.json.meshes[e]) == null ? void 0 : s.extensions) == null ? void 0 : i[X];
148
- return t ? (this._isLoadingMesh = !0, this.parser.getDependency("mesh", e).then((r) => {
149
- var n;
150
- return this._isLoadingMesh = !1, r && x.registerMesh(this.url, t.guid, r, (n = t.lods) == null ? void 0 : n.length, void 0, t), r;
151
- })) : null;
152
- });
153
- L && console.log("Progressive extension registered for", t), this.parser = e, this.url = t;
154
- }
155
- /** The name of the extension */
156
- get name() {
157
- return X;
158
- }
159
- static getMeshLODInformation(e) {
160
- const t = this.getAssignedLODInformation(e);
161
- return t != null && t.key ? this.lodInfos.get(t.key) : null;
162
- }
163
- static getMaterialMinMaxLODsCount(e, t) {
164
- const s = this, i = "LODS:minmax", r = e[i];
165
- if (r != null) return r;
166
- if (t || (t = {
167
- min_count: 1 / 0,
168
- max_count: 0,
169
- lods: []
170
- }), Array.isArray(e)) {
171
- for (const a of e)
172
- this.getMaterialMinMaxLODsCount(a, t);
173
- return e[i] = t, t;
174
- }
175
- if (L === "verbose" && console.log("getMaterialMinMaxLODsCount", e), e.type === "ShaderMaterial" || e.type === "RawShaderMaterial") {
176
- const a = e;
177
- for (const l of Object.keys(a.uniforms)) {
178
- const u = a.uniforms[l].value;
179
- (u == null ? void 0 : u.isTexture) === !0 && n(u, t);
180
- }
181
- } else if (e.isMaterial)
182
- for (const a of Object.keys(e)) {
183
- const l = e[a];
184
- (l == null ? void 0 : l.isTexture) === !0 && n(l, t);
185
- }
186
- return e[i] = t, t;
187
- function n(a, l) {
188
- const u = s.getAssignedLODInformation(a);
189
- if (u) {
190
- const c = s.lodInfos.get(u.key);
191
- if (c && c.lods) {
192
- l.min_count = Math.min(l.min_count, c.lods.length), l.max_count = Math.max(l.max_count, c.lods.length);
193
- for (let g = 0; g < c.lods.length; g++) {
194
- const p = c.lods[g];
195
- p.width && (l.lods[g] = l.lods[g] || { min_height: 1 / 0, max_height: 0 }, l.lods[g].min_height = Math.min(l.lods[g].min_height, p.height), l.lods[g].max_height = Math.max(l.lods[g].max_height, p.height));
196
- }
197
- }
198
- }
199
- }
200
- }
201
- /** Check if a LOD level is available for a mesh or a texture
202
- * @param obj the mesh or texture to check
203
- * @param level the level of detail to check for (0 is the highest resolution). If undefined, the function checks if any LOD level is available
204
- * @returns true if the LOD level is available (or if any LOD level is available if level is undefined)
205
- */
206
- static hasLODLevelAvailable(e, t) {
207
- var r;
208
- if (Array.isArray(e)) {
209
- for (const n of e)
210
- if (this.hasLODLevelAvailable(n, t)) return !0;
211
- return !1;
212
- }
213
- if (e.isMaterial === !0) {
214
- for (const n of Object.keys(e)) {
215
- const a = e[n];
216
- if (a && a.isTexture && this.hasLODLevelAvailable(a, t))
217
- return !0;
218
- }
219
- return !1;
220
- } else if (e.isGroup === !0) {
221
- for (const n of e.children)
222
- if (n.isMesh === !0 && this.hasLODLevelAvailable(n, t))
223
- return !0;
224
- }
225
- let s, i;
226
- if (e.isMesh ? s = e.geometry : (e.isBufferGeometry || e.isTexture) && (s = e), s && (r = s == null ? void 0 : s.userData) != null && r.LODS) {
227
- const n = s.userData.LODS;
228
- if (i = this.lodInfos.get(n.key), t === void 0) return i != null;
229
- if (i)
230
- return Array.isArray(i.lods) ? t < i.lods.length : t === 0;
231
- }
232
- return !1;
233
- }
234
- /** Load a different resolution of a mesh (if available)
235
- * @param context the context
236
- * @param source the sourceid of the file from which the mesh is loaded (this is usually the component's sourceId)
237
- * @param mesh the mesh to load the LOD for
238
- * @param level the level of detail to load (0 is the highest resolution)
239
- * @returns a promise that resolves to the mesh with the requested LOD level
240
- * @example
241
- * ```javascript
242
- * const mesh = this.gameObject as Mesh;
243
- * NEEDLE_progressive.assignMeshLOD(context, sourceId, mesh, 1).then(mesh => {
244
- * console.log("Mesh with LOD level 1 loaded", mesh);
245
- * });
246
- * ```
247
- */
248
- static assignMeshLOD(e, t) {
249
- var s;
250
- if (!e) return Promise.resolve(null);
251
- if (e instanceof Z || e.isMesh === !0) {
252
- const i = e.geometry, r = this.getAssignedLODInformation(i);
253
- if (!r)
254
- return Promise.resolve(null);
255
- for (const n of Q)
256
- (s = n.onBeforeGetLODMesh) == null || s.call(n, e, t);
257
- return e["LOD:requested level"] = t, x.getOrLoadLOD(i, t).then((n) => {
258
- if (Array.isArray(n)) {
259
- const a = r.index || 0;
260
- n = n[a];
261
- }
262
- return e["LOD:requested level"] === t && (delete e["LOD:requested level"], n && i != n && ((n == null ? void 0 : n.isBufferGeometry) ? (e.geometry = n, L && Be(e, "geometry", r.url)) : L && console.error("Invalid LOD geometry", n))), n;
263
- }).catch((n) => (console.error("Error loading mesh LOD", e, n), null));
264
- } else L && console.error("Invalid call to assignMeshLOD: Request mesh LOD but the object is not a mesh", e);
265
- return Promise.resolve(null);
266
- }
267
- static assignTextureLOD(e, t = 0) {
268
- if (!e) return Promise.resolve(null);
269
- if (e.isMesh === !0) {
270
- const s = e;
271
- if (Array.isArray(s.material)) {
272
- const i = new Array();
273
- for (const r of s.material) {
274
- const n = this.assignTextureLOD(r, t);
275
- i.push(n);
276
- }
277
- return Promise.all(i).then((r) => {
278
- const n = new Array();
279
- for (const a of r)
280
- Array.isArray(a) && n.push(...a);
281
- return n;
282
- });
283
- } else
284
- return this.assignTextureLOD(s.material, t);
285
- }
286
- if (e.isMaterial === !0) {
287
- const s = e, i = [], r = new Array();
288
- if (L && Se.add(s), s.uniforms && (s.isRawShaderMaterial || s.isShaderMaterial === !0)) {
289
- const n = s;
290
- for (const a of Object.keys(n.uniforms)) {
291
- const l = n.uniforms[a].value;
292
- if ((l == null ? void 0 : l.isTexture) === !0) {
293
- const u = this.assignTextureLODForSlot(l, t, s, a).then((c) => (c && n.uniforms[a].value != c && (n.uniforms[a].value = c, n.uniformsNeedUpdate = !0), c));
294
- i.push(u), r.push(a);
295
- }
296
- }
297
- } else
298
- for (const n of Object.keys(s)) {
299
- const a = s[n];
300
- if ((a == null ? void 0 : a.isTexture) === !0) {
301
- const l = this.assignTextureLODForSlot(a, t, s, n);
302
- i.push(l), r.push(n);
303
- }
304
- }
305
- return Promise.all(i).then((n) => {
306
- const a = new Array();
307
- for (let l = 0; l < n.length; l++) {
308
- const u = n[l], c = r[l];
309
- u && u.isTexture === !0 ? a.push({ material: s, slot: c, texture: u, level: t }) : a.push({ material: s, slot: c, texture: null, level: t });
310
- }
311
- return a;
312
- });
313
- }
314
- if (e instanceof se || e.isTexture === !0) {
315
- const s = e;
316
- return this.assignTextureLODForSlot(s, t, null, null);
317
- }
318
- return Promise.resolve(null);
319
- }
320
- static assignTextureLODForSlot(e, t, s, i) {
321
- return (e == null ? void 0 : e.isTexture) !== !0 ? Promise.resolve(null) : i === "glyphMap" ? Promise.resolve(e) : x.getOrLoadLOD(e, t).then((r) => {
322
- if (Array.isArray(r)) return null;
323
- if ((r == null ? void 0 : r.isTexture) === !0) {
324
- if (r != e) {
325
- if (s && i) {
326
- const n = s[i];
327
- if (n && !L) {
328
- const a = this.getAssignedLODInformation(n);
329
- if (a && (a == null ? void 0 : a.level) < t)
330
- return L === "verbose" && console.warn("Assigned texture level is already higher: ", a.level, t, s, n, r), null;
331
- }
332
- s[i] = r;
333
- }
334
- if (L && i && s) {
335
- const n = this.getAssignedLODInformation(e);
336
- n ? Be(s, i, n.url) : console.warn("No LOD info for texture", e);
337
- }
338
- }
339
- return r;
340
- } else L == "verbose" && console.warn("No LOD found for", e, t);
341
- return null;
342
- }).catch((r) => (console.error("Error loading LOD", e, r), null));
343
- }
344
- afterRoot(e) {
345
- var t, s;
346
- return L && console.log("AFTER", this.url, e), (t = this.parser.json.textures) == null || t.forEach((i, r) => {
347
- var n;
348
- if (i != null && i.extensions) {
349
- const a = i == null ? void 0 : i.extensions[X];
350
- if (a) {
351
- if (!a.lods) {
352
- L && console.warn("Texture has no LODs", a);
353
- return;
354
- }
355
- let l = !1;
356
- for (const u of this.parser.associations.keys())
357
- if (u.isTexture === !0) {
358
- const c = this.parser.associations.get(u);
359
- (c == null ? void 0 : c.textures) === r && (l = !0, x.registerTexture(this.url, u, (n = a.lods) == null ? void 0 : n.length, r, a));
360
- }
361
- l || this.parser.getDependency("texture", r).then((u) => {
362
- var c;
363
- u && x.registerTexture(this.url, u, (c = a.lods) == null ? void 0 : c.length, r, a);
364
- });
365
- }
366
- }
367
- }), (s = this.parser.json.meshes) == null || s.forEach((i, r) => {
368
- if (i != null && i.extensions) {
369
- const n = i == null ? void 0 : i.extensions[X];
370
- if (n && n.lods) {
371
- for (const a of this.parser.associations.keys())
372
- if (a.isMesh) {
373
- const l = this.parser.associations.get(a);
374
- (l == null ? void 0 : l.meshes) === r && x.registerMesh(this.url, n.guid, a, n.lods.length, l.primitives, n);
375
- }
376
- }
377
- }
378
- }), null;
379
- }
380
- static async getOrLoadLOD(e, t) {
381
- var a, l, u, c;
382
- const s = L == "verbose", i = e.userData.LODS;
383
- if (!i)
384
- return null;
385
- const r = i == null ? void 0 : i.key;
386
- let n;
387
- if (e.isTexture === !0) {
388
- const g = e;
389
- g.source && g.source[Me] && (n = g.source[Me]);
390
- }
391
- if (n || (n = x.lodInfos.get(r)), n) {
392
- if (t > 0) {
393
- let v = !1;
394
- const O = Array.isArray(n.lods);
395
- if (O && t >= n.lods.length ? v = !0 : O || (v = !0), v)
396
- return this.lowresCache.get(r);
397
- }
398
- const g = Array.isArray(n.lods) ? (a = n.lods[t]) == null ? void 0 : a.path : n.lods;
399
- if (!g)
400
- return L && !n["missing:uri"] && (n["missing:uri"] = !0, console.warn("Missing uri for progressive asset for LOD " + t, n)), null;
401
- const p = at(i.url, g);
402
- if (p.endsWith(".glb") || p.endsWith(".gltf")) {
403
- if (!n.guid)
404
- return console.warn("missing pointer for glb/gltf texture", n), null;
405
- const v = p + "_" + n.guid, O = this.previouslyLoaded.get(v);
406
- if (O !== void 0) {
407
- s && console.log(`LOD ${t} was already loading/loaded: ${v}`);
408
- let h = await O.catch((U) => (console.error(`Error loading LOD ${t} from ${p}
409
- `, U), null)), B = !1;
410
- if (h == null || (h instanceof se && e instanceof se ? (l = h.image) != null && l.data || (u = h.source) != null && u.data ? h = this.copySettings(e, h) : (B = !0, this.previouslyLoaded.delete(v)) : h instanceof he && e instanceof he && ((c = h.attributes.position) != null && c.array || (B = !0, this.previouslyLoaded.delete(v)))), !B)
411
- return h;
412
- }
413
- const D = n, $ = new Promise(async (h, B) => {
414
- const U = new Te();
415
- Fe(U), L && (await new Promise((S) => setTimeout(S, 1e3)), s && console.warn("Start loading (delayed) " + p, D.guid));
416
- let k = p;
417
- if (D && Array.isArray(D.lods)) {
418
- const S = D.lods[t];
419
- S.hash && (k += "?v=" + S.hash);
420
- }
421
- const A = await U.loadAsync(k).catch((S) => (console.error(`Error loading LOD ${t} from ${p}
422
- `, S), null));
423
- if (!A) return null;
424
- const V = A.parser;
425
- s && console.log("Loading finished " + p, D.guid);
426
- let b = 0;
427
- if (A.parser.json.textures) {
428
- let S = !1;
429
- for (const f of A.parser.json.textures) {
430
- if (f != null && f.extensions) {
431
- const y = f == null ? void 0 : f.extensions[X];
432
- if (y != null && y.guid && y.guid === D.guid) {
433
- S = !0;
434
- break;
435
- }
436
- }
437
- b++;
438
- }
439
- if (S) {
440
- let f = await V.getDependency("texture", b);
441
- return f && x.assignLODInformation(i.url, f, r, t, void 0, void 0), s && console.log('change "' + e.name + '" → "' + f.name + '"', p, b, f, v), e instanceof se && (f = this.copySettings(e, f)), f && (f.guid = D.guid), h(f);
442
- } else L && console.warn("Could not find texture with guid", D.guid, A.parser.json);
443
- }
444
- if (b = 0, A.parser.json.meshes) {
445
- let S = !1;
446
- for (const f of A.parser.json.meshes) {
447
- if (f != null && f.extensions) {
448
- const y = f == null ? void 0 : f.extensions[X];
449
- if (y != null && y.guid && y.guid === D.guid) {
450
- S = !0;
451
- break;
452
- }
453
- }
454
- b++;
455
- }
456
- if (S) {
457
- const f = await V.getDependency("mesh", b), y = D;
458
- if (s && console.log(`Loaded Mesh "${f.name}"`, p, b, f, v), f.isMesh === !0) {
459
- const _ = f.geometry;
460
- return x.assignLODInformation(i.url, _, r, t, void 0, y.density), h(_);
461
- } else {
462
- const _ = new Array();
463
- for (let T = 0; T < f.children.length; T++) {
464
- const P = f.children[T];
465
- if (P.isMesh === !0) {
466
- const Y = P.geometry;
467
- x.assignLODInformation(i.url, Y, r, t, T, y.density), _.push(Y);
468
- }
469
- }
470
- return h(_);
471
- }
472
- } else L && console.warn("Could not find mesh with guid", D.guid, A.parser.json);
473
- }
474
- return h(null);
475
- });
476
- return this.previouslyLoaded.set(v, $), await $;
477
- } else if (e instanceof se) {
478
- s && console.log("Load texture from uri: " + p);
479
- const O = await new Ye().loadAsync(p);
480
- return O ? (O.guid = n.guid, O.flipY = !1, O.needsUpdate = !0, O.colorSpace = e.colorSpace, s && console.log(n, O)) : L && console.warn("failed loading", p), O;
481
- }
482
- } else
483
- L && console.warn(`Can not load LOD ${t}: no LOD info found for "${r}" ${e.name}`, e.type);
484
- return null;
485
- }
486
- static assignLODInformation(e, t, s, i, r, n) {
487
- if (!t) return;
488
- t.userData || (t.userData = {});
489
- const a = new ht(e, s, i, r, n);
490
- t.userData.LODS = a;
491
- }
492
- static getAssignedLODInformation(e) {
493
- var t;
494
- return ((t = e == null ? void 0 : e.userData) == null ? void 0 : t.LODS) || null;
495
- }
496
- // private static readonly _copiedTextures: WeakMap<Texture, Texture> = new Map();
497
- static copySettings(e, t) {
498
- return t ? (L && console.warn(`Copy texture settings
499
- `, e.uuid, `
500
- `, t.uuid), t = t.clone(), t.offset = e.offset, t.repeat = e.repeat, t.colorSpace = e.colorSpace, t.magFilter = e.magFilter, t.minFilter = e.minFilter, t.wrapS = e.wrapS, t.wrapT = e.wrapT, t.flipY = e.flipY, t.anisotropy = e.anisotropy, t.mipmaps || (t.generateMipmaps = e.generateMipmaps), t) : e;
501
- }
502
- };
503
- /**
504
- * Register a texture with LOD information
505
- */
506
- d(x, "registerTexture", (e, t, s, i, r) => {
507
- if (L && console.log("> Progressive: register texture", i, t.name, t.uuid, t, r), !t) {
508
- L && console.error("gltf-progressive: Register texture without texture");
509
- return;
510
- }
511
- t.source && (t.source[Me] = r);
512
- const n = r.guid;
513
- x.assignLODInformation(e, t, n, s, i, void 0), x.lodInfos.set(n, r), x.lowresCache.set(n, t);
514
- }), /**
515
- * Register a mesh with LOD information
516
- */
517
- d(x, "registerMesh", (e, t, s, i, r, n) => {
518
- var u;
519
- L && console.log("> Progressive: register mesh", r, s.name, n, s.uuid, s);
520
- const a = s.geometry;
521
- if (!a) {
522
- L && console.warn("gltf-progressive: Register mesh without geometry");
523
- return;
524
- }
525
- a.userData || (a.userData = {}), x.assignLODInformation(e, a, t, i, r, n.density), x.lodInfos.set(t, n);
526
- let l = x.lowresCache.get(t);
527
- l ? l.push(s.geometry) : l = [s.geometry], x.lowresCache.set(t, l), i > 0 && !le(s) && ut(s, a);
528
- for (const c of Q)
529
- (u = c.onRegisteredNewMesh) == null || u.call(c, s, n);
530
- }), /** A map of key = asset uuid and value = LOD information */
531
- d(x, "lodInfos", /* @__PURE__ */ new Map()), /** cache of already loaded mesh lods */
532
- d(x, "previouslyLoaded", /* @__PURE__ */ new Map()), /** this contains the geometry/textures that were originally loaded */
533
- d(x, "lowresCache", /* @__PURE__ */ new Map());
534
- let z = x;
535
- class ht {
536
- constructor(e, t, s, i, r) {
537
- d(this, "url");
538
- /** the key to lookup the LOD information */
539
- d(this, "key");
540
- d(this, "level");
541
- /** For multi objects (e.g. a group of meshes) this is the index of the object */
542
- d(this, "index");
543
- /** the mesh density */
544
- d(this, "density");
545
- this.url = e, this.key = t, this.level = s, i != null && (this.index = i), r != null && (this.density = r);
546
- }
547
- }
548
- const R = ae("debugprogressive"), gt = ae("noprogressive"), we = Symbol("Needle:LODSManager"), ve = Symbol("Needle:LODState"), J = Symbol("Needle:CurrentLOD"), I = { mesh_lod: -1, texture_lod: -1 };
549
- var w, E, q, ye, ee, te, me, K;
550
- let pe = (w = class {
551
- // readonly plugins: NEEDLE_progressive_plugin[] = [];
552
- constructor(e, t) {
553
- d(this, "context");
554
- d(this, "renderer");
555
- d(this, "projectionScreenMatrix", new Ee());
556
- /**
557
- * The target triangle density is the desired max amount of triangles on screen when the mesh is filling the screen.
558
- * @default 200_000
559
- */
560
- d(this, "targetTriangleDensity", 2e5);
561
- /**
562
- * The update interval in frames. If set to 0, the LODs will be updated every frame. If set to 2, the LODs will be updated every second frame, etc.
563
- * @default "auto"
564
- */
565
- d(this, "updateInterval", "auto");
566
- H(this, E, 1);
567
- /**
568
- * If set to true, the LODsManager will not update the LODs.
569
- * @default false
570
- */
571
- d(this, "pause", !1);
572
- /**
573
- * When set to true the LODsManager will not update the LODs. This can be used to manually update the LODs using the `update` method.
574
- * Otherwise the LODs will be updated automatically when the renderer renders the scene.
575
- * @default false
576
- */
577
- d(this, "manual", !1);
578
- d(this, "_lodchangedlisteners", []);
579
- H(this, q);
580
- H(this, ye, new He());
581
- H(this, ee, 0);
582
- H(this, te, 0);
583
- H(this, me, 0);
584
- H(this, K, 0);
585
- d(this, "_fpsBuffer", [60, 60, 60, 60, 60]);
586
- // private testIfLODLevelsAreAvailable() {
587
- d(this, "_sphere", new Qe());
588
- d(this, "_tempBox", new Ce());
589
- d(this, "_tempBox2", new Ce());
590
- d(this, "tempMatrix", new Ee());
591
- d(this, "_tempWorldPosition", new W());
592
- d(this, "_tempBoxSize", new W());
593
- d(this, "_tempBox2Size", new W());
594
- this.renderer = e, this.context = { ...t };
595
- }
596
- /** @internal */
597
- static getObjectLODState(e) {
598
- return e[ve];
599
- }
600
- static addPlugin(e) {
601
- Q.push(e);
602
- }
603
- static removePlugin(e) {
604
- const t = Q.indexOf(e);
605
- t >= 0 && Q.splice(t, 1);
606
- }
607
- /**
608
- * Gets the LODsManager for the given renderer. If the LODsManager does not exist yet, it will be created.
609
- * @param renderer The renderer to get the LODsManager for.
610
- * @returns The LODsManager instance.
611
- */
612
- static get(e, t) {
613
- if (e[we])
614
- return console.debug("[gltf-progressive] LODsManager already exists for this renderer"), e[we];
615
- const s = new w(e, {
616
- engine: "unknown",
617
- ...t
618
- });
619
- return e[we] = s, s;
620
- }
621
- /** @deprecated use static `LODsManager.addPlugin()` method. This getter will be removed in later versions */
622
- get plugins() {
623
- return Q;
624
- }
625
- addEventListener(e, t) {
626
- e === "changed" && this._lodchangedlisteners.push(t);
627
- }
628
- removeEventListener(e, t) {
629
- if (e === "changed") {
630
- const s = this._lodchangedlisteners.indexOf(t);
631
- s >= 0 && this._lodchangedlisteners.splice(s, 1);
632
- }
633
- }
634
- /**
635
- * Enable the LODsManager. This will replace the render method of the renderer with a method that updates the LODs.
636
- */
637
- enable() {
638
- if (m(this, q)) return;
639
- console.debug("[gltf-progressive] Enabling LODsManager for renderer");
640
- let e = 0;
641
- F(this, q, this.renderer.render);
642
- const t = this;
643
- Ue(this.renderer), this.renderer.render = function(s, i) {
644
- const r = t.renderer.getRenderTarget();
645
- (r == null || "isXRRenderTarget" in r && r.isXRRenderTarget) && (e = 0, F(t, ee, m(t, ee) + 1), F(t, te, m(t, ye).getDelta()), F(t, me, m(t, me) + m(t, te)), t._fpsBuffer.shift(), t._fpsBuffer.push(1 / m(t, te)), F(t, K, t._fpsBuffer.reduce((a, l) => a + l) / t._fpsBuffer.length), R && m(t, ee) % 200 === 0 && console.log("FPS", Math.round(m(t, K)), "Interval:", m(t, E)));
646
- const n = e++;
647
- m(t, q).call(this, s, i), t.onAfterRender(s, i, n);
648
- };
649
- }
650
- disable() {
651
- m(this, q) && (console.debug("[gltf-progressive] Disabling LODsManager for renderer"), this.renderer.render = m(this, q), F(this, q, void 0));
652
- }
653
- update(e, t) {
654
- this.internalUpdate(e, t);
655
- }
656
- onAfterRender(e, t, s) {
657
- if (this.pause) return;
658
- const r = this.renderer.renderLists.get(e, 0).opaque;
659
- let n = !0;
660
- if (r.length === 1) {
661
- const a = r[0].material;
662
- (a.name === "EffectMaterial" || a.name === "CopyShader") && (n = !1);
663
- }
664
- if ((t.parent && t.parent.type === "CubeCamera" || s >= 1 && t.type === "OrthographicCamera") && (n = !1), n) {
665
- if (gt || (this.updateInterval === "auto" ? m(this, K) < 40 && m(this, E) < 10 ? (F(this, E, m(this, E) + 1), R && console.warn("↓ Reducing LOD updates", m(this, E), m(this, K).toFixed(0))) : m(this, K) >= 60 && m(this, E) > 1 && (F(this, E, m(this, E) - 1), R && console.warn("↑ Increasing LOD updates", m(this, E), m(this, K).toFixed(0))) : F(this, E, this.updateInterval), m(this, E) > 0 && m(this, ee) % m(this, E) != 0))
666
- return;
667
- this.internalUpdate(e, t);
668
- }
669
- }
670
- /**
671
- * Update LODs in a scene
672
- */
673
- internalUpdate(e, t) {
674
- var l, u;
675
- const s = this.renderer.renderLists.get(e, 0), i = s.opaque;
676
- this.projectionScreenMatrix.multiplyMatrices(t.projectionMatrix, t.matrixWorldInverse);
677
- const r = this.targetTriangleDensity;
678
- for (const c of i) {
679
- if (c.material && (((l = c.geometry) == null ? void 0 : l.type) === "BoxGeometry" || ((u = c.geometry) == null ? void 0 : u.type) === "BufferGeometry") && (c.material.name === "SphericalGaussianBlur" || c.material.name == "BackgroundCubeMaterial" || c.material.name === "CubemapFromEquirect" || c.material.name === "EquirectangularToCubeUV")) {
680
- R && (c.material["NEEDLE_PROGRESSIVE:IGNORE-WARNING"] || (c.material["NEEDLE_PROGRESSIVE:IGNORE-WARNING"] = !0, console.warn("Ignoring skybox or BLIT object", c, c.material.name, c.material.type)));
681
- continue;
682
- }
683
- switch (c.material.type) {
684
- case "LineBasicMaterial":
685
- case "LineDashedMaterial":
686
- case "PointsMaterial":
687
- case "ShadowMaterial":
688
- case "MeshDistanceMaterial":
689
- case "MeshDepthMaterial":
690
- continue;
691
- }
692
- if (R === "color" && c.material && !c.object.progressive_debug_color) {
693
- c.object.progressive_debug_color = !0;
694
- const p = Math.random() * 16777215, v = new Je({ color: p });
695
- c.object.material = v;
696
- }
697
- const g = c.object;
698
- (g instanceof Z || g.isMesh) && this.updateLODs(e, t, g, r);
699
- }
700
- const n = s.transparent;
701
- for (const c of n) {
702
- const g = c.object;
703
- (g instanceof Z || g.isMesh) && this.updateLODs(e, t, g, r);
704
- }
705
- const a = s.transmissive;
706
- for (const c of a) {
707
- const g = c.object;
708
- (g instanceof Z || g.isMesh) && this.updateLODs(e, t, g, r);
709
- }
710
- }
711
- /** Update the LOD levels for the renderer. */
712
- updateLODs(e, t, s, i) {
713
- var a, l;
714
- s.userData || (s.userData = {});
715
- let r = s[ve];
716
- if (r || (r = new pt(), s[ve] = r), r.frames++ < 2)
717
- return;
718
- for (const u of Q)
719
- (a = u.onBeforeUpdateLOD) == null || a.call(u, this.renderer, e, t, s);
720
- this.calculateLodLevel(t, s, r, i, I), I.mesh_lod = Math.round(I.mesh_lod), I.texture_lod = Math.round(I.texture_lod), I.mesh_lod >= 0 && this.loadProgressiveMeshes(s, I.mesh_lod);
721
- let n = I.texture_lod;
722
- s.material && n >= 0 && this.loadProgressiveTextures(s.material, n);
723
- for (const u of Q)
724
- (l = u.onAfterUpdatedLOD) == null || l.call(u, this.renderer, e, t, s, I);
725
- r.lastLodLevel_Mesh = I.mesh_lod, r.lastLodLevel_Texture = I.texture_lod;
726
- }
727
- /** Load progressive textures for the given material
728
- * @param material the material to load the textures for
729
- * @param level the LOD level to load. Level 0 is the best quality, higher levels are lower quality
730
- * @returns Promise with true if the LOD was loaded, false if not
731
- */
732
- loadProgressiveTextures(e, t) {
733
- if (!e) return;
734
- if (Array.isArray(e)) {
735
- for (const r of e)
736
- this.loadProgressiveTextures(r, t);
737
- return;
738
- }
739
- let s = !1;
740
- (e[J] === void 0 || t < e[J]) && (s = !0);
741
- const i = e["DEBUG:LOD"];
742
- i != null && (s = e[J] != i, t = i), s && (e[J] = t, z.assignTextureLOD(e, t).then((r) => {
743
- this._lodchangedlisteners.forEach((n) => n({ type: "texture", level: t, object: e }));
744
- }));
745
- }
746
- /** Load progressive meshes for the given mesh
747
- * @param mesh the mesh to load the LOD for
748
- * @param index the index of the mesh if it's part of a group
749
- * @param level the LOD level to load. Level 0 is the best quality, higher levels are lower quality
750
- * @returns Promise with true if the LOD was loaded, false if not
751
- */
752
- loadProgressiveMeshes(e, t) {
753
- if (!e) return Promise.resolve(null);
754
- let s = e[J] !== t;
755
- const i = e["DEBUG:LOD"];
756
- if (i != null && (s = e[J] != i, t = i), s) {
757
- e[J] = t;
758
- const r = e.geometry;
759
- return z.assignMeshLOD(e, t).then((n) => (n && e[J] == t && r != e.geometry && this._lodchangedlisteners.forEach((a) => a({ type: "mesh", level: t, object: e })), n));
760
- }
761
- return Promise.resolve(null);
762
- }
763
- static isInside(e, t) {
764
- const s = e.min, i = e.max, r = (s.x + i.x) * 0.5, n = (s.y + i.y) * 0.5;
765
- return this._tempPtInside.set(r, n, s.z).applyMatrix4(t).z < 0;
766
- }
767
- calculateLodLevel(e, t, s, i, r) {
768
- var $;
769
- if (!t) {
770
- r.mesh_lod = -1, r.texture_lod = -1;
771
- return;
772
- }
773
- if (!e) {
774
- r.mesh_lod = -1, r.texture_lod = -1;
775
- return;
776
- }
777
- let a = 10 + 1, l = !1;
778
- if (R && t["DEBUG:LOD"] != null)
779
- return t["DEBUG:LOD"];
780
- const u = z.getMeshLODInformation(t.geometry), c = u == null ? void 0 : u.lods, g = c && c.length > 0, p = z.getMaterialMinMaxLODsCount(t.material), v = (p == null ? void 0 : p.min_count) != 1 / 0 && p.min_count > 0 && p.max_count > 0;
781
- if (!g && !v) {
782
- r.mesh_lod = 0, r.texture_lod = 0;
783
- return;
784
- }
785
- g || (l = !0, a = 0);
786
- const O = this.renderer.domElement.clientHeight || this.renderer.domElement.height;
787
- let D = t.geometry.boundingBox;
788
- if (t.type === "SkinnedMesh") {
789
- const M = t;
790
- if (!M.boundingBox)
791
- M.computeBoundingBox();
792
- else if (s.frames % 30 === 0) {
793
- const h = le(M), B = M.geometry;
794
- h && (M.geometry = h), M.computeBoundingBox(), M.geometry = B;
795
- }
796
- D = M.boundingBox;
797
- }
798
- if (D) {
799
- const M = e;
800
- if (t.geometry.attributes.color && t.geometry.attributes.color.count < 100 && t.geometry.boundingSphere) {
801
- this._sphere.copy(t.geometry.boundingSphere), this._sphere.applyMatrix4(t.matrixWorld);
802
- const f = e.getWorldPosition(this._tempWorldPosition);
803
- if (this._sphere.containsPoint(f)) {
804
- r.mesh_lod = 0, r.texture_lod = 0;
805
- return;
806
- }
807
- }
808
- if (this._tempBox.copy(D), this._tempBox.applyMatrix4(t.matrixWorld), M.isPerspectiveCamera && w.isInside(this._tempBox, this.projectionScreenMatrix)) {
809
- r.mesh_lod = 0, r.texture_lod = 0;
810
- return;
811
- }
812
- if (this._tempBox.applyMatrix4(this.projectionScreenMatrix), this.renderer.xr.enabled && M.isPerspectiveCamera && M.fov > 70) {
813
- const f = this._tempBox.min, y = this._tempBox.max;
814
- let _ = f.x, T = f.y, P = y.x, Y = y.y;
815
- const ce = 2, Le = 1.5, ue = (f.x + y.x) * 0.5, fe = (f.y + y.y) * 0.5;
816
- _ = (_ - ue) * ce + ue, T = (T - fe) * ce + fe, P = (P - ue) * ce + ue, Y = (Y - fe) * ce + fe;
817
- const We = _ < 0 && P > 0 ? 0 : Math.min(Math.abs(f.x), Math.abs(y.x)), Xe = T < 0 && Y > 0 ? 0 : Math.min(Math.abs(f.y), Math.abs(y.y)), xe = Math.max(We, Xe);
818
- s.lastCentrality = (Le - xe) * (Le - xe) * (Le - xe);
819
- } else
820
- s.lastCentrality = 1;
821
- const h = this._tempBox.getSize(this._tempBoxSize);
822
- h.multiplyScalar(0.5), screen.availHeight > 0 && O > 0 && h.multiplyScalar(O / screen.availHeight), e.isPerspectiveCamera ? h.x *= e.aspect : e.isOrthographicCamera;
823
- const B = e.matrixWorldInverse, U = this._tempBox2;
824
- U.copy(D), U.applyMatrix4(t.matrixWorld), U.applyMatrix4(B);
825
- const k = U.getSize(this._tempBox2Size), A = Math.max(k.x, k.y);
826
- if (Math.max(h.x, h.y) != 0 && A != 0 && (h.z = k.z / Math.max(k.x, k.y) * Math.max(h.x, h.y)), s.lastScreenCoverage = Math.max(h.x, h.y, h.z), s.lastScreenspaceVolume.copy(h), s.lastScreenCoverage *= s.lastCentrality, R && w.debugDrawLine) {
827
- const f = this.tempMatrix.copy(this.projectionScreenMatrix);
828
- f.invert();
829
- const y = w.corner0, _ = w.corner1, T = w.corner2, P = w.corner3;
830
- y.copy(this._tempBox.min), _.copy(this._tempBox.max), _.x = y.x, T.copy(this._tempBox.max), T.y = y.y, P.copy(this._tempBox.max);
831
- const Y = (y.z + P.z) * 0.5;
832
- y.z = _.z = T.z = P.z = Y, y.applyMatrix4(f), _.applyMatrix4(f), T.applyMatrix4(f), P.applyMatrix4(f), w.debugDrawLine(y, _, 255), w.debugDrawLine(y, T, 255), w.debugDrawLine(_, P, 255), w.debugDrawLine(T, P, 255);
833
- }
834
- let b = 999;
835
- if (c && s.lastScreenCoverage > 0) {
836
- for (let f = 0; f < c.length; f++)
837
- if (c[f].density / s.lastScreenCoverage < i) {
838
- b = f;
839
- break;
840
- }
841
- }
842
- b < a && (a = b, l = !0);
843
- }
844
- if (l ? r.mesh_lod = a : r.mesh_lod = s.lastLodLevel_Mesh, R && r.mesh_lod != s.lastLodLevel_Mesh) {
845
- const h = c == null ? void 0 : c[r.mesh_lod];
846
- h && console.log(`Mesh LOD changed: ${s.lastLodLevel_Mesh} → ${r.mesh_lod} (${h.density.toFixed(0)}) - ${t.name}`);
847
- }
848
- if (v) {
849
- const M = "saveData" in globalThis.navigator && globalThis.navigator.saveData === !0;
850
- if (s.lastLodLevel_Texture < 0) {
851
- if (r.texture_lod = p.max_count - 1, R) {
852
- const h = p.lods[p.max_count - 1];
853
- R && console.log(`First Texture LOD ${r.texture_lod} (${h.max_height}px) - ${t.name}`);
854
- }
855
- } else {
856
- const h = s.lastScreenspaceVolume.x + s.lastScreenspaceVolume.y + s.lastScreenspaceVolume.z;
857
- let B = s.lastScreenCoverage * 4;
858
- (($ = this.context) == null ? void 0 : $.engine) === "model-viewer" && (B *= 1.5);
859
- const k = O / window.devicePixelRatio * B;
860
- let A = !1;
861
- for (let V = p.lods.length - 1; V >= 0; V--) {
862
- let b = p.lods[V];
863
- if (!(M && b.max_height >= 2048) && !(lt() && b.max_height > 4096) && (b.max_height > k || !A && V === 0)) {
864
- if (A = !0, r.texture_lod = V, r.texture_lod < s.lastLodLevel_Texture) {
865
- const S = b.max_height;
866
- R && console.log(`Texture LOD changed: ${s.lastLodLevel_Texture} → ${r.texture_lod} = ${S}px
867
- Screensize: ${k.toFixed(0)}px, Coverage: ${(100 * s.lastScreenCoverage).toFixed(2)}%, Volume ${h.toFixed(1)}
868
- ${t.name}`);
869
- }
870
- break;
871
- }
872
- }
873
- }
874
- } else
875
- r.texture_lod = 0;
876
- }
877
- }, E = new WeakMap(), q = new WeakMap(), ye = new WeakMap(), ee = new WeakMap(), te = new WeakMap(), me = new WeakMap(), K = new WeakMap(), /** Assign a function to draw debug lines for the LODs. This function will be called with the start and end position of the line and the color of the line when the `debugprogressive` query parameter is set.
878
- */
879
- d(w, "debugDrawLine"), d(w, "corner0", new W()), d(w, "corner1", new W()), d(w, "corner2", new W()), d(w, "corner3", new W()), d(w, "_tempPtInside", new W()), w);
880
- class pt {
881
- constructor() {
882
- d(this, "frames", 0);
883
- d(this, "lastLodLevel_Mesh", -1);
884
- d(this, "lastLodLevel_Texture", -1);
885
- d(this, "lastScreenCoverage", 0);
886
- d(this, "lastScreenspaceVolume", new W());
887
- d(this, "lastCentrality", 0);
888
- }
889
- }
890
- const ke = Symbol("NEEDLE_mesh_lod"), de = Symbol("NEEDLE_texture_lod");
891
- let ie = null;
892
- function ze() {
893
- const o = yt();
894
- o && (o.mapURLs(function(e) {
895
- return Re(), e;
896
- }), Re(), ie == null || ie.disconnect(), ie = new MutationObserver((e) => {
897
- e.forEach((t) => {
898
- t.addedNodes.forEach((s) => {
899
- s instanceof HTMLElement && s.tagName.toLowerCase() === "model-viewer" && Ve(s);
900
- });
901
- });
902
- }), ie.observe(document, { childList: !0, subtree: !0 }));
903
- }
904
- function yt() {
905
- if (typeof customElements > "u") return null;
906
- const o = customElements.get("model-viewer");
907
- return o || (customElements.whenDefined("model-viewer").then(() => {
908
- console.debug("[gltf-progressive] model-viewer defined"), ze();
909
- }), null);
910
- }
911
- function Re() {
912
- if (typeof document > "u") return;
913
- document.querySelectorAll("model-viewer").forEach((e) => {
914
- Ve(e);
915
- });
916
- }
917
- const Ie = /* @__PURE__ */ new WeakSet();
918
- let mt = 0;
919
- function Ve(o) {
920
- if (!o || Ie.has(o))
921
- return null;
922
- Ie.add(o), console.debug("[gltf-progressive] found new model-viewer..." + ++mt + `
923
- `, o.getAttribute("src"));
924
- let e = null, t = null, s = null;
925
- for (let i = o; i != null; i = Object.getPrototypeOf(i)) {
926
- const r = Object.getOwnPropertySymbols(i), n = r.find((u) => u.toString() == "Symbol(renderer)"), a = r.find((u) => u.toString() == "Symbol(scene)"), l = r.find((u) => u.toString() == "Symbol(needsRender)");
927
- !e && n != null && (e = o[n].threeRenderer), !t && a != null && (t = o[a]), !s && l != null && (s = o[l]);
928
- }
929
- if (e && t) {
930
- let i = function() {
931
- if (s) {
932
- let n = 0, a = setInterval(() => {
933
- if (n++ > 5) {
934
- clearInterval(a);
935
- return;
936
- }
937
- s == null || s.call(o);
938
- }, 300);
939
- }
940
- };
941
- console.debug("[gltf-progressive] setup model-viewer");
942
- const r = pe.get(e, { engine: "model-viewer" });
943
- return pe.addPlugin(new Lt()), r.enable(), r.addEventListener("changed", () => {
944
- s == null || s.call(o);
945
- }), o.addEventListener("model-visibility", (n) => {
946
- n.detail.visible && (s == null || s.call(o));
947
- }), o.addEventListener("load", () => {
948
- i();
949
- }), () => {
950
- r.disable();
951
- };
952
- }
953
- return null;
954
- }
955
- class Lt {
956
- constructor() {
957
- d(this, "_didWarnAboutMissingUrl", !1);
958
- }
959
- onBeforeUpdateLOD(e, t, s, i) {
960
- this.tryParseMeshLOD(t, i), this.tryParseTextureLOD(t, i);
961
- }
962
- getUrl(e) {
963
- if (!e)
964
- return null;
965
- let t = e.getAttribute("src");
966
- return t || (t = e.src), t || (this._didWarnAboutMissingUrl || console.warn("No url found in modelviewer", e), this._didWarnAboutMissingUrl = !0), t;
967
- }
968
- tryGetCurrentGLTF(e) {
969
- return e._currentGLTF;
970
- }
971
- tryGetCurrentModelViewer(e) {
972
- return e.element;
973
- }
974
- tryParseTextureLOD(e, t) {
975
- if (t[de] == !0) return;
976
- t[de] = !0;
977
- const s = this.tryGetCurrentGLTF(e), i = this.tryGetCurrentModelViewer(e), r = this.getUrl(i);
978
- if (r && s && t.material) {
979
- let n = function(l) {
980
- var c, g, p;
981
- if (l[de] == !0) return;
982
- l[de] = !0, l.userData && (l.userData.LOD = -1);
983
- const u = Object.keys(l);
984
- for (let v = 0; v < u.length; v++) {
985
- const O = u[v], D = l[O];
986
- if ((D == null ? void 0 : D.isTexture) === !0) {
987
- const $ = (g = (c = D.userData) == null ? void 0 : c.associations) == null ? void 0 : g.textures;
988
- if ($ == null) continue;
989
- const M = s.parser.json.textures[$];
990
- if (!M) {
991
- console.warn("Texture data not found for texture index " + $);
992
- continue;
993
- }
994
- if ((p = M == null ? void 0 : M.extensions) != null && p[X]) {
995
- const h = M.extensions[X];
996
- h && r && z.registerTexture(r, D, h.lods.length, $, h);
997
- }
998
- }
999
- }
1000
- };
1001
- const a = t.material;
1002
- if (Array.isArray(a)) for (const l of a) n(l);
1003
- else n(a);
1004
- }
1005
- }
1006
- tryParseMeshLOD(e, t) {
1007
- var n, a;
1008
- if (t[ke] == !0) return;
1009
- t[ke] = !0;
1010
- const s = this.tryGetCurrentModelViewer(e), i = this.getUrl(s);
1011
- if (!i)
1012
- return;
1013
- const r = (a = (n = t.userData) == null ? void 0 : n.gltfExtensions) == null ? void 0 : a[X];
1014
- if (r && i) {
1015
- const l = t.uuid;
1016
- z.registerMesh(i, l, t, 0, r.lods.length, r);
1017
- }
1018
- }
1019
- }
1020
- function xt(o, e, t, s) {
1021
- Ue(e), Fe(t), Ne(t, {
1022
- progressive: !0,
1023
- ...s == null ? void 0 : s.hints
1024
- }), t.register((r) => new z(r, o));
1025
- const i = pe.get(e);
1026
- return (s == null ? void 0 : s.enableLODsManager) !== !1 && i.enable(), i;
1027
- }
1028
- ze();
1029
- if (!ct) {
1030
- const o = {
1031
- gltfProgressive: {
1032
- useNeedleProgressive: xt,
1033
- LODsManager: pe,
1034
- configureLoader: Ne,
1035
- getRaycastMesh: le,
1036
- useRaycastMeshes: ft
1037
- }
1038
- };
1039
- if (!globalThis.Needle)
1040
- globalThis.Needle = o;
1041
- else
1042
- for (const e in o)
1043
- globalThis.Needle[e] = o[e];
1044
- }
1045
- export {
1046
- pe as LODsManager,
1047
- z as NEEDLE_progressive,
1048
- Fe as addDracoAndKTX2Loaders,
1049
- Ne as configureLoader,
1050
- Ue as createLoaders,
1051
- le as getRaycastMesh,
1052
- nt as setDracoDecoderLocation,
1053
- it as setKTX2TranscoderLocation
1054
- };