@babylonjs/loaders 9.13.0 → 9.15.0

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 (500) 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 +122 -4
  49. package/SPLAT/gaussianSplattingStream.js +413 -42
  50. package/SPLAT/gaussianSplattingStream.js.map +1 -1
  51. package/SPLAT/gaussianSplattingWorkBuffer.d.ts +36 -0
  52. package/SPLAT/gaussianSplattingWorkBuffer.js +125 -13
  53. package/SPLAT/gaussianSplattingWorkBuffer.js.map +1 -1
  54. package/SPLAT/gaussianSplattingWorkBufferShaders.d.ts +15 -0
  55. package/SPLAT/gaussianSplattingWorkBufferShaders.js +82 -0
  56. package/SPLAT/gaussianSplattingWorkBufferShaders.js.map +1 -1
  57. package/SPLAT/pure.d.ts +5 -0
  58. package/SPLAT/pure.js +7 -0
  59. package/SPLAT/pure.js.map +1 -0
  60. package/SPLAT/sog.d.ts +1 -97
  61. package/SPLAT/sog.js +1 -501
  62. package/SPLAT/sog.js.map +1 -1
  63. package/SPLAT/sog.pure.d.ts +102 -0
  64. package/SPLAT/sog.pure.js +514 -0
  65. package/SPLAT/sog.pure.js.map +1 -0
  66. package/SPLAT/splatFileLoader.d.ts +5 -106
  67. package/SPLAT/splatFileLoader.js +9 -636
  68. package/SPLAT/splatFileLoader.js.map +1 -1
  69. package/SPLAT/splatFileLoader.pure.d.ts +104 -0
  70. package/SPLAT/splatFileLoader.pure.js +650 -0
  71. package/SPLAT/splatFileLoader.pure.js.map +1 -0
  72. package/SPLAT/splatFileLoader.types.d.ts +11 -0
  73. package/SPLAT/splatFileLoader.types.js +2 -0
  74. package/SPLAT/splatFileLoader.types.js.map +1 -0
  75. package/STL/pure.d.ts +2 -0
  76. package/STL/pure.js +3 -0
  77. package/STL/pure.js.map +1 -0
  78. package/STL/stlFileLoader.d.ts +5 -76
  79. package/STL/stlFileLoader.js +7 -236
  80. package/STL/stlFileLoader.js.map +1 -1
  81. package/STL/stlFileLoader.pure.d.ts +73 -0
  82. package/STL/stlFileLoader.pure.js +249 -0
  83. package/STL/stlFileLoader.pure.js.map +1 -0
  84. package/STL/stlFileLoader.types.d.ts +10 -0
  85. package/STL/stlFileLoader.types.js +2 -0
  86. package/STL/stlFileLoader.types.js.map +1 -0
  87. package/glTF/1.0/pure.d.ts +3 -0
  88. package/glTF/1.0/pure.js +4 -0
  89. package/glTF/1.0/pure.js.map +1 -0
  90. package/glTF/2.0/Extensions/EXT_lights_area.d.ts +4 -39
  91. package/glTF/2.0/Extensions/EXT_lights_area.js +6 -91
  92. package/glTF/2.0/Extensions/EXT_lights_area.js.map +1 -1
  93. package/glTF/2.0/Extensions/EXT_lights_area.pure.d.ts +38 -0
  94. package/glTF/2.0/Extensions/EXT_lights_area.pure.js +106 -0
  95. package/glTF/2.0/Extensions/EXT_lights_area.pure.js.map +1 -0
  96. package/glTF/2.0/Extensions/EXT_lights_area.types.d.ts +9 -0
  97. package/glTF/2.0/Extensions/EXT_lights_area.types.js +2 -0
  98. package/glTF/2.0/Extensions/EXT_lights_area.types.js.map +1 -0
  99. package/glTF/2.0/Extensions/EXT_lights_ies.d.ts +4 -39
  100. package/glTF/2.0/Extensions/EXT_lights_ies.js +6 -81
  101. package/glTF/2.0/Extensions/EXT_lights_ies.js.map +1 -1
  102. package/glTF/2.0/Extensions/EXT_lights_ies.pure.d.ts +38 -0
  103. package/glTF/2.0/Extensions/EXT_lights_ies.pure.js +96 -0
  104. package/glTF/2.0/Extensions/EXT_lights_ies.pure.js.map +1 -0
  105. package/glTF/2.0/Extensions/EXT_lights_ies.types.d.ts +9 -0
  106. package/glTF/2.0/Extensions/EXT_lights_ies.types.js +2 -0
  107. package/glTF/2.0/Extensions/EXT_lights_ies.types.js.map +1 -0
  108. package/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +4 -46
  109. package/glTF/2.0/Extensions/EXT_lights_image_based.js +6 -113
  110. package/glTF/2.0/Extensions/EXT_lights_image_based.js.map +1 -1
  111. package/glTF/2.0/Extensions/EXT_lights_image_based.pure.d.ts +37 -0
  112. package/glTF/2.0/Extensions/EXT_lights_image_based.pure.js +128 -0
  113. package/glTF/2.0/Extensions/EXT_lights_image_based.pure.js.map +1 -0
  114. package/glTF/2.0/Extensions/EXT_lights_image_based.types.d.ts +17 -0
  115. package/glTF/2.0/Extensions/EXT_lights_image_based.types.js +2 -0
  116. package/glTF/2.0/Extensions/EXT_lights_image_based.types.js.map +1 -0
  117. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +5 -37
  118. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +7 -92
  119. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js.map +1 -1
  120. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.pure.d.ts +35 -0
  121. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.pure.js +106 -0
  122. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.pure.js.map +1 -0
  123. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.types.d.ts +9 -0
  124. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.types.js +2 -0
  125. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.types.js.map +1 -0
  126. package/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +4 -37
  127. package/glTF/2.0/Extensions/EXT_meshopt_compression.js +6 -48
  128. package/glTF/2.0/Extensions/EXT_meshopt_compression.js.map +1 -1
  129. package/glTF/2.0/Extensions/EXT_meshopt_compression.pure.d.ts +36 -0
  130. package/glTF/2.0/Extensions/EXT_meshopt_compression.pure.js +63 -0
  131. package/glTF/2.0/Extensions/EXT_meshopt_compression.pure.js.map +1 -0
  132. package/glTF/2.0/Extensions/EXT_meshopt_compression.types.d.ts +9 -0
  133. package/glTF/2.0/Extensions/EXT_meshopt_compression.types.js +2 -0
  134. package/glTF/2.0/Extensions/EXT_meshopt_compression.types.js.map +1 -0
  135. package/glTF/2.0/Extensions/EXT_texture_avif.d.ts +4 -32
  136. package/glTF/2.0/Extensions/EXT_texture_avif.js +6 -36
  137. package/glTF/2.0/Extensions/EXT_texture_avif.js.map +1 -1
  138. package/glTF/2.0/Extensions/EXT_texture_avif.pure.d.ts +31 -0
  139. package/glTF/2.0/Extensions/EXT_texture_avif.pure.js +51 -0
  140. package/glTF/2.0/Extensions/EXT_texture_avif.pure.js.map +1 -0
  141. package/glTF/2.0/Extensions/EXT_texture_avif.types.d.ts +9 -0
  142. package/glTF/2.0/Extensions/EXT_texture_avif.types.js +2 -0
  143. package/glTF/2.0/Extensions/EXT_texture_avif.types.js.map +1 -0
  144. package/glTF/2.0/Extensions/EXT_texture_webp.d.ts +4 -31
  145. package/glTF/2.0/Extensions/EXT_texture_webp.js +6 -35
  146. package/glTF/2.0/Extensions/EXT_texture_webp.js.map +1 -1
  147. package/glTF/2.0/Extensions/EXT_texture_webp.pure.d.ts +30 -0
  148. package/glTF/2.0/Extensions/EXT_texture_webp.pure.js +50 -0
  149. package/glTF/2.0/Extensions/EXT_texture_webp.pure.js.map +1 -0
  150. package/glTF/2.0/Extensions/EXT_texture_webp.types.d.ts +9 -0
  151. package/glTF/2.0/Extensions/EXT_texture_webp.types.js +2 -0
  152. package/glTF/2.0/Extensions/EXT_texture_webp.types.js.map +1 -0
  153. package/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +4 -51
  154. package/glTF/2.0/Extensions/ExtrasAsMetadata.js +6 -71
  155. package/glTF/2.0/Extensions/ExtrasAsMetadata.js.map +1 -1
  156. package/glTF/2.0/Extensions/ExtrasAsMetadata.pure.d.ts +50 -0
  157. package/glTF/2.0/Extensions/ExtrasAsMetadata.pure.js +85 -0
  158. package/glTF/2.0/Extensions/ExtrasAsMetadata.pure.js.map +1 -0
  159. package/glTF/2.0/Extensions/ExtrasAsMetadata.types.d.ts +9 -0
  160. package/glTF/2.0/Extensions/ExtrasAsMetadata.types.js +2 -0
  161. package/glTF/2.0/Extensions/ExtrasAsMetadata.types.js.map +1 -0
  162. package/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +5 -45
  163. package/glTF/2.0/Extensions/KHR_animation_pointer.js +7 -75
  164. package/glTF/2.0/Extensions/KHR_animation_pointer.js.map +1 -1
  165. package/glTF/2.0/Extensions/KHR_animation_pointer.pure.d.ts +43 -0
  166. package/glTF/2.0/Extensions/KHR_animation_pointer.pure.js +89 -0
  167. package/glTF/2.0/Extensions/KHR_animation_pointer.pure.js.map +1 -0
  168. package/glTF/2.0/Extensions/KHR_animation_pointer.types.d.ts +9 -0
  169. package/glTF/2.0/Extensions/KHR_animation_pointer.types.js +2 -0
  170. package/glTF/2.0/Extensions/KHR_animation_pointer.types.js.map +1 -0
  171. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +4 -45
  172. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +6 -90
  173. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js.map +1 -1
  174. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.pure.d.ts +44 -0
  175. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.pure.js +105 -0
  176. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.pure.js.map +1 -0
  177. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.types.d.ts +9 -0
  178. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.types.js +2 -0
  179. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.types.js.map +1 -0
  180. package/glTF/2.0/Extensions/KHR_interactivity/pure.d.ts +4 -0
  181. package/glTF/2.0/Extensions/KHR_interactivity/pure.js +5 -0
  182. package/glTF/2.0/Extensions/KHR_interactivity/pure.js.map +1 -0
  183. package/glTF/2.0/Extensions/KHR_interactivity.d.ts +4 -36
  184. package/glTF/2.0/Extensions/KHR_interactivity.js +6 -148
  185. package/glTF/2.0/Extensions/KHR_interactivity.js.map +1 -1
  186. package/glTF/2.0/Extensions/KHR_interactivity.pure.d.ts +35 -0
  187. package/glTF/2.0/Extensions/KHR_interactivity.pure.js +163 -0
  188. package/glTF/2.0/Extensions/KHR_interactivity.pure.js.map +1 -0
  189. package/glTF/2.0/Extensions/KHR_interactivity.types.d.ts +9 -0
  190. package/glTF/2.0/Extensions/KHR_interactivity.types.js +2 -0
  191. package/glTF/2.0/Extensions/KHR_interactivity.types.js.map +1 -0
  192. package/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +4 -39
  193. package/glTF/2.0/Extensions/KHR_lights_punctual.js +6 -89
  194. package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -1
  195. package/glTF/2.0/Extensions/KHR_lights_punctual.pure.d.ts +38 -0
  196. package/glTF/2.0/Extensions/KHR_lights_punctual.pure.js +104 -0
  197. package/glTF/2.0/Extensions/KHR_lights_punctual.pure.js.map +1 -0
  198. package/glTF/2.0/Extensions/KHR_lights_punctual.types.d.ts +9 -0
  199. package/glTF/2.0/Extensions/KHR_lights_punctual.types.js +2 -0
  200. package/glTF/2.0/Extensions/KHR_lights_punctual.types.js.map +1 -0
  201. package/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +4 -40
  202. package/glTF/2.0/Extensions/KHR_materials_anisotropy.js +6 -63
  203. package/glTF/2.0/Extensions/KHR_materials_anisotropy.js.map +1 -1
  204. package/glTF/2.0/Extensions/KHR_materials_anisotropy.pure.d.ts +39 -0
  205. package/glTF/2.0/Extensions/KHR_materials_anisotropy.pure.js +78 -0
  206. package/glTF/2.0/Extensions/KHR_materials_anisotropy.pure.js.map +1 -0
  207. package/glTF/2.0/Extensions/KHR_materials_anisotropy.types.d.ts +9 -0
  208. package/glTF/2.0/Extensions/KHR_materials_anisotropy.types.js +2 -0
  209. package/glTF/2.0/Extensions/KHR_materials_anisotropy.types.js.map +1 -0
  210. package/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +4 -41
  211. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +6 -77
  212. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -1
  213. package/glTF/2.0/Extensions/KHR_materials_clearcoat.pure.d.ts +40 -0
  214. package/glTF/2.0/Extensions/KHR_materials_clearcoat.pure.js +92 -0
  215. package/glTF/2.0/Extensions/KHR_materials_clearcoat.pure.js.map +1 -0
  216. package/glTF/2.0/Extensions/KHR_materials_clearcoat.types.d.ts +9 -0
  217. package/glTF/2.0/Extensions/KHR_materials_clearcoat.types.js +2 -0
  218. package/glTF/2.0/Extensions/KHR_materials_clearcoat.types.js.map +1 -0
  219. package/glTF/2.0/Extensions/KHR_materials_coat.d.ts +4 -47
  220. package/glTF/2.0/Extensions/KHR_materials_coat.js +6 -117
  221. package/glTF/2.0/Extensions/KHR_materials_coat.js.map +1 -1
  222. package/glTF/2.0/Extensions/KHR_materials_coat.pure.d.ts +46 -0
  223. package/glTF/2.0/Extensions/KHR_materials_coat.pure.js +132 -0
  224. package/glTF/2.0/Extensions/KHR_materials_coat.pure.js.map +1 -0
  225. package/glTF/2.0/Extensions/KHR_materials_coat.types.d.ts +9 -0
  226. package/glTF/2.0/Extensions/KHR_materials_coat.types.js +2 -0
  227. package/glTF/2.0/Extensions/KHR_materials_coat.types.js.map +1 -0
  228. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +4 -41
  229. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +6 -56
  230. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js.map +1 -1
  231. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.pure.d.ts +40 -0
  232. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.pure.js +71 -0
  233. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.pure.js.map +1 -0
  234. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.types.d.ts +9 -0
  235. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.types.js +2 -0
  236. package/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.types.js.map +1 -0
  237. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +4 -41
  238. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +6 -71
  239. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js.map +1 -1
  240. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.pure.d.ts +40 -0
  241. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.pure.js +86 -0
  242. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.pure.js.map +1 -0
  243. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.types.d.ts +9 -0
  244. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.types.js +2 -0
  245. package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.types.js.map +1 -0
  246. package/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +4 -41
  247. package/glTF/2.0/Extensions/KHR_materials_dispersion.js +6 -54
  248. package/glTF/2.0/Extensions/KHR_materials_dispersion.js.map +1 -1
  249. package/glTF/2.0/Extensions/KHR_materials_dispersion.pure.d.ts +40 -0
  250. package/glTF/2.0/Extensions/KHR_materials_dispersion.pure.js +69 -0
  251. package/glTF/2.0/Extensions/KHR_materials_dispersion.pure.js.map +1 -0
  252. package/glTF/2.0/Extensions/KHR_materials_dispersion.types.d.ts +9 -0
  253. package/glTF/2.0/Extensions/KHR_materials_dispersion.types.js +2 -0
  254. package/glTF/2.0/Extensions/KHR_materials_dispersion.types.js.map +1 -0
  255. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +4 -40
  256. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +6 -45
  257. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js.map +1 -1
  258. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.pure.d.ts +39 -0
  259. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.pure.js +60 -0
  260. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.pure.js.map +1 -0
  261. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.types.d.ts +9 -0
  262. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.types.js +2 -0
  263. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.types.js.map +1 -0
  264. package/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +4 -41
  265. package/glTF/2.0/Extensions/KHR_materials_fuzz.js +6 -75
  266. package/glTF/2.0/Extensions/KHR_materials_fuzz.js.map +1 -1
  267. package/glTF/2.0/Extensions/KHR_materials_fuzz.pure.d.ts +40 -0
  268. package/glTF/2.0/Extensions/KHR_materials_fuzz.pure.js +90 -0
  269. package/glTF/2.0/Extensions/KHR_materials_fuzz.pure.js.map +1 -0
  270. package/glTF/2.0/Extensions/KHR_materials_fuzz.types.d.ts +9 -0
  271. package/glTF/2.0/Extensions/KHR_materials_fuzz.types.js +2 -0
  272. package/glTF/2.0/Extensions/KHR_materials_fuzz.types.js.map +1 -0
  273. package/glTF/2.0/Extensions/KHR_materials_ior.d.ts +4 -44
  274. package/glTF/2.0/Extensions/KHR_materials_ior.js +6 -52
  275. package/glTF/2.0/Extensions/KHR_materials_ior.js.map +1 -1
  276. package/glTF/2.0/Extensions/KHR_materials_ior.pure.d.ts +43 -0
  277. package/glTF/2.0/Extensions/KHR_materials_ior.pure.js +67 -0
  278. package/glTF/2.0/Extensions/KHR_materials_ior.pure.js.map +1 -0
  279. package/glTF/2.0/Extensions/KHR_materials_ior.types.d.ts +9 -0
  280. package/glTF/2.0/Extensions/KHR_materials_ior.types.js +2 -0
  281. package/glTF/2.0/Extensions/KHR_materials_ior.types.js.map +1 -0
  282. package/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +4 -40
  283. package/glTF/2.0/Extensions/KHR_materials_iridescence.js +6 -66
  284. package/glTF/2.0/Extensions/KHR_materials_iridescence.js.map +1 -1
  285. package/glTF/2.0/Extensions/KHR_materials_iridescence.pure.d.ts +39 -0
  286. package/glTF/2.0/Extensions/KHR_materials_iridescence.pure.js +81 -0
  287. package/glTF/2.0/Extensions/KHR_materials_iridescence.pure.js.map +1 -0
  288. package/glTF/2.0/Extensions/KHR_materials_iridescence.types.d.ts +9 -0
  289. package/glTF/2.0/Extensions/KHR_materials_iridescence.types.js +2 -0
  290. package/glTF/2.0/Extensions/KHR_materials_iridescence.types.js.map +1 -0
  291. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +4 -40
  292. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +6 -72
  293. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js.map +1 -1
  294. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.pure.d.ts +39 -0
  295. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.pure.js +87 -0
  296. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.pure.js.map +1 -0
  297. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.types.d.ts +9 -0
  298. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.types.js +2 -0
  299. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.types.js.map +1 -0
  300. package/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +4 -41
  301. package/glTF/2.0/Extensions/KHR_materials_sheen.js +6 -71
  302. package/glTF/2.0/Extensions/KHR_materials_sheen.js.map +1 -1
  303. package/glTF/2.0/Extensions/KHR_materials_sheen.pure.d.ts +40 -0
  304. package/glTF/2.0/Extensions/KHR_materials_sheen.pure.js +86 -0
  305. package/glTF/2.0/Extensions/KHR_materials_sheen.pure.js.map +1 -0
  306. package/glTF/2.0/Extensions/KHR_materials_sheen.types.d.ts +9 -0
  307. package/glTF/2.0/Extensions/KHR_materials_sheen.types.js +2 -0
  308. package/glTF/2.0/Extensions/KHR_materials_sheen.types.js.map +1 -0
  309. package/glTF/2.0/Extensions/KHR_materials_specular.d.ts +4 -40
  310. package/glTF/2.0/Extensions/KHR_materials_specular.js +6 -74
  311. package/glTF/2.0/Extensions/KHR_materials_specular.js.map +1 -1
  312. package/glTF/2.0/Extensions/KHR_materials_specular.pure.d.ts +39 -0
  313. package/glTF/2.0/Extensions/KHR_materials_specular.pure.js +89 -0
  314. package/glTF/2.0/Extensions/KHR_materials_specular.pure.js.map +1 -0
  315. package/glTF/2.0/Extensions/KHR_materials_specular.types.d.ts +9 -0
  316. package/glTF/2.0/Extensions/KHR_materials_specular.types.js +2 -0
  317. package/glTF/2.0/Extensions/KHR_materials_specular.types.js.map +1 -0
  318. package/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +4 -40
  319. package/glTF/2.0/Extensions/KHR_materials_transmission.js +6 -70
  320. package/glTF/2.0/Extensions/KHR_materials_transmission.js.map +1 -1
  321. package/glTF/2.0/Extensions/KHR_materials_transmission.pure.d.ts +39 -0
  322. package/glTF/2.0/Extensions/KHR_materials_transmission.pure.js +85 -0
  323. package/glTF/2.0/Extensions/KHR_materials_transmission.pure.js.map +1 -0
  324. package/glTF/2.0/Extensions/KHR_materials_transmission.types.d.ts +9 -0
  325. package/glTF/2.0/Extensions/KHR_materials_transmission.types.js +2 -0
  326. package/glTF/2.0/Extensions/KHR_materials_transmission.types.js.map +1 -0
  327. package/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +4 -40
  328. package/glTF/2.0/Extensions/KHR_materials_unlit.js +6 -64
  329. package/glTF/2.0/Extensions/KHR_materials_unlit.js.map +1 -1
  330. package/glTF/2.0/Extensions/KHR_materials_unlit.pure.d.ts +39 -0
  331. package/glTF/2.0/Extensions/KHR_materials_unlit.pure.js +79 -0
  332. package/glTF/2.0/Extensions/KHR_materials_unlit.pure.js.map +1 -0
  333. package/glTF/2.0/Extensions/KHR_materials_unlit.types.d.ts +9 -0
  334. package/glTF/2.0/Extensions/KHR_materials_unlit.types.js +2 -0
  335. package/glTF/2.0/Extensions/KHR_materials_unlit.types.js.map +1 -0
  336. package/glTF/2.0/Extensions/KHR_materials_variants.d.ts +4 -110
  337. package/glTF/2.0/Extensions/KHR_materials_variants.js +6 -260
  338. package/glTF/2.0/Extensions/KHR_materials_variants.js.map +1 -1
  339. package/glTF/2.0/Extensions/KHR_materials_variants.pure.d.ts +97 -0
  340. package/glTF/2.0/Extensions/KHR_materials_variants.pure.js +275 -0
  341. package/glTF/2.0/Extensions/KHR_materials_variants.pure.js.map +1 -0
  342. package/glTF/2.0/Extensions/KHR_materials_variants.types.d.ts +29 -0
  343. package/glTF/2.0/Extensions/KHR_materials_variants.types.js +2 -0
  344. package/glTF/2.0/Extensions/KHR_materials_variants.types.js.map +1 -0
  345. package/glTF/2.0/Extensions/KHR_materials_volume.d.ts +4 -41
  346. package/glTF/2.0/Extensions/KHR_materials_volume.js +6 -77
  347. package/glTF/2.0/Extensions/KHR_materials_volume.js.map +1 -1
  348. package/glTF/2.0/Extensions/KHR_materials_volume.pure.d.ts +40 -0
  349. package/glTF/2.0/Extensions/KHR_materials_volume.pure.js +92 -0
  350. package/glTF/2.0/Extensions/KHR_materials_volume.pure.js.map +1 -0
  351. package/glTF/2.0/Extensions/KHR_materials_volume.types.d.ts +9 -0
  352. package/glTF/2.0/Extensions/KHR_materials_volume.types.js +2 -0
  353. package/glTF/2.0/Extensions/KHR_materials_volume.types.js.map +1 -0
  354. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +4 -43
  355. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +6 -113
  356. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.js.map +1 -1
  357. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.pure.d.ts +42 -0
  358. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.pure.js +128 -0
  359. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.pure.js.map +1 -0
  360. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.types.d.ts +9 -0
  361. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.types.js +2 -0
  362. package/glTF/2.0/Extensions/KHR_materials_volume_scatter.types.js.map +1 -0
  363. package/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +4 -27
  364. package/glTF/2.0/Extensions/KHR_mesh_quantization.js +6 -20
  365. package/glTF/2.0/Extensions/KHR_mesh_quantization.js.map +1 -1
  366. package/glTF/2.0/Extensions/KHR_mesh_quantization.pure.d.ts +26 -0
  367. package/glTF/2.0/Extensions/KHR_mesh_quantization.pure.js +35 -0
  368. package/glTF/2.0/Extensions/KHR_mesh_quantization.pure.js.map +1 -0
  369. package/glTF/2.0/Extensions/KHR_mesh_quantization.types.d.ts +9 -0
  370. package/glTF/2.0/Extensions/KHR_mesh_quantization.types.js +2 -0
  371. package/glTF/2.0/Extensions/KHR_mesh_quantization.types.js.map +1 -0
  372. package/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +4 -29
  373. package/glTF/2.0/Extensions/KHR_node_hoverability.js +6 -187
  374. package/glTF/2.0/Extensions/KHR_node_hoverability.js.map +1 -1
  375. package/glTF/2.0/Extensions/KHR_node_hoverability.pure.d.ts +28 -0
  376. package/glTF/2.0/Extensions/KHR_node_hoverability.pure.js +202 -0
  377. package/glTF/2.0/Extensions/KHR_node_hoverability.pure.js.map +1 -0
  378. package/glTF/2.0/Extensions/KHR_node_hoverability.types.d.ts +9 -0
  379. package/glTF/2.0/Extensions/KHR_node_hoverability.types.js +2 -0
  380. package/glTF/2.0/Extensions/KHR_node_hoverability.types.js.map +1 -0
  381. package/glTF/2.0/Extensions/KHR_node_selectability.d.ts +4 -28
  382. package/glTF/2.0/Extensions/KHR_node_selectability.js +6 -121
  383. package/glTF/2.0/Extensions/KHR_node_selectability.js.map +1 -1
  384. package/glTF/2.0/Extensions/KHR_node_selectability.pure.d.ts +27 -0
  385. package/glTF/2.0/Extensions/KHR_node_selectability.pure.js +136 -0
  386. package/glTF/2.0/Extensions/KHR_node_selectability.pure.js.map +1 -0
  387. package/glTF/2.0/Extensions/KHR_node_selectability.types.d.ts +9 -0
  388. package/glTF/2.0/Extensions/KHR_node_selectability.types.js +2 -0
  389. package/glTF/2.0/Extensions/KHR_node_selectability.types.js.map +1 -0
  390. package/glTF/2.0/Extensions/KHR_node_visibility.d.ts +4 -28
  391. package/glTF/2.0/Extensions/KHR_node_visibility.js +6 -64
  392. package/glTF/2.0/Extensions/KHR_node_visibility.js.map +1 -1
  393. package/glTF/2.0/Extensions/KHR_node_visibility.pure.d.ts +27 -0
  394. package/glTF/2.0/Extensions/KHR_node_visibility.pure.js +79 -0
  395. package/glTF/2.0/Extensions/KHR_node_visibility.pure.js.map +1 -0
  396. package/glTF/2.0/Extensions/KHR_node_visibility.types.d.ts +9 -0
  397. package/glTF/2.0/Extensions/KHR_node_visibility.types.js +2 -0
  398. package/glTF/2.0/Extensions/KHR_node_visibility.types.js.map +1 -0
  399. package/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +4 -31
  400. package/glTF/2.0/Extensions/KHR_texture_basisu.js +6 -35
  401. package/glTF/2.0/Extensions/KHR_texture_basisu.js.map +1 -1
  402. package/glTF/2.0/Extensions/KHR_texture_basisu.pure.d.ts +30 -0
  403. package/glTF/2.0/Extensions/KHR_texture_basisu.pure.js +50 -0
  404. package/glTF/2.0/Extensions/KHR_texture_basisu.pure.js.map +1 -0
  405. package/glTF/2.0/Extensions/KHR_texture_basisu.types.d.ts +9 -0
  406. package/glTF/2.0/Extensions/KHR_texture_basisu.types.js +2 -0
  407. package/glTF/2.0/Extensions/KHR_texture_basisu.types.js.map +1 -0
  408. package/glTF/2.0/Extensions/KHR_texture_transform.d.ts +4 -35
  409. package/glTF/2.0/Extensions/KHR_texture_transform.js +6 -56
  410. package/glTF/2.0/Extensions/KHR_texture_transform.js.map +1 -1
  411. package/glTF/2.0/Extensions/KHR_texture_transform.pure.d.ts +34 -0
  412. package/glTF/2.0/Extensions/KHR_texture_transform.pure.js +71 -0
  413. package/glTF/2.0/Extensions/KHR_texture_transform.pure.js.map +1 -0
  414. package/glTF/2.0/Extensions/KHR_texture_transform.types.d.ts +9 -0
  415. package/glTF/2.0/Extensions/KHR_texture_transform.types.js +2 -0
  416. package/glTF/2.0/Extensions/KHR_texture_transform.types.js.map +1 -0
  417. package/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +4 -37
  418. package/glTF/2.0/Extensions/KHR_xmp_json_ld.js +6 -45
  419. package/glTF/2.0/Extensions/KHR_xmp_json_ld.js.map +1 -1
  420. package/glTF/2.0/Extensions/KHR_xmp_json_ld.pure.d.ts +36 -0
  421. package/glTF/2.0/Extensions/KHR_xmp_json_ld.pure.js +60 -0
  422. package/glTF/2.0/Extensions/KHR_xmp_json_ld.pure.js.map +1 -0
  423. package/glTF/2.0/Extensions/KHR_xmp_json_ld.types.d.ts +9 -0
  424. package/glTF/2.0/Extensions/KHR_xmp_json_ld.types.js +2 -0
  425. package/glTF/2.0/Extensions/KHR_xmp_json_ld.types.js.map +1 -0
  426. package/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +5 -54
  427. package/glTF/2.0/Extensions/MSFT_audio_emitter.js +7 -226
  428. package/glTF/2.0/Extensions/MSFT_audio_emitter.js.map +1 -1
  429. package/glTF/2.0/Extensions/MSFT_audio_emitter.pure.d.ts +52 -0
  430. package/glTF/2.0/Extensions/MSFT_audio_emitter.pure.js +240 -0
  431. package/glTF/2.0/Extensions/MSFT_audio_emitter.pure.js.map +1 -0
  432. package/glTF/2.0/Extensions/MSFT_audio_emitter.types.d.ts +9 -0
  433. package/glTF/2.0/Extensions/MSFT_audio_emitter.types.js +2 -0
  434. package/glTF/2.0/Extensions/MSFT_audio_emitter.types.js.map +1 -0
  435. package/glTF/2.0/Extensions/MSFT_lod.d.ts +4 -102
  436. package/glTF/2.0/Extensions/MSFT_lod.js +6 -335
  437. package/glTF/2.0/Extensions/MSFT_lod.js.map +1 -1
  438. package/glTF/2.0/Extensions/MSFT_lod.pure.d.ts +96 -0
  439. package/glTF/2.0/Extensions/MSFT_lod.pure.js +350 -0
  440. package/glTF/2.0/Extensions/MSFT_lod.pure.js.map +1 -0
  441. package/glTF/2.0/Extensions/MSFT_lod.types.d.ts +14 -0
  442. package/glTF/2.0/Extensions/MSFT_lod.types.js +2 -0
  443. package/glTF/2.0/Extensions/MSFT_lod.types.js.map +1 -0
  444. package/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +6 -27
  445. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js +8 -40
  446. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js.map +1 -1
  447. package/glTF/2.0/Extensions/MSFT_minecraftMesh.pure.d.ts +24 -0
  448. package/glTF/2.0/Extensions/MSFT_minecraftMesh.pure.js +53 -0
  449. package/glTF/2.0/Extensions/MSFT_minecraftMesh.pure.js.map +1 -0
  450. package/glTF/2.0/Extensions/MSFT_minecraftMesh.types.d.ts +9 -0
  451. package/glTF/2.0/Extensions/MSFT_minecraftMesh.types.js +2 -0
  452. package/glTF/2.0/Extensions/MSFT_minecraftMesh.types.js.map +1 -0
  453. package/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +6 -27
  454. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js +8 -38
  455. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js.map +1 -1
  456. package/glTF/2.0/Extensions/MSFT_sRGBFactors.pure.d.ts +24 -0
  457. package/glTF/2.0/Extensions/MSFT_sRGBFactors.pure.js +51 -0
  458. package/glTF/2.0/Extensions/MSFT_sRGBFactors.pure.js.map +1 -0
  459. package/glTF/2.0/Extensions/MSFT_sRGBFactors.types.d.ts +9 -0
  460. package/glTF/2.0/Extensions/MSFT_sRGBFactors.types.js +2 -0
  461. package/glTF/2.0/Extensions/MSFT_sRGBFactors.types.js.map +1 -0
  462. package/glTF/2.0/Extensions/objectModelMapping.d.ts +31 -2
  463. package/glTF/2.0/Extensions/objectModelMapping.js +3 -3
  464. package/glTF/2.0/Extensions/objectModelMapping.js.map +1 -1
  465. package/glTF/2.0/Extensions/pure.d.ts +45 -0
  466. package/glTF/2.0/Extensions/pure.js +47 -0
  467. package/glTF/2.0/Extensions/pure.js.map +1 -0
  468. package/glTF/2.0/glTFLoader.d.ts +1 -471
  469. package/glTF/2.0/glTFLoader.js +3 -2539
  470. package/glTF/2.0/glTFLoader.js.map +1 -1
  471. package/glTF/2.0/glTFLoader.pure.d.ts +476 -0
  472. package/glTF/2.0/glTFLoader.pure.js +2575 -0
  473. package/glTF/2.0/glTFLoader.pure.js.map +1 -0
  474. package/glTF/2.0/glTFLoaderAnimation.d.ts +2 -2
  475. package/glTF/2.0/glTFLoaderAnimation.js +2 -2
  476. package/glTF/2.0/glTFLoaderAnimation.js.map +1 -1
  477. package/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +1 -1
  478. package/glTF/2.0/pbrMaterialLoadingAdapter.js +2 -2
  479. package/glTF/2.0/pbrMaterialLoadingAdapter.js.map +1 -1
  480. package/glTF/2.0/pure.d.ts +8 -0
  481. package/glTF/2.0/pure.js +10 -0
  482. package/glTF/2.0/pure.js.map +1 -0
  483. package/glTF/glTFFileLoader.d.ts +5 -551
  484. package/glTF/glTFFileLoader.js +6 -996
  485. package/glTF/glTFFileLoader.js.map +1 -1
  486. package/glTF/glTFFileLoader.pure.d.ts +562 -0
  487. package/glTF/glTFFileLoader.pure.js +1024 -0
  488. package/glTF/glTFFileLoader.pure.js.map +1 -0
  489. package/glTF/glTFFileLoader.types.d.ts +11 -0
  490. package/glTF/glTFFileLoader.types.js +2 -0
  491. package/glTF/glTFFileLoader.types.js.map +1 -0
  492. package/glTF/glTFValidation.js +1 -1
  493. package/glTF/glTFValidation.js.map +1 -1
  494. package/glTF/pure.d.ts +6 -0
  495. package/glTF/pure.js +8 -0
  496. package/glTF/pure.js.map +1 -0
  497. package/package.json +56 -4
  498. package/pure.d.ts +8 -0
  499. package/pure.js +10 -0
  500. package/pure.js.map +1 -0
