@zephyr3d/scene 0.9.4 → 0.9.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/dist/animation/animationmask.js +224 -0
  2. package/dist/animation/animationmask.js.map +1 -0
  3. package/dist/animation/animationset.js +268 -67
  4. package/dist/animation/animationset.js.map +1 -1
  5. package/dist/animation/animationtrack.js.map +1 -1
  6. package/dist/animation/eulerrotationtrack.js +3 -0
  7. package/dist/animation/eulerrotationtrack.js.map +1 -1
  8. package/dist/animation/fixed_geometry_cache_track.js +7 -0
  9. package/dist/animation/fixed_geometry_cache_track.js.map +1 -1
  10. package/dist/animation/ik_modifier.js.map +1 -1
  11. package/dist/animation/joint_dynamics/collision.js +6 -4
  12. package/dist/animation/joint_dynamics/collision.js.map +1 -1
  13. package/dist/animation/joint_dynamics/controller.js +390 -43
  14. package/dist/animation/joint_dynamics/controller.js.map +1 -1
  15. package/dist/animation/joint_dynamics/joint_dynamics_system.js +62 -3
  16. package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
  17. package/dist/animation/joint_dynamics/solver.js +4 -3
  18. package/dist/animation/joint_dynamics/solver.js.map +1 -1
  19. package/dist/animation/joint_dynamics/types.js.map +1 -1
  20. package/dist/animation/joint_dynamics_modifier.js +2 -0
  21. package/dist/animation/joint_dynamics_modifier.js.map +1 -1
  22. package/dist/animation/morphtarget.js +3 -72
  23. package/dist/animation/morphtarget.js.map +1 -1
  24. package/dist/animation/morphtrack.js +3 -0
  25. package/dist/animation/morphtrack.js.map +1 -1
  26. package/dist/animation/pca_geometry_cache_track.js +3 -0
  27. package/dist/animation/pca_geometry_cache_track.js.map +1 -1
  28. package/dist/animation/proptrack.js +3 -0
  29. package/dist/animation/proptrack.js.map +1 -1
  30. package/dist/animation/rotationtrack.js +3 -0
  31. package/dist/animation/rotationtrack.js.map +1 -1
  32. package/dist/animation/scaletrack.js +3 -0
  33. package/dist/animation/scaletrack.js.map +1 -1
  34. package/dist/animation/skeleton.js +254 -79
  35. package/dist/animation/skeleton.js.map +1 -1
  36. package/dist/animation/skeleton_modifier.js.map +1 -1
  37. package/dist/animation/spring_modifier.js.map +1 -1
  38. package/dist/animation/translationtrack.js +3 -0
  39. package/dist/animation/translationtrack.js.map +1 -1
  40. package/dist/app/engine.js +171 -107
  41. package/dist/app/engine.js.map +1 -1
  42. package/dist/app/scriptregistry.js +251 -80
  43. package/dist/app/scriptregistry.js.map +1 -1
  44. package/dist/asset/assetmanager.js +344 -365
  45. package/dist/asset/assetmanager.js.map +1 -1
  46. package/dist/asset/loaders/loader.js +1 -6
  47. package/dist/asset/loaders/loader.js.map +1 -1
  48. package/dist/asset/loaders/zabc/zabc_loader.js.map +1 -1
  49. package/dist/asset/model.js +1000 -131
  50. package/dist/asset/model.js.map +1 -1
  51. package/dist/avatar/wardrobe.js +474 -0
  52. package/dist/avatar/wardrobe.js.map +1 -0
  53. package/dist/index.d.ts +1126 -199
  54. package/dist/index.js +3 -2
  55. package/dist/index.js.map +1 -1
  56. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +6 -3
  57. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  58. package/dist/material/mixins/pbr/common.js +72 -15
  59. package/dist/material/mixins/pbr/common.js.map +1 -1
  60. package/dist/material/msdf_text.js +3 -3
  61. package/dist/material/msdf_text.js.map +1 -1
  62. package/dist/material/msdf_text_sprite.js +4 -4
  63. package/dist/material/msdf_text_sprite.js.map +1 -1
  64. package/dist/material/pbrblueprint.js +102 -102
  65. package/dist/material/pbrblueprint.js.map +1 -1
  66. package/dist/render/envlight.js +54 -1
  67. package/dist/render/envlight.js.map +1 -1
  68. package/dist/render/sky.js +9 -0
  69. package/dist/render/sky.js.map +1 -1
  70. package/dist/scene/batchgroup.js +11 -13
  71. package/dist/scene/batchgroup.js.map +1 -1
  72. package/dist/scene/environment.js +15 -2
  73. package/dist/scene/environment.js.map +1 -1
  74. package/dist/scene/mesh.js +79 -16
  75. package/dist/scene/mesh.js.map +1 -1
  76. package/dist/scene/scene.js +1 -0
  77. package/dist/scene/scene.js.map +1 -1
  78. package/dist/scene/scene_node.js +203 -2
  79. package/dist/scene/scene_node.js.map +1 -1
  80. package/dist/text/font/cff_font.js +890 -0
  81. package/dist/text/font/cff_font.js.map +1 -0
  82. package/dist/text/font/font_asset.js +17 -3
  83. package/dist/text/font/font_asset.js.map +1 -1
  84. package/dist/text/msdf/generator.js.map +1 -1
  85. package/dist/text/msdf/shape.js +4 -1
  86. package/dist/text/msdf/shape.js.map +1 -1
  87. package/dist/text/runtime/msdf_text_atlas_manager.js +4 -1
  88. package/dist/text/runtime/msdf_text_atlas_manager.js.map +1 -1
  89. package/dist/utility/blueprint/material/inputs.js +1157 -1154
  90. package/dist/utility/blueprint/material/inputs.js.map +1 -1
  91. package/dist/utility/bounding_volume.js.map +1 -1
  92. package/dist/utility/pmrem.js +34 -8
  93. package/dist/utility/pmrem.js.map +1 -1
  94. package/dist/utility/serialization/manager.js +22 -9
  95. package/dist/utility/serialization/manager.js.map +1 -1
  96. package/dist/utility/serialization/scene/animation.js +700 -7
  97. package/dist/utility/serialization/scene/animation.js.map +1 -1
  98. package/dist/utility/serialization/scene/mesh.js +64 -4
  99. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  100. package/dist/utility/serialization/scene/node.js +187 -8
  101. package/dist/utility/serialization/scene/node.js.map +1 -1
  102. package/dist/utility/serialization/types.js.map +1 -1
  103. package/dist/utility/textures/sheenlut.js +138 -0
  104. package/dist/utility/textures/sheenlut.js.map +1 -0
  105. package/package.json +2 -2
  106. package/dist/animation/ik/ik_chain_builder.js +0 -68
  107. package/dist/animation/ik/ik_chain_builder.js.map +0 -1
  108. package/dist/animation/ik/ik_pole_constraint.js +0 -123
  109. package/dist/animation/ik/ik_pole_constraint.js.map +0 -1
  110. package/dist/animation/ik/ik_track.js +0 -96
  111. package/dist/animation/ik/ik_track.js.map +0 -1
  112. package/dist/animation/ik_postprocessor.js +0 -71
  113. package/dist/animation/ik_postprocessor.js.map +0 -1
  114. package/dist/animation/joint_dynamics/math.js +0 -16
  115. package/dist/animation/joint_dynamics/math.js.map +0 -1
  116. package/dist/animation/manual_transform_processor.js +0 -156
  117. package/dist/animation/manual_transform_processor.js.map +0 -1
  118. package/dist/animation/skeleton_postprocessor.js +0 -50
  119. package/dist/animation/skeleton_postprocessor.js.map +0 -1
  120. package/dist/animation/spring2/collision.js +0 -469
  121. package/dist/animation/spring2/collision.js.map +0 -1
  122. package/dist/animation/spring2/constraints.js +0 -329
  123. package/dist/animation/spring2/constraints.js.map +0 -1
  124. package/dist/animation/spring2/controller.js +0 -434
  125. package/dist/animation/spring2/controller.js.map +0 -1
  126. package/dist/animation/spring2/math.js +0 -16
  127. package/dist/animation/spring2/math.js.map +0 -1
  128. package/dist/animation/spring2/solver.js +0 -624
  129. package/dist/animation/spring2/solver.js.map +0 -1
  130. package/dist/animation/spring2/spring_system.js +0 -118
  131. package/dist/animation/spring2/spring_system.js.map +0 -1
  132. package/dist/animation/spring2/types.js +0 -19
  133. package/dist/animation/spring2/types.js.map +0 -1
  134. package/dist/animation/spring_postprocessor.js +0 -54
  135. package/dist/animation/spring_postprocessor.js.map +0 -1
  136. package/dist/asset/loaders/gltf/gltf_loader.js +0 -1273
  137. package/dist/asset/loaders/gltf/gltf_loader.js.map +0 -1
  138. package/dist/asset/loaders/gltf/helpers.js +0 -331
  139. package/dist/asset/loaders/gltf/helpers.js.map +0 -1
  140. package/dist/material/sprite3d.js +0 -301
  141. package/dist/material/sprite3d.js.map +0 -1
  142. package/dist/material/sprite3d_std.js +0 -116
  143. package/dist/material/sprite3d_std.js.map +0 -1
  144. package/dist/material/sprite3dblueprint.js +0 -235
  145. package/dist/material/sprite3dblueprint.js.map +0 -1
  146. package/dist/material/sprite_sdf.js +0 -106
  147. package/dist/material/sprite_sdf.js.map +0 -1
  148. package/dist/material/terrainmaterial.js +0 -368
  149. package/dist/material/terrainmaterial.js.map +0 -1
  150. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
  151. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
  152. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
  153. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
  154. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
  155. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
  156. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
  157. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
  158. package/dist/render/deferredlightpass.js +0 -510
  159. package/dist/render/deferredlightpass.js.map +0 -1
  160. package/dist/render/deferredshadowlightpass.js +0 -428
  161. package/dist/render/deferredshadowlightpass.js.map +0 -1
  162. package/dist/render/gbufferpass.js +0 -50
  163. package/dist/render/gbufferpass.js.map +0 -1
  164. package/dist/scene/sdftextsprite.js +0 -322
  165. package/dist/scene/sdftextsprite.js.map +0 -1
  166. package/dist/scene/sprite3d.js +0 -18
  167. package/dist/scene/sprite3d.js.map +0 -1
  168. package/dist/scene/terrain/grass.js +0 -280
  169. package/dist/scene/terrain/grass.js.map +0 -1
  170. package/dist/scene/terrain/heightfield.js +0 -475
  171. package/dist/scene/terrain/heightfield.js.map +0 -1
  172. package/dist/scene/terrain/patch.js +0 -532
  173. package/dist/scene/terrain/patch.js.map +0 -1
  174. package/dist/scene/terrain/quadtree.js +0 -461
  175. package/dist/scene/terrain/quadtree.js.map +0 -1
  176. package/dist/scene/terrain/terrain.js +0 -231
  177. package/dist/scene/terrain/terrain.js.map +0 -1
  178. package/dist/src/animation/animation.js +0 -127
  179. package/dist/src/animation/animation.js.map +0 -1
  180. package/dist/src/animation/animationset.js +0 -255
  181. package/dist/src/animation/animationset.js.map +0 -1
  182. package/dist/src/animation/animationtrack.js +0 -34
  183. package/dist/src/animation/animationtrack.js.map +0 -1
  184. package/dist/src/animation/eulerrotationtrack.js +0 -52
  185. package/dist/src/animation/eulerrotationtrack.js.map +0 -1
  186. package/dist/src/animation/morphtarget.js +0 -93
  187. package/dist/src/animation/morphtarget.js.map +0 -1
  188. package/dist/src/animation/morphtrack.js +0 -70
  189. package/dist/src/animation/morphtrack.js.map +0 -1
  190. package/dist/src/animation/proptrack.js +0 -161
  191. package/dist/src/animation/proptrack.js.map +0 -1
  192. package/dist/src/animation/rotationtrack.js +0 -51
  193. package/dist/src/animation/rotationtrack.js.map +0 -1
  194. package/dist/src/animation/scaletrack.js +0 -50
  195. package/dist/src/animation/scaletrack.js.map +0 -1
  196. package/dist/src/animation/skeleton.js +0 -204
  197. package/dist/src/animation/skeleton.js.map +0 -1
  198. package/dist/src/animation/translationtrack.js +0 -50
  199. package/dist/src/animation/translationtrack.js.map +0 -1
  200. package/dist/src/app/app.js +0 -129
  201. package/dist/src/app/app.js.map +0 -1
  202. package/dist/src/app/inputmgr.js +0 -267
  203. package/dist/src/app/inputmgr.js.map +0 -1
  204. package/dist/src/asset/assetmanager.js +0 -404
  205. package/dist/src/asset/assetmanager.js.map +0 -1
  206. package/dist/src/asset/builtin.js +0 -337
  207. package/dist/src/asset/builtin.js.map +0 -1
  208. package/dist/src/asset/loaders/dds/dds.js +0 -470
  209. package/dist/src/asset/loaders/dds/dds.js.map +0 -1
  210. package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
  211. package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
  212. package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
  213. package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
  214. package/dist/src/asset/loaders/gltf/helpers.js +0 -327
  215. package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
  216. package/dist/src/asset/loaders/hdr/hdr.js +0 -180
  217. package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
  218. package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
  219. package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
  220. package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
  221. package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
  222. package/dist/src/asset/loaders/loader.js +0 -45
  223. package/dist/src/asset/loaders/loader.js.map +0 -1
  224. package/dist/src/asset/model.js +0 -414
  225. package/dist/src/asset/model.js.map +0 -1
  226. package/dist/src/blitter/bilateralblur.js +0 -221
  227. package/dist/src/blitter/bilateralblur.js.map +0 -1
  228. package/dist/src/blitter/blitter.js +0 -390
  229. package/dist/src/blitter/blitter.js.map +0 -1
  230. package/dist/src/blitter/box.js +0 -118
  231. package/dist/src/blitter/box.js.map +0 -1
  232. package/dist/src/blitter/copy.js +0 -22
  233. package/dist/src/blitter/copy.js.map +0 -1
  234. package/dist/src/blitter/gaussianblur.js +0 -228
  235. package/dist/src/blitter/gaussianblur.js.map +0 -1
  236. package/dist/src/camera/base.js +0 -92
  237. package/dist/src/camera/base.js.map +0 -1
  238. package/dist/src/camera/camera.js +0 -1005
  239. package/dist/src/camera/camera.js.map +0 -1
  240. package/dist/src/camera/fps.js +0 -238
  241. package/dist/src/camera/fps.js.map +0 -1
  242. package/dist/src/camera/orbit.js +0 -245
  243. package/dist/src/camera/orbit.js.map +0 -1
  244. package/dist/src/camera/orthocamera.js +0 -167
  245. package/dist/src/camera/orthocamera.js.map +0 -1
  246. package/dist/src/camera/perspectivecamera.js +0 -141
  247. package/dist/src/camera/perspectivecamera.js.map +0 -1
  248. package/dist/src/index.js +0 -120
  249. package/dist/src/index.js.map +0 -1
  250. package/dist/src/material/blinn.js +0 -81
  251. package/dist/src/material/blinn.js.map +0 -1
  252. package/dist/src/material/grassmaterial.js +0 -113
  253. package/dist/src/material/grassmaterial.js.map +0 -1
  254. package/dist/src/material/lambert.js +0 -92
  255. package/dist/src/material/lambert.js.map +0 -1
  256. package/dist/src/material/material.js +0 -301
  257. package/dist/src/material/material.js.map +0 -1
  258. package/dist/src/material/meshmaterial.js +0 -704
  259. package/dist/src/material/meshmaterial.js.map +0 -1
  260. package/dist/src/material/mixins/albedocolor.js +0 -76
  261. package/dist/src/material/mixins/albedocolor.js.map +0 -1
  262. package/dist/src/material/mixins/foliage.js +0 -47
  263. package/dist/src/material/mixins/foliage.js.map +0 -1
  264. package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
  265. package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
  266. package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
  267. package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
  268. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
  269. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
  270. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
  271. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
  272. package/dist/src/material/mixins/lit.js +0 -476
  273. package/dist/src/material/mixins/lit.js.map +0 -1
  274. package/dist/src/material/mixins/pbr/common.js +0 -918
  275. package/dist/src/material/mixins/pbr/common.js.map +0 -1
  276. package/dist/src/material/mixins/texture.js +0 -172
  277. package/dist/src/material/mixins/texture.js.map +0 -1
  278. package/dist/src/material/mixins/vertexcolor.js +0 -56
  279. package/dist/src/material/mixins/vertexcolor.js.map +0 -1
  280. package/dist/src/material/particle.js +0 -178
  281. package/dist/src/material/particle.js.map +0 -1
  282. package/dist/src/material/pbrmr.js +0 -97
  283. package/dist/src/material/pbrmr.js.map +0 -1
  284. package/dist/src/material/pbrsg.js +0 -97
  285. package/dist/src/material/pbrsg.js.map +0 -1
  286. package/dist/src/material/shader/helper.js +0 -1209
  287. package/dist/src/material/shader/helper.js.map +0 -1
  288. package/dist/src/material/terrain-cm.js +0 -606
  289. package/dist/src/material/terrain-cm.js.map +0 -1
  290. package/dist/src/material/terrainmaterial.js +0 -375
  291. package/dist/src/material/terrainmaterial.js.map +0 -1
  292. package/dist/src/material/unlit.js +0 -41
  293. package/dist/src/material/unlit.js.map +0 -1
  294. package/dist/src/material/water.js +0 -417
  295. package/dist/src/material/water.js.map +0 -1
  296. package/dist/src/posteffect/bloom.js +0 -361
  297. package/dist/src/posteffect/bloom.js.map +0 -1
  298. package/dist/src/posteffect/compositor.js +0 -226
  299. package/dist/src/posteffect/compositor.js.map +0 -1
  300. package/dist/src/posteffect/fxaa.js +0 -273
  301. package/dist/src/posteffect/fxaa.js.map +0 -1
  302. package/dist/src/posteffect/grayscale.js +0 -69
  303. package/dist/src/posteffect/grayscale.js.map +0 -1
  304. package/dist/src/posteffect/motionblur.js +0 -96
  305. package/dist/src/posteffect/motionblur.js.map +0 -1
  306. package/dist/src/posteffect/posteffect.js +0 -126
  307. package/dist/src/posteffect/posteffect.js.map +0 -1
  308. package/dist/src/posteffect/sao.js +0 -324
  309. package/dist/src/posteffect/sao.js.map +0 -1
  310. package/dist/src/posteffect/ssr.js +0 -489
  311. package/dist/src/posteffect/ssr.js.map +0 -1
  312. package/dist/src/posteffect/taa.js +0 -172
  313. package/dist/src/posteffect/taa.js.map +0 -1
  314. package/dist/src/posteffect/tonemap.js +0 -94
  315. package/dist/src/posteffect/tonemap.js.map +0 -1
  316. package/dist/src/render/abuffer_oit.js +0 -361
  317. package/dist/src/render/abuffer_oit.js.map +0 -1
  318. package/dist/src/render/clipmap.js +0 -851
  319. package/dist/src/render/clipmap.js.map +0 -1
  320. package/dist/src/render/cluster_light.js +0 -333
  321. package/dist/src/render/cluster_light.js.map +0 -1
  322. package/dist/src/render/cull_visitor.js +0 -187
  323. package/dist/src/render/cull_visitor.js.map +0 -1
  324. package/dist/src/render/depthpass.js +0 -68
  325. package/dist/src/render/depthpass.js.map +0 -1
  326. package/dist/src/render/drawable_mixin.js +0 -227
  327. package/dist/src/render/drawable_mixin.js.map +0 -1
  328. package/dist/src/render/envlight.js +0 -463
  329. package/dist/src/render/envlight.js.map +0 -1
  330. package/dist/src/render/fbm_wavegenerator.js +0 -251
  331. package/dist/src/render/fbm_wavegenerator.js.map +0 -1
  332. package/dist/src/render/fft_wavegenerator.js +0 -1006
  333. package/dist/src/render/fft_wavegenerator.js.map +0 -1
  334. package/dist/src/render/fullscreenquad.js +0 -38
  335. package/dist/src/render/fullscreenquad.js.map +0 -1
  336. package/dist/src/render/gerstner_wavegenerator.js +0 -314
  337. package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
  338. package/dist/src/render/globalbindgroup_allocator.js +0 -60
  339. package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
  340. package/dist/src/render/hzb.js +0 -273
  341. package/dist/src/render/hzb.js.map +0 -1
  342. package/dist/src/render/lightpass.js +0 -172
  343. package/dist/src/render/lightpass.js.map +0 -1
  344. package/dist/src/render/objectcolorpass.js +0 -51
  345. package/dist/src/render/objectcolorpass.js.map +0 -1
  346. package/dist/src/render/primitive.js +0 -364
  347. package/dist/src/render/primitive.js.map +0 -1
  348. package/dist/src/render/render_queue.js +0 -467
  349. package/dist/src/render/render_queue.js.map +0 -1
  350. package/dist/src/render/renderbundle_wrapper.js +0 -152
  351. package/dist/src/render/renderbundle_wrapper.js.map +0 -1
  352. package/dist/src/render/renderer.js +0 -455
  353. package/dist/src/render/renderer.js.map +0 -1
  354. package/dist/src/render/renderpass.js +0 -200
  355. package/dist/src/render/renderpass.js.map +0 -1
  356. package/dist/src/render/shadowmap_pass.js +0 -56
  357. package/dist/src/render/shadowmap_pass.js.map +0 -1
  358. package/dist/src/render/sky.js +0 -1103
  359. package/dist/src/render/sky.js.map +0 -1
  360. package/dist/src/render/weightedblended_oit.js +0 -168
  361. package/dist/src/render/weightedblended_oit.js.map +0 -1
  362. package/dist/src/scene/batchgroup.js +0 -162
  363. package/dist/src/scene/batchgroup.js.map +0 -1
  364. package/dist/src/scene/environment.js +0 -209
  365. package/dist/src/scene/environment.js.map +0 -1
  366. package/dist/src/scene/graph_node.js +0 -72
  367. package/dist/src/scene/graph_node.js.map +0 -1
  368. package/dist/src/scene/light.js +0 -416
  369. package/dist/src/scene/light.js.map +0 -1
  370. package/dist/src/scene/mesh.js +0 -341
  371. package/dist/src/scene/mesh.js.map +0 -1
  372. package/dist/src/scene/octree.js +0 -649
  373. package/dist/src/scene/octree.js.map +0 -1
  374. package/dist/src/scene/particlesys.js +0 -738
  375. package/dist/src/scene/particlesys.js.map +0 -1
  376. package/dist/src/scene/raycast_visitor.js +0 -103
  377. package/dist/src/scene/raycast_visitor.js.map +0 -1
  378. package/dist/src/scene/scene.js +0 -284
  379. package/dist/src/scene/scene.js.map +0 -1
  380. package/dist/src/scene/scene_node.js +0 -732
  381. package/dist/src/scene/scene_node.js.map +0 -1
  382. package/dist/src/scene/terrain/grass.js +0 -278
  383. package/dist/src/scene/terrain/grass.js.map +0 -1
  384. package/dist/src/scene/terrain/heightfield.js +0 -475
  385. package/dist/src/scene/terrain/heightfield.js.map +0 -1
  386. package/dist/src/scene/terrain/patch.js +0 -530
  387. package/dist/src/scene/terrain/patch.js.map +0 -1
  388. package/dist/src/scene/terrain/quadtree.js +0 -461
  389. package/dist/src/scene/terrain/quadtree.js.map +0 -1
  390. package/dist/src/scene/terrain/terrain.js +0 -246
  391. package/dist/src/scene/terrain/terrain.js.map +0 -1
  392. package/dist/src/scene/terrain-cm/grass.js +0 -594
  393. package/dist/src/scene/terrain-cm/grass.js.map +0 -1
  394. package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
  395. package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
  396. package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
  397. package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
  398. package/dist/src/scene/water.js +0 -374
  399. package/dist/src/scene/water.js.map +0 -1
  400. package/dist/src/shaders/atmosphere.js +0 -957
  401. package/dist/src/shaders/atmosphere.js.map +0 -1
  402. package/dist/src/shaders/fog.js +0 -112
  403. package/dist/src/shaders/fog.js.map +0 -1
  404. package/dist/src/shaders/misc.js +0 -266
  405. package/dist/src/shaders/misc.js.map +0 -1
  406. package/dist/src/shaders/noise.js +0 -222
  407. package/dist/src/shaders/noise.js.map +0 -1
  408. package/dist/src/shaders/pbr.js +0 -51
  409. package/dist/src/shaders/pbr.js.map +0 -1
  410. package/dist/src/shaders/shadow.js +0 -636
  411. package/dist/src/shaders/shadow.js.map +0 -1
  412. package/dist/src/shaders/ssr.js +0 -490
  413. package/dist/src/shaders/ssr.js.map +0 -1
  414. package/dist/src/shaders/temporal.js +0 -215
  415. package/dist/src/shaders/temporal.js.map +0 -1
  416. package/dist/src/shaders/water.js +0 -756
  417. package/dist/src/shaders/water.js.map +0 -1
  418. package/dist/src/shadow/esm.js +0 -237
  419. package/dist/src/shadow/esm.js.map +0 -1
  420. package/dist/src/shadow/pcf_opt.js +0 -181
  421. package/dist/src/shadow/pcf_opt.js.map +0 -1
  422. package/dist/src/shadow/pcf_pd.js +0 -189
  423. package/dist/src/shadow/pcf_pd.js.map +0 -1
  424. package/dist/src/shadow/shader.js +0 -37
  425. package/dist/src/shadow/shader.js.map +0 -1
  426. package/dist/src/shadow/shadow_impl.js +0 -15
  427. package/dist/src/shadow/shadow_impl.js.map +0 -1
  428. package/dist/src/shadow/shadowmapper.js +0 -790
  429. package/dist/src/shadow/shadowmapper.js.map +0 -1
  430. package/dist/src/shadow/ssm.js +0 -159
  431. package/dist/src/shadow/ssm.js.map +0 -1
  432. package/dist/src/shadow/vsm.js +0 -297
  433. package/dist/src/shadow/vsm.js.map +0 -1
  434. package/dist/src/shapes/box.js +0 -386
  435. package/dist/src/shapes/box.js.map +0 -1
  436. package/dist/src/shapes/cylinder.js +0 -125
  437. package/dist/src/shapes/cylinder.js.map +0 -1
  438. package/dist/src/shapes/plane.js +0 -88
  439. package/dist/src/shapes/plane.js.map +0 -1
  440. package/dist/src/shapes/shape.js +0 -87
  441. package/dist/src/shapes/shape.js.map +0 -1
  442. package/dist/src/shapes/sphere.js +0 -114
  443. package/dist/src/shapes/sphere.js.map +0 -1
  444. package/dist/src/shapes/tetrahedron.js +0 -188
  445. package/dist/src/shapes/tetrahedron.js.map +0 -1
  446. package/dist/src/shapes/torus.js +0 -111
  447. package/dist/src/shapes/torus.js.map +0 -1
  448. package/dist/src/utility/aabbtree.js +0 -400
  449. package/dist/src/utility/aabbtree.js.map +0 -1
  450. package/dist/src/utility/bounding_volume.js +0 -29
  451. package/dist/src/utility/bounding_volume.js.map +0 -1
  452. package/dist/src/utility/debug.js +0 -28
  453. package/dist/src/utility/debug.js.map +0 -1
  454. package/dist/src/utility/draco/decoder.js +0 -116
  455. package/dist/src/utility/draco/decoder.js.map +0 -1
  456. package/dist/src/utility/misc.js +0 -105
  457. package/dist/src/utility/misc.js.map +0 -1
  458. package/dist/src/utility/panorama.js +0 -163
  459. package/dist/src/utility/panorama.js.map +0 -1
  460. package/dist/src/utility/pmrem.js +0 -354
  461. package/dist/src/utility/pmrem.js.map +0 -1
  462. package/dist/src/utility/rendermipmap.js +0 -115
  463. package/dist/src/utility/rendermipmap.js.map +0 -1
  464. package/dist/src/utility/serialization/json.js +0 -402
  465. package/dist/src/utility/serialization/json.js.map +0 -1
  466. package/dist/src/utility/serialization/manager.js +0 -623
  467. package/dist/src/utility/serialization/manager.js.map +0 -1
  468. package/dist/src/utility/serialization/scene/animation.js +0 -248
  469. package/dist/src/utility/serialization/scene/animation.js.map +0 -1
  470. package/dist/src/utility/serialization/scene/batch.js +0 -59
  471. package/dist/src/utility/serialization/scene/batch.js.map +0 -1
  472. package/dist/src/utility/serialization/scene/camera.js +0 -790
  473. package/dist/src/utility/serialization/scene/camera.js.map +0 -1
  474. package/dist/src/utility/serialization/scene/common.js +0 -222
  475. package/dist/src/utility/serialization/scene/common.js.map +0 -1
  476. package/dist/src/utility/serialization/scene/light.js +0 -575
  477. package/dist/src/utility/serialization/scene/light.js.map +0 -1
  478. package/dist/src/utility/serialization/scene/material.js +0 -1111
  479. package/dist/src/utility/serialization/scene/material.js.map +0 -1
  480. package/dist/src/utility/serialization/scene/mesh.js +0 -148
  481. package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
  482. package/dist/src/utility/serialization/scene/misc.js +0 -39
  483. package/dist/src/utility/serialization/scene/misc.js.map +0 -1
  484. package/dist/src/utility/serialization/scene/node.js +0 -451
  485. package/dist/src/utility/serialization/scene/node.js.map +0 -1
  486. package/dist/src/utility/serialization/scene/particle.js +0 -425
  487. package/dist/src/utility/serialization/scene/particle.js.map +0 -1
  488. package/dist/src/utility/serialization/scene/primitive.js +0 -692
  489. package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
  490. package/dist/src/utility/serialization/scene/scene.js +0 -704
  491. package/dist/src/utility/serialization/scene/scene.js.map +0 -1
  492. package/dist/src/utility/serialization/scene/terrain.js +0 -488
  493. package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
  494. package/dist/src/utility/serialization/scene/water.js +0 -465
  495. package/dist/src/utility/serialization/scene/water.js.map +0 -1
  496. package/dist/src/utility/shprojector.js +0 -297
  497. package/dist/src/utility/shprojector.js.map +0 -1
  498. package/dist/src/utility/textures/ggxlut.js +0 -213
  499. package/dist/src/utility/textures/ggxlut.js.map +0 -1
  500. package/dist/src/utility/textures/gradientnoise.js +0 -62
  501. package/dist/src/utility/textures/gradientnoise.js.map +0 -1
  502. package/dist/src/utility/textures/randomnoise.js +0 -41
  503. package/dist/src/utility/textures/randomnoise.js.map +0 -1
  504. package/dist/src/values.js +0 -162
  505. package/dist/src/values.js.map +0 -1
  506. package/dist/utility/blueprint/material/common.js +0 -7
  507. package/dist/utility/blueprint/material/common.js.map +0 -1
  508. package/dist/utility/serialization/blueprint/constants.js +0 -255
  509. package/dist/utility/serialization/blueprint/constants.js.map +0 -1
  510. package/dist/utility/serialization/blueprint/material/constants.js +0 -203
  511. package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
  512. package/dist/utility/serialization/blueprint/material/texture.js +0 -165
  513. package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
  514. package/dist/utility/serialization/scene/cloth_script.js +0 -834
  515. package/dist/utility/serialization/scene/cloth_script.js.map +0 -1
  516. package/dist/utility/serialization/scene/spring_script.js +0 -596
  517. package/dist/utility/serialization/scene/spring_script.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/asset/loaders/gltf/helpers.ts"],"sourcesContent":["import type { Accessor, AccessorSparse } from './gltf';\r\nimport type { TypedArray } from '@zephyr3d/base';\r\nimport type { GLTFContent } from './gltf_loader';\r\n\r\n/** @internal */\r\nexport const enum ComponentType {\r\n UNKNOWN = 0,\r\n BYTE = 5120, // GL.BYTE\r\n UBYTE = 5121, // GL.UNSIGNED_BYTE\r\n SHORT = 5122, // GL.SHORT\r\n USHORT = 5123, // GL.UNSIGNED_SHORT\r\n INT = 5124, // GL.INT\r\n UINT = 5125, // GL.UNSIGNED_INT\r\n FLOAT = 5126 // GL.FLOAT\r\n}\r\n\r\n/** @internal */\r\nexport type GLTFComponentType = 'SCALAR' | 'VEC2' | 'VEC3' | 'VEC4' | 'MAT2' | 'MAT3' | 'MAT4';\r\n\r\n/** @internal */\r\nexport class GLTFAccessor {\r\n bufferView: number;\r\n byteOffset: number;\r\n componentType: ComponentType;\r\n normalized: boolean;\r\n count: number;\r\n type: GLTFComponentType;\r\n max: number[];\r\n min: number[];\r\n sparse: AccessorSparse;\r\n name: string;\r\n private _typedView: TypedArray;\r\n private _filteredView: TypedArray;\r\n private _normalizedFilteredView: TypedArray;\r\n private _normalizedTypedView: TypedArray;\r\n constructor(accessorInfo: Accessor) {\r\n this.bufferView = accessorInfo.bufferView;\r\n this.byteOffset = accessorInfo.byteOffset ?? 0;\r\n this.componentType = accessorInfo.componentType;\r\n this.normalized = !!accessorInfo.normalized;\r\n this.count = accessorInfo.count;\r\n this.type = accessorInfo.type;\r\n this.max = accessorInfo.max;\r\n this.min = accessorInfo.min;\r\n this.sparse = accessorInfo.sparse;\r\n this.name = accessorInfo.name;\r\n this._typedView = null;\r\n this._filteredView = null;\r\n this._normalizedFilteredView = null;\r\n this._normalizedTypedView = null;\r\n }\r\n getTypedView(gltf: GLTFContent) {\r\n if (this._typedView) {\r\n return this._typedView;\r\n }\r\n\r\n if (this.bufferView !== undefined) {\r\n const bufferView = gltf.bufferViews[this.bufferView];\r\n const buffer = gltf._loadedBuffers[bufferView.buffer];\r\n const byteOffset = this.byteOffset + (bufferView.byteOffset ?? 0);\r\n\r\n const componentSize = this.getComponentSize(this.componentType);\r\n const componentCount = this.getComponentCount(this.type);\r\n\r\n let arrayLength = 0;\r\n if (bufferView.byteStride !== undefined && bufferView.byteStride !== 0) {\r\n if (componentSize !== 0) {\r\n arrayLength = (bufferView.byteStride / componentSize) * (this.count - 1) + componentCount;\r\n } else {\r\n console.warn(\"Invalid component type in accessor '\" + (this.name ? this.name : '') + \"'\");\r\n }\r\n } else {\r\n arrayLength = this.count * componentCount;\r\n }\r\n\r\n if (arrayLength * componentSize > buffer.byteLength - byteOffset) {\r\n arrayLength = (buffer.byteLength - byteOffset) / componentSize;\r\n console.warn(\"Count in accessor '\" + (this.name ? this.name : '') + \"' is too large.\");\r\n }\r\n\r\n switch (this.componentType) {\r\n case ComponentType.BYTE:\r\n this._typedView = new Int8Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.UBYTE:\r\n this._typedView = new Uint8Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.SHORT:\r\n this._typedView = new Int16Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.USHORT:\r\n this._typedView = new Uint16Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.INT:\r\n this._typedView = new Int32Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.UINT:\r\n this._typedView = new Uint32Array(buffer, byteOffset, arrayLength);\r\n break;\r\n case ComponentType.FLOAT:\r\n this._typedView = new Float32Array(buffer, byteOffset, arrayLength);\r\n break;\r\n }\r\n } else if (this.sparse !== undefined) {\r\n this._typedView = this.createView();\r\n }\r\n\r\n if (!this._typedView) {\r\n console.warn('Failed to convert buffer view to typed view!: ' + this.bufferView);\r\n } else if (this.sparse !== undefined) {\r\n this.applySparse(gltf, this._typedView);\r\n }\r\n\r\n return this._typedView;\r\n }\r\n\r\n // getNormalizedTypedView provides an alternative view to the accessors data,\r\n // where quantized data is already normalized. This is useful if the data is not passed\r\n // to vertexAttribPointer but used immediately (like e.g. animations)\r\n getNormalizedTypedView(gltf: GLTFContent) {\r\n if (this._normalizedTypedView) {\r\n return this._normalizedTypedView;\r\n }\r\n\r\n const typedView = this.getTypedView(gltf);\r\n this._normalizedTypedView = this.normalized\r\n ? GLTFAccessor.dequantize(typedView, this.componentType)\r\n : typedView;\r\n return this._normalizedTypedView;\r\n }\r\n\r\n // getDeinterlacedView provides a view to the accessors data in form of\r\n // a TypedArray. In contrast to getTypedView, getDeinterlacedView deinterlaces\r\n // data, i.e. stripping padding and unrelated components from the array. It then\r\n // only contains the data of the accessor\r\n getDeinterlacedView(gltf: GLTFContent) {\r\n if (this._filteredView) {\r\n return this._filteredView;\r\n }\r\n\r\n const componentSize = this.getComponentSize(this.componentType);\r\n const componentCount = this.getComponentCount(this.type);\r\n const arrayLength = this.count * componentCount;\r\n\r\n let func = 'getFloat32';\r\n switch (this.componentType) {\r\n case ComponentType.BYTE:\r\n this._filteredView = new Int8Array(arrayLength);\r\n func = 'getInt8';\r\n break;\r\n case ComponentType.UBYTE:\r\n this._filteredView = new Uint8Array(arrayLength);\r\n func = 'getUint8';\r\n break;\r\n case ComponentType.SHORT:\r\n this._filteredView = new Int16Array(arrayLength);\r\n func = 'getInt16';\r\n break;\r\n case ComponentType.USHORT:\r\n this._filteredView = new Uint16Array(arrayLength);\r\n func = 'getUint16';\r\n break;\r\n case ComponentType.INT:\r\n this._filteredView = new Int32Array(arrayLength);\r\n func = 'getInt32';\r\n break;\r\n case ComponentType.UINT:\r\n this._filteredView = new Uint32Array(arrayLength);\r\n func = 'getUint32';\r\n break;\r\n case ComponentType.FLOAT:\r\n this._filteredView = new Float32Array(arrayLength);\r\n func = 'getFloat32';\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (this.bufferView !== undefined) {\r\n const bufferView = gltf.bufferViews[this.bufferView];\r\n const buffer = gltf._loadedBuffers[bufferView.buffer];\r\n const byteOffset = this.byteOffset + (bufferView.byteOffset ?? 0);\r\n const stride =\r\n bufferView.byteStride !== undefined && bufferView.byteStride !== 0\r\n ? bufferView.byteStride\r\n : componentCount * componentSize;\r\n const dataView = new DataView(buffer, byteOffset, this.count * stride);\r\n for (let i = 0; i < arrayLength; ++i) {\r\n const offset = Math.floor(i / componentCount) * stride + (i % componentCount) * componentSize;\r\n this._filteredView[i] = dataView[func](offset, true);\r\n }\r\n } else if (this.sparse !== undefined) {\r\n this._filteredView = this.createView();\r\n }\r\n\r\n if (this.sparse !== undefined) {\r\n this.applySparse(gltf, this._filteredView);\r\n }\r\n\r\n return this._filteredView;\r\n }\r\n\r\n createView() {\r\n const size = this.count * this.getComponentCount(this.type);\r\n if (this.componentType == ComponentType.BYTE) {\r\n return new Int8Array(size);\r\n }\r\n if (this.componentType == ComponentType.UBYTE) {\r\n return new Uint8Array(size);\r\n }\r\n if (this.componentType == ComponentType.SHORT) {\r\n return new Int16Array(size);\r\n }\r\n if (this.componentType == ComponentType.USHORT) {\r\n return new Uint16Array(size);\r\n }\r\n if (this.componentType == ComponentType.INT) {\r\n return new Int32Array(size);\r\n }\r\n if (this.componentType == ComponentType.UINT) {\r\n return new Uint32Array(size);\r\n }\r\n if (this.componentType == ComponentType.FLOAT) {\r\n return new Float32Array(size);\r\n }\r\n return undefined;\r\n }\r\n\r\n // getNormalizedDeinterlacedView provides an alternative view to the accessors data,\r\n // where quantized data is already normalized. This is useful if the data is not passed\r\n // to vertexAttribPointer but used immediately (like e.g. animations)\r\n getNormalizedDeinterlacedView(gltf: GLTFContent) {\r\n if (this._normalizedFilteredView) {\r\n return this._normalizedFilteredView;\r\n }\r\n\r\n const filteredView = this.getDeinterlacedView(gltf);\r\n this._normalizedFilteredView = this.normalized\r\n ? GLTFAccessor.dequantize(filteredView, this.componentType)\r\n : filteredView;\r\n return this._normalizedFilteredView;\r\n }\r\n\r\n applySparse(gltf: GLTFContent, view: TypedArray) {\r\n // Gather indices.\r\n\r\n const indicesBufferView = gltf.bufferViews[this.sparse.indices.bufferView];\r\n const indicesBuffer = gltf._loadedBuffers[indicesBufferView.buffer];\r\n const indicesByteOffset = this.sparse.indices.byteOffset + (indicesBufferView.byteOffset ?? 0);\r\n\r\n const indicesComponentSize = this.getComponentSize(this.sparse.indices.componentType);\r\n let indicesComponentCount = 1;\r\n\r\n if (indicesBufferView.byteStride !== undefined && indicesBufferView.byteStride !== 0) {\r\n indicesComponentCount = indicesBufferView.byteStride / indicesComponentSize;\r\n }\r\n\r\n const indicesArrayLength = this.sparse.count * indicesComponentCount;\r\n\r\n let indicesTypedView;\r\n switch (this.sparse.indices.componentType) {\r\n case ComponentType.UBYTE:\r\n indicesTypedView = new Uint8Array(indicesBuffer, indicesByteOffset, indicesArrayLength);\r\n break;\r\n case ComponentType.USHORT:\r\n indicesTypedView = new Uint16Array(indicesBuffer, indicesByteOffset, indicesArrayLength);\r\n break;\r\n case ComponentType.UINT:\r\n indicesTypedView = new Uint32Array(indicesBuffer, indicesByteOffset, indicesArrayLength);\r\n break;\r\n }\r\n\r\n // Gather values.\r\n\r\n const valuesBufferView = gltf.bufferViews[this.sparse.values.bufferView];\r\n const valuesBuffer = gltf._loadedBuffers[valuesBufferView.buffer];\r\n const valuesByteOffset = this.sparse.values.byteOffset + (valuesBufferView.byteOffset ?? 0);\r\n\r\n const valuesComponentSize = this.getComponentSize(this.componentType);\r\n let valuesComponentCount = this.getComponentCount(this.type);\r\n\r\n if (valuesBufferView.byteStride !== undefined && valuesBufferView.byteStride !== 0) {\r\n valuesComponentCount = valuesBufferView.byteStride / valuesComponentSize;\r\n }\r\n\r\n const valuesArrayLength = this.sparse.count * valuesComponentCount;\r\n\r\n let valuesTypedView: TypedArray;\r\n switch (this.componentType) {\r\n case ComponentType.BYTE:\r\n valuesTypedView = new Int8Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.UBYTE:\r\n valuesTypedView = new Uint8Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.SHORT:\r\n valuesTypedView = new Int16Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.USHORT:\r\n valuesTypedView = new Uint16Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.INT:\r\n valuesTypedView = new Int32Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.UINT:\r\n valuesTypedView = new Uint32Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n case ComponentType.FLOAT:\r\n valuesTypedView = new Float32Array(valuesBuffer, valuesByteOffset, valuesArrayLength);\r\n break;\r\n }\r\n\r\n // Overwrite values.\r\n\r\n for (let i = 0; i < this.sparse.count; ++i) {\r\n for (let k = 0; k < valuesComponentCount; ++k) {\r\n view[indicesTypedView[i] * valuesComponentCount + k] = valuesTypedView[i * valuesComponentCount + k];\r\n }\r\n }\r\n }\r\n\r\n // dequantize can be used to perform the normalization from WebGL2 vertexAttribPointer explicitly\r\n static dequantize(typedArray: TypedArray, componentType: ComponentType) {\r\n switch (componentType) {\r\n case ComponentType.BYTE:\r\n return new Float32Array(typedArray).map((c) => Math.max(c / 127.0, -1.0));\r\n case ComponentType.UBYTE:\r\n return new Float32Array(typedArray).map((c) => c / 255.0);\r\n case ComponentType.SHORT:\r\n return new Float32Array(typedArray).map((c) => Math.max(c / 32767.0, -1.0));\r\n case ComponentType.USHORT:\r\n return new Float32Array(typedArray).map((c) => c / 65535.0);\r\n default:\r\n return typedArray;\r\n }\r\n }\r\n\r\n getComponentCount(type: GLTFComponentType) {\r\n switch (type) {\r\n case 'SCALAR':\r\n return 1;\r\n case 'VEC2':\r\n return 2;\r\n case 'VEC3':\r\n return 3;\r\n case 'VEC4':\r\n return 4;\r\n case 'MAT2':\r\n return 4;\r\n case 'MAT3':\r\n return 9;\r\n case 'MAT4':\r\n return 16;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n getComponentSize(componentType: ComponentType) {\r\n switch (componentType) {\r\n case ComponentType.BYTE:\r\n case ComponentType.UBYTE:\r\n return 1;\r\n case ComponentType.SHORT:\r\n case ComponentType.USHORT:\r\n return 2;\r\n case ComponentType.INT:\r\n case ComponentType.UINT:\r\n case ComponentType.FLOAT:\r\n return 4;\r\n default:\r\n return 0;\r\n }\r\n }\r\n}\r\n"],"names":["ComponentType","GLTFAccessor","bufferView","byteOffset","componentType","normalized","count","type","max","min","sparse","name","_typedView","_filteredView","_normalizedFilteredView","_normalizedTypedView","accessorInfo","getTypedView","gltf","undefined","bufferViews","buffer","_loadedBuffers","componentSize","getComponentSize","componentCount","getComponentCount","arrayLength","byteStride","console","warn","byteLength","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","createView","applySparse","getNormalizedTypedView","typedView","dequantize","getDeinterlacedView","func","stride","dataView","DataView","i","offset","Math","floor","size","getNormalizedDeinterlacedView","filteredView","view","indicesBufferView","indices","indicesBuffer","indicesByteOffset","indicesComponentSize","indicesComponentCount","indicesArrayLength","indicesTypedView","valuesBufferView","values","valuesBuffer","valuesByteOffset","valuesComponentSize","valuesComponentCount","valuesArrayLength","valuesTypedView","k","typedArray","map","c"],"mappings":"AAIA,iBACO,IAAWA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AASjB,CAAA,CAAA,EAAA;AAKD,iBACO,MAAMC,YAAAA,CAAAA;IACXC,UAAmB;IACnBC,UAAmB;IACnBC,aAA6B;IAC7BC,UAAoB;IACpBC,KAAc;IACdC,IAAwB;IACxBC,GAAc;IACdC,GAAc;IACdC,MAAuB;IACvBC,IAAa;IACLC,UAAuB;IACvBC,aAA0B;IAC1BC,uBAAoC;IACpCC,oBAAiC;AACzC,IAAA,WAAA,CAAYC,YAAsB,CAAE;AAClC,QAAA,IAAI,CAACd,UAAU,GAAGc,YAAAA,CAAad,UAAU;AACzC,QAAA,IAAI,CAACC,UAAU,GAAGa,YAAAA,CAAab,UAAU,IAAI,CAAA;AAC7C,QAAA,IAAI,CAACC,aAAa,GAAGY,YAAAA,CAAaZ,aAAa;AAC/C,QAAA,IAAI,CAACC,UAAU,GAAG,CAAC,CAACW,aAAaX,UAAU;AAC3C,QAAA,IAAI,CAACC,KAAK,GAAGU,YAAAA,CAAaV,KAAK;AAC/B,QAAA,IAAI,CAACC,IAAI,GAAGS,YAAAA,CAAaT,IAAI;AAC7B,QAAA,IAAI,CAACC,GAAG,GAAGQ,YAAAA,CAAaR,GAAG;AAC3B,QAAA,IAAI,CAACC,GAAG,GAAGO,YAAAA,CAAaP,GAAG;AAC3B,QAAA,IAAI,CAACC,MAAM,GAAGM,YAAAA,CAAaN,MAAM;AACjC,QAAA,IAAI,CAACC,IAAI,GAAGK,YAAAA,CAAaL,IAAI;QAC7B,IAAI,CAACC,UAAU,GAAG,IAAA;QAClB,IAAI,CAACC,aAAa,GAAG,IAAA;QACrB,IAAI,CAACC,uBAAuB,GAAG,IAAA;QAC/B,IAAI,CAACC,oBAAoB,GAAG,IAAA;AAC9B;AACAE,IAAAA,YAAAA,CAAaC,IAAiB,EAAE;QAC9B,IAAI,IAAI,CAACN,UAAU,EAAE;YACnB,OAAO,IAAI,CAACA,UAAU;AACxB;AAEA,QAAA,IAAI,IAAI,CAACV,UAAU,KAAKiB,SAAW,EAAA;AACjC,YAAA,MAAMjB,aAAagB,IAAKE,CAAAA,WAAW,CAAC,IAAI,CAAClB,UAAU,CAAC;AACpD,YAAA,MAAMmB,SAASH,IAAKI,CAAAA,cAAc,CAACpB,UAAAA,CAAWmB,MAAM,CAAC;YACrD,MAAMlB,UAAAA,GAAa,IAAI,CAACA,UAAU,IAAID,UAAAA,CAAWC,UAAU,IAAI,CAAA,CAAA;AAE/D,YAAA,MAAMoB,gBAAgB,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACpB,aAAa,CAAA;AAC9D,YAAA,MAAMqB,iBAAiB,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACnB,IAAI,CAAA;AAEvD,YAAA,IAAIoB,WAAc,GAAA,CAAA;AAClB,YAAA,IAAIzB,WAAW0B,UAAU,KAAKT,aAAajB,UAAW0B,CAAAA,UAAU,KAAK,CAAG,EAAA;AACtE,gBAAA,IAAIL,kBAAkB,CAAG,EAAA;oBACvBI,WAAc,GAACzB,UAAW0B,CAAAA,UAAU,GAAGL,aAAAA,IAAkB,IAAI,CAACjB,KAAK,GAAG,CAAA,CAAKmB,GAAAA,cAAAA;iBACtE,MAAA;AACLI,oBAAAA,OAAAA,CAAQC,IAAI,CAAC,sCAA0C,IAAA,IAAI,CAACnB,IAAI,GAAG,IAAI,CAACA,IAAI,GAAG,EAAC,CAAK,GAAA,GAAA,CAAA;AACvF;aACK,MAAA;gBACLgB,WAAc,GAAA,IAAI,CAACrB,KAAK,GAAGmB,cAAAA;AAC7B;AAEA,YAAA,IAAIE,WAAcJ,GAAAA,aAAAA,GAAgBF,MAAOU,CAAAA,UAAU,GAAG5B,UAAY,EAAA;AAChEwB,gBAAAA,WAAAA,GAAc,CAACN,MAAAA,CAAOU,UAAU,GAAG5B,UAAS,IAAKoB,aAAAA;AACjDM,gBAAAA,OAAAA,CAAQC,IAAI,CAAC,qBAAyB,IAAA,IAAI,CAACnB,IAAI,GAAG,IAAI,CAACA,IAAI,GAAG,EAAC,CAAK,GAAA,iBAAA,CAAA;AACtE;YAEA,OAAQ,IAAI,CAACP,aAAa;AACxB,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACQ,UAAU,GAAG,IAAIoB,SAAAA,CAAUX,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACpD,oBAAA;AACF,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACf,UAAU,GAAG,IAAIqB,UAAAA,CAAWZ,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACrD,oBAAA;AACF,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACf,UAAU,GAAG,IAAIsB,UAAAA,CAAWb,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACrD,oBAAA;AACF,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACf,UAAU,GAAG,IAAIuB,WAAAA,CAAYd,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACtD,oBAAA;AACF,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACf,UAAU,GAAG,IAAIwB,UAAAA,CAAWf,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACrD,oBAAA;AACF,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACf,UAAU,GAAG,IAAIyB,WAAAA,CAAYhB,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACtD,oBAAA;AACF,gBAAA,KAAA,IAAA;AACE,oBAAA,IAAI,CAACf,UAAU,GAAG,IAAI0B,YAAAA,CAAajB,QAAQlB,UAAYwB,EAAAA,WAAAA,CAAAA;AACvD,oBAAA;AACJ;AACF,SAAA,MAAO,IAAI,IAAI,CAACjB,MAAM,KAAKS,SAAW,EAAA;AACpC,YAAA,IAAI,CAACP,UAAU,GAAG,IAAI,CAAC2B,UAAU,EAAA;AACnC;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC3B,UAAU,EAAE;AACpBiB,YAAAA,OAAAA,CAAQC,IAAI,CAAC,gDAAmD,GAAA,IAAI,CAAC5B,UAAU,CAAA;AACjF,SAAA,MAAO,IAAI,IAAI,CAACQ,MAAM,KAAKS,SAAW,EAAA;AACpC,YAAA,IAAI,CAACqB,WAAW,CAACtB,IAAM,EAAA,IAAI,CAACN,UAAU,CAAA;AACxC;QAEA,OAAO,IAAI,CAACA,UAAU;AACxB;;;;AAKA6B,IAAAA,sBAAAA,CAAuBvB,IAAiB,EAAE;QACxC,IAAI,IAAI,CAACH,oBAAoB,EAAE;YAC7B,OAAO,IAAI,CAACA,oBAAoB;AAClC;AAEA,QAAA,MAAM2B,SAAY,GAAA,IAAI,CAACzB,YAAY,CAACC,IAAAA,CAAAA;AACpC,QAAA,IAAI,CAACH,oBAAoB,GAAG,IAAI,CAACV,UAAU,GACvCJ,YAAa0C,CAAAA,UAAU,CAACD,SAAAA,EAAW,IAAI,CAACtC,aAAa,CACrDsC,GAAAA,SAAAA;QACJ,OAAO,IAAI,CAAC3B,oBAAoB;AAClC;;;;;AAMA6B,IAAAA,mBAAAA,CAAoB1B,IAAiB,EAAE;QACrC,IAAI,IAAI,CAACL,aAAa,EAAE;YACtB,OAAO,IAAI,CAACA,aAAa;AAC3B;AAEA,QAAA,MAAMU,gBAAgB,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACpB,aAAa,CAAA;AAC9D,QAAA,MAAMqB,iBAAiB,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACnB,IAAI,CAAA;AACvD,QAAA,MAAMoB,WAAc,GAAA,IAAI,CAACrB,KAAK,GAAGmB,cAAAA;AAEjC,QAAA,IAAIoB,IAAO,GAAA,YAAA;QACX,OAAQ,IAAI,CAACzC,aAAa;AACxB,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAACS,aAAa,GAAG,IAAImB,SAAUL,CAAAA,WAAAA,CAAAA;gBACnCkB,IAAO,GAAA,SAAA;AACP,gBAAA;AACF,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAAChC,aAAa,GAAG,IAAIoB,UAAWN,CAAAA,WAAAA,CAAAA;gBACpCkB,IAAO,GAAA,UAAA;AACP,gBAAA;AACF,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAAChC,aAAa,GAAG,IAAIqB,UAAWP,CAAAA,WAAAA,CAAAA;gBACpCkB,IAAO,GAAA,UAAA;AACP,gBAAA;AACF,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAAChC,aAAa,GAAG,IAAIsB,WAAYR,CAAAA,WAAAA,CAAAA;gBACrCkB,IAAO,GAAA,WAAA;AACP,gBAAA;AACF,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAAChC,aAAa,GAAG,IAAIuB,UAAWT,CAAAA,WAAAA,CAAAA;gBACpCkB,IAAO,GAAA,UAAA;AACP,gBAAA;AACF,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAAChC,aAAa,GAAG,IAAIwB,WAAYV,CAAAA,WAAAA,CAAAA;gBACrCkB,IAAO,GAAA,WAAA;AACP,gBAAA;AACF,YAAA,KAAA,IAAA;AACE,gBAAA,IAAI,CAAChC,aAAa,GAAG,IAAIyB,YAAaX,CAAAA,WAAAA,CAAAA;gBACtCkB,IAAO,GAAA,YAAA;AACP,gBAAA;AACF,YAAA;AACE,gBAAA;AACJ;AAEA,QAAA,IAAI,IAAI,CAAC3C,UAAU,KAAKiB,SAAW,EAAA;AACjC,YAAA,MAAMjB,aAAagB,IAAKE,CAAAA,WAAW,CAAC,IAAI,CAAClB,UAAU,CAAC;AACpD,YAAA,MAAMmB,SAASH,IAAKI,CAAAA,cAAc,CAACpB,UAAAA,CAAWmB,MAAM,CAAC;YACrD,MAAMlB,UAAAA,GAAa,IAAI,CAACA,UAAU,IAAID,UAAAA,CAAWC,UAAU,IAAI,CAAA,CAAA;AAC/D,YAAA,MAAM2C,MACJ5C,GAAAA,UAAAA,CAAW0B,UAAU,KAAKT,SAAajB,IAAAA,UAAAA,CAAW0B,UAAU,KAAK,CAC7D1B,GAAAA,UAAAA,CAAW0B,UAAU,GACrBH,cAAiBF,GAAAA,aAAAA;YACvB,MAAMwB,QAAAA,GAAW,IAAIC,QAAS3B,CAAAA,MAAAA,EAAQlB,YAAY,IAAI,CAACG,KAAK,GAAGwC,MAAAA,CAAAA;AAC/D,YAAA,IAAK,IAAIG,CAAI,GAAA,CAAA,EAAGA,CAAItB,GAAAA,WAAAA,EAAa,EAAEsB,CAAG,CAAA;gBACpC,MAAMC,MAAAA,GAASC,KAAKC,KAAK,CAACH,IAAIxB,cAAkBqB,CAAAA,GAAAA,MAAAA,GAAS,CAACG,GAAIxB,cAAkBF,GAAAA,aAAAA;gBAChF,IAAI,CAACV,aAAa,CAACoC,CAAAA,CAAE,GAAGF,QAAQ,CAACF,IAAK,CAAA,CAACK,MAAQ,EAAA,IAAA,CAAA;AACjD;AACF,SAAA,MAAO,IAAI,IAAI,CAACxC,MAAM,KAAKS,SAAW,EAAA;AACpC,YAAA,IAAI,CAACN,aAAa,GAAG,IAAI,CAAC0B,UAAU,EAAA;AACtC;AAEA,QAAA,IAAI,IAAI,CAAC7B,MAAM,KAAKS,SAAW,EAAA;AAC7B,YAAA,IAAI,CAACqB,WAAW,CAACtB,IAAM,EAAA,IAAI,CAACL,aAAa,CAAA;AAC3C;QAEA,OAAO,IAAI,CAACA,aAAa;AAC3B;IAEA0B,UAAa,GAAA;QACX,MAAMc,IAAAA,GAAO,IAAI,CAAC/C,KAAK,GAAG,IAAI,CAACoB,iBAAiB,CAAC,IAAI,CAACnB,IAAI,CAAA;QAC1D,IAAI,IAAI,CAACH,aAAa,IAAwB,IAAA,EAAA;AAC5C,YAAA,OAAO,IAAI4B,SAAUqB,CAAAA,IAAAA,CAAAA;AACvB;QACA,IAAI,IAAI,CAACjD,aAAa,IAAyB,IAAA,EAAA;AAC7C,YAAA,OAAO,IAAI6B,UAAWoB,CAAAA,IAAAA,CAAAA;AACxB;QACA,IAAI,IAAI,CAACjD,aAAa,IAAyB,IAAA,EAAA;AAC7C,YAAA,OAAO,IAAI8B,UAAWmB,CAAAA,IAAAA,CAAAA;AACxB;QACA,IAAI,IAAI,CAACjD,aAAa,IAA0B,IAAA,EAAA;AAC9C,YAAA,OAAO,IAAI+B,WAAYkB,CAAAA,IAAAA,CAAAA;AACzB;QACA,IAAI,IAAI,CAACjD,aAAa,IAAuB,IAAA,EAAA;AAC3C,YAAA,OAAO,IAAIgC,UAAWiB,CAAAA,IAAAA,CAAAA;AACxB;QACA,IAAI,IAAI,CAACjD,aAAa,IAAwB,IAAA,EAAA;AAC5C,YAAA,OAAO,IAAIiC,WAAYgB,CAAAA,IAAAA,CAAAA;AACzB;QACA,IAAI,IAAI,CAACjD,aAAa,IAAyB,IAAA,EAAA;AAC7C,YAAA,OAAO,IAAIkC,YAAae,CAAAA,IAAAA,CAAAA;AAC1B;QACA,OAAOlC,SAAAA;AACT;;;;AAKAmC,IAAAA,6BAAAA,CAA8BpC,IAAiB,EAAE;QAC/C,IAAI,IAAI,CAACJ,uBAAuB,EAAE;YAChC,OAAO,IAAI,CAACA,uBAAuB;AACrC;AAEA,QAAA,MAAMyC,YAAe,GAAA,IAAI,CAACX,mBAAmB,CAAC1B,IAAAA,CAAAA;AAC9C,QAAA,IAAI,CAACJ,uBAAuB,GAAG,IAAI,CAACT,UAAU,GAC1CJ,YAAa0C,CAAAA,UAAU,CAACY,YAAAA,EAAc,IAAI,CAACnD,aAAa,CACxDmD,GAAAA,YAAAA;QACJ,OAAO,IAAI,CAACzC,uBAAuB;AACrC;IAEA0B,WAAYtB,CAAAA,IAAiB,EAAEsC,IAAgB,EAAE;;QAG/C,MAAMC,iBAAAA,GAAoBvC,IAAKE,CAAAA,WAAW,CAAC,IAAI,CAACV,MAAM,CAACgD,OAAO,CAACxD,UAAU,CAAC;AAC1E,QAAA,MAAMyD,gBAAgBzC,IAAKI,CAAAA,cAAc,CAACmC,iBAAAA,CAAkBpC,MAAM,CAAC;AACnE,QAAA,MAAMuC,iBAAoB,GAAA,IAAI,CAAClD,MAAM,CAACgD,OAAO,CAACvD,UAAU,IAAIsD,iBAAkBtD,CAAAA,UAAU,IAAI,CAAA,CAAA;QAE5F,MAAM0D,oBAAAA,GAAuB,IAAI,CAACrC,gBAAgB,CAAC,IAAI,CAACd,MAAM,CAACgD,OAAO,CAACtD,aAAa,CAAA;AACpF,QAAA,IAAI0D,qBAAwB,GAAA,CAAA;AAE5B,QAAA,IAAIL,kBAAkB7B,UAAU,KAAKT,aAAasC,iBAAkB7B,CAAAA,UAAU,KAAK,CAAG,EAAA;YACpFkC,qBAAwBL,GAAAA,iBAAAA,CAAkB7B,UAAU,GAAGiC,oBAAAA;AACzD;AAEA,QAAA,MAAME,qBAAqB,IAAI,CAACrD,MAAM,CAACJ,KAAK,GAAGwD,qBAAAA;QAE/C,IAAIE,gBAAAA;AACJ,QAAA,OAAQ,IAAI,CAACtD,MAAM,CAACgD,OAAO,CAACtD,aAAa;AACvC,YAAA,KAAA,IAAA;gBACE4D,gBAAmB,GAAA,IAAI/B,UAAW0B,CAAAA,aAAAA,EAAeC,iBAAmBG,EAAAA,kBAAAA,CAAAA;AACpE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,gBAAmB,GAAA,IAAI7B,WAAYwB,CAAAA,aAAAA,EAAeC,iBAAmBG,EAAAA,kBAAAA,CAAAA;AACrE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,gBAAmB,GAAA,IAAI3B,WAAYsB,CAAAA,aAAAA,EAAeC,iBAAmBG,EAAAA,kBAAAA,CAAAA;AACrE,gBAAA;AACJ;;QAIA,MAAME,gBAAAA,GAAmB/C,IAAKE,CAAAA,WAAW,CAAC,IAAI,CAACV,MAAM,CAACwD,MAAM,CAAChE,UAAU,CAAC;AACxE,QAAA,MAAMiE,eAAejD,IAAKI,CAAAA,cAAc,CAAC2C,gBAAAA,CAAiB5C,MAAM,CAAC;AACjE,QAAA,MAAM+C,gBAAmB,GAAA,IAAI,CAAC1D,MAAM,CAACwD,MAAM,CAAC/D,UAAU,IAAI8D,gBAAiB9D,CAAAA,UAAU,IAAI,CAAA,CAAA;AAEzF,QAAA,MAAMkE,sBAAsB,IAAI,CAAC7C,gBAAgB,CAAC,IAAI,CAACpB,aAAa,CAAA;AACpE,QAAA,IAAIkE,uBAAuB,IAAI,CAAC5C,iBAAiB,CAAC,IAAI,CAACnB,IAAI,CAAA;AAE3D,QAAA,IAAI0D,iBAAiBrC,UAAU,KAAKT,aAAa8C,gBAAiBrC,CAAAA,UAAU,KAAK,CAAG,EAAA;YAClF0C,oBAAuBL,GAAAA,gBAAAA,CAAiBrC,UAAU,GAAGyC,mBAAAA;AACvD;AAEA,QAAA,MAAME,oBAAoB,IAAI,CAAC7D,MAAM,CAACJ,KAAK,GAAGgE,oBAAAA;QAE9C,IAAIE,eAAAA;QACJ,OAAQ,IAAI,CAACpE,aAAa;AACxB,YAAA,KAAA,IAAA;gBACEoE,eAAkB,GAAA,IAAIxC,SAAUmC,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AAChE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,eAAkB,GAAA,IAAIvC,UAAWkC,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AACjE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,eAAkB,GAAA,IAAItC,UAAWiC,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AACjE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,eAAkB,GAAA,IAAIrC,WAAYgC,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AAClE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,eAAkB,GAAA,IAAIpC,UAAW+B,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AACjE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,eAAkB,GAAA,IAAInC,WAAY8B,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AAClE,gBAAA;AACF,YAAA,KAAA,IAAA;gBACEC,eAAkB,GAAA,IAAIlC,YAAa6B,CAAAA,YAAAA,EAAcC,gBAAkBG,EAAAA,iBAAAA,CAAAA;AACnE,gBAAA;AACJ;;QAIA,IAAK,IAAItB,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAA,IAAI,CAACvC,MAAM,CAACJ,KAAK,EAAE,EAAE2C,CAAG,CAAA;AAC1C,YAAA,IAAK,IAAIwB,CAAI,GAAA,CAAA,EAAGA,CAAIH,GAAAA,oBAAAA,EAAsB,EAAEG,CAAG,CAAA;AAC7CjB,gBAAAA,IAAI,CAACQ,gBAAgB,CAACf,CAAAA,CAAE,GAAGqB,oBAAAA,GAAuBG,CAAE,CAAA,GAAGD,eAAe,CAACvB,CAAIqB,GAAAA,oBAAAA,GAAuBG,CAAE,CAAA;AACtG;AACF;AACF;;AAGA,IAAA,OAAO9B,UAAW+B,CAAAA,UAAsB,EAAEtE,aAA4B,EAAE;QACtE,OAAQA,aAAAA;AACN,YAAA,KAAA,IAAA;AACE,gBAAA,OAAO,IAAIkC,YAAAA,CAAaoC,UAAYC,CAAAA,CAAAA,GAAG,CAAC,CAACC,CAAMzB,GAAAA,IAAAA,CAAK3C,GAAG,CAACoE,CAAI,GAAA,KAAA,EAAO,EAAC,CAAA,CAAA;AACtE,YAAA,KAAA,IAAA;AACE,gBAAA,OAAO,IAAItC,YAAaoC,CAAAA,UAAAA,CAAAA,CAAYC,GAAG,CAAC,CAACC,IAAMA,CAAI,GAAA,KAAA,CAAA;AACrD,YAAA,KAAA,IAAA;AACE,gBAAA,OAAO,IAAItC,YAAAA,CAAaoC,UAAYC,CAAAA,CAAAA,GAAG,CAAC,CAACC,CAAMzB,GAAAA,IAAAA,CAAK3C,GAAG,CAACoE,CAAI,GAAA,OAAA,EAAS,EAAC,CAAA,CAAA;AACxE,YAAA,KAAA,IAAA;AACE,gBAAA,OAAO,IAAItC,YAAaoC,CAAAA,UAAAA,CAAAA,CAAYC,GAAG,CAAC,CAACC,IAAMA,CAAI,GAAA,OAAA,CAAA;AACrD,YAAA;gBACE,OAAOF,UAAAA;AACX;AACF;AAEAhD,IAAAA,iBAAAA,CAAkBnB,IAAuB,EAAE;QACzC,OAAQA,IAAAA;YACN,KAAK,QAAA;gBACH,OAAO,CAAA;YACT,KAAK,MAAA;gBACH,OAAO,CAAA;YACT,KAAK,MAAA;gBACH,OAAO,CAAA;YACT,KAAK,MAAA;gBACH,OAAO,CAAA;YACT,KAAK,MAAA;gBACH,OAAO,CAAA;YACT,KAAK,MAAA;gBACH,OAAO,CAAA;YACT,KAAK,MAAA;gBACH,OAAO,EAAA;AACT,YAAA;gBACE,OAAO,CAAA;AACX;AACF;AAEAiB,IAAAA,gBAAAA,CAAiBpB,aAA4B,EAAE;QAC7C,OAAQA,aAAAA;AACN,YAAA,KAAA,IAAA;AACA,YAAA,KAAA,IAAA;gBACE,OAAO,CAAA;AACT,YAAA,KAAA,IAAA;AACA,YAAA,KAAA,IAAA;gBACE,OAAO,CAAA;AACT,YAAA,KAAA,IAAA;AACA,YAAA,KAAA,IAAA;AACA,YAAA,KAAA,IAAA;gBACE,OAAO,CAAA;AACT,YAAA;gBACE,OAAO,CAAA;AACX;AACF;AACF;;;;"}
@@ -1,180 +0,0 @@
1
- import { AbstractTextureLoader } from '../loader.js';
2
- import { floatToHalf, packFloat3 } from '@zephyr3d/base';
3
- import { Application } from '../../../app/app.js';
4
-
5
- const _f16one = floatToHalf(1);
6
- /**
7
- * The HDR texture loader
8
- * @internal
9
- */ class HDRLoader extends AbstractTextureLoader {
10
- supportMIMEType(mimeType) {
11
- return mimeType === 'image/hdr' || mimeType === 'image/x-hdr' || mimeType === 'image/vnd.radiance';
12
- }
13
- async load(mimeType, data, srgb, samplerOptions, texture) {
14
- let format;
15
- for (const fmt of [
16
- 'rg11b10uf',
17
- 'rgba16f',
18
- 'rgba32f',
19
- 'rgba8unorm'
20
- ]){
21
- const info = Application.instance.device.getDeviceCaps().textureCaps.getTextureFormatInfo(fmt);
22
- if (info && info.filterable && info.renderable) {
23
- format = fmt;
24
- break;
25
- }
26
- }
27
- const arrayBuffer = data instanceof ArrayBuffer ? data : data.buffer;
28
- const offset = data instanceof ArrayBuffer ? 0 : data.byteOffset;
29
- const textureData = await this.loadHDR(new Uint8Array(arrayBuffer, offset), format);
30
- const options = {
31
- texture: texture,
32
- samplerOptions
33
- };
34
- const tex = Application.instance.device.createTexture2D(format, textureData.width, textureData.height, options);
35
- tex.update(textureData.dataFloat, 0, 0, textureData.width, textureData.height);
36
- return tex;
37
- }
38
- _rgbeToFloat32(buffer) {
39
- const length = buffer.byteLength >> 2;
40
- const result = new Float32Array(length * 4);
41
- for(let i = 0; i < length; i++){
42
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
43
- result[i * 4] = buffer[i * 4] * s;
44
- result[i * 4 + 1] = buffer[i * 4 + 1] * s;
45
- result[i * 4 + 2] = buffer[i * 4 + 2] * s;
46
- result[i * 4 + 3] = 1;
47
- }
48
- return result;
49
- }
50
- _rgbeToFloat16(buffer) {
51
- const length = buffer.byteLength >> 2;
52
- const result = new Uint16Array(length * 4);
53
- for(let i = 0; i < length; i++){
54
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
55
- result[i * 4 + 0] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4] * s, 65504)));
56
- result[i * 4 + 1] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 1] * s, 65504)));
57
- result[i * 4 + 2] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 2] * s, 65504)));
58
- result[i * 4 + 3] = _f16one;
59
- }
60
- return result;
61
- }
62
- _rgbeToR11G11B10(buffer) {
63
- const length = buffer.byteLength >> 2;
64
- const result = new Uint32Array(length);
65
- for(let i = 0; i < length; i++){
66
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
67
- const r = buffer[i * 4] * s;
68
- const g = buffer[i * 4 + 1] * s;
69
- const b = buffer[i * 4 + 2] * s;
70
- result[i] = packFloat3(r, g, b);
71
- }
72
- return result;
73
- }
74
- /*
75
- Decode: rgb = pow(6 * rgbm.rgb * rgbm.a, 2.2);
76
- */ _rgbeToRGBM(buffer) {
77
- const length = buffer.byteLength >> 2;
78
- const result = new Uint8Array(length * 4);
79
- for(let i = 0; i < length; i++){
80
- const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));
81
- const r = Math.pow(buffer[i * 4] * s, 1 / 2.2);
82
- const g = Math.pow(buffer[i * 4 + 1] * s, 1 / 2.2);
83
- const b = Math.pow(buffer[i * 4 + 2] * s, 1 / 2.2);
84
- const rgbMax = Math.max(r, g, b);
85
- const M = Math.ceil(255 * rgbMax / 6) / 255;
86
- const t = M * 6;
87
- result[i * 4] = Math.ceil(255 * r / t);
88
- result[i * 4 + 1] = Math.ceil(255 * g / t);
89
- result[i * 4 + 2] = Math.ceil(255 * b / t);
90
- result[i * 4 + 3] = Math.ceil(255 * Math.min(M, 1));
91
- }
92
- return result;
93
- }
94
- async loadHDR(buffer, dstFormat) {
95
- let header = '';
96
- let pos = 0;
97
- const d8 = buffer;
98
- let format = undefined;
99
- // read header.
100
- while(!header.match(/\n\n[^\n]+\n/g)){
101
- header += String.fromCodePoint(d8[pos++]);
102
- }
103
- // check format.
104
- format = header.match(/FORMAT=(.*)$/m);
105
- if (format.length < 2) {
106
- return undefined;
107
- }
108
- format = format[1];
109
- if (format != '32-bit_rle_rgbe') {
110
- console.warn('unknown format : ' + format);
111
- return null;
112
- }
113
- // parse resolution
114
- let rez = header.split(/\n/).reverse();
115
- if (rez.length < 2) {
116
- return undefined;
117
- }
118
- rez = rez[1].split(' ');
119
- if (rez.length < 4) {
120
- return undefined;
121
- }
122
- const width = Number(rez[3]) * 1, height = Number(rez[1]) * 1;
123
- // Create image.
124
- const img = new Uint8Array(width * height * 4);
125
- let ipos = 0;
126
- // Read all scanlines
127
- for(let j = 0; j < height; j++){
128
- const scanline = [];
129
- let rgbe = d8.slice(pos, pos += 4);
130
- const isNewRLE = rgbe[0] == 2 && rgbe[1] == 2 && rgbe[2] == (width >> 8 & 0xff) && rgbe[3] == (width & 0xff);
131
- if (isNewRLE && width >= 8 && width < 32768) {
132
- for(let i = 0; i < 4; i++){
133
- let ptr = i * width;
134
- const ptr_end = (i + 1) * width;
135
- let buf = undefined;
136
- let count = undefined;
137
- while(ptr < ptr_end){
138
- buf = d8.slice(pos, pos += 2);
139
- if (buf[0] > 128) {
140
- count = buf[0] - 128;
141
- while(count-- > 0){
142
- scanline[ptr++] = buf[1];
143
- }
144
- } else {
145
- count = buf[0] - 1;
146
- scanline[ptr++] = buf[1];
147
- while(count-- > 0){
148
- scanline[ptr++] = d8[pos++];
149
- }
150
- }
151
- }
152
- }
153
- for(let i = 0; i < width; i++){
154
- img[ipos++] = scanline[i + 0 * width];
155
- img[ipos++] = scanline[i + 1 * width];
156
- img[ipos++] = scanline[i + 2 * width];
157
- img[ipos++] = scanline[i + 3 * width];
158
- }
159
- } else {
160
- pos -= 4;
161
- for(let i = 0; i < width; i++){
162
- rgbe = d8.slice(pos, pos += 4);
163
- img[ipos++] = rgbe[0];
164
- img[ipos++] = rgbe[1];
165
- img[ipos++] = rgbe[2];
166
- img[ipos++] = rgbe[3];
167
- }
168
- }
169
- }
170
- const imageFloatBuffer = dstFormat === 'rgba32f' ? this._rgbeToFloat32(img) : dstFormat === 'rgba16f' ? this._rgbeToFloat16(img) : dstFormat === 'rg11b10uf' ? this._rgbeToR11G11B10(img) : this._rgbeToRGBM(img);
171
- return {
172
- dataFloat: imageFloatBuffer,
173
- width: width,
174
- height: height
175
- };
176
- }
177
- }
178
-
179
- export { HDRLoader };
180
- //# sourceMappingURL=hdr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hdr.js","sources":["../../../../../src/asset/loaders/hdr/hdr.ts"],"sourcesContent":["import { AbstractTextureLoader } from '../loader';\nimport type { TypedArray } from '@zephyr3d/base';\nimport { floatToHalf, packFloat3 } from '@zephyr3d/base';\nimport { Application } from '../../../app';\nimport type { BaseTexture, SamplerOptions, TextureCreationOptions, TextureFormat } from '@zephyr3d/device';\n\nconst _f16one = floatToHalf(1);\n/**\n * The HDR texture loader\n * @internal\n */\nexport class HDRLoader extends AbstractTextureLoader {\n supportMIMEType(mimeType: string): boolean {\n return mimeType === 'image/hdr' || mimeType === 'image/x-hdr' || mimeType === 'image/vnd.radiance';\n }\n async load(\n mimeType: string,\n data: ArrayBuffer | TypedArray,\n srgb: boolean,\n samplerOptions?: SamplerOptions,\n texture?: BaseTexture\n ): Promise<BaseTexture> {\n let format: TextureFormat;\n for (const fmt of ['rg11b10uf', 'rgba16f', 'rgba32f', 'rgba8unorm'] as const) {\n const info = Application.instance.device.getDeviceCaps().textureCaps.getTextureFormatInfo(fmt);\n if (info && info.filterable && info.renderable) {\n format = fmt;\n break;\n }\n }\n const arrayBuffer = data instanceof ArrayBuffer ? data : data.buffer;\n const offset = data instanceof ArrayBuffer ? 0 : data.byteOffset;\n const textureData = await this.loadHDR(new Uint8Array(arrayBuffer, offset), format);\n const options: TextureCreationOptions = {\n texture: texture,\n samplerOptions\n };\n const tex = Application.instance.device.createTexture2D(\n format,\n textureData.width,\n textureData.height,\n options\n );\n tex.update(textureData.dataFloat, 0, 0, textureData.width, textureData.height);\n return tex;\n }\n private _rgbeToFloat32(buffer: Uint8Array<ArrayBuffer>): Float32Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Float32Array(length * 4);\n\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n\n result[i * 4] = buffer[i * 4] * s;\n result[i * 4 + 1] = buffer[i * 4 + 1] * s;\n result[i * 4 + 2] = buffer[i * 4 + 2] * s;\n result[i * 4 + 3] = 1;\n }\n return result;\n }\n private _rgbeToFloat16(buffer: Uint8Array<ArrayBuffer>): Uint16Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Uint16Array(length * 4);\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n result[i * 4 + 0] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4] * s, 65504)));\n result[i * 4 + 1] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 1] * s, 65504)));\n result[i * 4 + 2] = floatToHalf(Math.max(-65504, Math.min(buffer[i * 4 + 2] * s, 65504)));\n result[i * 4 + 3] = _f16one;\n }\n return result;\n }\n private _rgbeToR11G11B10(buffer: Uint8Array<ArrayBuffer>): Uint32Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Uint32Array(length);\n\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n const r = buffer[i * 4] * s;\n const g = buffer[i * 4 + 1] * s;\n const b = buffer[i * 4 + 2] * s;\n result[i] = packFloat3(r, g, b);\n }\n return result;\n }\n /*\n Decode: rgb = pow(6 * rgbm.rgb * rgbm.a, 2.2);\n */\n private _rgbeToRGBM(buffer: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer> {\n const length = buffer.byteLength >> 2;\n const result = new Uint8Array(length * 4);\n\n for (let i = 0; i < length; i++) {\n const s = Math.pow(2, buffer[i * 4 + 3] - (128 + 8));\n const r = Math.pow(buffer[i * 4] * s, 1 / 2.2);\n const g = Math.pow(buffer[i * 4 + 1] * s, 1 / 2.2);\n const b = Math.pow(buffer[i * 4 + 2] * s, 1 / 2.2);\n const rgbMax = Math.max(r, g, b);\n const M = Math.ceil((255 * rgbMax) / 6) / 255;\n const t = M * 6;\n result[i * 4] = Math.ceil((255 * r) / t);\n result[i * 4 + 1] = Math.ceil((255 * g) / t);\n result[i * 4 + 2] = Math.ceil((255 * b) / t);\n result[i * 4 + 3] = Math.ceil(255 * Math.min(M, 1));\n }\n return result;\n }\n private async loadHDR(buffer: Uint8Array<ArrayBuffer>, dstFormat: TextureFormat) {\n let header = '';\n let pos = 0;\n const d8 = buffer;\n let format = undefined;\n // read header.\n while (!header.match(/\\n\\n[^\\n]+\\n/g)) {\n header += String.fromCodePoint(d8[pos++]);\n }\n // check format.\n format = header.match(/FORMAT=(.*)$/m);\n if (format.length < 2) {\n return undefined;\n }\n format = format[1];\n if (format != '32-bit_rle_rgbe') {\n console.warn('unknown format : ' + format);\n return null;\n }\n // parse resolution\n let rez = header.split(/\\n/).reverse();\n if (rez.length < 2) {\n return undefined;\n }\n rez = rez[1].split(' ');\n if (rez.length < 4) {\n return undefined;\n }\n const width = Number(rez[3]) * 1,\n height = Number(rez[1]) * 1;\n // Create image.\n const img = new Uint8Array(width * height * 4);\n let ipos = 0;\n // Read all scanlines\n for (let j = 0; j < height; j++) {\n const scanline = [];\n\n let rgbe = d8.slice(pos, (pos += 4));\n const isNewRLE =\n rgbe[0] == 2 && rgbe[1] == 2 && rgbe[2] == ((width >> 8) & 0xff) && rgbe[3] == (width & 0xff);\n\n if (isNewRLE && width >= 8 && width < 32768) {\n for (let i = 0; i < 4; i++) {\n let ptr = i * width;\n const ptr_end = (i + 1) * width;\n let buf = undefined;\n let count = undefined;\n while (ptr < ptr_end) {\n buf = d8.slice(pos, (pos += 2));\n if (buf[0] > 128) {\n count = buf[0] - 128;\n while (count-- > 0) {\n scanline[ptr++] = buf[1];\n }\n } else {\n count = buf[0] - 1;\n scanline[ptr++] = buf[1];\n while (count-- > 0) {\n scanline[ptr++] = d8[pos++];\n }\n }\n }\n }\n\n for (let i = 0; i < width; i++) {\n img[ipos++] = scanline[i + 0 * width];\n img[ipos++] = scanline[i + 1 * width];\n img[ipos++] = scanline[i + 2 * width];\n img[ipos++] = scanline[i + 3 * width];\n }\n } else {\n pos -= 4;\n\n for (let i = 0; i < width; i++) {\n rgbe = d8.slice(pos, (pos += 4));\n\n img[ipos++] = rgbe[0];\n img[ipos++] = rgbe[1];\n img[ipos++] = rgbe[2];\n img[ipos++] = rgbe[3];\n }\n }\n }\n\n const imageFloatBuffer =\n dstFormat === 'rgba32f'\n ? this._rgbeToFloat32(img)\n : dstFormat === 'rgba16f'\n ? this._rgbeToFloat16(img)\n : dstFormat === 'rg11b10uf'\n ? this._rgbeToR11G11B10(img)\n : this._rgbeToRGBM(img);\n\n return {\n dataFloat: imageFloatBuffer,\n width: width,\n height: height\n };\n }\n}\n"],"names":["_f16one","floatToHalf","HDRLoader","AbstractTextureLoader","supportMIMEType","mimeType","load","data","srgb","samplerOptions","texture","format","fmt","info","Application","instance","device","getDeviceCaps","textureCaps","getTextureFormatInfo","filterable","renderable","arrayBuffer","ArrayBuffer","buffer","offset","byteOffset","textureData","loadHDR","Uint8Array","options","tex","createTexture2D","width","height","update","dataFloat","_rgbeToFloat32","length","byteLength","result","Float32Array","i","s","Math","pow","_rgbeToFloat16","Uint16Array","max","min","_rgbeToR11G11B10","Uint32Array","r","g","b","packFloat3","_rgbeToRGBM","rgbMax","M","ceil","t","dstFormat","header","pos","d8","undefined","match","String","fromCodePoint","console","warn","rez","split","reverse","Number","img","ipos","j","scanline","rgbe","slice","isNewRLE","ptr","ptr_end","buf","count","imageFloatBuffer"],"mappings":"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"}
@@ -1,116 +0,0 @@
1
- import { AbstractTextureLoader } from '../loader.js';
2
- import { Application } from '../../../app/app.js';
3
-
4
- /**
5
- * TGA image loader
6
- * @internal
7
- */ class TGALoader extends AbstractTextureLoader {
8
- supportMIMEType(mimeType) {
9
- return mimeType === 'image/tga' || mimeType === 'image/x-tga';
10
- }
11
- parseTGA(content, sRGB, noMipmap, texture) {
12
- const arrayBuffer = content instanceof ArrayBuffer ? content : content.buffer;
13
- const offset = content instanceof ArrayBuffer ? 0 : content.byteOffset;
14
- const dataView = new DataView(arrayBuffer, offset);
15
- const p = [
16
- 0,
17
- 0,
18
- 0,
19
- 0
20
- ];
21
- do {
22
- let skip = 0;
23
- const idLength = dataView.getUint8(0);
24
- skip += idLength;
25
- const colorMapType = dataView.getUint8(1);
26
- if (colorMapType !== 0 && colorMapType !== 1) {
27
- break;
28
- }
29
- const dataTypeCode = dataView.getUint8(2);
30
- if (dataTypeCode !== 2 && dataTypeCode !== 10) {
31
- break;
32
- }
33
- const colorMapLength = dataView.getUint16(5, true);
34
- skip += colorMapLength * colorMapType;
35
- const width = dataView.getUint16(12, true);
36
- const height = dataView.getUint16(14, true);
37
- const bpp = dataView.getUint8(16);
38
- if (bpp !== 16 && bpp !== 24 && bpp !== 32) {
39
- break;
40
- }
41
- let dataOffset = 18 + skip;
42
- const bytesPerPixel = bpp / 8;
43
- const pixels = new Uint8Array(width * height * 4);
44
- let n = 0;
45
- while(n < width * height){
46
- if (dataTypeCode === 2) {
47
- for(let i = 0; i < bytesPerPixel; i++){
48
- p[i] = dataView.getUint8(dataOffset++);
49
- }
50
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
51
- n++;
52
- } else {
53
- const t = dataView.getUint8(dataOffset++);
54
- for(let i = 0; i < bytesPerPixel; i++){
55
- p[i] = dataView.getUint8(dataOffset++);
56
- }
57
- const j = t & 0x7f;
58
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
59
- n++;
60
- if (t & 0x80) {
61
- for(let i = 0; i < j; i++){
62
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
63
- n++;
64
- }
65
- } else {
66
- for(let i = 0; i < j; i++){
67
- for(let k = 0; k < bytesPerPixel; k++){
68
- p[i] = dataView.getUint8(dataOffset++);
69
- }
70
- this.mergeBytes(pixels, n * 4, p, bytesPerPixel);
71
- n++;
72
- }
73
- }
74
- }
75
- }
76
- const opt = {
77
- texture
78
- };
79
- if (noMipmap) {
80
- opt.samplerOptions = {
81
- mipFilter: 'none'
82
- };
83
- }
84
- const tex = Application.instance.device.createTexture2D(sRGB ? 'rgba8unorm-srgb' : 'rgba8unorm', width, height, opt);
85
- tex.update(pixels, 0, 0, width, height);
86
- return tex;
87
- }while (false)
88
- throw new Error(`Unsupported TGA file format`);
89
- }
90
- mergeBytes(dest, offset, pixel, numBytes) {
91
- if (numBytes === 4) {
92
- dest[offset + 0] = pixel[2];
93
- dest[offset + 1] = pixel[1];
94
- dest[offset + 2] = pixel[0];
95
- dest[offset + 3] = pixel[3];
96
- } else if (numBytes === 3) {
97
- dest[offset + 0] = pixel[2];
98
- dest[offset + 1] = pixel[1];
99
- dest[offset + 2] = pixel[0];
100
- dest[offset + 3] = 255;
101
- } else if (numBytes === 2) {
102
- dest[offset + 0] = (pixel[1] & 0x7c) << 1;
103
- dest[offset + 1] = (pixel[1] & 0x03) << 6 | (pixel[0] & 0xe0) >> 2;
104
- dest[offset + 2] = (pixel[0] & 0x1f) << 3;
105
- dest[offset + 3] = pixel[1] & 0x80;
106
- }
107
- }
108
- async load(mimeType, data, srgb, samplerOptions, texture) {
109
- return new Promise((resolve)=>{
110
- resolve(this.parseTGA(data, srgb, samplerOptions?.mipFilter === 'none', texture));
111
- });
112
- }
113
- }
114
-
115
- export { TGALoader };
116
- //# sourceMappingURL=tga_Loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tga_Loader.js","sources":["../../../../../src/asset/loaders/image/tga_Loader.ts"],"sourcesContent":["import { AbstractTextureLoader } from '../loader';\nimport { Application } from '../../../app/app';\nimport type { BaseTexture, SamplerOptions, TextureCreationOptions } from '@zephyr3d/device';\nimport type { TypedArray } from '@zephyr3d/base';\n\n/**\n * TGA image loader\n * @internal\n */\nexport class TGALoader extends AbstractTextureLoader {\n supportMIMEType(mimeType: string): boolean {\n return mimeType === 'image/tga' || mimeType === 'image/x-tga';\n }\n private parseTGA(\n content: ArrayBuffer | TypedArray,\n sRGB: boolean,\n noMipmap: boolean,\n texture: BaseTexture\n ) {\n const arrayBuffer = content instanceof ArrayBuffer ? content : content.buffer;\n const offset = content instanceof ArrayBuffer ? 0 : content.byteOffset;\n const dataView = new DataView(arrayBuffer, offset);\n const p: number[] = [0, 0, 0, 0];\n do {\n let skip = 0;\n const idLength = dataView.getUint8(0);\n skip += idLength;\n const colorMapType = dataView.getUint8(1);\n if (colorMapType !== 0 && colorMapType !== 1) {\n break;\n }\n const dataTypeCode = dataView.getUint8(2);\n if (dataTypeCode !== 2 && dataTypeCode !== 10) {\n break;\n }\n const colorMapLength = dataView.getUint16(5, true);\n skip += colorMapLength * colorMapType;\n const width = dataView.getUint16(12, true);\n const height = dataView.getUint16(14, true);\n const bpp = dataView.getUint8(16);\n if (bpp !== 16 && bpp !== 24 && bpp !== 32) {\n break;\n }\n let dataOffset = 18 + skip;\n const bytesPerPixel = bpp / 8;\n const pixels = new Uint8Array(width * height * 4);\n let n = 0;\n while (n < width * height) {\n if (dataTypeCode === 2) {\n for (let i = 0; i < bytesPerPixel; i++) {\n p[i] = dataView.getUint8(dataOffset++);\n }\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n } else {\n const t = dataView.getUint8(dataOffset++);\n for (let i = 0; i < bytesPerPixel; i++) {\n p[i] = dataView.getUint8(dataOffset++);\n }\n const j = t & 0x7f;\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n if (t & 0x80) {\n for (let i = 0; i < j; i++) {\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n }\n } else {\n for (let i = 0; i < j; i++) {\n for (let k = 0; k < bytesPerPixel; k++) {\n p[i] = dataView.getUint8(dataOffset++);\n }\n this.mergeBytes(pixels, n * 4, p, bytesPerPixel);\n n++;\n }\n }\n }\n }\n const opt: TextureCreationOptions = { texture };\n if (noMipmap) {\n opt.samplerOptions = { mipFilter: 'none' };\n }\n const tex = Application.instance.device.createTexture2D(\n sRGB ? 'rgba8unorm-srgb' : 'rgba8unorm',\n width,\n height,\n opt\n );\n tex.update(pixels, 0, 0, width, height);\n return tex;\n } while (false);\n throw new Error(`Unsupported TGA file format`);\n }\n private mergeBytes(dest: Uint8Array<ArrayBuffer>, offset: number, pixel: number[], numBytes: number) {\n if (numBytes === 4) {\n dest[offset + 0] = pixel[2];\n dest[offset + 1] = pixel[1];\n dest[offset + 2] = pixel[0];\n dest[offset + 3] = pixel[3];\n } else if (numBytes === 3) {\n dest[offset + 0] = pixel[2];\n dest[offset + 1] = pixel[1];\n dest[offset + 2] = pixel[0];\n dest[offset + 3] = 255;\n } else if (numBytes === 2) {\n dest[offset + 0] = (pixel[1] & 0x7c) << 1;\n dest[offset + 1] = ((pixel[1] & 0x03) << 6) | ((pixel[0] & 0xe0) >> 2);\n dest[offset + 2] = (pixel[0] & 0x1f) << 3;\n dest[offset + 3] = pixel[1] & 0x80;\n }\n }\n async load(\n mimeType: string,\n data: ArrayBuffer | TypedArray,\n srgb: boolean,\n samplerOptions?: SamplerOptions,\n texture?: BaseTexture\n ): Promise<BaseTexture> {\n return new Promise<BaseTexture>((resolve) => {\n resolve(this.parseTGA(data, srgb, samplerOptions?.mipFilter === 'none', texture));\n });\n }\n}\n"],"names":["TGALoader","AbstractTextureLoader","supportMIMEType","mimeType","parseTGA","content","sRGB","noMipmap","texture","arrayBuffer","ArrayBuffer","buffer","offset","byteOffset","dataView","DataView","p","skip","idLength","getUint8","colorMapType","dataTypeCode","colorMapLength","getUint16","width","height","bpp","dataOffset","bytesPerPixel","pixels","Uint8Array","n","i","mergeBytes","t","j","k","opt","samplerOptions","mipFilter","tex","Application","instance","device","createTexture2D","update","Error","dest","pixel","numBytes","load","data","srgb","Promise","resolve"],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import { AbstractTextureLoader } from '../loader.js';
2
- import { Application } from '../../../app/app.js';
3
-
4
- /**
5
- * Web image loader
6
- * @internal
7
- */ class WebImageLoader extends AbstractTextureLoader {
8
- supportMIMEType(mimeType) {
9
- return mimeType === 'image/jpg' || mimeType === 'image/jpeg' || mimeType === 'image/png';
10
- }
11
- async load(mimeType, data, srgb, samplerOptions, texture) {
12
- return new Promise((resolve, reject)=>{
13
- if (!mimeType) {
14
- reject('unknown image file type');
15
- }
16
- const src = URL.createObjectURL(new Blob([
17
- data
18
- ], {
19
- type: mimeType
20
- }));
21
- const img = document.createElement('img');
22
- img.src = src;
23
- img.onload = function() {
24
- createImageBitmap(img, {
25
- premultiplyAlpha: 'none'
26
- }).then((bm)=>{
27
- const options = {
28
- texture: texture,
29
- samplerOptions
30
- };
31
- const tex = Application.instance.device.createTexture2DFromImage(bm, srgb, options);
32
- if (tex) {
33
- resolve(tex);
34
- } else {
35
- reject('create texture from image element failed');
36
- }
37
- }).catch(()=>{
38
- const cvs = document.createElement('canvas');
39
- cvs.width = img.width;
40
- cvs.height = img.height;
41
- const ctx = cvs.getContext('2d');
42
- ctx.drawImage(img, 0, 0);
43
- const options = {
44
- texture: texture,
45
- samplerOptions
46
- };
47
- const tex = Application.instance.device.createTexture2DFromImage(cvs, srgb, options);
48
- if (tex) {
49
- resolve(tex);
50
- } else {
51
- reject('create texture from image element failed');
52
- }
53
- });
54
- };
55
- img.onerror = (err)=>{
56
- reject(err);
57
- };
58
- });
59
- }
60
- }
61
-
62
- export { WebImageLoader };
63
- //# sourceMappingURL=webimage_loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webimage_loader.js","sources":["../../../../../src/asset/loaders/image/webimage_loader.ts"],"sourcesContent":["import { AbstractTextureLoader } from '../loader';\r\nimport { Application } from '../../../app';\r\nimport type { BaseTexture, SamplerOptions, TextureCreationOptions } from '@zephyr3d/device';\r\nimport type { TypedArray } from '@zephyr3d/base';\r\n\r\n/**\r\n * Web image loader\r\n * @internal\r\n */\r\nexport class WebImageLoader extends AbstractTextureLoader {\r\n supportMIMEType(mimeType: string): boolean {\r\n return mimeType === 'image/jpg' || mimeType === 'image/jpeg' || mimeType === 'image/png';\r\n }\r\n async load(\r\n mimeType: string,\r\n data: ArrayBuffer | TypedArray,\r\n srgb: boolean,\r\n samplerOptions?: SamplerOptions,\r\n texture?: BaseTexture\r\n ): Promise<BaseTexture> {\r\n return new Promise<BaseTexture>((resolve, reject) => {\r\n if (!mimeType) {\r\n reject('unknown image file type');\r\n }\r\n const src = URL.createObjectURL(new Blob([data], { type: mimeType }));\r\n const img = document.createElement('img');\r\n img.src = src;\r\n img.onload = function () {\r\n createImageBitmap(img, {\r\n premultiplyAlpha: 'none'\r\n })\r\n .then((bm) => {\r\n const options: TextureCreationOptions = {\r\n texture: texture,\r\n samplerOptions\r\n };\r\n const tex = Application.instance.device.createTexture2DFromImage(bm, srgb, options);\r\n if (tex) {\r\n resolve(tex);\r\n } else {\r\n reject('create texture from image element failed');\r\n }\r\n })\r\n .catch(() => {\r\n const cvs = document.createElement('canvas');\r\n cvs.width = img.width;\r\n cvs.height = img.height;\r\n const ctx = cvs.getContext('2d');\r\n ctx.drawImage(img, 0, 0);\r\n const options: TextureCreationOptions = {\r\n texture: texture,\r\n samplerOptions\r\n };\r\n const tex = Application.instance.device.createTexture2DFromImage(cvs, srgb, options);\r\n if (tex) {\r\n resolve(tex);\r\n } else {\r\n reject('create texture from image element failed');\r\n }\r\n });\r\n };\r\n img.onerror = (err) => {\r\n reject(err);\r\n };\r\n });\r\n }\r\n}\r\n"],"names":["WebImageLoader","AbstractTextureLoader","supportMIMEType","mimeType","load","data","srgb","samplerOptions","texture","Promise","resolve","reject","src","URL","createObjectURL","Blob","type","img","document","createElement","onload","createImageBitmap","premultiplyAlpha","then","bm","options","tex","Application","instance","device","createTexture2DFromImage","catch","cvs","width","height","ctx","getContext","drawImage","onerror","err"],"mappings":";;;AAKA;;;IAIO,MAAMA,cAAuBC,SAAAA,qBAAAA,CAAAA;AAClCC,IAAAA,eAAAA,CAAgBC,QAAgB,EAAW;AACzC,QAAA,OAAOA,QAAa,KAAA,WAAA,IAAeA,QAAa,KAAA,YAAA,IAAgBA,QAAa,KAAA,WAAA;AAC/E;IACA,MAAMC,IAAAA,CACJD,QAAgB,EAChBE,IAA8B,EAC9BC,IAAa,EACbC,cAA+B,EAC/BC,OAAqB,EACC;QACtB,OAAO,IAAIC,OAAqB,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;AACxC,YAAA,IAAI,CAACR,QAAU,EAAA;gBACbQ,MAAO,CAAA,yBAAA,CAAA;AACT;AACA,YAAA,MAAMC,GAAMC,GAAAA,GAAAA,CAAIC,eAAe,CAAC,IAAIC,IAAK,CAAA;AAACV,gBAAAA;aAAK,EAAE;gBAAEW,IAAMb,EAAAA;AAAS,aAAA,CAAA,CAAA;YAClE,MAAMc,GAAAA,GAAMC,QAASC,CAAAA,aAAa,CAAC,KAAA,CAAA;AACnCF,YAAAA,GAAAA,CAAIL,GAAG,GAAGA,GAAAA;AACVK,YAAAA,GAAAA,CAAIG,MAAM,GAAG,WAAA;AACXC,gBAAAA,iBAAAA,CAAkBJ,GAAK,EAAA;oBACrBK,gBAAkB,EAAA;iBAEjBC,CAAAA,CAAAA,IAAI,CAAC,CAACC,EAAAA,GAAAA;AACL,oBAAA,MAAMC,OAAkC,GAAA;wBACtCjB,OAASA,EAAAA,OAAAA;AACTD,wBAAAA;AACF,qBAAA;oBACA,MAAMmB,GAAAA,GAAMC,YAAYC,QAAQ,CAACC,MAAM,CAACC,wBAAwB,CAACN,EAAAA,EAAIlB,IAAMmB,EAAAA,OAAAA,CAAAA;AAC3E,oBAAA,IAAIC,GAAK,EAAA;wBACPhB,OAAQgB,CAAAA,GAAAA,CAAAA;qBACH,MAAA;wBACLf,MAAO,CAAA,0CAAA,CAAA;AACT;AACF,iBAAA,CAAA,CACCoB,KAAK,CAAC,IAAA;oBACL,MAAMC,GAAAA,GAAMd,QAASC,CAAAA,aAAa,CAAC,QAAA,CAAA;oBACnCa,GAAIC,CAAAA,KAAK,GAAGhB,GAAAA,CAAIgB,KAAK;oBACrBD,GAAIE,CAAAA,MAAM,GAAGjB,GAAAA,CAAIiB,MAAM;oBACvB,MAAMC,GAAAA,GAAMH,GAAII,CAAAA,UAAU,CAAC,IAAA,CAAA;oBAC3BD,GAAIE,CAAAA,SAAS,CAACpB,GAAAA,EAAK,CAAG,EAAA,CAAA,CAAA;AACtB,oBAAA,MAAMQ,OAAkC,GAAA;wBACtCjB,OAASA,EAAAA,OAAAA;AACTD,wBAAAA;AACF,qBAAA;oBACA,MAAMmB,GAAAA,GAAMC,YAAYC,QAAQ,CAACC,MAAM,CAACC,wBAAwB,CAACE,GAAAA,EAAK1B,IAAMmB,EAAAA,OAAAA,CAAAA;AAC5E,oBAAA,IAAIC,GAAK,EAAA;wBACPhB,OAAQgB,CAAAA,GAAAA,CAAAA;qBACH,MAAA;wBACLf,MAAO,CAAA,0CAAA,CAAA;AACT;AACF,iBAAA,CAAA;AACJ,aAAA;YACAM,GAAIqB,CAAAA,OAAO,GAAG,CAACC,GAAAA,GAAAA;gBACb5B,MAAO4B,CAAAA,GAAAA,CAAAA;AACT,aAAA;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -1,45 +0,0 @@
1
- /**
2
- * Base interface for any kind loaders
3
- * @public
4
- */ class LoaderBase {
5
- /** @internal */ _urlResolver;
6
- /**
7
- * Creates an instance of LoaderBase
8
- */ constructor(){
9
- this._urlResolver = null;
10
- }
11
- /**
12
- * URL resolver for the loader
13
- */ get urlResolver() {
14
- return this._urlResolver;
15
- }
16
- set urlResolver(resolver) {
17
- this._urlResolver = resolver;
18
- }
19
- /**
20
- * Sends a GET request
21
- * @param url - The URL to get
22
- * @param headers - The headers for the request
23
- * @param crossOrigin - crossOrigin property for the request
24
- * @returns Response of the request
25
- */ async request(url, headers = {}, crossOrigin = 'anonymous') {
26
- url = this._urlResolver ? this._urlResolver(url) : null;
27
- return url ? fetch(url, {
28
- credentials: crossOrigin === 'anonymous' ? 'same-origin' : 'include',
29
- headers: headers
30
- }) : null;
31
- }
32
- }
33
- /**
34
- * Base class for any kind of texture loaders
35
- * @public
36
- */ class AbstractTextureLoader extends LoaderBase {
37
- }
38
- /**
39
- * Base class for any kind of model loaders
40
- * @public
41
- */ class AbstractModelLoader extends LoaderBase {
42
- }
43
-
44
- export { AbstractModelLoader, AbstractTextureLoader, LoaderBase };
45
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sources":["../../../../src/asset/loaders/loader.ts"],"sourcesContent":["import type { BaseTexture, SamplerOptions } from '@zephyr3d/device';\r\nimport type { AssetManager } from '../assetmanager';\r\nimport type { SharedModel } from '../model';\r\nimport type { DecoderModule } from 'draco3d';\r\nimport type { TypedArray } from '@zephyr3d/base';\r\n\r\n/**\r\n * Base interface for any kind loaders\r\n * @public\r\n */\r\nexport class LoaderBase {\r\n /** @internal */\r\n protected _urlResolver: (url: string) => string;\r\n /**\r\n * Creates an instance of LoaderBase\r\n */\r\n constructor() {\r\n this._urlResolver = null;\r\n }\r\n /**\r\n * URL resolver for the loader\r\n */\r\n get urlResolver(): (url: string) => string {\r\n return this._urlResolver;\r\n }\r\n set urlResolver(resolver: (url: string) => string) {\r\n this._urlResolver = resolver;\r\n }\r\n /**\r\n * Sends a GET request\r\n * @param url - The URL to get\r\n * @param headers - The headers for the request\r\n * @param crossOrigin - crossOrigin property for the request\r\n * @returns Response of the request\r\n */\r\n async request(\r\n url: string,\r\n headers: Record<string, string> = {},\r\n crossOrigin = 'anonymous'\r\n ): Promise<Response> {\r\n url = this._urlResolver ? this._urlResolver(url) : null;\r\n return url\r\n ? fetch(url, {\r\n credentials: crossOrigin === 'anonymous' ? 'same-origin' : 'include',\r\n headers: headers\r\n })\r\n : null;\r\n }\r\n}\r\n/**\r\n * Base class for any kind of texture loaders\r\n * @public\r\n */\r\nexport abstract class AbstractTextureLoader extends LoaderBase {\r\n /**\r\n * Tests whether the loader supports loading a texture with given MIME type.\r\n * @param mimeType - The MIME type to test\r\n * @returns true if it supports\r\n */\r\n abstract supportMIMEType(mimeType: string): boolean;\r\n /**\r\n * Loads a texture\r\n * @param assetManager - The instance of AssetManager\r\n * @param url - The request URL\r\n * @param mimeType - MIME type for the texture image data\r\n * @param data - The texture image data\r\n * @param srgb - true if the texture is of sRGB format\r\n * @param samplerOptions - Sampler options of the texture\r\n * @param texture - if not null, this is a texture restore operation\r\n * @returns The loaded texture\r\n */\r\n abstract load(\r\n mimeType: string,\r\n data: ArrayBuffer | TypedArray,\r\n srgb: boolean,\r\n samplerOptions?: SamplerOptions,\r\n texture?: BaseTexture\r\n ): Promise<BaseTexture>;\r\n}\r\n\r\n/**\r\n * Base class for any kind of model loaders\r\n * @public\r\n */\r\nexport abstract class AbstractModelLoader extends LoaderBase {\r\n /**\r\n * Tests whether the loader supports loading a model with given MIME type.\r\n * @param mimeType - The MIME type to test\r\n * @returns true if it supports\r\n */\r\n abstract supportMIMEType(mimeType: string): boolean;\r\n /**\r\n * Loads a model\r\n * @param assetManager - The instance of AssetManager\r\n * @param url - The request URL\r\n * @param mimeType - MIME type for the model data\r\n * @param data - The model data\r\n * @returns The loaded model\r\n */\r\n abstract load(\r\n assetManager: AssetManager,\r\n url: string,\r\n mimeType: string,\r\n data: Blob,\r\n dracoDecoderModule?: DecoderModule\r\n ): Promise<SharedModel>;\r\n}\r\n"],"names":["LoaderBase","_urlResolver","urlResolver","resolver","request","url","headers","crossOrigin","fetch","credentials","AbstractTextureLoader","AbstractModelLoader"],"mappings":"AAMA;;;AAGC,IACM,MAAMA,UAAAA,CAAAA;qBAEX,YAAgD;AAChD;;AAEC,MACD,WAAc,EAAA;QACZ,IAAI,CAACC,YAAY,GAAG,IAAA;AACtB;AACA;;AAEC,MACD,IAAIC,WAAuC,GAAA;QACzC,OAAO,IAAI,CAACD,YAAY;AAC1B;IACA,IAAIC,WAAAA,CAAYC,QAAiC,EAAE;QACjD,IAAI,CAACF,YAAY,GAAGE,QAAAA;AACtB;AACA;;;;;;MAOA,MAAMC,OACJC,CAAAA,GAAW,EACXC,OAAAA,GAAkC,EAAE,EACpCC,WAAc,GAAA,WAAW,EACN;QACnBF,GAAM,GAAA,IAAI,CAACJ,YAAY,GAAG,IAAI,CAACA,YAAY,CAACI,GAAO,CAAA,GAAA,IAAA;QACnD,OAAOA,GAAAA,GACHG,MAAMH,GAAK,EAAA;YACTI,WAAaF,EAAAA,WAAAA,KAAgB,cAAc,aAAgB,GAAA,SAAA;YAC3DD,OAASA,EAAAA;SAEX,CAAA,GAAA,IAAA;AACN;AACF;AACA;;;IAIO,MAAeI,qBAA8BV,SAAAA,UAAAA,CAAAA;AAyBpD;AAEA;;;IAIO,MAAeW,mBAA4BX,SAAAA,UAAAA,CAAAA;AAsBlD;;;;"}