@onerjs/loaders 8.53.5 → 8.53.6

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 (517) hide show
  1. package/BVH/bvhFileLoader.d.ts +4 -67
  2. package/BVH/bvhFileLoader.js +6 -130
  3. package/BVH/bvhFileLoader.js.map +1 -1
  4. package/BVH/bvhFileLoader.pure.d.ts +75 -0
  5. package/BVH/bvhFileLoader.pure.js +154 -0
  6. package/BVH/bvhFileLoader.pure.js.map +1 -0
  7. package/BVH/bvhFileLoader.types.d.ts +11 -0
  8. package/BVH/bvhFileLoader.types.js +2 -0
  9. package/BVH/bvhFileLoader.types.js.map +1 -0
  10. package/BVH/pure.d.ts +3 -0
  11. package/BVH/pure.js +5 -0
  12. package/BVH/pure.js.map +1 -0
  13. package/FBX/fbxFileLoader.d.ts +4 -192
  14. package/FBX/fbxFileLoader.js +6 -2437
  15. package/FBX/fbxFileLoader.js.map +1 -1
  16. package/FBX/fbxFileLoader.pure.d.ts +190 -0
  17. package/FBX/fbxFileLoader.pure.js +2451 -0
  18. package/FBX/fbxFileLoader.pure.js.map +1 -0
  19. package/FBX/fbxFileLoader.types.d.ts +11 -0
  20. package/FBX/fbxFileLoader.types.js +2 -0
  21. package/FBX/fbxFileLoader.types.js.map +1 -0
  22. package/FBX/pure.d.ts +3 -0
  23. package/FBX/pure.js +4 -0
  24. package/FBX/pure.js.map +1 -0
  25. package/OBJ/objFileLoader.d.ts +4 -134
  26. package/OBJ/objFileLoader.js +6 -315
  27. package/OBJ/objFileLoader.js.map +1 -1
  28. package/OBJ/objFileLoader.pure.d.ts +132 -0
  29. package/OBJ/objFileLoader.pure.js +329 -0
  30. package/OBJ/objFileLoader.pure.js.map +1 -0
  31. package/OBJ/objFileLoader.types.d.ts +11 -0
  32. package/OBJ/objFileLoader.types.js +2 -0
  33. package/OBJ/objFileLoader.types.js.map +1 -0
  34. package/OBJ/pure.d.ts +5 -0
  35. package/OBJ/pure.js +6 -0
  36. package/OBJ/pure.js.map +1 -0
  37. package/OBJ/solidParser.js +4 -3
  38. package/OBJ/solidParser.js.map +1 -1
  39. package/SPLAT/gaussianSplattingBlockAllocator.d.ts +137 -0
  40. package/SPLAT/gaussianSplattingBlockAllocator.js +555 -0
  41. package/SPLAT/gaussianSplattingBlockAllocator.js.map +1 -0
  42. package/SPLAT/gaussianSplattingDownloadManager.d.ts +109 -0
  43. package/SPLAT/gaussianSplattingDownloadManager.js +241 -0
  44. package/SPLAT/gaussianSplattingDownloadManager.js.map +1 -0
  45. package/SPLAT/gaussianSplattingResidencyController.d.ts +133 -0
  46. package/SPLAT/gaussianSplattingResidencyController.js +222 -0
  47. package/SPLAT/gaussianSplattingResidencyController.js.map +1 -0
  48. package/SPLAT/gaussianSplattingStream.d.ts +522 -0
  49. package/SPLAT/gaussianSplattingStream.js +1530 -0
  50. package/SPLAT/gaussianSplattingStream.js.map +1 -0
  51. package/SPLAT/gaussianSplattingWorkBuffer.d.ts +107 -0
  52. package/SPLAT/gaussianSplattingWorkBuffer.js +361 -0
  53. package/SPLAT/gaussianSplattingWorkBuffer.js.map +1 -0
  54. package/SPLAT/gaussianSplattingWorkBufferShaders.d.ts +40 -0
  55. package/SPLAT/gaussianSplattingWorkBufferShaders.js +337 -0
  56. package/SPLAT/gaussianSplattingWorkBufferShaders.js.map +1 -0
  57. package/SPLAT/index.d.ts +1 -0
  58. package/SPLAT/index.js +1 -0
  59. package/SPLAT/index.js.map +1 -1
  60. package/SPLAT/pure.d.ts +5 -0
  61. package/SPLAT/pure.js +7 -0
  62. package/SPLAT/pure.js.map +1 -0
  63. package/SPLAT/sog.d.ts +2 -93
  64. package/SPLAT/sog.js +4 -418
  65. package/SPLAT/sog.js.map +1 -1
  66. package/SPLAT/sog.pure.d.ts +102 -0
  67. package/SPLAT/sog.pure.js +514 -0
  68. package/SPLAT/sog.pure.js.map +1 -0
  69. package/SPLAT/splatFileLoader.d.ts +5 -98
  70. package/SPLAT/splatFileLoader.js +9 -587
  71. package/SPLAT/splatFileLoader.js.map +1 -1
  72. package/SPLAT/splatFileLoader.pure.d.ts +104 -0
  73. package/SPLAT/splatFileLoader.pure.js +650 -0
  74. package/SPLAT/splatFileLoader.pure.js.map +1 -0
  75. package/SPLAT/splatFileLoader.types.d.ts +11 -0
  76. package/SPLAT/splatFileLoader.types.js +2 -0
  77. package/SPLAT/splatFileLoader.types.js.map +1 -0
  78. package/STL/pure.d.ts +2 -0
  79. package/STL/pure.js +3 -0
  80. package/STL/pure.js.map +1 -0
  81. package/STL/stlFileLoader.d.ts +5 -76
  82. package/STL/stlFileLoader.js +7 -236
  83. package/STL/stlFileLoader.js.map +1 -1
  84. package/STL/stlFileLoader.pure.d.ts +73 -0
  85. package/STL/stlFileLoader.pure.js +249 -0
  86. package/STL/stlFileLoader.pure.js.map +1 -0
  87. package/STL/stlFileLoader.types.d.ts +10 -0
  88. package/STL/stlFileLoader.types.js +2 -0
  89. package/STL/stlFileLoader.types.js.map +1 -0
  90. package/glTF/1.0/pure.d.ts +3 -0
  91. package/glTF/1.0/pure.js +4 -0
  92. package/glTF/1.0/pure.js.map +1 -0
  93. package/glTF/2.0/Extensions/EXT_lights_area.d.ts +4 -39
  94. package/glTF/2.0/Extensions/EXT_lights_area.js +6 -91
  95. package/glTF/2.0/Extensions/EXT_lights_area.js.map +1 -1
  96. package/glTF/2.0/Extensions/EXT_lights_area.pure.d.ts +38 -0
  97. package/glTF/2.0/Extensions/EXT_lights_area.pure.js +106 -0
  98. package/glTF/2.0/Extensions/EXT_lights_area.pure.js.map +1 -0
  99. package/glTF/2.0/Extensions/EXT_lights_area.types.d.ts +9 -0
  100. package/glTF/2.0/Extensions/EXT_lights_area.types.js +2 -0
  101. package/glTF/2.0/Extensions/EXT_lights_area.types.js.map +1 -0
  102. package/glTF/2.0/Extensions/EXT_lights_ies.d.ts +4 -39
  103. package/glTF/2.0/Extensions/EXT_lights_ies.js +6 -81
  104. package/glTF/2.0/Extensions/EXT_lights_ies.js.map +1 -1
  105. package/glTF/2.0/Extensions/EXT_lights_ies.pure.d.ts +38 -0
  106. package/glTF/2.0/Extensions/EXT_lights_ies.pure.js +96 -0
  107. package/glTF/2.0/Extensions/EXT_lights_ies.pure.js.map +1 -0
  108. package/glTF/2.0/Extensions/EXT_lights_ies.types.d.ts +9 -0
  109. package/glTF/2.0/Extensions/EXT_lights_ies.types.js +2 -0
  110. package/glTF/2.0/Extensions/EXT_lights_ies.types.js.map +1 -0
  111. package/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +4 -46
  112. package/glTF/2.0/Extensions/EXT_lights_image_based.js +6 -113
  113. package/glTF/2.0/Extensions/EXT_lights_image_based.js.map +1 -1
  114. package/glTF/2.0/Extensions/EXT_lights_image_based.pure.d.ts +37 -0
  115. package/glTF/2.0/Extensions/EXT_lights_image_based.pure.js +128 -0
  116. package/glTF/2.0/Extensions/EXT_lights_image_based.pure.js.map +1 -0
  117. package/glTF/2.0/Extensions/EXT_lights_image_based.types.d.ts +17 -0
  118. package/glTF/2.0/Extensions/EXT_lights_image_based.types.js +2 -0
  119. package/glTF/2.0/Extensions/EXT_lights_image_based.types.js.map +1 -0
  120. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +5 -37
  121. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +7 -92
  122. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js.map +1 -1
  123. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.pure.d.ts +35 -0
  124. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.pure.js +106 -0
  125. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.pure.js.map +1 -0
  126. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.types.d.ts +9 -0
  127. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.types.js +2 -0
  128. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.types.js.map +1 -0
  129. package/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +4 -37
  130. package/glTF/2.0/Extensions/EXT_meshopt_compression.js +6 -48
  131. package/glTF/2.0/Extensions/EXT_meshopt_compression.js.map +1 -1
  132. package/glTF/2.0/Extensions/EXT_meshopt_compression.pure.d.ts +36 -0
  133. package/glTF/2.0/Extensions/EXT_meshopt_compression.pure.js +63 -0
  134. package/glTF/2.0/Extensions/EXT_meshopt_compression.pure.js.map +1 -0
  135. package/glTF/2.0/Extensions/EXT_meshopt_compression.types.d.ts +9 -0
  136. package/glTF/2.0/Extensions/EXT_meshopt_compression.types.js +2 -0
  137. package/glTF/2.0/Extensions/EXT_meshopt_compression.types.js.map +1 -0
  138. package/glTF/2.0/Extensions/EXT_texture_avif.d.ts +4 -32
  139. package/glTF/2.0/Extensions/EXT_texture_avif.js +6 -36
  140. package/glTF/2.0/Extensions/EXT_texture_avif.js.map +1 -1
  141. package/glTF/2.0/Extensions/EXT_texture_avif.pure.d.ts +31 -0
  142. package/glTF/2.0/Extensions/EXT_texture_avif.pure.js +51 -0
  143. package/glTF/2.0/Extensions/EXT_texture_avif.pure.js.map +1 -0
  144. package/glTF/2.0/Extensions/EXT_texture_avif.types.d.ts +9 -0
  145. package/glTF/2.0/Extensions/EXT_texture_avif.types.js +2 -0
  146. package/glTF/2.0/Extensions/EXT_texture_avif.types.js.map +1 -0
  147. package/glTF/2.0/Extensions/EXT_texture_webp.d.ts +4 -31
  148. package/glTF/2.0/Extensions/EXT_texture_webp.js +6 -35
  149. package/glTF/2.0/Extensions/EXT_texture_webp.js.map +1 -1
  150. package/glTF/2.0/Extensions/EXT_texture_webp.pure.d.ts +30 -0
  151. package/glTF/2.0/Extensions/EXT_texture_webp.pure.js +50 -0
  152. package/glTF/2.0/Extensions/EXT_texture_webp.pure.js.map +1 -0
  153. package/glTF/2.0/Extensions/EXT_texture_webp.types.d.ts +9 -0
  154. package/glTF/2.0/Extensions/EXT_texture_webp.types.js +2 -0
  155. package/glTF/2.0/Extensions/EXT_texture_webp.types.js.map +1 -0
  156. package/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +4 -51
  157. package/glTF/2.0/Extensions/ExtrasAsMetadata.js +6 -71
  158. package/glTF/2.0/Extensions/ExtrasAsMetadata.js.map +1 -1
  159. package/glTF/2.0/Extensions/ExtrasAsMetadata.pure.d.ts +50 -0
  160. package/glTF/2.0/Extensions/ExtrasAsMetadata.pure.js +85 -0
  161. package/glTF/2.0/Extensions/ExtrasAsMetadata.pure.js.map +1 -0
  162. package/glTF/2.0/Extensions/ExtrasAsMetadata.types.d.ts +9 -0
  163. package/glTF/2.0/Extensions/ExtrasAsMetadata.types.js +2 -0
  164. package/glTF/2.0/Extensions/ExtrasAsMetadata.types.js.map +1 -0
  165. package/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +5 -45
  166. package/glTF/2.0/Extensions/KHR_animation_pointer.js +7 -75
  167. package/glTF/2.0/Extensions/KHR_animation_pointer.js.map +1 -1
  168. package/glTF/2.0/Extensions/KHR_animation_pointer.pure.d.ts +43 -0
  169. package/glTF/2.0/Extensions/KHR_animation_pointer.pure.js +89 -0
  170. package/glTF/2.0/Extensions/KHR_animation_pointer.pure.js.map +1 -0
  171. package/glTF/2.0/Extensions/KHR_animation_pointer.types.d.ts +9 -0
  172. package/glTF/2.0/Extensions/KHR_animation_pointer.types.js +2 -0
  173. package/glTF/2.0/Extensions/KHR_animation_pointer.types.js.map +1 -0
  174. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +4 -45
  175. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +6 -90
  176. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js.map +1 -1
  177. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.pure.d.ts +44 -0
  178. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.pure.js +105 -0
  179. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.pure.js.map +1 -0
  180. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.types.d.ts +9 -0
  181. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.types.js +2 -0
  182. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.types.js.map +1 -0
  183. package/glTF/2.0/Extensions/KHR_gaussian_splatting.d.ts +6 -0
  184. package/glTF/2.0/Extensions/KHR_gaussian_splatting.js +9 -0
  185. package/glTF/2.0/Extensions/KHR_gaussian_splatting.js.map +1 -0
  186. package/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.d.ts +35 -0
  187. package/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.js +195 -0
  188. package/glTF/2.0/Extensions/KHR_gaussian_splatting.pure.js.map +1 -0
  189. package/glTF/2.0/Extensions/KHR_gaussian_splatting.types.d.ts +9 -0
  190. package/glTF/2.0/Extensions/KHR_gaussian_splatting.types.js +2 -0
  191. package/glTF/2.0/Extensions/KHR_gaussian_splatting.types.js.map +1 -0
  192. package/glTF/2.0/Extensions/KHR_interactivity/pure.d.ts +4 -0
  193. package/glTF/2.0/Extensions/KHR_interactivity/pure.js +5 -0
  194. package/glTF/2.0/Extensions/KHR_interactivity/pure.js.map +1 -0
  195. package/glTF/2.0/Extensions/KHR_interactivity.d.ts +4 -36
  196. package/glTF/2.0/Extensions/KHR_interactivity.js +6 -148
  197. package/glTF/2.0/Extensions/KHR_interactivity.js.map +1 -1
  198. package/glTF/2.0/Extensions/KHR_interactivity.pure.d.ts +35 -0
  199. package/glTF/2.0/Extensions/KHR_interactivity.pure.js +163 -0
  200. package/glTF/2.0/Extensions/KHR_interactivity.pure.js.map +1 -0
  201. package/glTF/2.0/Extensions/KHR_interactivity.types.d.ts +9 -0
  202. package/glTF/2.0/Extensions/KHR_interactivity.types.js +2 -0
  203. package/glTF/2.0/Extensions/KHR_interactivity.types.js.map +1 -0
  204. package/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +4 -39
  205. package/glTF/2.0/Extensions/KHR_lights_punctual.js +6 -89
  206. package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -1
  207. package/glTF/2.0/Extensions/KHR_lights_punctual.pure.d.ts +38 -0
  208. package/glTF/2.0/Extensions/KHR_lights_punctual.pure.js +104 -0
  209. package/glTF/2.0/Extensions/KHR_lights_punctual.pure.js.map +1 -0
  210. package/glTF/2.0/Extensions/KHR_lights_punctual.types.d.ts +9 -0
  211. package/glTF/2.0/Extensions/KHR_lights_punctual.types.js +2 -0
  212. package/glTF/2.0/Extensions/KHR_lights_punctual.types.js.map +1 -0
  213. package/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +4 -40
  214. package/glTF/2.0/Extensions/KHR_materials_anisotropy.js +6 -63
  215. package/glTF/2.0/Extensions/KHR_materials_anisotropy.js.map +1 -1
  216. package/glTF/2.0/Extensions/KHR_materials_anisotropy.pure.d.ts +39 -0
  217. package/glTF/2.0/Extensions/KHR_materials_anisotropy.pure.js +78 -0
  218. package/glTF/2.0/Extensions/KHR_materials_anisotropy.pure.js.map +1 -0
  219. package/glTF/2.0/Extensions/KHR_materials_anisotropy.types.d.ts +9 -0
  220. package/glTF/2.0/Extensions/KHR_materials_anisotropy.types.js +2 -0
  221. package/glTF/2.0/Extensions/KHR_materials_anisotropy.types.js.map +1 -0
  222. package/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +4 -41
  223. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +6 -77
  224. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -1
  225. package/glTF/2.0/Extensions/KHR_materials_clearcoat.pure.d.ts +40 -0
  226. package/glTF/2.0/Extensions/KHR_materials_clearcoat.pure.js +92 -0
  227. package/glTF/2.0/Extensions/KHR_materials_clearcoat.pure.js.map +1 -0
  228. package/glTF/2.0/Extensions/KHR_materials_clearcoat.types.d.ts +9 -0
  229. package/glTF/2.0/Extensions/KHR_materials_clearcoat.types.js +2 -0
  230. package/glTF/2.0/Extensions/KHR_materials_clearcoat.types.js.map +1 -0
  231. package/glTF/2.0/Extensions/KHR_materials_coat.d.ts +4 -47
  232. package/glTF/2.0/Extensions/KHR_materials_coat.js +6 -117
  233. package/glTF/2.0/Extensions/KHR_materials_coat.js.map +1 -1
  234. package/glTF/2.0/Extensions/KHR_materials_coat.pure.d.ts +46 -0
  235. package/glTF/2.0/Extensions/KHR_materials_coat.pure.js +132 -0
  236. package/glTF/2.0/Extensions/KHR_materials_coat.pure.js.map +1 -0
  237. package/glTF/2.0/Extensions/KHR_materials_coat.types.d.ts +9 -0
  238. package/glTF/2.0/Extensions/KHR_materials_coat.types.js +2 -0
  239. package/glTF/2.0/Extensions/KHR_materials_coat.types.js.map +1 -0
  240. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +4 -41
  241. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +6 -56
  242. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js.map +1 -1
  243. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.pure.d.ts +40 -0
  244. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.pure.js +71 -0
  245. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.pure.js.map +1 -0
  246. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.types.d.ts +9 -0
  247. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.types.js +2 -0
  248. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.types.js.map +1 -0
  249. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +4 -41
  250. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +6 -71
  251. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js.map +1 -1
  252. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.pure.d.ts +40 -0
  253. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.pure.js +86 -0
  254. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.pure.js.map +1 -0
  255. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.types.d.ts +9 -0
  256. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.types.js +2 -0
  257. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.types.js.map +1 -0
  258. package/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +4 -41
  259. package/glTF/2.0/Extensions/KHR_materials_dispersion.js +6 -54
  260. package/glTF/2.0/Extensions/KHR_materials_dispersion.js.map +1 -1
  261. package/glTF/2.0/Extensions/KHR_materials_dispersion.pure.d.ts +40 -0
  262. package/glTF/2.0/Extensions/KHR_materials_dispersion.pure.js +69 -0
  263. package/glTF/2.0/Extensions/KHR_materials_dispersion.pure.js.map +1 -0
  264. package/glTF/2.0/Extensions/KHR_materials_dispersion.types.d.ts +9 -0
  265. package/glTF/2.0/Extensions/KHR_materials_dispersion.types.js +2 -0
  266. package/glTF/2.0/Extensions/KHR_materials_dispersion.types.js.map +1 -0
  267. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +4 -40
  268. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +6 -45
  269. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js.map +1 -1
  270. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.pure.d.ts +39 -0
  271. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.pure.js +60 -0
  272. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.pure.js.map +1 -0
  273. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.types.d.ts +9 -0
  274. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.types.js +2 -0
  275. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.types.js.map +1 -0
  276. package/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +4 -41
  277. package/glTF/2.0/Extensions/KHR_materials_fuzz.js +6 -75
  278. package/glTF/2.0/Extensions/KHR_materials_fuzz.js.map +1 -1
  279. package/glTF/2.0/Extensions/KHR_materials_fuzz.pure.d.ts +40 -0
  280. package/glTF/2.0/Extensions/KHR_materials_fuzz.pure.js +90 -0
  281. package/glTF/2.0/Extensions/KHR_materials_fuzz.pure.js.map +1 -0
  282. package/glTF/2.0/Extensions/KHR_materials_fuzz.types.d.ts +9 -0
  283. package/glTF/2.0/Extensions/KHR_materials_fuzz.types.js +2 -0
  284. package/glTF/2.0/Extensions/KHR_materials_fuzz.types.js.map +1 -0
  285. package/glTF/2.0/Extensions/KHR_materials_ior.d.ts +4 -44
  286. package/glTF/2.0/Extensions/KHR_materials_ior.js +6 -52
  287. package/glTF/2.0/Extensions/KHR_materials_ior.js.map +1 -1
  288. package/glTF/2.0/Extensions/KHR_materials_ior.pure.d.ts +43 -0
  289. package/glTF/2.0/Extensions/KHR_materials_ior.pure.js +67 -0
  290. package/glTF/2.0/Extensions/KHR_materials_ior.pure.js.map +1 -0
  291. package/glTF/2.0/Extensions/KHR_materials_ior.types.d.ts +9 -0
  292. package/glTF/2.0/Extensions/KHR_materials_ior.types.js +2 -0
  293. package/glTF/2.0/Extensions/KHR_materials_ior.types.js.map +1 -0
  294. package/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +4 -40
  295. package/glTF/2.0/Extensions/KHR_materials_iridescence.js +6 -66
  296. package/glTF/2.0/Extensions/KHR_materials_iridescence.js.map +1 -1
  297. package/glTF/2.0/Extensions/KHR_materials_iridescence.pure.d.ts +39 -0
  298. package/glTF/2.0/Extensions/KHR_materials_iridescence.pure.js +81 -0
  299. package/glTF/2.0/Extensions/KHR_materials_iridescence.pure.js.map +1 -0
  300. package/glTF/2.0/Extensions/KHR_materials_iridescence.types.d.ts +9 -0
  301. package/glTF/2.0/Extensions/KHR_materials_iridescence.types.js +2 -0
  302. package/glTF/2.0/Extensions/KHR_materials_iridescence.types.js.map +1 -0
  303. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +4 -40
  304. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +6 -72
  305. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js.map +1 -1
  306. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.pure.d.ts +39 -0
  307. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.pure.js +87 -0
  308. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.pure.js.map +1 -0
  309. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.types.d.ts +9 -0
  310. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.types.js +2 -0
  311. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.types.js.map +1 -0
  312. package/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +4 -41
  313. package/glTF/2.0/Extensions/KHR_materials_sheen.js +6 -71
  314. package/glTF/2.0/Extensions/KHR_materials_sheen.js.map +1 -1
  315. package/glTF/2.0/Extensions/KHR_materials_sheen.pure.d.ts +40 -0
  316. package/glTF/2.0/Extensions/KHR_materials_sheen.pure.js +86 -0
  317. package/glTF/2.0/Extensions/KHR_materials_sheen.pure.js.map +1 -0
  318. package/glTF/2.0/Extensions/KHR_materials_sheen.types.d.ts +9 -0
  319. package/glTF/2.0/Extensions/KHR_materials_sheen.types.js +2 -0
  320. package/glTF/2.0/Extensions/KHR_materials_sheen.types.js.map +1 -0
  321. package/glTF/2.0/Extensions/KHR_materials_specular.d.ts +4 -40
  322. package/glTF/2.0/Extensions/KHR_materials_specular.js +6 -74
  323. package/glTF/2.0/Extensions/KHR_materials_specular.js.map +1 -1
  324. package/glTF/2.0/Extensions/KHR_materials_specular.pure.d.ts +39 -0
  325. package/glTF/2.0/Extensions/KHR_materials_specular.pure.js +89 -0
  326. package/glTF/2.0/Extensions/KHR_materials_specular.pure.js.map +1 -0
  327. package/glTF/2.0/Extensions/KHR_materials_specular.types.d.ts +9 -0
  328. package/glTF/2.0/Extensions/KHR_materials_specular.types.js +2 -0
  329. package/glTF/2.0/Extensions/KHR_materials_specular.types.js.map +1 -0
  330. package/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +4 -40
  331. package/glTF/2.0/Extensions/KHR_materials_transmission.js +6 -70
  332. package/glTF/2.0/Extensions/KHR_materials_transmission.js.map +1 -1
  333. package/glTF/2.0/Extensions/KHR_materials_transmission.pure.d.ts +39 -0
  334. package/glTF/2.0/Extensions/KHR_materials_transmission.pure.js +85 -0
  335. package/glTF/2.0/Extensions/KHR_materials_transmission.pure.js.map +1 -0
  336. package/glTF/2.0/Extensions/KHR_materials_transmission.types.d.ts +9 -0
  337. package/glTF/2.0/Extensions/KHR_materials_transmission.types.js +2 -0
  338. package/glTF/2.0/Extensions/KHR_materials_transmission.types.js.map +1 -0
  339. package/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +4 -40
  340. package/glTF/2.0/Extensions/KHR_materials_unlit.js +6 -64
  341. package/glTF/2.0/Extensions/KHR_materials_unlit.js.map +1 -1
  342. package/glTF/2.0/Extensions/KHR_materials_unlit.pure.d.ts +39 -0
  343. package/glTF/2.0/Extensions/KHR_materials_unlit.pure.js +79 -0
  344. package/glTF/2.0/Extensions/KHR_materials_unlit.pure.js.map +1 -0
  345. package/glTF/2.0/Extensions/KHR_materials_unlit.types.d.ts +9 -0
  346. package/glTF/2.0/Extensions/KHR_materials_unlit.types.js +2 -0
  347. package/glTF/2.0/Extensions/KHR_materials_unlit.types.js.map +1 -0
  348. package/glTF/2.0/Extensions/KHR_materials_variants.d.ts +4 -110
  349. package/glTF/2.0/Extensions/KHR_materials_variants.js +6 -260
  350. package/glTF/2.0/Extensions/KHR_materials_variants.js.map +1 -1
  351. package/glTF/2.0/Extensions/KHR_materials_variants.pure.d.ts +97 -0
  352. package/glTF/2.0/Extensions/KHR_materials_variants.pure.js +275 -0
  353. package/glTF/2.0/Extensions/KHR_materials_variants.pure.js.map +1 -0
  354. package/glTF/2.0/Extensions/KHR_materials_variants.types.d.ts +29 -0
  355. package/glTF/2.0/Extensions/KHR_materials_variants.types.js +2 -0
  356. package/glTF/2.0/Extensions/KHR_materials_variants.types.js.map +1 -0
  357. package/glTF/2.0/Extensions/KHR_materials_volume.d.ts +4 -41
  358. package/glTF/2.0/Extensions/KHR_materials_volume.js +6 -77
  359. package/glTF/2.0/Extensions/KHR_materials_volume.js.map +1 -1
  360. package/glTF/2.0/Extensions/KHR_materials_volume.pure.d.ts +40 -0
  361. package/glTF/2.0/Extensions/KHR_materials_volume.pure.js +92 -0
  362. package/glTF/2.0/Extensions/KHR_materials_volume.pure.js.map +1 -0
  363. package/glTF/2.0/Extensions/KHR_materials_volume.types.d.ts +9 -0
  364. package/glTF/2.0/Extensions/KHR_materials_volume.types.js +2 -0
  365. package/glTF/2.0/Extensions/KHR_materials_volume.types.js.map +1 -0
  366. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +4 -43
  367. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +6 -113
  368. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.js.map +1 -1
  369. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.pure.d.ts +42 -0
  370. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.pure.js +128 -0
  371. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.pure.js.map +1 -0
  372. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.types.d.ts +9 -0
  373. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.types.js +2 -0
  374. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.types.js.map +1 -0
  375. package/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +4 -27
  376. package/glTF/2.0/Extensions/KHR_mesh_quantization.js +6 -20
  377. package/glTF/2.0/Extensions/KHR_mesh_quantization.js.map +1 -1
  378. package/glTF/2.0/Extensions/KHR_mesh_quantization.pure.d.ts +26 -0
  379. package/glTF/2.0/Extensions/KHR_mesh_quantization.pure.js +35 -0
  380. package/glTF/2.0/Extensions/KHR_mesh_quantization.pure.js.map +1 -0
  381. package/glTF/2.0/Extensions/KHR_mesh_quantization.types.d.ts +9 -0
  382. package/glTF/2.0/Extensions/KHR_mesh_quantization.types.js +2 -0
  383. package/glTF/2.0/Extensions/KHR_mesh_quantization.types.js.map +1 -0
  384. package/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +4 -29
  385. package/glTF/2.0/Extensions/KHR_node_hoverability.js +6 -187
  386. package/glTF/2.0/Extensions/KHR_node_hoverability.js.map +1 -1
  387. package/glTF/2.0/Extensions/KHR_node_hoverability.pure.d.ts +28 -0
  388. package/glTF/2.0/Extensions/KHR_node_hoverability.pure.js +202 -0
  389. package/glTF/2.0/Extensions/KHR_node_hoverability.pure.js.map +1 -0
  390. package/glTF/2.0/Extensions/KHR_node_hoverability.types.d.ts +9 -0
  391. package/glTF/2.0/Extensions/KHR_node_hoverability.types.js +2 -0
  392. package/glTF/2.0/Extensions/KHR_node_hoverability.types.js.map +1 -0
  393. package/glTF/2.0/Extensions/KHR_node_selectability.d.ts +4 -28
  394. package/glTF/2.0/Extensions/KHR_node_selectability.js +6 -121
  395. package/glTF/2.0/Extensions/KHR_node_selectability.js.map +1 -1
  396. package/glTF/2.0/Extensions/KHR_node_selectability.pure.d.ts +27 -0
  397. package/glTF/2.0/Extensions/KHR_node_selectability.pure.js +136 -0
  398. package/glTF/2.0/Extensions/KHR_node_selectability.pure.js.map +1 -0
  399. package/glTF/2.0/Extensions/KHR_node_selectability.types.d.ts +9 -0
  400. package/glTF/2.0/Extensions/KHR_node_selectability.types.js +2 -0
  401. package/glTF/2.0/Extensions/KHR_node_selectability.types.js.map +1 -0
  402. package/glTF/2.0/Extensions/KHR_node_visibility.d.ts +4 -28
  403. package/glTF/2.0/Extensions/KHR_node_visibility.js +6 -64
  404. package/glTF/2.0/Extensions/KHR_node_visibility.js.map +1 -1
  405. package/glTF/2.0/Extensions/KHR_node_visibility.pure.d.ts +27 -0
  406. package/glTF/2.0/Extensions/KHR_node_visibility.pure.js +79 -0
  407. package/glTF/2.0/Extensions/KHR_node_visibility.pure.js.map +1 -0
  408. package/glTF/2.0/Extensions/KHR_node_visibility.types.d.ts +9 -0
  409. package/glTF/2.0/Extensions/KHR_node_visibility.types.js +2 -0
  410. package/glTF/2.0/Extensions/KHR_node_visibility.types.js.map +1 -0
  411. package/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +4 -31
  412. package/glTF/2.0/Extensions/KHR_texture_basisu.js +6 -35
  413. package/glTF/2.0/Extensions/KHR_texture_basisu.js.map +1 -1
  414. package/glTF/2.0/Extensions/KHR_texture_basisu.pure.d.ts +30 -0
  415. package/glTF/2.0/Extensions/KHR_texture_basisu.pure.js +50 -0
  416. package/glTF/2.0/Extensions/KHR_texture_basisu.pure.js.map +1 -0
  417. package/glTF/2.0/Extensions/KHR_texture_basisu.types.d.ts +9 -0
  418. package/glTF/2.0/Extensions/KHR_texture_basisu.types.js +2 -0
  419. package/glTF/2.0/Extensions/KHR_texture_basisu.types.js.map +1 -0
  420. package/glTF/2.0/Extensions/KHR_texture_transform.d.ts +4 -35
  421. package/glTF/2.0/Extensions/KHR_texture_transform.js +6 -56
  422. package/glTF/2.0/Extensions/KHR_texture_transform.js.map +1 -1
  423. package/glTF/2.0/Extensions/KHR_texture_transform.pure.d.ts +34 -0
  424. package/glTF/2.0/Extensions/KHR_texture_transform.pure.js +71 -0
  425. package/glTF/2.0/Extensions/KHR_texture_transform.pure.js.map +1 -0
  426. package/glTF/2.0/Extensions/KHR_texture_transform.types.d.ts +9 -0
  427. package/glTF/2.0/Extensions/KHR_texture_transform.types.js +2 -0
  428. package/glTF/2.0/Extensions/KHR_texture_transform.types.js.map +1 -0
  429. package/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +4 -37
  430. package/glTF/2.0/Extensions/KHR_xmp_json_ld.js +6 -45
  431. package/glTF/2.0/Extensions/KHR_xmp_json_ld.js.map +1 -1
  432. package/glTF/2.0/Extensions/KHR_xmp_json_ld.pure.d.ts +36 -0
  433. package/glTF/2.0/Extensions/KHR_xmp_json_ld.pure.js +60 -0
  434. package/glTF/2.0/Extensions/KHR_xmp_json_ld.pure.js.map +1 -0
  435. package/glTF/2.0/Extensions/KHR_xmp_json_ld.types.d.ts +9 -0
  436. package/glTF/2.0/Extensions/KHR_xmp_json_ld.types.js +2 -0
  437. package/glTF/2.0/Extensions/KHR_xmp_json_ld.types.js.map +1 -0
  438. package/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +5 -54
  439. package/glTF/2.0/Extensions/MSFT_audio_emitter.js +7 -226
  440. package/glTF/2.0/Extensions/MSFT_audio_emitter.js.map +1 -1
  441. package/glTF/2.0/Extensions/MSFT_audio_emitter.pure.d.ts +52 -0
  442. package/glTF/2.0/Extensions/MSFT_audio_emitter.pure.js +240 -0
  443. package/glTF/2.0/Extensions/MSFT_audio_emitter.pure.js.map +1 -0
  444. package/glTF/2.0/Extensions/MSFT_audio_emitter.types.d.ts +9 -0
  445. package/glTF/2.0/Extensions/MSFT_audio_emitter.types.js +2 -0
  446. package/glTF/2.0/Extensions/MSFT_audio_emitter.types.js.map +1 -0
  447. package/glTF/2.0/Extensions/MSFT_lod.d.ts +4 -102
  448. package/glTF/2.0/Extensions/MSFT_lod.js +6 -335
  449. package/glTF/2.0/Extensions/MSFT_lod.js.map +1 -1
  450. package/glTF/2.0/Extensions/MSFT_lod.pure.d.ts +96 -0
  451. package/glTF/2.0/Extensions/MSFT_lod.pure.js +350 -0
  452. package/glTF/2.0/Extensions/MSFT_lod.pure.js.map +1 -0
  453. package/glTF/2.0/Extensions/MSFT_lod.types.d.ts +14 -0
  454. package/glTF/2.0/Extensions/MSFT_lod.types.js +2 -0
  455. package/glTF/2.0/Extensions/MSFT_lod.types.js.map +1 -0
  456. package/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +6 -27
  457. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js +8 -40
  458. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js.map +1 -1
  459. package/glTF/2.0/Extensions/MSFT_minecraftMesh.pure.d.ts +24 -0
  460. package/glTF/2.0/Extensions/MSFT_minecraftMesh.pure.js +53 -0
  461. package/glTF/2.0/Extensions/MSFT_minecraftMesh.pure.js.map +1 -0
  462. package/glTF/2.0/Extensions/MSFT_minecraftMesh.types.d.ts +9 -0
  463. package/glTF/2.0/Extensions/MSFT_minecraftMesh.types.js +2 -0
  464. package/glTF/2.0/Extensions/MSFT_minecraftMesh.types.js.map +1 -0
  465. package/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +6 -27
  466. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js +8 -38
  467. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js.map +1 -1
  468. package/glTF/2.0/Extensions/MSFT_sRGBFactors.pure.d.ts +24 -0
  469. package/glTF/2.0/Extensions/MSFT_sRGBFactors.pure.js +51 -0
  470. package/glTF/2.0/Extensions/MSFT_sRGBFactors.pure.js.map +1 -0
  471. package/glTF/2.0/Extensions/MSFT_sRGBFactors.types.d.ts +9 -0
  472. package/glTF/2.0/Extensions/MSFT_sRGBFactors.types.js +2 -0
  473. package/glTF/2.0/Extensions/MSFT_sRGBFactors.types.js.map +1 -0
  474. package/glTF/2.0/Extensions/dynamic.js +5 -0
  475. package/glTF/2.0/Extensions/dynamic.js.map +1 -1
  476. package/glTF/2.0/Extensions/index.d.ts +1 -0
  477. package/glTF/2.0/Extensions/index.js +1 -0
  478. package/glTF/2.0/Extensions/index.js.map +1 -1
  479. package/glTF/2.0/Extensions/objectModelMapping.d.ts +31 -2
  480. package/glTF/2.0/Extensions/objectModelMapping.js +3 -3
  481. package/glTF/2.0/Extensions/objectModelMapping.js.map +1 -1
  482. package/glTF/2.0/Extensions/pure.d.ts +46 -0
  483. package/glTF/2.0/Extensions/pure.js +48 -0
  484. package/glTF/2.0/Extensions/pure.js.map +1 -0
  485. package/glTF/2.0/glTFLoader.d.ts +1 -471
  486. package/glTF/2.0/glTFLoader.js +9 -2570
  487. package/glTF/2.0/glTFLoader.js.map +1 -1
  488. package/glTF/2.0/glTFLoader.pure.d.ts +476 -0
  489. package/glTF/2.0/glTFLoader.pure.js +2606 -0
  490. package/glTF/2.0/glTFLoader.pure.js.map +1 -0
  491. package/glTF/2.0/glTFLoaderAnimation.d.ts +2 -2
  492. package/glTF/2.0/glTFLoaderAnimation.js +2 -2
  493. package/glTF/2.0/glTFLoaderAnimation.js.map +1 -1
  494. package/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +1 -1
  495. package/glTF/2.0/pbrMaterialLoadingAdapter.js +2 -2
  496. package/glTF/2.0/pbrMaterialLoadingAdapter.js.map +1 -1
  497. package/glTF/2.0/pure.d.ts +8 -0
  498. package/glTF/2.0/pure.js +10 -0
  499. package/glTF/2.0/pure.js.map +1 -0
  500. package/glTF/glTFFileLoader.d.ts +5 -571
  501. package/glTF/glTFFileLoader.js +6 -1016
  502. package/glTF/glTFFileLoader.js.map +1 -1
  503. package/glTF/glTFFileLoader.pure.d.ts +582 -0
  504. package/glTF/glTFFileLoader.pure.js +1044 -0
  505. package/glTF/glTFFileLoader.pure.js.map +1 -0
  506. package/glTF/glTFFileLoader.types.d.ts +11 -0
  507. package/glTF/glTFFileLoader.types.js +2 -0
  508. package/glTF/glTFFileLoader.types.js.map +1 -0
  509. package/glTF/glTFValidation.js +1 -1
  510. package/glTF/glTFValidation.js.map +1 -1
  511. package/glTF/pure.d.ts +6 -0
  512. package/glTF/pure.js +8 -0
  513. package/glTF/pure.js.map +1 -0
  514. package/package.json +3 -3
  515. package/pure.d.ts +8 -0
  516. package/pure.js +10 -0
  517. package/pure.js.map +1 -0