@@ -1,69 +1,6 @@
1
- import { type ISceneLoaderPluginAsync, type ISceneLoaderPluginFactory, type ISceneLoaderAsyncResult, type SceneLoaderPluginOptions } from "@babylonjs/core/Loading/sceneLoader.js";
2
- import { AssetContainer } from "@babylonjs/core/assetContainer.js";
3
- import { type Scene } from "@babylonjs/core/scene.js";
4
- import { type BVHLoadingOptions } from "./bvhLoadingOptions.js";
5
- import { BVHFileLoaderMetadata } from "./bvhFileLoader.metadata.js";
6
- declare module "@babylonjs/core/Loading/sceneLoader.js" {
7
- interface SceneLoaderPluginOptions {
8
- /**
9
- * Defines options for the bvh loader.
10
- */
11
- [BVHFileLoaderMetadata.name]: Partial<BVHLoadingOptions>;
12
- }
13
- }
14
1
  /**
15
- * @experimental
16
- * BVH file type loader.
17
- * This is a babylon scene loader plugin.
2
+ * Re-exports the pure implementation and applies the runtime registration side effect.
3
+ * Import "./bvhFileLoader.pure" for tree-shakeable, side-effect-free usage.
18
4
  */
19
- export declare class BVHFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPluginFactory {
20
- /**
21
- * Name of the loader ("bvh")
22
- */
23
- readonly name: "bvh";
24
- /** @internal */
25
- readonly extensions: {
26
- readonly ".bvh": {
27
- readonly isBinary: false;
28
- };
29
- };
30
- private readonly _loadingOptions;
31
- /**
32
- * Creates loader for bvh motion files
33
- * @param loadingOptions - Options for the bvh loader
34
- */
35
- constructor(loadingOptions?: Partial<Readonly<BVHLoadingOptions>>);
36
- private static get _DefaultLoadingOptions();
37
- /** @internal */
38
- createPlugin(options: SceneLoaderPluginOptions): ISceneLoaderPluginAsync;
39
- /**
40
- * If the data string can be loaded directly.
41
- * @param data - direct load data
42
- * @returns if the data can be loaded directly
43
- */
44
- canDirectLoad(data: string): boolean;
45
- isBvhHeader(text: string): boolean;
46
- isNotBvhHeader(text: string): boolean;
47
- /**
48
- * Imports from the loaded gaussian splatting data and adds them to the scene
49
- * @param _meshesNames a string or array of strings of the mesh names that should be loaded from the file
50
- * @param scene the scene the meshes should be added to
51
- * @param data the bvh data to load
52
- * @returns a promise containing the loaded skeletons and animations
53
- */
54
- importMeshAsync(_meshesNames: string | readonly string[] | null | undefined, scene: Scene, data: unknown): Promise<ISceneLoaderAsyncResult>;
55
- /**
56
- * Imports all objects from the loaded bvh data and adds them to the scene
57
- * @param scene the scene the objects should be added to
58
- * @param data the bvh data to load
59
- * @returns a promise which completes when objects have been loaded to the scene
60
- */
61
- loadAsync(scene: Scene, data: unknown): Promise<void>;
62
- /**
63
- * Load into an asset container.
64
- * @param scene The scene to load into
65
- * @param data The data to import
66
- * @returns The loaded asset container
67
- */
68
- loadAssetContainerAsync(scene: Scene, data: unknown): Promise<AssetContainer>;
69
- }
5
+ export * from "./bvhFileLoader.types.js";
6
+ export * from "./bvhFileLoader.pure.js";
@@ -1,133 +1,9 @@
1
- import { RegisterSceneLoaderPlugin, } from "@babylonjs/core/Loading/sceneLoader.js";
2
- import { AssetContainer } from "@babylonjs/core/assetContainer.js";
3
- import { Animation } from "@babylonjs/core/Animations/animation.js";
4
- import { BVHFileLoaderMetadata } from "./bvhFileLoader.metadata.js";
5
- import { ReadBvh } from "./bvhLoader.js";
6
1
  /**
7
- * @experimental
8
- * BVH file type loader.
9
- * This is a babylon scene loader plugin.
2
+ * Re-exports the pure implementation and applies the runtime registration side effect.
3
+ * Import "./bvhFileLoader.pure" for tree-shakeable, side-effect-free usage.
10
4
  */
