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