@@ -1,590 +1,12 @@
1
- /* eslint-disable @typescript-eslint/promise-function-async*/
2
- /* eslint-disable @typescript-eslint/naming-convention */
3
- import { RegisterSceneLoaderPlugin, } from "@onerjs/core/Loading/sceneLoader.js";
4
- import { SPLATFileLoaderMetadata } from "./splatFileLoader.metadata.js";
5
- import { GaussianSplattingMesh } from "@onerjs/core/Meshes/GaussianSplatting/gaussianSplattingMesh.js";
6
- import { AssetContainer } from "@onerjs/core/assetContainer.js";
7
- import { Mesh } from "@onerjs/core/Meshes/mesh.js";
8
- import { Logger } from "@onerjs/core/Misc/logger.js";
9
- import { Vector3 } from "@onerjs/core/Maths/math.vector.js";
10
- import { PointsCloudSystem } from "@onerjs/core/Particles/pointsCloudSystem.js";
11
- import { Color4 } from "@onerjs/core/Maths/math.color.js";
12
- import { VertexData } from "@onerjs/core/Meshes/mesh.vertexData.js";
13
- import { ConvertSpzToSplatAsync, GetSpzModule, ParseSpz } from "./spz.js";
14
- import { ParseSogMeta, ParseSogMetaAsTextures } from "./sog.js";
15
- import { Tools } from "@onerjs/core/Misc/tools.js";
16
1
  /**
17
- * @experimental
18
- * SPLAT file type loader.
19
- * This is a babylon scene loader plugin.
2
+ * Re-exports the pure implementation and applies the runtime registration side effect.
3
+ * Import "./splatFileLoader.pure" for tree-shakeable, side-effect-free usage.
20
4
  */