11
- export class BVHFileLoader {
12
- /**
13
- * Creates loader for bvh motion files
14
- * @param loadingOptions - Options for the bvh loader
15
- */
16
- constructor(loadingOptions) {
17
- /**
18
- * Name of the loader ("bvh")
19
- */
20
- this.name = BVHFileLoaderMetadata.name;
21
- /** @internal */
22
- this.extensions = BVHFileLoaderMetadata.extensions;
23
- this._loadingOptions = { ...BVHFileLoader._DefaultLoadingOptions, ...(loadingOptions ?? {}) };
24
- }
25
- static get _DefaultLoadingOptions() {
26
- return {
27
- loopMode: Animation.ANIMATIONLOOPMODE_CYCLE,
28
- };
29
- }
30
- /** @internal */
31
- createPlugin(options) {
32
- return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);
33
- }
34
- /**
35
- * If the data string can be loaded directly.
36
- * @param data - direct load data
37
- * @returns if the data can be loaded directly
38
- */
39
- canDirectLoad(data) {
40
- return this.isBvhHeader(data);
41
- }
42
- isBvhHeader(text) {
43
- return text.split("\n")[0] == "HIERARCHY";
44
- }
45
- isNotBvhHeader(text) {
46
- return !this.isBvhHeader(text);
47
- }
48
- /**
49
- * Imports from the loaded gaussian splatting data and adds them to the scene
50
- * @param _meshesNames a string or array of strings of the mesh names that should be loaded from the file
51
- * @param scene the scene the meshes should be added to
52
- * @param data the bvh data to load
53
- * @returns a promise containing the loaded skeletons and animations
54
- */
55
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
56
- importMeshAsync(_meshesNames, scene, data) {
57
- if (typeof data !== "string") {
58
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
59
- return Promise.reject("BVH loader expects string data.");
60
- }
61
- if (this.isNotBvhHeader(data)) {
62
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
63
- return Promise.reject("BVH loader expects HIERARCHY header.");
64
- }
65
- try {
66
- const skeleton = ReadBvh(data, scene, null, this._loadingOptions);
67
- return Promise.resolve({
68
- meshes: [],
69
- particleSystems: [],
70
- skeletons: [skeleton],
71
- animationGroups: [],
72
- transformNodes: [],
73
- geometries: [],
74
- lights: [],
75
- spriteManagers: [],
76
- });
77
- }
78
- catch (e) {
79
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
80
- return Promise.reject(e);
81
- }
82
- }
83
- /**
84
- * Imports all objects from the loaded bvh data and adds them to the scene
85
- * @param scene the scene the objects should be added to
86
- * @param data the bvh data to load
87
- * @returns a promise which completes when objects have been loaded to the scene
88
- */
89
- // eslint-disable-next-line no-restricted-syntax, @typescript-eslint/promise-function-async
90
- loadAsync(scene, data) {
91
- if (typeof data !== "string") {
92
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
93
- return Promise.reject("BVH loader expects string data.");
94
- }
95
- if (this.isNotBvhHeader(data)) {
96
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
97
- return Promise.reject("BVH loader expects HIERARCHY header.");
98
- }
99
- // eslint-disable-next-line github/no-then
100
- return this.importMeshAsync(null, scene, data).then(() => {
101
- // return void
102
- });
103
- }
104
- /**
105
- * Load into an asset container.
106
- * @param scene The scene to load into
107
- * @param data The data to import
108
- * @returns The loaded asset container
109
- */
110
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
111
- loadAssetContainerAsync(scene, data) {
112
- if (typeof data !== "string") {
113
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
114
- return Promise.reject("BVH loader expects string data.");
115
- }
116
- if (this.isNotBvhHeader(data)) {
117
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
118
- return Promise.reject("BVH loader expects HIERARCHY header.");
119
- }
120
- const assetContainer = new AssetContainer(scene);
121
- try {
122
- const skeleton = ReadBvh(data, scene, assetContainer, this._loadingOptions);
123
- assetContainer.skeletons.push(skeleton);
124
- return Promise.resolve(assetContainer);
125
- }
126
- catch (e) {
127
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
128
- return Promise.reject(e);
129
- }
130
- }
131
- }
132
- RegisterSceneLoaderPlugin(new BVHFileLoader());
5
+ export * from "./bvhFileLoader.types.js";
6
+ export * from "./bvhFileLoader.pure.js";
7
+ import { RegisterBVHFileLoader } from "./bvhFileLoader.pure.js";
8
+ RegisterBVHFileLoader();
133
9
  //# sourceMappingURL=bvhFileLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bvhFileLoader.js","sourceRoot":"","sources":["../../../../dev/loaders/src/BVH/bvhFileLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type ISceneLoaderPluginAsync,\n type ISceneLoaderPluginFactory,\n type ISceneLoaderAsyncResult,\n type SceneLoaderPluginOptions,\n RegisterSceneLoaderPlugin,\n} from \"core/Loading/sceneLoader\";\nimport { AssetContainer } from \"core/assetContainer\";\nimport { Animation } from \"core/Animations/animation\";\nimport { type Scene } from \"core/scene\";\nimport { type BVHLoadingOptions } from \"./bvhLoadingOptions\";\nimport { BVHFileLoaderMetadata } from \"./bvhFileLoader.metadata\";\nimport { ReadBvh } from \"./bvhLoader\";\n\ndeclare module \"core/Loading/sceneLoader\" {\n // eslint-disable-next-line jsdoc/require-jsdoc, @typescript-eslint/naming-convention\n export interface SceneLoaderPluginOptions {\n /**\n * Defines options for the bvh loader.\n */\n [BVHFileLoaderMetadata.name]: Partial<BVHLoadingOptions>;\n }\n}\n\n/**\n * @experimental\n * BVH file type loader.\n * This is a babylon scene loader plugin.\n */\nexport class BVHFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPluginFactory {\n /**\n * Name of the loader (\"bvh\")\n */\n public readonly name = BVHFileLoaderMetadata.name;\n\n /** @internal */\n public readonly extensions = BVHFileLoaderMetadata.extensions;\n\n private readonly _loadingOptions: BVHLoadingOptions;\n\n /**\n * Creates loader for bvh motion files\n * @param loadingOptions - Options for the bvh loader\n */\n constructor(loadingOptions?: Partial<Readonly<BVHLoadingOptions>>) {\n this._loadingOptions = { ...BVHFileLoader._DefaultLoadingOptions, ...(loadingOptions ?? {}) };\n }\n\n private static get _DefaultLoadingOptions(): BVHLoadingOptions {\n return {\n loopMode: Animation.ANIMATIONLOOPMODE_CYCLE,\n };\n }\n\n /** @internal */\n public createPlugin(options: SceneLoaderPluginOptions): ISceneLoaderPluginAsync {\n return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);\n }\n\n /**\n * If the data string can be loaded directly.\n * @param data - direct load data\n * @returns if the data can be loaded directly\n */\n public canDirectLoad(data: string): boolean {\n return this.isBvhHeader(data);\n }\n\n public isBvhHeader(text: string): boolean {\n return text.split(\"\\n\")[0] == \"HIERARCHY\";\n }\n\n public isNotBvhHeader(text: string): boolean {\n return !this.isBvhHeader(text);\n }\n\n /**\n * Imports from the loaded gaussian splatting data and adds them to the scene\n * @param _meshesNames a string or array of strings of the mesh names that should be loaded from the file\n * @param scene the scene the meshes should be added to\n * @param data the bvh data to load\n * @returns a promise containing the loaded skeletons and animations\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax\n public importMeshAsync(_meshesNames: string | readonly string[] | null | undefined, scene: Scene, data: unknown): Promise<ISceneLoaderAsyncResult> {\n if (typeof data !== \"string\") {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\"BVH loader expects string data.\");\n }\n if (this.isNotBvhHeader(data as string)) {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\"BVH loader expects HIERARCHY header.\");\n }\n try {\n const skeleton = ReadBvh(data, scene, null, this._loadingOptions);\n return Promise.resolve({\n meshes: [],\n particleSystems: [],\n skeletons: [skeleton],\n animationGroups: [],\n transformNodes: [],\n geometries: [],\n lights: [],\n spriteManagers: [],\n } as ISceneLoaderAsyncResult);\n } catch (e) {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(e);\n }\n }\n\n /**\n * Imports all objects from the loaded bvh data and adds them to the scene\n * @param scene the scene the objects should be added to\n * @param data the bvh data to load\n * @returns a promise which completes when objects have been loaded to the scene\n */\n // eslint-disable-next-line no-restricted-syntax, @typescript-eslint/promise-function-async\n public loadAsync(scene: Scene, data: unknown): Promise<void> {\n if (typeof data !== \"string\") {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\"BVH loader expects string data.\");\n }\n if (this.isNotBvhHeader(data as string)) {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\"BVH loader expects HIERARCHY header.\");\n }\n\n // eslint-disable-next-line github/no-then\n return this.importMeshAsync(null, scene, data).then(() => {\n // return void\n });\n }\n\n /**\n * Load into an asset container.\n * @param scene The scene to load into\n * @param data The data to import\n * @returns The loaded asset container\n */\n // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax\n public loadAssetContainerAsync(scene: Scene, data: unknown): Promise<AssetContainer> {\n if (typeof data !== \"string\") {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\"BVH loader expects string data.\");\n }\n if (this.isNotBvhHeader(data as string)) {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(\"BVH loader expects HIERARCHY header.\");\n }\n const assetContainer = new AssetContainer(scene);\n try {\n const skeleton = ReadBvh(data, scene, assetContainer, this._loadingOptions);\n assetContainer.skeletons.push(skeleton);\n return Promise.resolve(assetContainer);\n } catch (e) {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n return Promise.reject(e);\n }\n }\n}\n\nRegisterSceneLoaderPlugin(new BVHFileLoader());\n"]}
1
+ {"version":3,"file":"bvhFileLoader.js","sourceRoot":"","sources":["../../../../dev/loaders/src/BVH/bvhFileLoader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,qBAAqB,EAAE,CAAC","sourcesContent":["/**\r\n * Re-exports the pure implementation and applies the runtime registration side effect.\r\n * Import \"./bvhFileLoader.pure\" for tree-shakeable, side-effect-free usage.\r\n */\r\nexport * from \"./bvhFileLoader.types\";\r\nexport * from \"./bvhFileLoader.pure\";\r\n\r\nimport { RegisterBVHFileLoader } from \"./bvhFileLoader.pure\";\r\nRegisterBVHFileLoader();\r\n"]}
@@ -0,0 +1,75 @@
1
+ import { type ISceneLoaderPluginAsync, type ISceneLoaderPluginFactory, type ISceneLoaderAsyncResult, type SceneLoaderPluginOptions } from "@babylonjs/core/Loading/sceneLoader.js";
2
+ import { AssetContainer } from "@babylonjs/core/assetContainer.js";
3
+ import { type Scene } from "@babylonjs/core/scene.js";
4
+ import { type BVHLoadingOptions } from "./bvhLoadingOptions.js";
5
+ /**
6
+ * @experimental
7
+ * BVH file type loader.
8
+ * This is a babylon scene loader plugin.
9
+ */
10
+ export declare class BVHFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPluginFactory {
11
+ /**
12
+ * Name of the loader ("bvh")
13
+ */
14
+ readonly name: "bvh";
15
+ /** @internal */
16
+ readonly extensions: {
17
+ readonly ".bvh": {
18
+ readonly isBinary: false;
19
+ };
20
+ };
21
+ private readonly _loadingOptions;
22
+ /**
23
+ * Creates loader for bvh motion files
24
+ * @param loadingOptions - Options for the bvh loader
25
+ */
26
+ constructor(loadingOptions?: Partial<Readonly<BVHLoadingOptions>>);
27
+ private static get _DefaultLoadingOptions();
28
+ /** @internal */
29
+ createPlugin(options: SceneLoaderPluginOptions): ISceneLoaderPluginAsync;
30
+ /**
31
+ * If the data string can be loaded directly.
32
+ * @param data - direct load data
33
+ * @returns if the data can be loaded directly
34
+ */
35
+ canDirectLoad(data: string): boolean;
36
+ /**
37
+ * Returns whether the provided text starts with a BVH HIERARCHY header.
38
+ * @param text - the text to inspect
39
+ * @returns true if the text is a BVH header
40
+ */
41
+ isBvhHeader(text: string): boolean;
42
+ /**
43
+ * Returns whether the provided text does not start with a BVH HIERARCHY header.
44
+ * @param text - the text to inspect
45
+ * @returns true if the text is not a BVH header
46
+ */
47
+ isNotBvhHeader(text: string): boolean;
48
+ /**
49
+ * Imports from the loaded gaussian splatting data and adds them to the scene
50
+ * @param _meshesNames a string or array of strings of the mesh names that should be loaded from the file
51
+ * @param scene the scene the meshes should be added to
52
+ * @param data the bvh data to load
53
+ * @returns a promise containing the loaded skeletons and animations
54
+ */
55
+ importMeshAsync(_meshesNames: string | readonly string[] | null | undefined, scene: Scene, data: unknown): Promise<ISceneLoaderAsyncResult>;
56
+ /**
57
+ * Imports all objects from the loaded bvh data and adds them to the scene
58
+ * @param scene the scene the objects should be added to
59
+ * @param data the bvh data to load
60
+ * @returns a promise which completes when objects have been loaded to the scene
61
+ */
62
+ loadAsync(scene: Scene, data: unknown): Promise<void>;
63
+ /**
64
+ * Load into an asset container.
65
+ * @param scene The scene to load into
66
+ * @param data The data to import
67
+ * @returns The loaded asset container
68
+ */
69
+ loadAssetContainerAsync(scene: Scene, data: unknown): Promise<AssetContainer>;
70
+ }
71
+ /**
72
+ * Registers the BVHFileLoader scene loader plugin.
73
+ * Safe to call multiple times; only the first call has an effect.
74
+ */
75
+ export declare function RegisterBVHFileLoader(): void;
@@ -0,0 +1,154 @@
1
+ import { RegisterSceneLoaderPlugin, } from "@babylonjs/core/Loading/sceneLoader.js";
2
+ import { AssetContainer } from "@babylonjs/core/assetContainer.js";
3
+ import { Animation } from "@babylonjs/core/Animations/animation.pure.js";
4
+ import { BVHFileLoaderMetadata } from "./bvhFileLoader.metadata.js";
5
+ import { ReadBvh } from "./bvhLoader.js";
6
+ /**
7
+ * @experimental
8
+ * BVH file type loader.
9
+ * This is a babylon scene loader plugin.
10
+ */
11
+ export class BVHFileLoader {
12
+ /**
13
+ * Creates loader for bvh motion files
14
+ * @param loadingOptions - Options for the bvh loader
15
+ */
16
+ constructor(loadingOptions) {
17
+ /**
18
+ * Name of the loader ("bvh")
19
+ */
20
+ this.name = BVHFileLoaderMetadata.name;
21
+ /** @internal */
22
+ this.extensions = BVHFileLoaderMetadata.extensions;
23
+ this._loadingOptions = { ...BVHFileLoader._DefaultLoadingOptions, ...(loadingOptions ?? {}) };
24
+ }
25
+ static get _DefaultLoadingOptions() {
26
+ return {
27
+ loopMode: Animation.ANIMATIONLOOPMODE_CYCLE,
28
+ };
29
+ }
30
+ /** @internal */
31
+ createPlugin(options) {
32
+ return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);
33
+ }
34
+ /**
35
+ * If the data string can be loaded directly.
36
+ * @param data - direct load data
37
+ * @returns if the data can be loaded directly
38
+ */
39
+ canDirectLoad(data) {
40
+ return this.isBvhHeader(data);
41
+ }
42
+ /**
43
+ * Returns whether the provided text starts with a BVH HIERARCHY header.
44
+ * @param text - the text to inspect
45
+ * @returns true if the text is a BVH header
46
+ */
47
+ isBvhHeader(text) {
48
+ return text.split("\n")[0] == "HIERARCHY";
49
+ }
50
+ /**
51
+ * Returns whether the provided text does not start with a BVH HIERARCHY header.
52
+ * @param text - the text to inspect
53
+ * @returns true if the text is not a BVH header
54
+ */
55
+ isNotBvhHeader(text) {
56
+ return !this.isBvhHeader(text);
57
+ }
58
+ /**
59
+ * Imports from the loaded gaussian splatting data and adds them to the scene
60
+ * @param _meshesNames a string or array of strings of the mesh names that should be loaded from the file
61
+ * @param scene the scene the meshes should be added to
62
+ * @param data the bvh data to load
63
+ * @returns a promise containing the loaded skeletons and animations
64
+ */
65
+ // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
66
+ importMeshAsync(_meshesNames, scene, data) {
67
+ if (typeof data !== "string") {
68
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
69
+ return Promise.reject("BVH loader expects string data.");
70
+ }
71
+ if (this.isNotBvhHeader(data)) {
72
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
73
+ return Promise.reject("BVH loader expects HIERARCHY header.");
74
+ }
75
+ try {
76
+ const skeleton = ReadBvh(data, scene, null, this._loadingOptions);
77
+ return Promise.resolve({
78
+ meshes: [],
79
+ particleSystems: [],
80
+ skeletons: [skeleton],
81
+ animationGroups: [],
82
+ transformNodes: [],
83
+ geometries: [],
84
+ lights: [],
85
+ spriteManagers: [],
86
+ });
87
+ }
88
+ catch (e) {
89
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
90
+ return Promise.reject(e);
91
+ }
92
+ }
93
+ /**
94
+ * Imports all objects from the loaded bvh data and adds them to the scene
95
+ * @param scene the scene the objects should be added to
96
+ * @param data the bvh data to load
97
+ * @returns a promise which completes when objects have been loaded to the scene
98
+ */
99
+ // eslint-disable-next-line no-restricted-syntax, @typescript-eslint/promise-function-async
100
+ loadAsync(scene, data) {
101
+ if (typeof data !== "string") {
102
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
103
+ return Promise.reject("BVH loader expects string data.");
104
+ }
105
+ if (this.isNotBvhHeader(data)) {
106
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
107
+ return Promise.reject("BVH loader expects HIERARCHY header.");
108
+ }
109
+ // eslint-disable-next-line github/no-then
110
+ return this.importMeshAsync(null, scene, data).then(() => {
111
+ // return void
112
+ });
113
+ }
114
+ /**
115
+ * Load into an asset container.
116
+ * @param scene The scene to load into
117
+ * @param data The data to import
118
+ * @returns The loaded asset container
119
+ */
120
+ // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
121
+ loadAssetContainerAsync(scene, data) {
122
+ if (typeof data !== "string") {
123
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
124
+ return Promise.reject("BVH loader expects string data.");
125
+ }
126
+ if (this.isNotBvhHeader(data)) {
127
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
128
+ return Promise.reject("BVH loader expects HIERARCHY header.");
129
+ }
130
+ const assetContainer = new AssetContainer(scene);
131
+ try {
132
+ const skeleton = ReadBvh(data, scene, assetContainer, this._loadingOptions);
133
+ assetContainer.skeletons.push(skeleton);
134
+ return Promise.resolve(assetContainer);
135
+ }
136
+ catch (e) {
137
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
138
+ return Promise.reject(e);
139
+ }
140
+ }
141
+ }
142
+ let _Registered = false;
143
+ /**
144
+ * Registers the BVHFileLoader scene loader plugin.
145
+ * Safe to call multiple times; only the first call has an effect.
146
+ */
147
+ export function RegisterBVHFileLoader() {
148
+ if (_Registered) {
149
+ return;
150
+ }
151
+ _Registered = true;
152
+ RegisterSceneLoaderPlugin(new BVHFileLoader());
153
+ }
154
+ //# sourceMappingURL=bvhFileLoader.pure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bvhFileLoader.pure.js","sourceRoot":"","sources":["../../../../dev/loaders/src/BVH/bvhFileLoader.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n type ISceneLoaderPluginAsync,\r\n type ISceneLoaderPluginFactory,\r\n type ISceneLoaderAsyncResult,\r\n type SceneLoaderPluginOptions,\r\n RegisterSceneLoaderPlugin,\r\n} from \"core/Loading/sceneLoader\";\r\nimport { AssetContainer } from \"core/assetContainer\";\r\nimport { Animation } from \"core/Animations/animation.pure\";\r\nimport { type Scene } from \"core/scene\";\r\nimport { type BVHLoadingOptions } from \"./bvhLoadingOptions\";\r\nimport { BVHFileLoaderMetadata } from \"./bvhFileLoader.metadata\";\r\nimport { ReadBvh } from \"./bvhLoader\";\r\n\r\n/**\r\n * @experimental\r\n * BVH file type loader.\r\n * This is a babylon scene loader plugin.\r\n */\r\nexport class BVHFileLoader implements ISceneLoaderPluginAsync, ISceneLoaderPluginFactory {\r\n /**\r\n * Name of the loader (\"bvh\")\r\n */\r\n public readonly name = BVHFileLoaderMetadata.name;\r\n\r\n /** @internal */\r\n public readonly extensions = BVHFileLoaderMetadata.extensions;\r\n\r\n private readonly _loadingOptions: BVHLoadingOptions;\r\n\r\n /**\r\n * Creates loader for bvh motion files\r\n * @param loadingOptions - Options for the bvh loader\r\n */\r\n constructor(loadingOptions?: Partial<Readonly<BVHLoadingOptions>>) {\r\n this._loadingOptions = { ...BVHFileLoader._DefaultLoadingOptions, ...(loadingOptions ?? {}) };\r\n }\r\n\r\n private static get _DefaultLoadingOptions(): BVHLoadingOptions {\r\n return {\r\n loopMode: Animation.ANIMATIONLOOPMODE_CYCLE,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public createPlugin(options: SceneLoaderPluginOptions): ISceneLoaderPluginAsync {\r\n return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);\r\n }\r\n\r\n /**\r\n * If the data string can be loaded directly.\r\n * @param data - direct load data\r\n * @returns if the data can be loaded directly\r\n */\r\n public canDirectLoad(data: string): boolean {\r\n return this.isBvhHeader(data);\r\n }\r\n\r\n /**\r\n * Returns whether the provided text starts with a BVH HIERARCHY header.\r\n * @param text - the text to inspect\r\n * @returns true if the text is a BVH header\r\n */\r\n public isBvhHeader(text: string): boolean {\r\n return text.split(\"\\n\")[0] == \"HIERARCHY\";\r\n }\r\n\r\n /**\r\n * Returns whether the provided text does not start with a BVH HIERARCHY header.\r\n * @param text - the text to inspect\r\n * @returns true if the text is not a BVH header\r\n */\r\n public isNotBvhHeader(text: string): boolean {\r\n return !this.isBvhHeader(text);\r\n }\r\n\r\n /**\r\n * Imports from the loaded gaussian splatting data and adds them to the scene\r\n * @param _meshesNames a string or array of strings of the mesh names that should be loaded from the file\r\n * @param scene the scene the meshes should be added to\r\n * @param data the bvh data to load\r\n * @returns a promise containing the loaded skeletons and animations\r\n */\r\n // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax\r\n public importMeshAsync(_meshesNames: string | readonly string[] | null | undefined, scene: Scene, data: unknown): Promise<ISceneLoaderAsyncResult> {\r\n if (typeof data !== \"string\") {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(\"BVH loader expects string data.\");\r\n }\r\n if (this.isNotBvhHeader(data as string)) {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(\"BVH loader expects HIERARCHY header.\");\r\n }\r\n try {\r\n const skeleton = ReadBvh(data, scene, null, this._loadingOptions);\r\n return Promise.resolve({\r\n meshes: [],\r\n particleSystems: [],\r\n skeletons: [skeleton],\r\n animationGroups: [],\r\n transformNodes: [],\r\n geometries: [],\r\n lights: [],\r\n spriteManagers: [],\r\n } as ISceneLoaderAsyncResult);\r\n } catch (e) {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n /**\r\n * Imports all objects from the loaded bvh data and adds them to the scene\r\n * @param scene the scene the objects should be added to\r\n * @param data the bvh data to load\r\n * @returns a promise which completes when objects have been loaded to the scene\r\n */\r\n // eslint-disable-next-line no-restricted-syntax, @typescript-eslint/promise-function-async\r\n public loadAsync(scene: Scene, data: unknown): Promise<void> {\r\n if (typeof data !== \"string\") {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(\"BVH loader expects string data.\");\r\n }\r\n if (this.isNotBvhHeader(data as string)) {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(\"BVH loader expects HIERARCHY header.\");\r\n }\r\n\r\n // eslint-disable-next-line github/no-then\r\n return this.importMeshAsync(null, scene, data).then(() => {\r\n // return void\r\n });\r\n }\r\n\r\n /**\r\n * Load into an asset container.\r\n * @param scene The scene to load into\r\n * @param data The data to import\r\n * @returns The loaded asset container\r\n */\r\n // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax\r\n public loadAssetContainerAsync(scene: Scene, data: unknown): Promise<AssetContainer> {\r\n if (typeof data !== \"string\") {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(\"BVH loader expects string data.\");\r\n }\r\n if (this.isNotBvhHeader(data as string)) {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(\"BVH loader expects HIERARCHY header.\");\r\n }\r\n const assetContainer = new AssetContainer(scene);\r\n try {\r\n const skeleton = ReadBvh(data, scene, assetContainer, this._loadingOptions);\r\n assetContainer.skeletons.push(skeleton);\r\n return Promise.resolve(assetContainer);\r\n } catch (e) {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n return Promise.reject(e);\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the BVHFileLoader scene loader plugin.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterBVHFileLoader(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterSceneLoaderPlugin(new BVHFileLoader());\r\n}\r\n"]}
@@ -0,0 +1,11 @@
1
+ export {};
2
+ import { type BVHLoadingOptions } from "./bvhLoadingOptions.js";
3
+ import { type BVHFileLoaderMetadata } from "./bvhFileLoader.metadata.js";
4
+ declare module "@babylonjs/core/Loading/sceneLoader.js" {
5
+ interface SceneLoaderPluginOptions {
6
+ /**
7
+ * Defines options for the bvh loader.
8
+ */
9
+ [BVHFileLoaderMetadata.name]: Partial<BVHLoadingOptions>;
10
+ }
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bvhFileLoader.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bvhFileLoader.types.js","sourceRoot":"","sources":["../../../../dev/loaders/src/BVH/bvhFileLoader.types.ts"],"names":[],"mappings":"","sourcesContent":["export {};\r\n\r\nimport { type BVHLoadingOptions } from \"./bvhLoadingOptions\";\r\nimport { type BVHFileLoaderMetadata } from \"./bvhFileLoader.metadata\";\r\n\r\ndeclare module \"core/Loading/sceneLoader\" {\r\n // eslint-disable-next-line jsdoc/require-jsdoc, @typescript-eslint/naming-convention\r\n export interface SceneLoaderPluginOptions {\r\n /**\r\n * Defines options for the bvh loader.\r\n */\r\n [BVHFileLoaderMetadata.name]: Partial<BVHLoadingOptions>;\r\n }\r\n}\r\n"]}
package/BVH/pure.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ /** Pure barrel — re-exports only side-effect-free modules */
2
+ export * from "./bvhLoader.js";
3
+ export * from "./bvhFileLoader.pure.js";
package/BVH/pure.js ADDED
@@ -0,0 +1,5 @@
1
+ /** Pure barrel — re-exports only side-effect-free modules */
2
+ /* eslint-disable @typescript-eslint/no-restricted-imports */
3
+ export * from "./bvhLoader.js";
4
+ export * from "./bvhFileLoader.pure.js";
5
+ //# sourceMappingURL=pure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../dev/loaders/src/BVH/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,6DAA6D;AAC7D,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\n/* eslint-disable @typescript-eslint/no-restricted-imports */\nexport * from \"./bvhLoader\";\nexport * from \"./bvhFileLoader.pure\";\n"]}