21
- export class SPLATFileLoader {
22
- /**
23
- * Creates loader for gaussian splatting files
24
- * @param loadingOptions options for loading and parsing splat and PLY files.
25
- */
26
- constructor(loadingOptions = {}) {
27
- /**
28
- * Defines the name of the plugin.
29
- */
30
- this.name = SPLATFileLoaderMetadata.name;
31
- this._assetContainer = null;
32
- /**
33
- * Defines the extensions the splat loader is able to load.
34
- * force data to come in as an ArrayBuffer
35
- */
36
- this.extensions = SPLATFileLoaderMetadata.extensions;
37
- this._loadingOptions = { ...SPLATFileLoader._DefaultLoadingOptions, ...loadingOptions };
38
- }
39
- /** @internal */
40
- createPlugin(options) {
41
- return new SPLATFileLoader(options[SPLATFileLoaderMetadata.name]);
42
- }
43
- /**
44
- * Imports from the loaded gaussian splatting data and adds them to the scene
45
- * @param meshesNames a string or array of strings of the mesh names that should be loaded from the file
46
- * @param scene the scene the meshes should be added to
47
- * @param data the gaussian splatting data to load
48
- * @param rootUrl root url to load from
49
- * @param _onProgress callback called while file is loading
50
- * @param _fileName Defines the name of the file to load
51
- * @returns a promise containing the loaded meshes, particles, skeletons and animations
52
- */
53
- async importMeshAsync(meshesNames, scene, data, rootUrl, _onProgress, _fileName) {
54
- // eslint-disable-next-line github/no-then
55
- return await this._parseAsync(meshesNames, scene, data, rootUrl).then((meshes) => {
56
- return {
57
- meshes: meshes,
58
- particleSystems: [],
59
- skeletons: [],
60
- animationGroups: [],
61
- transformNodes: [],
62
- geometries: [],
63
- lights: [],
64
- spriteManagers: [],
65
- };
66
- });
67
- }
68
- static _BuildPointCloud(pointcloud, data) {
69
- if (!data.byteLength) {
70
- return false;
71
- }
72
- const uBuffer = new Uint8Array(data);
73
- const fBuffer = new Float32Array(data);
74
- // parsed array contains room for position(3floats), normal(3floats), color (4b), quantized quaternion (4b)
75
- const rowLength = 3 * 4 + 3 * 4 + 4 + 4;
76
- const vertexCount = uBuffer.length / rowLength;
77
- const pointcloudfunc = function (particle, i) {
78
- const x = fBuffer[8 * i + 0];
79
- const y = fBuffer[8 * i + 1];
80
- const z = fBuffer[8 * i + 2];
81
- particle.position = new Vector3(x, y, z);
82
- const r = uBuffer[rowLength * i + 24 + 0] / 255;
83
- const g = uBuffer[rowLength * i + 24 + 1] / 255;
84
- const b = uBuffer[rowLength * i + 24 + 2] / 255;
85
- particle.color = new Color4(r, g, b, 1);
86
- };
87
- pointcloud.addPoints(vertexCount, pointcloudfunc);
88
- return true;
89
- }
90
- static _BuildMesh(scene, parsedPLY) {
91
- const mesh = new Mesh("PLYMesh", scene);
92
- const uBuffer = new Uint8Array(parsedPLY.data);
93
- const fBuffer = new Float32Array(parsedPLY.data);
94
- const rowLength = 3 * 4 + 3 * 4 + 4 + 4;
95
- const vertexCount = uBuffer.length / rowLength;
96
- const positions = [];
97
- const vertexData = new VertexData();
98
- for (let i = 0; i < vertexCount; i++) {
99
- const x = fBuffer[8 * i + 0];
100
- const y = fBuffer[8 * i + 1];
101
- const z = fBuffer[8 * i + 2];
102
- positions.push(x, y, z);
103
- }
104
- if (parsedPLY.hasVertexColors) {
105
- const colors = new Float32Array(vertexCount * 4);
106
- for (let i = 0; i < vertexCount; i++) {
107
- const r = uBuffer[rowLength * i + 24 + 0] / 255;
108
- const g = uBuffer[rowLength * i + 24 + 1] / 255;
109
- const b = uBuffer[rowLength * i + 24 + 2] / 255;
110
- colors[i * 4 + 0] = r;
111
- colors[i * 4 + 1] = g;
112
- colors[i * 4 + 2] = b;
113
- colors[i * 4 + 3] = 1;
114
- }
115
- vertexData.colors = colors;
116
- }
117
- vertexData.positions = positions;
118
- vertexData.indices = parsedPLY.faces;
119
- vertexData.applyToMesh(mesh);
120
- return mesh;
121
- }
122
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax, @typescript-eslint/naming-convention
123
- async _unzipWithFFlateAsync(data) {
124
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
125
- // @ts-ignore
126
- let fflate = this._loadingOptions.fflate;
127
- // ensure fflate is loaded
128
- if (!fflate) {
129
- if (typeof window.fflate === "undefined") {
130
- await Tools.LoadScriptAsync(this._loadingOptions.deflateURL ?? "https://unpkg.com/fflate/umd/index.js");
131
- }
132
- fflate = window.fflate;
133
- }
134
- const { unzipSync } = fflate;
135
- const unzipped = unzipSync(data); // { [filename: string]: Uint8Array }
136
- const files = new Map();
137
- for (const [name, content] of Object.entries(unzipped)) {
138
- files.set(name, content);
139
- }
140
- return files;
141
- }
142
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
143
- _parseAsync(meshesNames, scene, data, rootUrl) {
144
- const babylonMeshesArray = []; //The mesh for babylon
145
- const makeGSFromParsedSOG = (parsedSOG) => {
146
- scene._blockEntityCollection = !!this._assetContainer;
147
- const gaussianSplatting = this._loadingOptions.gaussianSplattingMesh ??
148
- new GaussianSplattingMesh("GaussianSplatting", null, scene, this._loadingOptions.keepInRam, this._loadingOptions.needsRotationScaleTextures);
149
- gaussianSplatting._parentContainer = this._assetContainer;
150
- babylonMeshesArray.push(gaussianSplatting);
151
- if (parsedSOG.sogTextures) {
152
- gaussianSplatting.setSogTextureData(parsedSOG.sogTextures);
153
- }
154
- else {
155
- gaussianSplatting.updateData(parsedSOG.data, parsedSOG.sh, { flipY: false }, undefined, parsedSOG.shDegree);
156
- }
157
- gaussianSplatting.scaling.y *= -1;
158
- gaussianSplatting.computeWorldMatrix(true);
159
- scene._blockEntityCollection = false;
160
- };
161
- const engine = scene.getEngine();
162
- let useSogTextures = this._loadingOptions.useSogTextures;
163
- if (useSogTextures && !engine.isWebGPU && engine.version < 2) {
164
- Logger.Warn("SPLATFileLoader: useSogTextures requires WebGL2 or WebGPU. Falling back to CPU path.");
165
- useSogTextures = false;
166
- }
167
- const sogParser = useSogTextures ? ParseSogMetaAsTextures : ParseSogMeta;
168
- // check if data is json string
169
- if (typeof data === "string") {
170
- const dataSOG = JSON.parse(data);
171
- if (dataSOG && dataSOG.means && dataSOG.scales && dataSOG.quats && dataSOG.sh0) {
172
- return new Promise((resolve, reject) => {
173
- sogParser(dataSOG, rootUrl, scene)
174
- // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
175
- .then((parsedSOG) => {
176
- makeGSFromParsedSOG(parsedSOG);
177
- resolve(babylonMeshesArray);
178
- })
179
- // eslint-disable-next-line github/no-then
180
- .catch((e) => {
181
- reject(new Error("Failed to parse SOG data.", { cause: e }));
182
- });
183
- });
184
- }
185
- }
186
- const u8 = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
187
- // ZIP signature check for SOG
188
- if (u8[0] === 0x50 && u8[1] === 0x4b) {
189
- return new Promise((resolve, reject) => {
190
- // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
191
- this._unzipWithFFlateAsync(u8).then((files) => {
192
- sogParser(files, rootUrl, scene)
193
- // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
194
- .then((parsedSOG) => {
195
- makeGSFromParsedSOG(parsedSOG);
196
- resolve(babylonMeshesArray);
197
- }) // eslint-disable-next-line github/no-then
198
- .catch((e) => {
199
- reject(new Error("Failed to parse SOG zip data.", { cause: e }));
200
- });
201
- });
202
- });
203
- }
204
- const handlePLY = (resolve) => {
205
- // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
206
- SPLATFileLoader._ConvertPLYToSplat(data).then(async (parsedPLY) => {
207
- scene._blockEntityCollection = !!this._assetContainer;
208
- switch (parsedPLY.mode) {
209
- case 0 /* Mode.Splat */:
210
- {
211
- const gaussianSplatting = this._loadingOptions.gaussianSplattingMesh ??
212
- new GaussianSplattingMesh("GaussianSplatting", null, scene, this._loadingOptions.keepInRam, this._loadingOptions.needsRotationScaleTextures);
213
- gaussianSplatting._parentContainer = this._assetContainer;
214
- babylonMeshesArray.push(gaussianSplatting);
215
- gaussianSplatting.updateData(parsedPLY.data, parsedPLY.sh, { flipY: false }, undefined, parsedPLY.shDegree);
216
- gaussianSplatting.scaling.y *= -1.0;
217
- if (parsedPLY.chirality === "RightHanded") {
218
- gaussianSplatting.scaling.y *= -1.0;
219
- }
220
- switch (parsedPLY.upAxis) {
221
- case "X":
222
- gaussianSplatting.rotation = new Vector3(0, 0, Math.PI / 2);
223
- break;
224
- case "Y":
225
- gaussianSplatting.rotation = new Vector3(0, 0, Math.PI);
226
- break;
227
- case "Z":
228
- gaussianSplatting.rotation = new Vector3(-Math.PI / 2, Math.PI, 0);
229
- break;
230
- }
231
- gaussianSplatting.computeWorldMatrix(true);
232
- }
233
- break;
234
- case 1 /* Mode.PointCloud */:
235
- {
236
- const pointcloud = new PointsCloudSystem("PointCloud", 1, scene);
237
- if (SPLATFileLoader._BuildPointCloud(pointcloud, parsedPLY.data)) {
238
- // eslint-disable-next-line github/no-then
239
- await pointcloud.buildMeshAsync().then((mesh) => {
240
- babylonMeshesArray.push(mesh);
241
- });
242
- }
243
- else {
244
- pointcloud.dispose();
245
- }
246
- }
247
- break;
248
- case 2 /* Mode.Mesh */:
249
- {
250
- if (parsedPLY.faces) {
251
- babylonMeshesArray.push(SPLATFileLoader._BuildMesh(scene, parsedPLY));
252
- }
253
- else {
254
- throw new Error("PLY mesh doesn't contain face informations.");
255
- }
256
- }
257
- break;
258
- default:
259
- throw new Error("Unsupported Splat mode");
260
- }
261
- scene._blockEntityCollection = false;
262
- this.applyAutoCameraLimits(parsedPLY, scene);
263
- resolve(babylonMeshesArray);
264
- });
265
- };
266
- // Check for gzip (before SPZ V4) and NGSP (SPZ V4+) magic bytes to detect SPZ format
267
- const isGZipped = u8[0] === 0x1f && u8[1] === 0x8b;
268
- const isNGSP = u8[0] === 0x4e && u8[1] === 0x47 && u8[2] === 0x53 && u8[3] === 0x50;
269
- if (!isGZipped && !isNGSP) {
270
- return new Promise((resolve) => {
271
- handlePLY(resolve);
272
- });
273
- }
274
- const applyParsedSPZ = (parsedSPZ, resolve) => {
275
- scene._blockEntityCollection = !!this._assetContainer;
276
- const gaussianSplatting = this._loadingOptions.gaussianSplattingMesh ??
277
- new GaussianSplattingMesh("GaussianSplatting", null, scene, this._loadingOptions.keepInRam, this._loadingOptions.needsRotationScaleTextures);
278
- if (parsedSPZ.trainedWithAntialiasing) {
279
- const gsMaterial = gaussianSplatting.material;
280
- gsMaterial.kernelSize = 0.1;
281
- gsMaterial.compensation = true;
282
- }
283
- gaussianSplatting._parentContainer = this._assetContainer;
284
- babylonMeshesArray.push(gaussianSplatting);
285
- gaussianSplatting.updateData(parsedSPZ.data, parsedSPZ.sh, { flipY: false }, undefined, parsedSPZ.shDegree);
286
- if (!this._loadingOptions.flipY) {
287
- gaussianSplatting.scaling.y *= -1.0;
288
- gaussianSplatting.computeWorldMatrix(true);
289
- }
290
- scene._blockEntityCollection = false;
291
- this.applyAutoCameraLimits(parsedSPZ, scene);
292
- resolve(babylonMeshesArray);
293
- };
294
- if (this._loadingOptions.spzLibraryUrl) {
295
- // WASM path: load spz module from URL, pass raw gzip data directly
296
- // eslint-disable-next-line github/no-then
297
- return GetSpzModule(this._loadingOptions.spzLibraryUrl).then((spz) => {
298
- const cloud = spz.loadSpzFromBuffer(new Uint8Array(data), { to: spz.CoordinateSystem.RUB });
299
- // eslint-disable-next-line github/no-then
300
- return ConvertSpzToSplatAsync(cloud, scene).then((parsedSPZ) => {
301
- return new Promise((resolve) => {
302
- applyParsedSPZ(parsedSPZ, resolve);
303
- });
304
- });
305
- });
306
- }
307
- // NGSP (SPZ V4+) requires WASM — the native fallback only handles legacy gzip formats
308
- if (isNGSP) {
309
- return Promise.reject(new Error("SPZ V4+ files (NGSP format) are not supported by the native fallback loader. " +
310
- "Please provide a valid 'spzLibraryUrl' in the loading options to use the WASM-based SPZ library, " +
311
- "or ensure WebAssembly is available in your environment."));
312
- }
313
- // Manual path: decompress gzip, then parse with the built-in SPZ parser
314
- const readableStream = new ReadableStream({
315
- start(controller) {
316
- controller.enqueue(new Uint8Array(data));
317
- controller.close();
318
- },
319
- });
320
- const decompressionStream = new DecompressionStream("gzip");
321
- const decompressedStream = readableStream.pipeThrough(decompressionStream);
322
- return new Promise((resolve) => {
323
- new Response(decompressedStream)
324
- .arrayBuffer()
325
- // eslint-disable-next-line github/no-then
326
- .then((buffer) => {
327
- // eslint-disable-next-line @typescript-eslint/no-floating-promises, github/no-then
328
- ParseSpz(buffer, scene, this._loadingOptions).then((parsedSPZ) => {
329
- applyParsedSPZ(parsedSPZ, resolve);
330
- });
331
- })
332
- // eslint-disable-next-line github/no-then
333
- .catch(() => {
334
- handlePLY(resolve);
335
- });
336
- });
337
- }
338
- /**
339
- * Applies camera limits based on parsed meta data
340
- * @param meta parsed splat meta data
341
- * @param scene
342
- */
343
- applyAutoCameraLimits(meta, scene) {
344
- if (this._loadingOptions.disableAutoCameraLimits) {
345
- return;
346
- }
347
- if ((meta.safeOrbitCameraRadiusMin !== undefined || meta.safeOrbitCameraElevationMinMax !== undefined) && scene.activeCamera?.getClassName() === "ArcRotateCamera") {
348
- const arcCam = scene.activeCamera;
349
- if (meta.safeOrbitCameraElevationMinMax) {
350
- arcCam.lowerBetaLimit = Math.PI * 0.5 - meta.safeOrbitCameraElevationMinMax[1];
351
- arcCam.upperBetaLimit = Math.PI * 0.5 - meta.safeOrbitCameraElevationMinMax[0];
352
- }
353
- if (meta.safeOrbitCameraRadiusMin) {
354
- arcCam.lowerRadiusLimit = meta.safeOrbitCameraRadiusMin;
355
- }
356
- }
357
- }
358
- /**
359
- * Load into an asset container.
360
- * @param scene The scene to load into
361
- * @param data The data to import
362
- * @param rootUrl The root url for scene and resources
363
- * @returns The loaded asset container
364
- */
365
- // eslint-disable-next-line no-restricted-syntax
366
- loadAssetContainerAsync(scene, data, rootUrl) {
367
- const container = new AssetContainer(scene);
368
- this._assetContainer = container;
369
- return (this.importMeshAsync(null, scene, data, rootUrl)
370
- // eslint-disable-next-line github/no-then
371
- .then((result) => {
372
- for (const mesh of result.meshes) {
373
- container.meshes.push(mesh);
374
- }
375
- // mesh material will be null before 1st rendered frame.
376
- this._assetContainer = null;
377
- return container;
378
- })
379
- // eslint-disable-next-line github/no-then
380
- .catch((ex) => {
381
- this._assetContainer = null;
382
- throw ex;
383
- }));
384
- }
385
- /**
386
- * Imports all objects from the loaded OBJ data and adds them to the scene
387
- * @param scene the scene the objects should be added to
388
- * @param data the OBJ data to load
389
- * @param rootUrl root url to load from
390
- * @returns a promise which completes when objects have been loaded to the scene
391
- */
392
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
393
- loadAsync(scene, data, rootUrl) {
394
- //Get the 3D model
395
- // eslint-disable-next-line github/no-then
396
- return this.importMeshAsync(null, scene, data, rootUrl).then(() => {
397
- // return void
398
- });
399
- }
400
- /**
401
- * Code from https://github.com/dylanebert/gsplat.js/blob/main/src/loaders/PLYLoader.ts Under MIT license
402
- * Converts a .ply data array buffer to splat
403
- * if data array buffer is not ply, returns the original buffer
404
- * @param data the .ply data to load
405
- * @returns the loaded splat buffer
406
- */
407
- static _ConvertPLYToSplat(data) {
408
- const ubuf = new Uint8Array(data);
409
- const header = new TextDecoder().decode(ubuf.slice(0, 1024 * 10));
410
- const headerEnd = "end_header\n";
411
- const headerEndIndex = header.indexOf(headerEnd);
412
- if (headerEndIndex < 0 || !header) {
413
- // standard splat
414
- return new Promise((resolve) => {
415
- resolve({ mode: 0 /* Mode.Splat */, data: data, rawSplat: true });
416
- });
417
- }
418
- const vertexCount = parseInt(/element vertex (\d+)\n/.exec(header)[1]);
419
- const faceElement = /element face (\d+)\n/.exec(header);
420
- let faceCount = 0;
421
- if (faceElement) {
422
- faceCount = parseInt(faceElement[1]);
423
- }
424
- const chunkElement = /element chunk (\d+)\n/.exec(header);
425
- let chunkCount = 0;
426
- if (chunkElement) {
427
- chunkCount = parseInt(chunkElement[1]);
428
- }
429
- let rowVertexOffset = 0;
430
- let rowChunkOffset = 0;
431
- const offsets = {
432
- double: 8,
433
- int: 4,
434
- uint: 4,
435
- float: 4,
436
- short: 2,
437
- ushort: 2,
438
- uchar: 1,
439
- list: 0,
440
- };
441
- const ElementMode = {
442
- Vertex: 0,
443
- Chunk: 1,
444
- SH: 2,
445
- Float_Tuple: 3,
446
- Float: 4,
447
- Uchar: 5,
448
- };
449
- let chunkMode = ElementMode.Chunk;
450
- const vertexProperties = [];
451
- const chunkProperties = [];
452
- const filtered = header.slice(0, headerEndIndex).split("\n");
453
- const metaData = {};
454
- for (const prop of filtered) {
455
- if (prop.startsWith("property ")) {
456
- const [, type, name] = prop.split(" ");
457
- if (chunkMode == ElementMode.Chunk) {
458
- chunkProperties.push({ name, type, offset: rowChunkOffset });
459
- rowChunkOffset += offsets[type];
460
- }
461
- else if (chunkMode == ElementMode.Vertex) {
462
- vertexProperties.push({ name, type, offset: rowVertexOffset });
463
- rowVertexOffset += offsets[type];
464
- }
465
- else if (chunkMode == ElementMode.SH) {
466
- vertexProperties.push({ name, type, offset: rowVertexOffset });
467
- }
468
- else if (chunkMode == ElementMode.Float_Tuple) {
469
- const view = new DataView(data, rowChunkOffset, offsets.float * 2);
470
- metaData.safeOrbitCameraElevationMinMax = [view.getFloat32(0, true), view.getFloat32(4, true)];
471
- }
472
- else if (chunkMode == ElementMode.Float) {
473
- const view = new DataView(data, rowChunkOffset, offsets.float);
474
- metaData.safeOrbitCameraRadiusMin = view.getFloat32(0, true);
475
- }
476
- else if (chunkMode == ElementMode.Uchar) {
477
- const view = new DataView(data, rowChunkOffset, offsets.uchar);
478
- if (name == "up_axis") {
479
- metaData.upAxis = view.getUint8(0) == 0 ? "X" : view.getUint8(0) == 1 ? "Y" : "Z";
480
- }
481
- else if (name == "chirality") {
482
- metaData.chirality = view.getUint8(0) == 0 ? "LeftHanded" : "RightHanded";
483
- }
484
- }
485
- if (!offsets[type]) {
486
- Logger.Warn(`Unsupported property type: ${type}.`);
487
- }
488
- }
489
- else if (prop.startsWith("element ")) {
490
- const [, type] = prop.split(" ");
491
- if (type == "chunk") {
492
- chunkMode = ElementMode.Chunk;
493
- }
494
- else if (type == "vertex") {
495
- chunkMode = ElementMode.Vertex;
496
- }
497
- else if (type == "sh") {
498
- chunkMode = ElementMode.SH;
499
- }
500
- else if (type == "safe_orbit_camera_elevation_min_max_radians") {
501
- chunkMode = ElementMode.Float_Tuple;
502
- }
503
- else if (type == "safe_orbit_camera_radius_min") {
504
- chunkMode = ElementMode.Float;
505
- }
506
- else if (type == "up_axis" || type == "chirality") {
507
- chunkMode = ElementMode.Uchar;
508
- }
509
- }
510
- }
511
- const rowVertexLength = rowVertexOffset;
512
- const rowChunkLength = rowChunkOffset;
513
- // eslint-disable-next-line github/no-then
514
- return GaussianSplattingMesh.ConvertPLYWithSHToSplatAsync(data).then(async (splatsData) => {
515
- const dataView = new DataView(data, headerEndIndex + headerEnd.length);
516
- let offset = rowChunkLength * chunkCount + rowVertexLength * vertexCount;
517
- // faces
518
- const faces = [];
519
- if (faceCount) {
520
- for (let i = 0; i < faceCount; i++) {
521
- const faceVertexCount = dataView.getUint8(offset);
522
- if (faceVertexCount != 3) {
523
- continue; // only support triangles
524
- }
525
- offset += 1;
526
- for (let j = 0; j < faceVertexCount; j++) {
527
- const vertexIndex = dataView.getUint32(offset + (2 - j) * 4, true); // change face winding
528
- faces.push(vertexIndex);
529
- }
530
- offset += 12;
531
- }
532
- }
533
- // early exit for chunked/quantized ply
534
- if (chunkCount) {
535
- return await new Promise((resolve) => {
536
- resolve({
537
- mode: 0 /* Mode.Splat */,
538
- data: splatsData.buffer,
539
- sh: splatsData.sh,
540
- shDegree: splatsData.shDegree,
541
- faces: faces,
542
- hasVertexColors: false,
543
- compressed: true,
544
- rawSplat: false,
545
- });
546
- });
547
- }
548
- // count available properties. if all necessary are present then it's a splat. Otherwise, it's a point cloud
549
- // if faces are found, then it's a standard mesh
550
- let propertyCount = 0;
551
- let propertyColorCount = 0;
552
- const splatProperties = ["x", "y", "z", "scale_0", "scale_1", "scale_2", "opacity", "rot_0", "rot_1", "rot_2", "rot_3"];
553
- const splatColorProperties = ["red", "green", "blue", "f_dc_0", "f_dc_1", "f_dc_2"];
554
- for (let propertyIndex = 0; propertyIndex < vertexProperties.length; propertyIndex++) {
555
- const property = vertexProperties[propertyIndex];
556
- if (splatProperties.includes(property.name)) {
557
- propertyCount++;
558
- }
559
- if (splatColorProperties.includes(property.name)) {
560
- propertyColorCount++;
561
- }
562
- }
563
- const hasMandatoryProperties = propertyCount == splatProperties.length && propertyColorCount == 3;
564
- const currentMode = faceCount ? 2 /* Mode.Mesh */ : hasMandatoryProperties ? 0 /* Mode.Splat */ : 1 /* Mode.PointCloud */;
565
- // parsed ready ready to be used as a splat
566
- return await new Promise((resolve) => {
567
- resolve({
568
- ...metaData,
569
- mode: currentMode,
570
- data: splatsData.buffer,
571
- sh: splatsData.sh,
572
- shDegree: splatsData.shDegree,
573
- faces: faces,
574
- hasVertexColors: !!propertyColorCount,
575
- compressed: false,
576
- rawSplat: false,
577
- });
578
- });
579
- });
580
- }
581
- }
582
- SPLATFileLoader._DefaultLoadingOptions = {
583
- keepInRam: false,
584
- flipY: false,
585
- needsRotationScaleTextures: false,
586
- spzLibraryUrl: typeof WebAssembly === "object" ? "https://unpkg.com/@adobe/spz@0.2.2/dist/spz.js" : undefined,
587
- };
588
- // Add this loader into the register plugin
589
- RegisterSceneLoaderPlugin(new SPLATFileLoader());
5
+ export * from "./splatFileLoader.types.js";
6
+ export * from "./splatFileLoader.pure.js";
7
+ // The SOG-with-textures path in the pure implementation relies on the prototype-augmented
8
+ // updateDynamicTexture engine extension; import its side effect here so it is present at runtime.
9
+ import "@onerjs/core/Engines/Extensions/engine.dynamicTexture.js";
10
+ import { RegisterSPLATFileLoader } from "./splatFileLoader.pure.js";
11
+ RegisterSPLATFileLoader();
590
12
  //# sourceMappingURL=splatFileLoader.js.map