@zephyr3d/scene 0.7.1 → 0.8.1

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 (441) hide show
  1. package/dist/animation/animation.js +0 -18
  2. package/dist/animation/animation.js.map +1 -1
  3. package/dist/animation/animationset.js +200 -3
  4. package/dist/animation/animationset.js.map +1 -1
  5. package/dist/animation/ik/ccd_solver.js +371 -0
  6. package/dist/animation/ik/ccd_solver.js.map +1 -0
  7. package/dist/animation/ik/fabrik_solver.js +398 -0
  8. package/dist/animation/ik/fabrik_solver.js.map +1 -0
  9. package/dist/animation/ik/ik_angle_constraint.js +181 -0
  10. package/dist/animation/ik/ik_angle_constraint.js.map +1 -0
  11. package/dist/animation/ik/ik_chain.js +163 -0
  12. package/dist/animation/ik/ik_chain.js.map +1 -0
  13. package/dist/animation/ik/ik_constraint.js +25 -0
  14. package/dist/animation/ik/ik_constraint.js.map +1 -0
  15. package/dist/animation/ik/ik_pole_constraint.js +128 -0
  16. package/dist/animation/ik/ik_pole_constraint.js.map +1 -0
  17. package/dist/animation/ik/ik_solver.js +48 -0
  18. package/dist/animation/ik/ik_solver.js.map +1 -0
  19. package/dist/animation/ik/ik_track.js +96 -0
  20. package/dist/animation/ik/ik_track.js.map +1 -0
  21. package/dist/animation/ik/ik_utils.js +191 -0
  22. package/dist/animation/ik/ik_utils.js.map +1 -0
  23. package/dist/animation/ik/two_bone_ik_solver.js +331 -0
  24. package/dist/animation/ik/two_bone_ik_solver.js.map +1 -0
  25. package/dist/animation/ik_modifier.js +61 -0
  26. package/dist/animation/ik_modifier.js.map +1 -0
  27. package/dist/animation/ik_postprocessor.js +71 -0
  28. package/dist/animation/ik_postprocessor.js.map +1 -0
  29. package/dist/animation/manual_transform_processor.js +156 -0
  30. package/dist/animation/manual_transform_processor.js.map +1 -0
  31. package/dist/animation/skeleton.js +55 -51
  32. package/dist/animation/skeleton.js.map +1 -1
  33. package/dist/animation/skeleton_modifier.js +38 -0
  34. package/dist/animation/skeleton_modifier.js.map +1 -0
  35. package/dist/animation/skeleton_postprocessor.js +50 -0
  36. package/dist/animation/skeleton_postprocessor.js.map +1 -0
  37. package/dist/animation/spring/multi_chain_spring_system.js +503 -0
  38. package/dist/animation/spring/multi_chain_spring_system.js.map +1 -0
  39. package/dist/animation/spring/spring_bone.js +240 -0
  40. package/dist/animation/spring/spring_bone.js.map +1 -0
  41. package/dist/animation/spring/spring_bone_collider.js +198 -0
  42. package/dist/animation/spring/spring_bone_collider.js.map +1 -0
  43. package/dist/animation/spring/spring_bone_constraint.js +170 -0
  44. package/dist/animation/spring/spring_bone_constraint.js.map +1 -0
  45. package/dist/animation/spring/spring_bone_system.js +328 -0
  46. package/dist/animation/spring/spring_bone_system.js.map +1 -0
  47. package/dist/animation/spring/spring_chain.js +103 -0
  48. package/dist/animation/spring/spring_chain.js.map +1 -0
  49. package/dist/animation/spring/spring_collider.js +247 -0
  50. package/dist/animation/spring/spring_collider.js.map +1 -0
  51. package/dist/animation/spring/spring_constraint.js +21 -0
  52. package/dist/animation/spring/spring_constraint.js.map +1 -0
  53. package/dist/animation/spring/spring_particle.js +20 -0
  54. package/dist/animation/spring/spring_particle.js.map +1 -0
  55. package/dist/animation/spring/spring_system.js +526 -0
  56. package/dist/animation/spring/spring_system.js.map +1 -0
  57. package/dist/animation/spring_modifier.js +45 -0
  58. package/dist/animation/spring_modifier.js.map +1 -0
  59. package/dist/animation/spring_postprocessor.js +54 -0
  60. package/dist/animation/spring_postprocessor.js.map +1 -0
  61. package/dist/app/screen.js +1 -1
  62. package/dist/app/screen.js.map +1 -1
  63. package/dist/asset/model.js +10 -6
  64. package/dist/asset/model.js.map +1 -1
  65. package/dist/camera/perspectivecamera.js +3 -3
  66. package/dist/camera/perspectivecamera.js.map +1 -1
  67. package/dist/index.d.ts +1400 -4
  68. package/dist/index.js +16 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/material/mixins/lightmodel/blinnphong.js +66 -4
  71. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  72. package/dist/material/mixins/pbr/common.js +20 -17
  73. package/dist/material/mixins/pbr/common.js.map +1 -1
  74. package/dist/material/shader/helper.js +5 -3
  75. package/dist/material/shader/helper.js.map +1 -1
  76. package/dist/render/gpu_picking.js +100 -0
  77. package/dist/render/gpu_picking.js.map +1 -0
  78. package/dist/render/rendergraph/device_pool_allocator.js +41 -0
  79. package/dist/render/rendergraph/device_pool_allocator.js.map +1 -0
  80. package/dist/render/rendergraph/executor.js +146 -0
  81. package/dist/render/rendergraph/executor.js.map +1 -0
  82. package/dist/render/rendergraph/forward_plus_builder.js +414 -0
  83. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -0
  84. package/dist/render/rendergraph/rendergraph.js +306 -0
  85. package/dist/render/rendergraph/rendergraph.js.map +1 -0
  86. package/dist/render/rendergraph/types.js +57 -0
  87. package/dist/render/rendergraph/types.js.map +1 -0
  88. package/dist/render/sky_motion_vector.js +85 -0
  89. package/dist/render/sky_motion_vector.js.map +1 -0
  90. package/dist/scene/mesh.js +15 -23
  91. package/dist/scene/mesh.js.map +1 -1
  92. package/dist/utility/serialization/scene/animation.js +24 -23
  93. package/dist/utility/serialization/scene/animation.js.map +1 -1
  94. package/dist/utility/serialization/scene/material.js +62 -0
  95. package/dist/utility/serialization/scene/material.js.map +1 -1
  96. package/dist/utility/serialization/scene/node.js +1 -1
  97. package/package.json +3 -3
  98. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
  99. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
  100. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
  101. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
  102. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
  103. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
  104. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
  105. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
  106. package/dist/src/animation/animation.js +0 -127
  107. package/dist/src/animation/animation.js.map +0 -1
  108. package/dist/src/animation/animationset.js +0 -255
  109. package/dist/src/animation/animationset.js.map +0 -1
  110. package/dist/src/animation/animationtrack.js +0 -34
  111. package/dist/src/animation/animationtrack.js.map +0 -1
  112. package/dist/src/animation/eulerrotationtrack.js +0 -52
  113. package/dist/src/animation/eulerrotationtrack.js.map +0 -1
  114. package/dist/src/animation/morphtarget.js +0 -93
  115. package/dist/src/animation/morphtarget.js.map +0 -1
  116. package/dist/src/animation/morphtrack.js +0 -70
  117. package/dist/src/animation/morphtrack.js.map +0 -1
  118. package/dist/src/animation/proptrack.js +0 -161
  119. package/dist/src/animation/proptrack.js.map +0 -1
  120. package/dist/src/animation/rotationtrack.js +0 -51
  121. package/dist/src/animation/rotationtrack.js.map +0 -1
  122. package/dist/src/animation/scaletrack.js +0 -50
  123. package/dist/src/animation/scaletrack.js.map +0 -1
  124. package/dist/src/animation/skeleton.js +0 -204
  125. package/dist/src/animation/skeleton.js.map +0 -1
  126. package/dist/src/animation/translationtrack.js +0 -50
  127. package/dist/src/animation/translationtrack.js.map +0 -1
  128. package/dist/src/app/app.js +0 -129
  129. package/dist/src/app/app.js.map +0 -1
  130. package/dist/src/app/inputmgr.js +0 -267
  131. package/dist/src/app/inputmgr.js.map +0 -1
  132. package/dist/src/asset/assetmanager.js +0 -404
  133. package/dist/src/asset/assetmanager.js.map +0 -1
  134. package/dist/src/asset/builtin.js +0 -337
  135. package/dist/src/asset/builtin.js.map +0 -1
  136. package/dist/src/asset/loaders/dds/dds.js +0 -470
  137. package/dist/src/asset/loaders/dds/dds.js.map +0 -1
  138. package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
  139. package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
  140. package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
  141. package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
  142. package/dist/src/asset/loaders/gltf/helpers.js +0 -327
  143. package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
  144. package/dist/src/asset/loaders/hdr/hdr.js +0 -180
  145. package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
  146. package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
  147. package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
  148. package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
  149. package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
  150. package/dist/src/asset/loaders/loader.js +0 -45
  151. package/dist/src/asset/loaders/loader.js.map +0 -1
  152. package/dist/src/asset/model.js +0 -414
  153. package/dist/src/asset/model.js.map +0 -1
  154. package/dist/src/blitter/bilateralblur.js +0 -221
  155. package/dist/src/blitter/bilateralblur.js.map +0 -1
  156. package/dist/src/blitter/blitter.js +0 -390
  157. package/dist/src/blitter/blitter.js.map +0 -1
  158. package/dist/src/blitter/box.js +0 -118
  159. package/dist/src/blitter/box.js.map +0 -1
  160. package/dist/src/blitter/copy.js +0 -22
  161. package/dist/src/blitter/copy.js.map +0 -1
  162. package/dist/src/blitter/gaussianblur.js +0 -228
  163. package/dist/src/blitter/gaussianblur.js.map +0 -1
  164. package/dist/src/camera/base.js +0 -92
  165. package/dist/src/camera/base.js.map +0 -1
  166. package/dist/src/camera/camera.js +0 -1005
  167. package/dist/src/camera/camera.js.map +0 -1
  168. package/dist/src/camera/fps.js +0 -238
  169. package/dist/src/camera/fps.js.map +0 -1
  170. package/dist/src/camera/orbit.js +0 -245
  171. package/dist/src/camera/orbit.js.map +0 -1
  172. package/dist/src/camera/orthocamera.js +0 -167
  173. package/dist/src/camera/orthocamera.js.map +0 -1
  174. package/dist/src/camera/perspectivecamera.js +0 -141
  175. package/dist/src/camera/perspectivecamera.js.map +0 -1
  176. package/dist/src/index.js +0 -120
  177. package/dist/src/index.js.map +0 -1
  178. package/dist/src/material/blinn.js +0 -81
  179. package/dist/src/material/blinn.js.map +0 -1
  180. package/dist/src/material/grassmaterial.js +0 -113
  181. package/dist/src/material/grassmaterial.js.map +0 -1
  182. package/dist/src/material/lambert.js +0 -92
  183. package/dist/src/material/lambert.js.map +0 -1
  184. package/dist/src/material/material.js +0 -301
  185. package/dist/src/material/material.js.map +0 -1
  186. package/dist/src/material/meshmaterial.js +0 -704
  187. package/dist/src/material/meshmaterial.js.map +0 -1
  188. package/dist/src/material/mixins/albedocolor.js +0 -76
  189. package/dist/src/material/mixins/albedocolor.js.map +0 -1
  190. package/dist/src/material/mixins/foliage.js +0 -47
  191. package/dist/src/material/mixins/foliage.js.map +0 -1
  192. package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
  193. package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
  194. package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
  195. package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
  196. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
  197. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
  198. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
  199. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
  200. package/dist/src/material/mixins/lit.js +0 -476
  201. package/dist/src/material/mixins/lit.js.map +0 -1
  202. package/dist/src/material/mixins/pbr/common.js +0 -918
  203. package/dist/src/material/mixins/pbr/common.js.map +0 -1
  204. package/dist/src/material/mixins/texture.js +0 -172
  205. package/dist/src/material/mixins/texture.js.map +0 -1
  206. package/dist/src/material/mixins/vertexcolor.js +0 -56
  207. package/dist/src/material/mixins/vertexcolor.js.map +0 -1
  208. package/dist/src/material/particle.js +0 -178
  209. package/dist/src/material/particle.js.map +0 -1
  210. package/dist/src/material/pbrmr.js +0 -97
  211. package/dist/src/material/pbrmr.js.map +0 -1
  212. package/dist/src/material/pbrsg.js +0 -97
  213. package/dist/src/material/pbrsg.js.map +0 -1
  214. package/dist/src/material/shader/helper.js +0 -1209
  215. package/dist/src/material/shader/helper.js.map +0 -1
  216. package/dist/src/material/terrain-cm.js +0 -606
  217. package/dist/src/material/terrain-cm.js.map +0 -1
  218. package/dist/src/material/terrainmaterial.js +0 -375
  219. package/dist/src/material/terrainmaterial.js.map +0 -1
  220. package/dist/src/material/unlit.js +0 -41
  221. package/dist/src/material/unlit.js.map +0 -1
  222. package/dist/src/material/water.js +0 -417
  223. package/dist/src/material/water.js.map +0 -1
  224. package/dist/src/posteffect/bloom.js +0 -361
  225. package/dist/src/posteffect/bloom.js.map +0 -1
  226. package/dist/src/posteffect/compositor.js +0 -226
  227. package/dist/src/posteffect/compositor.js.map +0 -1
  228. package/dist/src/posteffect/fxaa.js +0 -273
  229. package/dist/src/posteffect/fxaa.js.map +0 -1
  230. package/dist/src/posteffect/grayscale.js +0 -69
  231. package/dist/src/posteffect/grayscale.js.map +0 -1
  232. package/dist/src/posteffect/motionblur.js +0 -96
  233. package/dist/src/posteffect/motionblur.js.map +0 -1
  234. package/dist/src/posteffect/posteffect.js +0 -126
  235. package/dist/src/posteffect/posteffect.js.map +0 -1
  236. package/dist/src/posteffect/sao.js +0 -324
  237. package/dist/src/posteffect/sao.js.map +0 -1
  238. package/dist/src/posteffect/ssr.js +0 -489
  239. package/dist/src/posteffect/ssr.js.map +0 -1
  240. package/dist/src/posteffect/taa.js +0 -172
  241. package/dist/src/posteffect/taa.js.map +0 -1
  242. package/dist/src/posteffect/tonemap.js +0 -94
  243. package/dist/src/posteffect/tonemap.js.map +0 -1
  244. package/dist/src/render/abuffer_oit.js +0 -361
  245. package/dist/src/render/abuffer_oit.js.map +0 -1
  246. package/dist/src/render/clipmap.js +0 -851
  247. package/dist/src/render/clipmap.js.map +0 -1
  248. package/dist/src/render/cluster_light.js +0 -333
  249. package/dist/src/render/cluster_light.js.map +0 -1
  250. package/dist/src/render/cull_visitor.js +0 -187
  251. package/dist/src/render/cull_visitor.js.map +0 -1
  252. package/dist/src/render/depthpass.js +0 -68
  253. package/dist/src/render/depthpass.js.map +0 -1
  254. package/dist/src/render/drawable_mixin.js +0 -227
  255. package/dist/src/render/drawable_mixin.js.map +0 -1
  256. package/dist/src/render/envlight.js +0 -463
  257. package/dist/src/render/envlight.js.map +0 -1
  258. package/dist/src/render/fbm_wavegenerator.js +0 -251
  259. package/dist/src/render/fbm_wavegenerator.js.map +0 -1
  260. package/dist/src/render/fft_wavegenerator.js +0 -1006
  261. package/dist/src/render/fft_wavegenerator.js.map +0 -1
  262. package/dist/src/render/fullscreenquad.js +0 -38
  263. package/dist/src/render/fullscreenquad.js.map +0 -1
  264. package/dist/src/render/gerstner_wavegenerator.js +0 -314
  265. package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
  266. package/dist/src/render/globalbindgroup_allocator.js +0 -60
  267. package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
  268. package/dist/src/render/hzb.js +0 -273
  269. package/dist/src/render/hzb.js.map +0 -1
  270. package/dist/src/render/lightpass.js +0 -172
  271. package/dist/src/render/lightpass.js.map +0 -1
  272. package/dist/src/render/objectcolorpass.js +0 -51
  273. package/dist/src/render/objectcolorpass.js.map +0 -1
  274. package/dist/src/render/primitive.js +0 -364
  275. package/dist/src/render/primitive.js.map +0 -1
  276. package/dist/src/render/render_queue.js +0 -467
  277. package/dist/src/render/render_queue.js.map +0 -1
  278. package/dist/src/render/renderbundle_wrapper.js +0 -152
  279. package/dist/src/render/renderbundle_wrapper.js.map +0 -1
  280. package/dist/src/render/renderer.js +0 -455
  281. package/dist/src/render/renderer.js.map +0 -1
  282. package/dist/src/render/renderpass.js +0 -200
  283. package/dist/src/render/renderpass.js.map +0 -1
  284. package/dist/src/render/shadowmap_pass.js +0 -56
  285. package/dist/src/render/shadowmap_pass.js.map +0 -1
  286. package/dist/src/render/sky.js +0 -1103
  287. package/dist/src/render/sky.js.map +0 -1
  288. package/dist/src/render/weightedblended_oit.js +0 -168
  289. package/dist/src/render/weightedblended_oit.js.map +0 -1
  290. package/dist/src/scene/batchgroup.js +0 -162
  291. package/dist/src/scene/batchgroup.js.map +0 -1
  292. package/dist/src/scene/environment.js +0 -209
  293. package/dist/src/scene/environment.js.map +0 -1
  294. package/dist/src/scene/graph_node.js +0 -72
  295. package/dist/src/scene/graph_node.js.map +0 -1
  296. package/dist/src/scene/light.js +0 -416
  297. package/dist/src/scene/light.js.map +0 -1
  298. package/dist/src/scene/mesh.js +0 -341
  299. package/dist/src/scene/mesh.js.map +0 -1
  300. package/dist/src/scene/octree.js +0 -649
  301. package/dist/src/scene/octree.js.map +0 -1
  302. package/dist/src/scene/particlesys.js +0 -738
  303. package/dist/src/scene/particlesys.js.map +0 -1
  304. package/dist/src/scene/raycast_visitor.js +0 -103
  305. package/dist/src/scene/raycast_visitor.js.map +0 -1
  306. package/dist/src/scene/scene.js +0 -284
  307. package/dist/src/scene/scene.js.map +0 -1
  308. package/dist/src/scene/scene_node.js +0 -732
  309. package/dist/src/scene/scene_node.js.map +0 -1
  310. package/dist/src/scene/terrain/grass.js +0 -278
  311. package/dist/src/scene/terrain/grass.js.map +0 -1
  312. package/dist/src/scene/terrain/heightfield.js +0 -475
  313. package/dist/src/scene/terrain/heightfield.js.map +0 -1
  314. package/dist/src/scene/terrain/patch.js +0 -530
  315. package/dist/src/scene/terrain/patch.js.map +0 -1
  316. package/dist/src/scene/terrain/quadtree.js +0 -461
  317. package/dist/src/scene/terrain/quadtree.js.map +0 -1
  318. package/dist/src/scene/terrain/terrain.js +0 -246
  319. package/dist/src/scene/terrain/terrain.js.map +0 -1
  320. package/dist/src/scene/terrain-cm/grass.js +0 -594
  321. package/dist/src/scene/terrain-cm/grass.js.map +0 -1
  322. package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
  323. package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
  324. package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
  325. package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
  326. package/dist/src/scene/water.js +0 -374
  327. package/dist/src/scene/water.js.map +0 -1
  328. package/dist/src/shaders/atmosphere.js +0 -957
  329. package/dist/src/shaders/atmosphere.js.map +0 -1
  330. package/dist/src/shaders/fog.js +0 -112
  331. package/dist/src/shaders/fog.js.map +0 -1
  332. package/dist/src/shaders/misc.js +0 -266
  333. package/dist/src/shaders/misc.js.map +0 -1
  334. package/dist/src/shaders/noise.js +0 -222
  335. package/dist/src/shaders/noise.js.map +0 -1
  336. package/dist/src/shaders/pbr.js +0 -51
  337. package/dist/src/shaders/pbr.js.map +0 -1
  338. package/dist/src/shaders/shadow.js +0 -636
  339. package/dist/src/shaders/shadow.js.map +0 -1
  340. package/dist/src/shaders/ssr.js +0 -490
  341. package/dist/src/shaders/ssr.js.map +0 -1
  342. package/dist/src/shaders/temporal.js +0 -215
  343. package/dist/src/shaders/temporal.js.map +0 -1
  344. package/dist/src/shaders/water.js +0 -756
  345. package/dist/src/shaders/water.js.map +0 -1
  346. package/dist/src/shadow/esm.js +0 -237
  347. package/dist/src/shadow/esm.js.map +0 -1
  348. package/dist/src/shadow/pcf_opt.js +0 -181
  349. package/dist/src/shadow/pcf_opt.js.map +0 -1
  350. package/dist/src/shadow/pcf_pd.js +0 -189
  351. package/dist/src/shadow/pcf_pd.js.map +0 -1
  352. package/dist/src/shadow/shader.js +0 -37
  353. package/dist/src/shadow/shader.js.map +0 -1
  354. package/dist/src/shadow/shadow_impl.js +0 -15
  355. package/dist/src/shadow/shadow_impl.js.map +0 -1
  356. package/dist/src/shadow/shadowmapper.js +0 -790
  357. package/dist/src/shadow/shadowmapper.js.map +0 -1
  358. package/dist/src/shadow/ssm.js +0 -159
  359. package/dist/src/shadow/ssm.js.map +0 -1
  360. package/dist/src/shadow/vsm.js +0 -297
  361. package/dist/src/shadow/vsm.js.map +0 -1
  362. package/dist/src/shapes/box.js +0 -386
  363. package/dist/src/shapes/box.js.map +0 -1
  364. package/dist/src/shapes/cylinder.js +0 -125
  365. package/dist/src/shapes/cylinder.js.map +0 -1
  366. package/dist/src/shapes/plane.js +0 -88
  367. package/dist/src/shapes/plane.js.map +0 -1
  368. package/dist/src/shapes/shape.js +0 -87
  369. package/dist/src/shapes/shape.js.map +0 -1
  370. package/dist/src/shapes/sphere.js +0 -114
  371. package/dist/src/shapes/sphere.js.map +0 -1
  372. package/dist/src/shapes/tetrahedron.js +0 -188
  373. package/dist/src/shapes/tetrahedron.js.map +0 -1
  374. package/dist/src/shapes/torus.js +0 -111
  375. package/dist/src/shapes/torus.js.map +0 -1
  376. package/dist/src/utility/aabbtree.js +0 -400
  377. package/dist/src/utility/aabbtree.js.map +0 -1
  378. package/dist/src/utility/bounding_volume.js +0 -29
  379. package/dist/src/utility/bounding_volume.js.map +0 -1
  380. package/dist/src/utility/debug.js +0 -28
  381. package/dist/src/utility/debug.js.map +0 -1
  382. package/dist/src/utility/draco/decoder.js +0 -116
  383. package/dist/src/utility/draco/decoder.js.map +0 -1
  384. package/dist/src/utility/misc.js +0 -105
  385. package/dist/src/utility/misc.js.map +0 -1
  386. package/dist/src/utility/panorama.js +0 -163
  387. package/dist/src/utility/panorama.js.map +0 -1
  388. package/dist/src/utility/pmrem.js +0 -354
  389. package/dist/src/utility/pmrem.js.map +0 -1
  390. package/dist/src/utility/rendermipmap.js +0 -115
  391. package/dist/src/utility/rendermipmap.js.map +0 -1
  392. package/dist/src/utility/serialization/json.js +0 -402
  393. package/dist/src/utility/serialization/json.js.map +0 -1
  394. package/dist/src/utility/serialization/manager.js +0 -623
  395. package/dist/src/utility/serialization/manager.js.map +0 -1
  396. package/dist/src/utility/serialization/scene/animation.js +0 -248
  397. package/dist/src/utility/serialization/scene/animation.js.map +0 -1
  398. package/dist/src/utility/serialization/scene/batch.js +0 -59
  399. package/dist/src/utility/serialization/scene/batch.js.map +0 -1
  400. package/dist/src/utility/serialization/scene/camera.js +0 -790
  401. package/dist/src/utility/serialization/scene/camera.js.map +0 -1
  402. package/dist/src/utility/serialization/scene/common.js +0 -222
  403. package/dist/src/utility/serialization/scene/common.js.map +0 -1
  404. package/dist/src/utility/serialization/scene/light.js +0 -575
  405. package/dist/src/utility/serialization/scene/light.js.map +0 -1
  406. package/dist/src/utility/serialization/scene/material.js +0 -1111
  407. package/dist/src/utility/serialization/scene/material.js.map +0 -1
  408. package/dist/src/utility/serialization/scene/mesh.js +0 -148
  409. package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
  410. package/dist/src/utility/serialization/scene/misc.js +0 -39
  411. package/dist/src/utility/serialization/scene/misc.js.map +0 -1
  412. package/dist/src/utility/serialization/scene/node.js +0 -451
  413. package/dist/src/utility/serialization/scene/node.js.map +0 -1
  414. package/dist/src/utility/serialization/scene/particle.js +0 -425
  415. package/dist/src/utility/serialization/scene/particle.js.map +0 -1
  416. package/dist/src/utility/serialization/scene/primitive.js +0 -692
  417. package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
  418. package/dist/src/utility/serialization/scene/scene.js +0 -704
  419. package/dist/src/utility/serialization/scene/scene.js.map +0 -1
  420. package/dist/src/utility/serialization/scene/terrain.js +0 -488
  421. package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
  422. package/dist/src/utility/serialization/scene/water.js +0 -465
  423. package/dist/src/utility/serialization/scene/water.js.map +0 -1
  424. package/dist/src/utility/shprojector.js +0 -297
  425. package/dist/src/utility/shprojector.js.map +0 -1
  426. package/dist/src/utility/textures/ggxlut.js +0 -213
  427. package/dist/src/utility/textures/ggxlut.js.map +0 -1
  428. package/dist/src/utility/textures/gradientnoise.js +0 -62
  429. package/dist/src/utility/textures/gradientnoise.js.map +0 -1
  430. package/dist/src/utility/textures/randomnoise.js +0 -41
  431. package/dist/src/utility/textures/randomnoise.js.map +0 -1
  432. package/dist/src/values.js +0 -162
  433. package/dist/src/values.js.map +0 -1
  434. package/dist/utility/blueprint/material/common.js +0 -7
  435. package/dist/utility/blueprint/material/common.js.map +0 -1
  436. package/dist/utility/serialization/blueprint/constants.js +0 -255
  437. package/dist/utility/serialization/blueprint/constants.js.map +0 -1
  438. package/dist/utility/serialization/blueprint/material/constants.js +0 -203
  439. package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
  440. package/dist/utility/serialization/blueprint/material/texture.js +0 -165
  441. package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
@@ -1,161 +0,0 @@
1
- import { AnimationTrack } from './animationtrack.js';
2
- import { Interpolator } from '@zephyr3d/base';
3
-
4
- /**
5
- * Translate animation track
6
- * @public
7
- */ class PropertyTrack extends AnimationTrack {
8
- _state;
9
- _stateAlpha;
10
- _target;
11
- _prop;
12
- _count;
13
- _interpolator;
14
- _interpolatorAlpha;
15
- /**
16
- * Create an instance of TranslationTrack from keyframe values
17
- * @param prop - Property to be animated
18
- */ constructor(prop, value, embedded){
19
- super(embedded);
20
- this._prop = prop;
21
- this._target = '';
22
- this._state = {
23
- num: [
24
- 0,
25
- 0,
26
- 0,
27
- 0
28
- ]
29
- };
30
- this._stateAlpha = null;
31
- this._interpolator = null;
32
- this._interpolatorAlpha = null;
33
- if (value) {
34
- this._state.num = value.slice();
35
- }
36
- switch(this._prop.type){
37
- case 'float':
38
- this._count = 1;
39
- this._interpolator = new Interpolator('cubicspline-natural', 'number', new Float32Array([
40
- 0,
41
- 1
42
- ]), new Float32Array([
43
- this._state.num[0],
44
- this._state.num[0]
45
- ]));
46
- break;
47
- case 'vec2':
48
- this._count = 2;
49
- this._interpolator = new Interpolator('cubicspline-natural', 'vec2', new Float32Array([
50
- 0,
51
- 1
52
- ]), new Float32Array([
53
- ...this._state.num.slice(0, 2),
54
- ...this._state.num.slice(0, 2)
55
- ]));
56
- break;
57
- case 'rgb':
58
- case 'vec3':
59
- this._count = 3;
60
- this._interpolator = new Interpolator('cubicspline-natural', 'vec3', new Float32Array([
61
- 0,
62
- 1
63
- ]), new Float32Array([
64
- ...this._state.num.slice(0, 3),
65
- ...this._state.num.slice(0, 3)
66
- ]));
67
- break;
68
- case 'vec4':
69
- this._count = 4;
70
- this._interpolator = new Interpolator('cubicspline-natural', 'vec4', new Float32Array([
71
- 0,
72
- 1
73
- ]), new Float32Array([
74
- ...this._state.num.slice(0, 4),
75
- ...this._state.num.slice(0, 4)
76
- ]));
77
- break;
78
- case 'rgba':
79
- this._count = 4;
80
- this._interpolator = new Interpolator('linear', 'vec3', new Float32Array([
81
- 0,
82
- 1
83
- ]), new Float32Array([
84
- ...this._state.num.slice(0, 3),
85
- ...this._state.num.slice(0, 3)
86
- ]));
87
- this._interpolatorAlpha = new Interpolator('linear', 'number', new Float32Array([
88
- 0,
89
- 1
90
- ]), new Float32Array([
91
- this._state.num[3],
92
- this._state.num[3]
93
- ]));
94
- this._stateAlpha = {
95
- num: [
96
- this._state.num[3]
97
- ]
98
- };
99
- break;
100
- default:
101
- throw new Error(`Property '${this._prop.name}' cannot be animated`);
102
- }
103
- }
104
- get target() {
105
- return this._target;
106
- }
107
- set target(val) {
108
- this._target = val;
109
- }
110
- get interpolator() {
111
- return this._interpolator;
112
- }
113
- set interpolator(interpolator) {
114
- this._interpolator = interpolator;
115
- }
116
- get interpolatorAlpha() {
117
- return this._interpolatorAlpha;
118
- }
119
- set interpolatorAlpha(interpolator) {
120
- this._interpolatorAlpha = interpolator ?? null;
121
- if (!this._stateAlpha && this._interpolatorAlpha) {
122
- this._stateAlpha = {
123
- num: [
124
- 0
125
- ]
126
- };
127
- }
128
- }
129
- calculateState(target, currentTime) {
130
- this._interpolator.interpolate(currentTime, this._state.num);
131
- if (this._interpolatorAlpha) {
132
- this._interpolatorAlpha.interpolate(currentTime, this._stateAlpha.num);
133
- this._state.num[3] = this._stateAlpha.num[0];
134
- }
135
- return this._state;
136
- }
137
- applyState(target, state) {
138
- this._prop.set.call(target, state);
139
- }
140
- mixState(a, b, t) {
141
- const v = [];
142
- for(let i = 0; i < this._count; i++){
143
- v[i] = a.num[i] + t * (b.num[i] - a.num[i]);
144
- }
145
- return {
146
- num: v
147
- };
148
- }
149
- getBlendId() {
150
- return this._prop;
151
- }
152
- getDuration() {
153
- return this._interpolator.maxTime;
154
- }
155
- getProp() {
156
- return this._prop;
157
- }
158
- }
159
-
160
- export { PropertyTrack };
161
- //# sourceMappingURL=proptrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proptrack.js","sources":["../../../src/animation/proptrack.ts"],"sourcesContent":["import { AnimationTrack } from './animationtrack';\r\nimport type { PropertyAccessor, PropertyValue } from '../utility';\r\nimport { Interpolator } from '@zephyr3d/base';\r\n\r\n/**\r\n * Translate animation track\r\n * @public\r\n */\r\nexport class PropertyTrack extends AnimationTrack<PropertyValue> {\r\n private readonly _state: PropertyValue;\r\n private _stateAlpha: PropertyValue;\r\n private _target: string;\r\n private readonly _prop: PropertyAccessor;\r\n private readonly _count: number;\r\n private _interpolator: Interpolator;\r\n private _interpolatorAlpha: Interpolator;\r\n /**\r\n * Create an instance of TranslationTrack from keyframe values\r\n * @param prop - Property to be animated\r\n */\r\n constructor(prop: PropertyAccessor, value?: number[], embedded?: boolean) {\r\n super(embedded);\r\n this._prop = prop;\r\n this._target = '';\r\n this._state = { num: [0, 0, 0, 0] };\r\n this._stateAlpha = null;\r\n this._interpolator = null;\r\n this._interpolatorAlpha = null;\r\n if (value) {\r\n this._state.num = value.slice();\r\n }\r\n switch (this._prop.type) {\r\n case 'float':\r\n this._count = 1;\r\n this._interpolator = new Interpolator(\r\n 'cubicspline-natural',\r\n 'number',\r\n new Float32Array([0, 1]),\r\n new Float32Array([this._state.num[0], this._state.num[0]])\r\n );\r\n break;\r\n case 'vec2':\r\n this._count = 2;\r\n this._interpolator = new Interpolator(\r\n 'cubicspline-natural',\r\n 'vec2',\r\n new Float32Array([0, 1]),\r\n new Float32Array([...this._state.num.slice(0, 2), ...this._state.num.slice(0, 2)])\r\n );\r\n break;\r\n case 'rgb':\r\n case 'vec3':\r\n this._count = 3;\r\n this._interpolator = new Interpolator(\r\n 'cubicspline-natural',\r\n 'vec3',\r\n new Float32Array([0, 1]),\r\n new Float32Array([...this._state.num.slice(0, 3), ...this._state.num.slice(0, 3)])\r\n );\r\n break;\r\n case 'vec4':\r\n this._count = 4;\r\n this._interpolator = new Interpolator(\r\n 'cubicspline-natural',\r\n 'vec4',\r\n new Float32Array([0, 1]),\r\n new Float32Array([...this._state.num.slice(0, 4), ...this._state.num.slice(0, 4)])\r\n );\r\n break;\r\n case 'rgba':\r\n this._count = 4;\r\n this._interpolator = new Interpolator(\r\n 'linear',\r\n 'vec3',\r\n new Float32Array([0, 1]),\r\n new Float32Array([...this._state.num.slice(0, 3), ...this._state.num.slice(0, 3)])\r\n );\r\n this._interpolatorAlpha = new Interpolator(\r\n 'linear',\r\n 'number',\r\n new Float32Array([0, 1]),\r\n new Float32Array([this._state.num[3], this._state.num[3]])\r\n );\r\n this._stateAlpha = { num: [this._state.num[3]] };\r\n break;\r\n default:\r\n throw new Error(`Property '${this._prop.name}' cannot be animated`);\r\n }\r\n }\r\n get target() {\r\n return this._target;\r\n }\r\n set target(val: string) {\r\n this._target = val;\r\n }\r\n get interpolator() {\r\n return this._interpolator;\r\n }\r\n set interpolator(interpolator: Interpolator) {\r\n this._interpolator = interpolator;\r\n }\r\n get interpolatorAlpha() {\r\n return this._interpolatorAlpha;\r\n }\r\n set interpolatorAlpha(interpolator: Interpolator) {\r\n this._interpolatorAlpha = interpolator ?? null;\r\n if (!this._stateAlpha && this._interpolatorAlpha) {\r\n this._stateAlpha = { num: [0] };\r\n }\r\n }\r\n calculateState(target: unknown, currentTime: number): PropertyValue {\r\n this._interpolator.interpolate(currentTime, this._state.num);\r\n if (this._interpolatorAlpha) {\r\n this._interpolatorAlpha.interpolate(currentTime, this._stateAlpha.num);\r\n this._state.num[3] = this._stateAlpha.num[0];\r\n }\r\n return this._state;\r\n }\r\n applyState(target: object, state: PropertyValue) {\r\n this._prop.set.call(target, state);\r\n }\r\n mixState(a: PropertyValue, b: PropertyValue, t: number): PropertyValue {\r\n const v: number[] = [];\r\n for (let i = 0; i < this._count; i++) {\r\n v[i] = a.num[i] + t * (b.num[i] - a.num[i]);\r\n }\r\n return { num: v };\r\n }\r\n getBlendId(): unknown {\r\n return this._prop;\r\n }\r\n getDuration(): number {\r\n return this._interpolator.maxTime;\r\n }\r\n getProp(): PropertyAccessor {\r\n return this._prop;\r\n }\r\n}\r\n"],"names":["PropertyTrack","AnimationTrack","_state","_stateAlpha","_target","_prop","_count","_interpolator","_interpolatorAlpha","prop","value","embedded","num","slice","type","Interpolator","Float32Array","Error","name","target","val","interpolator","interpolatorAlpha","calculateState","currentTime","interpolate","applyState","state","set","call","mixState","a","b","t","v","i","getBlendId","getDuration","maxTime","getProp"],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { Interpolator, Quaternion } from '@zephyr3d/base';
2
- import { AnimationTrack } from './animationtrack.js';
3
-
4
- /**
5
- * Rotation animation track
6
- * @public
7
- */ class NodeRotationTrack extends AnimationTrack {
8
- _state;
9
- _interpolator;
10
- constructor(modeOrInterpolator, keyFramesOrEmbedded, embedded){
11
- if (modeOrInterpolator instanceof Interpolator) {
12
- if (modeOrInterpolator.target !== 'quat') {
13
- throw new Error(`RotationTrack(): interpolator target must be 'quat'`);
14
- }
15
- super(keyFramesOrEmbedded ?? false);
16
- this._interpolator = modeOrInterpolator;
17
- } else {
18
- const keyFrames = keyFramesOrEmbedded;
19
- const inputs = new Float32Array(keyFrames.map((val)=>val.time));
20
- const outputs = new Float32Array(keyFrames.length * 4);
21
- for(let i = 0; i < keyFrames.length; i++){
22
- outputs[i * 4 + 0] = keyFrames[i].value.x;
23
- outputs[i * 4 + 1] = keyFrames[i].value.y;
24
- outputs[i * 4 + 2] = keyFrames[i].value.z;
25
- outputs[i * 4 + 3] = keyFrames[i].value.w;
26
- }
27
- super(embedded ?? false);
28
- this._interpolator = new Interpolator(modeOrInterpolator, 'quat', inputs, outputs);
29
- }
30
- this._state = new Quaternion();
31
- }
32
- calculateState(target, currentTime) {
33
- this._interpolator.interpolate(currentTime, this._state);
34
- return this._state;
35
- }
36
- applyState(node, state) {
37
- node.rotation.set(state);
38
- }
39
- mixState(a, b, t) {
40
- return Quaternion.slerp(a, b, t);
41
- }
42
- getBlendId() {
43
- return 'node-rotation';
44
- }
45
- getDuration() {
46
- return this._interpolator.maxTime;
47
- }
48
- }
49
-
50
- export { NodeRotationTrack };
51
- //# sourceMappingURL=rotationtrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotationtrack.js","sources":["../../../src/animation/rotationtrack.ts"],"sourcesContent":["import type { InterpolationMode } from '@zephyr3d/base';\r\nimport { Interpolator, Quaternion } from '@zephyr3d/base';\r\nimport { AnimationTrack } from './animationtrack';\r\nimport type { SceneNode } from '../scene';\r\n\r\n/**\r\n * Rotation animation track\r\n * @public\r\n */\r\nexport class NodeRotationTrack extends AnimationTrack<Quaternion> {\r\n private readonly _state: Quaternion;\r\n private readonly _interpolator: Interpolator;\r\n /**\r\n * Create an instance of RotationTrack from keyframe values\r\n * @param interpolator - Interpolator object that contains keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(interpolator: Interpolator, embedded?: boolean);\r\n /**\r\n * Create an instance of RotationTrack from keyframe values\r\n * @param mode - The interpolation mode of keyframes\r\n * @param keyFrames - Keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(mode: InterpolationMode, keyFrames: { time: number; value: Quaternion }[], embedded?: boolean);\r\n constructor(\r\n modeOrInterpolator: Interpolator | InterpolationMode,\r\n keyFramesOrEmbedded?: { time: number; value: Quaternion }[] | boolean,\r\n embedded?: boolean\r\n ) {\r\n if (modeOrInterpolator instanceof Interpolator) {\r\n if (modeOrInterpolator.target !== 'quat') {\r\n throw new Error(`RotationTrack(): interpolator target must be 'quat'`);\r\n }\r\n super((keyFramesOrEmbedded as boolean) ?? false);\r\n this._interpolator = modeOrInterpolator;\r\n } else {\r\n const keyFrames = keyFramesOrEmbedded as { time: number; value: Quaternion }[];\r\n const inputs = new Float32Array(keyFrames.map((val) => val.time));\r\n const outputs = new Float32Array(keyFrames.length * 4);\r\n for (let i = 0; i < keyFrames.length; i++) {\r\n outputs[i * 4 + 0] = keyFrames[i].value.x;\r\n outputs[i * 4 + 1] = keyFrames[i].value.y;\r\n outputs[i * 4 + 2] = keyFrames[i].value.z;\r\n outputs[i * 4 + 3] = keyFrames[i].value.w;\r\n }\r\n super(embedded ?? false);\r\n this._interpolator = new Interpolator(modeOrInterpolator, 'quat', inputs, outputs);\r\n }\r\n this._state = new Quaternion();\r\n }\r\n calculateState(target: object, currentTime: number): Quaternion {\r\n this._interpolator.interpolate(currentTime, this._state);\r\n return this._state;\r\n }\r\n applyState(node: SceneNode, state: Quaternion) {\r\n node.rotation.set(state);\r\n }\r\n mixState(a: Quaternion, b: Quaternion, t: number): Quaternion {\r\n return Quaternion.slerp(a, b, t);\r\n }\r\n getBlendId(): unknown {\r\n return 'node-rotation';\r\n }\r\n getDuration(): number {\r\n return this._interpolator.maxTime;\r\n }\r\n}\r\n"],"names":["NodeRotationTrack","AnimationTrack","_state","_interpolator","modeOrInterpolator","keyFramesOrEmbedded","embedded","Interpolator","target","Error","keyFrames","inputs","Float32Array","map","val","time","outputs","length","i","value","x","y","z","w","Quaternion","calculateState","currentTime","interpolate","applyState","node","state","rotation","set","mixState","a","b","t","slerp","getBlendId","getDuration","maxTime"],"mappings":";;;AAKA;;;IAIO,MAAMA,iBAA0BC,SAAAA,cAAAA,CAAAA;IACpBC,MAAmB;IACnBC,aAA4B;AAc7C,IAAA,WAAA,CACEC,kBAAoD,EACpDC,mBAAqE,EACrEC,QAAkB,CAClB;AACA,QAAA,IAAIF,8BAA8BG,YAAc,EAAA;YAC9C,IAAIH,kBAAAA,CAAmBI,MAAM,KAAK,MAAQ,EAAA;AACxC,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,mDAAmD,CAAC,CAAA;AACvE;YACA,KAAK,CAAC,mBAAoC,IAAA,KAAA,CAAA;YAC1C,IAAI,CAACN,aAAa,GAAGC,kBAAAA;SAChB,MAAA;AACL,YAAA,MAAMM,SAAYL,GAAAA,mBAAAA;YAClB,MAAMM,MAAAA,GAAS,IAAIC,YAAaF,CAAAA,SAAAA,CAAUG,GAAG,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,CAAA,CAAA;AAC/D,YAAA,MAAMC,OAAU,GAAA,IAAIJ,YAAaF,CAAAA,SAAAA,CAAUO,MAAM,GAAG,CAAA,CAAA;AACpD,YAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIR,SAAUO,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;gBACzCF,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACC,CAAC;gBACzCJ,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACE,CAAC;gBACzCL,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACG,CAAC;gBACzCN,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACI,CAAC;AAC3C;AACA,YAAA,KAAK,CAACjB,QAAY,IAAA,KAAA,CAAA;AAClB,YAAA,IAAI,CAACH,aAAa,GAAG,IAAII,YAAaH,CAAAA,kBAAAA,EAAoB,QAAQO,MAAQK,EAAAA,OAAAA,CAAAA;AAC5E;QACA,IAAI,CAACd,MAAM,GAAG,IAAIsB,UAAAA,EAAAA;AACpB;IACAC,cAAejB,CAAAA,MAAc,EAAEkB,WAAmB,EAAc;QAC9D,IAAI,CAACvB,aAAa,CAACwB,WAAW,CAACD,WAAa,EAAA,IAAI,CAACxB,MAAM,CAAA;QACvD,OAAO,IAAI,CAACA,MAAM;AACpB;IACA0B,UAAWC,CAAAA,IAAe,EAAEC,KAAiB,EAAE;QAC7CD,IAAKE,CAAAA,QAAQ,CAACC,GAAG,CAACF,KAAAA,CAAAA;AACpB;AACAG,IAAAA,QAAAA,CAASC,CAAa,EAAEC,CAAa,EAAEC,CAAS,EAAc;AAC5D,QAAA,OAAOZ,UAAWa,CAAAA,KAAK,CAACH,CAAAA,EAAGC,CAAGC,EAAAA,CAAAA,CAAAA;AAChC;IACAE,UAAsB,GAAA;QACpB,OAAO,eAAA;AACT;IACAC,WAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAACpC,aAAa,CAACqC,OAAO;AACnC;AACF;;;;"}
@@ -1,50 +0,0 @@
1
- import { Interpolator, Vector3 } from '@zephyr3d/base';
2
- import { AnimationTrack } from './animationtrack.js';
3
-
4
- /**
5
- * Scale animation track
6
- * @public
7
- */ class NodeScaleTrack extends AnimationTrack {
8
- _state;
9
- _interpolator;
10
- constructor(modeOrInterpolator, keyFramesOrEmbedded, embedded){
11
- if (modeOrInterpolator instanceof Interpolator) {
12
- if (modeOrInterpolator.target !== 'vec3') {
13
- throw new Error(`ScaleTrack(): interpolator target must be 'vec3'`);
14
- }
15
- super(keyFramesOrEmbedded ?? false);
16
- this._interpolator = modeOrInterpolator;
17
- } else {
18
- const keyFrames = keyFramesOrEmbedded;
19
- const inputs = new Float32Array(keyFrames.map((val)=>val.time));
20
- const outputs = new Float32Array(keyFrames.length * 3);
21
- for(let i = 0; i < keyFrames.length; i++){
22
- outputs[i * 3 + 0] = keyFrames[i].value.x;
23
- outputs[i * 3 + 1] = keyFrames[i].value.y;
24
- outputs[i * 3 + 2] = keyFrames[i].value.z;
25
- }
26
- super(embedded ?? false);
27
- this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);
28
- }
29
- this._state = new Vector3();
30
- }
31
- calculateState(target, currentTime) {
32
- this._interpolator.interpolate(currentTime, this._state);
33
- return this._state;
34
- }
35
- applyState(node, state) {
36
- node.scale.set(state);
37
- }
38
- mixState(a, b, t) {
39
- return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));
40
- }
41
- getBlendId() {
42
- return 'node-scale';
43
- }
44
- getDuration() {
45
- return this._interpolator.maxTime;
46
- }
47
- }
48
-
49
- export { NodeScaleTrack };
50
- //# sourceMappingURL=scaletrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaletrack.js","sources":["../../../src/animation/scaletrack.ts"],"sourcesContent":["import type { InterpolationMode } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack } from './animationtrack';\r\nimport type { SceneNode } from '../scene';\r\n\r\n/**\r\n * Scale animation track\r\n * @public\r\n */\r\nexport class NodeScaleTrack extends AnimationTrack<Vector3> {\r\n private readonly _state: Vector3;\r\n private readonly _interpolator: Interpolator;\r\n /**\r\n * Create an instance of ScaleTrack from keyframe values\r\n * @param interpolator - Interpolator object that contains keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(interpolator: Interpolator, embedded?: boolean);\r\n /**\r\n * Create an instance of ScaleTrack from keyframe values\r\n * @param mode - The interpolation mode of keyframes\r\n * @param keyFrames - Keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(mode: InterpolationMode, keyFrames: { time: number; value: Vector3 }[], embedded?: boolean);\r\n constructor(\r\n modeOrInterpolator?: Interpolator | InterpolationMode,\r\n keyFramesOrEmbedded?: { time: number; value: Vector3 }[] | boolean,\r\n embedded?: boolean\r\n ) {\r\n if (modeOrInterpolator instanceof Interpolator) {\r\n if (modeOrInterpolator.target !== 'vec3') {\r\n throw new Error(`ScaleTrack(): interpolator target must be 'vec3'`);\r\n }\r\n super((keyFramesOrEmbedded as boolean) ?? false);\r\n this._interpolator = modeOrInterpolator;\r\n } else {\r\n const keyFrames = keyFramesOrEmbedded as { time: number; value: Vector3 }[];\r\n const inputs = new Float32Array(keyFrames.map((val) => val.time));\r\n const outputs = new Float32Array(keyFrames.length * 3);\r\n for (let i = 0; i < keyFrames.length; i++) {\r\n outputs[i * 3 + 0] = keyFrames[i].value.x;\r\n outputs[i * 3 + 1] = keyFrames[i].value.y;\r\n outputs[i * 3 + 2] = keyFrames[i].value.z;\r\n }\r\n super(embedded ?? false);\r\n this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);\r\n }\r\n this._state = new Vector3();\r\n }\r\n calculateState(target: object, currentTime: number): Vector3 {\r\n this._interpolator.interpolate(currentTime, this._state);\r\n return this._state;\r\n }\r\n applyState(node: SceneNode, state: Vector3) {\r\n node.scale.set(state);\r\n }\r\n mixState(a: Vector3, b: Vector3, t: number): Vector3 {\r\n return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));\r\n }\r\n getBlendId(): unknown {\r\n return 'node-scale';\r\n }\r\n getDuration(): number {\r\n return this._interpolator.maxTime;\r\n }\r\n}\r\n"],"names":["NodeScaleTrack","AnimationTrack","_state","_interpolator","modeOrInterpolator","keyFramesOrEmbedded","embedded","Interpolator","target","Error","keyFrames","inputs","Float32Array","map","val","time","outputs","length","i","value","x","y","z","Vector3","calculateState","currentTime","interpolate","applyState","node","state","scale","set","mixState","a","b","t","getBlendId","getDuration","maxTime"],"mappings":";;;AAKA;;;IAIO,MAAMA,cAAuBC,SAAAA,cAAAA,CAAAA;IACjBC,MAAgB;IAChBC,aAA4B;AAc7C,IAAA,WAAA,CACEC,kBAAqD,EACrDC,mBAAkE,EAClEC,QAAkB,CAClB;AACA,QAAA,IAAIF,8BAA8BG,YAAc,EAAA;YAC9C,IAAIH,kBAAAA,CAAmBI,MAAM,KAAK,MAAQ,EAAA;AACxC,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,gDAAgD,CAAC,CAAA;AACpE;YACA,KAAK,CAAC,mBAAoC,IAAA,KAAA,CAAA;YAC1C,IAAI,CAACN,aAAa,GAAGC,kBAAAA;SAChB,MAAA;AACL,YAAA,MAAMM,SAAYL,GAAAA,mBAAAA;YAClB,MAAMM,MAAAA,GAAS,IAAIC,YAAaF,CAAAA,SAAAA,CAAUG,GAAG,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,CAAA,CAAA;AAC/D,YAAA,MAAMC,OAAU,GAAA,IAAIJ,YAAaF,CAAAA,SAAAA,CAAUO,MAAM,GAAG,CAAA,CAAA;AACpD,YAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIR,SAAUO,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;gBACzCF,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACC,CAAC;gBACzCJ,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACE,CAAC;gBACzCL,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACG,CAAC;AAC3C;AACA,YAAA,KAAK,CAAChB,QAAY,IAAA,KAAA,CAAA;AAClB,YAAA,IAAI,CAACH,aAAa,GAAG,IAAII,YAAaH,CAAAA,kBAAAA,EAAoB,QAAQO,MAAQK,EAAAA,OAAAA,CAAAA;AAC5E;QACA,IAAI,CAACd,MAAM,GAAG,IAAIqB,OAAAA,EAAAA;AACpB;IACAC,cAAehB,CAAAA,MAAc,EAAEiB,WAAmB,EAAW;QAC3D,IAAI,CAACtB,aAAa,CAACuB,WAAW,CAACD,WAAa,EAAA,IAAI,CAACvB,MAAM,CAAA;QACvD,OAAO,IAAI,CAACA,MAAM;AACpB;IACAyB,UAAWC,CAAAA,IAAe,EAAEC,KAAc,EAAE;QAC1CD,IAAKE,CAAAA,KAAK,CAACC,GAAG,CAACF,KAAAA,CAAAA;AACjB;AACAG,IAAAA,QAAAA,CAASC,CAAU,EAAEC,CAAU,EAAEC,CAAS,EAAW;AACnD,QAAA,OAAO,IAAIZ,OAAQU,CAAAA,CAAAA,CAAEb,CAAC,GAAGe,KAAKD,CAAAA,CAAEd,CAAC,GAAGa,EAAEb,CAAAA,CAAIa,EAAAA,CAAAA,CAAEZ,CAAC,GAAGc,CAAAA,IAAKD,CAAAA,CAAEb,CAAC,GAAGY,CAAAA,CAAEZ,CAAAA,GAAIY,CAAEX,CAAAA,CAAC,GAAGa,CAAAA,IAAKD,CAAEZ,CAAAA,CAAC,GAAGW,CAAAA,CAAEX,CAAC,CAADA,CAAAA;AACtF;IACAc,UAAsB,GAAA;QACpB,OAAO,YAAA;AACT;IACAC,WAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAClC,aAAa,CAACmC,OAAO;AACnC;AACF;;;;"}
@@ -1,204 +0,0 @@
1
- import { Vector3, Matrix4x4, nextPowerOf2 } from '@zephyr3d/base';
2
- import { BoundingBox } from '../utility/bounding_volume.js';
3
- import { Application } from '../app/app.js';
4
-
5
- const tmpV0 = new Vector3();
6
- const tmpV1 = new Vector3();
7
- const tmpV2 = new Vector3();
8
- const tmpV3 = new Vector3();
9
- /**
10
- * Skeleton for skinned animation
11
- * @public
12
- */ class Skeleton {
13
- /** @internal */ _meshes;
14
- /** @internal */ _joints;
15
- /** @internal */ _inverseBindMatrices;
16
- /** @internal */ _bindPoseMatrices;
17
- /** @internal */ _jointMatrices;
18
- /** @internal */ _jointOffsets;
19
- /** @internal */ _jointMatrixArray;
20
- /** @internal */ _jointTexture;
21
- /**
22
- * Creates an instance of skeleton
23
- * @param joints - The joint nodes
24
- * @param inverseBindMatrices - The inverse binding matrices of the joints
25
- * @param bindPoseMatrices - The binding pose matrices of the joints
26
- */ constructor(joints, inverseBindMatrices, bindPoseMatrices, meshes, bounding){
27
- this._joints = joints;
28
- this._inverseBindMatrices = inverseBindMatrices;
29
- this._bindPoseMatrices = bindPoseMatrices;
30
- this._jointMatrixArray = null;
31
- this._jointMatrices = null;
32
- this._jointOffsets = null;
33
- this._jointTexture = null;
34
- this.updateJointMatrices();
35
- this._meshes = meshes.map((mesh, index)=>{
36
- return {
37
- mesh,
38
- bounding: this.getBoundingInfo(bounding[index]),
39
- box: new BoundingBox()
40
- };
41
- });
42
- }
43
- /**
44
- * Disposes self
45
- */ dispose() {
46
- this._jointTexture?.dispose();
47
- this._jointTexture = null;
48
- this._joints = null;
49
- this._inverseBindMatrices = null;
50
- this._bindPoseMatrices = null;
51
- this._jointMatrices = null;
52
- this._jointMatrixArray = null;
53
- }
54
- /**
55
- * The texture that contains the transform matrices of all the joints
56
- */ get jointTexture() {
57
- return this._jointTexture;
58
- }
59
- /** @internal */ updateJointMatrices(jointTransforms, worldMatrix) {
60
- if (!this._jointTexture) {
61
- this._createJointTexture();
62
- }
63
- if (this._jointOffsets[0] === 0) {
64
- this._jointOffsets[0] = 1;
65
- this._jointOffsets[1] = 1;
66
- } else {
67
- this._jointOffsets[1] = this._jointOffsets[0];
68
- this._jointOffsets[0] = this._joints.length - this._jointOffsets[0] + 2;
69
- }
70
- for(let i = 0; i < this._joints.length; i++){
71
- const mat = this._jointMatrices[i + this._jointOffsets[0] - 1];
72
- const jointTransform = jointTransforms ? jointTransforms[i] : this._joints[i].worldMatrix;
73
- if (worldMatrix) {
74
- Matrix4x4.multiplyAffine(worldMatrix, jointTransform, jointTransform);
75
- }
76
- Matrix4x4.multiply(jointTransform, this._inverseBindMatrices[i], mat);
77
- }
78
- }
79
- /** @internal */ computeBindPose(model) {
80
- this.updateJointMatrices(this._bindPoseMatrices, model.worldMatrix);
81
- this._jointOffsets[1] = this._jointOffsets[0];
82
- this._jointTexture.update(this._jointMatrixArray, 0, 0, this._jointTexture.width, this._jointTexture.height);
83
- }
84
- /** @internal */ computeJoints() {
85
- this.updateJointMatrices();
86
- this._jointTexture.update(this._jointMatrixArray, 0, 0, this._jointTexture.width, this._jointTexture.height);
87
- }
88
- /** @internal */ apply() {
89
- this.computeJoints();
90
- for (const mesh of this._meshes){
91
- this.computeBoundingBox(mesh.bounding, mesh.mesh.invWorldMatrix);
92
- mesh.mesh.setBoneMatrices(this.jointTexture);
93
- mesh.mesh.setAnimatedBoundingBox(mesh.bounding.boundingBox);
94
- }
95
- }
96
- /** @internal */ reset() {
97
- for (const mesh of this._meshes){
98
- mesh.mesh.setBoneMatrices(null);
99
- mesh.mesh.setAnimatedBoundingBox(null);
100
- }
101
- }
102
- /** @internal */ computeBoundingBox(info, invWorldMatrix) {
103
- info.boundingBox.beginExtend();
104
- for(let i = 0; i < info.boundingVertices.length; i++){
105
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV0).scaleBy(info.boundingVertexJointWeights[i * 4 + 0]);
106
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV1).scaleBy(info.boundingVertexJointWeights[i * 4 + 1]);
107
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV2).scaleBy(info.boundingVertexJointWeights[i * 4 + 2]);
108
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV3).scaleBy(info.boundingVertexJointWeights[i * 4 + 3]);
109
- tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);
110
- invWorldMatrix.transformPointAffine(tmpV0, tmpV0);
111
- info.boundingBox.extend(tmpV0);
112
- }
113
- }
114
- /** @internal */ _createJointTexture() {
115
- const textureWidth = nextPowerOf2(Math.max(4, Math.ceil(Math.sqrt((this._joints.length * 2 + 1) * 4))));
116
- const device = Application.instance.device;
117
- this._jointTexture = device.createTexture2D('rgba32f', textureWidth, textureWidth, {
118
- samplerOptions: {
119
- magFilter: 'nearest',
120
- minFilter: 'nearest',
121
- mipFilter: 'none'
122
- }
123
- });
124
- this._jointMatrixArray = new Float32Array(textureWidth * textureWidth * 4);
125
- const buffer = this._jointMatrixArray.buffer;
126
- this._jointOffsets = new Float32Array(buffer);
127
- this._jointOffsets[0] = 0;
128
- this._jointOffsets[1] = 0;
129
- this._jointMatrices = Array.from({
130
- length: this._joints.length * 2
131
- }).map((val, index)=>new Matrix4x4(buffer, (index + 1) * 16 * Float32Array.BYTES_PER_ELEMENT));
132
- }
133
- /** @internal */ getBoundingInfo(meshData) {
134
- const indices = [
135
- 0,
136
- 0,
137
- 0,
138
- 0,
139
- 0,
140
- 0
141
- ];
142
- let minx = Number.MAX_VALUE;
143
- let maxx = -Number.MAX_VALUE;
144
- let miny = Number.MAX_VALUE;
145
- let maxy = -Number.MAX_VALUE;
146
- let minz = Number.MAX_VALUE;
147
- let maxz = -Number.MAX_VALUE;
148
- const v = meshData.rawPositions;
149
- const vert = new Vector3();
150
- const tmpV0 = new Vector3();
151
- const tmpV1 = new Vector3();
152
- const tmpV2 = new Vector3();
153
- const tmpV3 = new Vector3();
154
- const numVertices = Math.floor(v.length / 3);
155
- for(let i = 0; i < numVertices; i++){
156
- vert.setXYZ(v[i * 3], v[i * 3 + 1], v[i * 3 + 2]);
157
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV0).scaleBy(meshData.rawJointWeights[i * 4 + 0]);
158
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV1).scaleBy(meshData.rawJointWeights[i * 4 + 1]);
159
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV2).scaleBy(meshData.rawJointWeights[i * 4 + 2]);
160
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV3).scaleBy(meshData.rawJointWeights[i * 4 + 3]);
161
- tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);
162
- if (tmpV0.x < minx) {
163
- minx = tmpV0.x;
164
- indices[0] = i;
165
- }
166
- if (tmpV0.x > maxx) {
167
- maxx = tmpV0.x;
168
- indices[1] = i;
169
- }
170
- if (tmpV0.y < miny) {
171
- miny = tmpV0.y;
172
- indices[2] = i;
173
- }
174
- if (tmpV0.y > maxy) {
175
- maxy = tmpV0.y;
176
- indices[3] = i;
177
- }
178
- if (tmpV0.z < minz) {
179
- minz = tmpV0.z;
180
- indices[4] = i;
181
- }
182
- if (tmpV0.z > maxz) {
183
- maxz = tmpV0.z;
184
- indices[5] = i;
185
- }
186
- }
187
- const info = {
188
- boundingVertexBlendIndices: new Float32Array(Array.from({
189
- length: 6 * 4
190
- }).map((val, index)=>meshData.rawBlendIndices[indices[index >> 2] * 4 + index % 4])),
191
- boundingVertexJointWeights: new Float32Array(Array.from({
192
- length: 6 * 4
193
- }).map((val, index)=>meshData.rawJointWeights[indices[index >> 2] * 4 + index % 4])),
194
- boundingVertices: Array.from({
195
- length: 6
196
- }).map((val, index)=>new Vector3(meshData.rawPositions[indices[index] * 3], meshData.rawPositions[indices[index] * 3 + 1], meshData.rawPositions[indices[index] * 3 + 2])),
197
- boundingBox: new BoundingBox()
198
- };
199
- return info;
200
- }
201
- }
202
-
203
- export { Skeleton };
204
- //# sourceMappingURL=skeleton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton.js","sources":["../../../src/animation/skeleton.ts"],"sourcesContent":["import { Matrix4x4, Vector3, nextPowerOf2 } from '@zephyr3d/base';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { SceneNode } from '../scene/scene_node';\r\nimport type { Mesh } from '../scene';\r\nimport { BoundingBox } from '../utility/bounding_volume';\r\nimport type { AssetSubMeshData } from '../asset';\r\nimport { Application } from '../app/app';\r\n\r\ninterface SkinnedBoundingBox {\r\n boundingVertices: Vector3[];\r\n boundingVertexBlendIndices: Float32Array;\r\n boundingVertexJointWeights: Float32Array;\r\n boundingBox: BoundingBox;\r\n}\r\n\r\nconst tmpV0 = new Vector3();\r\nconst tmpV1 = new Vector3();\r\nconst tmpV2 = new Vector3();\r\nconst tmpV3 = new Vector3();\r\n\r\n/**\r\n * Skeleton for skinned animation\r\n * @public\r\n */\r\nexport class Skeleton {\r\n /** @internal */\r\n protected _meshes: { mesh: Mesh; bounding: SkinnedBoundingBox; box: BoundingBox }[];\r\n /** @internal */\r\n protected _joints: SceneNode[];\r\n /** @internal */\r\n protected _inverseBindMatrices: Matrix4x4[];\r\n /** @internal */\r\n protected _bindPoseMatrices: Matrix4x4[];\r\n /** @internal */\r\n protected _jointMatrices: Matrix4x4[];\r\n /** @internal */\r\n protected _jointOffsets: Float32Array<ArrayBuffer>;\r\n /** @internal */\r\n protected _jointMatrixArray: Float32Array<ArrayBuffer>;\r\n /** @internal */\r\n protected _jointTexture: Texture2D;\r\n /**\r\n * Creates an instance of skeleton\r\n * @param joints - The joint nodes\r\n * @param inverseBindMatrices - The inverse binding matrices of the joints\r\n * @param bindPoseMatrices - The binding pose matrices of the joints\r\n */\r\n constructor(\r\n joints: SceneNode[],\r\n inverseBindMatrices: Matrix4x4[],\r\n bindPoseMatrices: Matrix4x4[],\r\n meshes: Mesh[],\r\n bounding: AssetSubMeshData[]\r\n ) {\r\n this._joints = joints;\r\n this._inverseBindMatrices = inverseBindMatrices;\r\n this._bindPoseMatrices = bindPoseMatrices;\r\n this._jointMatrixArray = null;\r\n this._jointMatrices = null;\r\n this._jointOffsets = null;\r\n this._jointTexture = null;\r\n this.updateJointMatrices();\r\n this._meshes = meshes.map((mesh, index) => {\r\n return {\r\n mesh,\r\n bounding: this.getBoundingInfo(bounding[index]),\r\n box: new BoundingBox()\r\n };\r\n });\r\n }\r\n /**\r\n * Disposes self\r\n */\r\n dispose() {\r\n this._jointTexture?.dispose();\r\n this._jointTexture = null;\r\n this._joints = null;\r\n this._inverseBindMatrices = null;\r\n this._bindPoseMatrices = null;\r\n this._jointMatrices = null;\r\n this._jointMatrixArray = null;\r\n }\r\n /**\r\n * The texture that contains the transform matrices of all the joints\r\n */\r\n get jointTexture(): Texture2D {\r\n return this._jointTexture;\r\n }\r\n /** @internal */\r\n updateJointMatrices(jointTransforms?: Matrix4x4[], worldMatrix?: Matrix4x4) {\r\n if (!this._jointTexture) {\r\n this._createJointTexture();\r\n }\r\n if (this._jointOffsets[0] === 0) {\r\n this._jointOffsets[0] = 1;\r\n this._jointOffsets[1] = 1;\r\n } else {\r\n this._jointOffsets[1] = this._jointOffsets[0];\r\n this._jointOffsets[0] = this._joints.length - this._jointOffsets[0] + 2;\r\n }\r\n for (let i = 0; i < this._joints.length; i++) {\r\n const mat = this._jointMatrices[i + this._jointOffsets[0] - 1];\r\n const jointTransform = jointTransforms ? jointTransforms[i] : this._joints[i].worldMatrix;\r\n if (worldMatrix) {\r\n Matrix4x4.multiplyAffine(worldMatrix, jointTransform, jointTransform);\r\n }\r\n Matrix4x4.multiply(jointTransform, this._inverseBindMatrices[i], mat);\r\n }\r\n }\r\n /** @internal */\r\n computeBindPose(model: SceneNode) {\r\n this.updateJointMatrices(this._bindPoseMatrices, model.worldMatrix);\r\n this._jointOffsets[1] = this._jointOffsets[0];\r\n this._jointTexture.update(\r\n this._jointMatrixArray,\r\n 0,\r\n 0,\r\n this._jointTexture.width,\r\n this._jointTexture.height\r\n );\r\n }\r\n /** @internal */\r\n computeJoints() {\r\n this.updateJointMatrices();\r\n this._jointTexture.update(\r\n this._jointMatrixArray,\r\n 0,\r\n 0,\r\n this._jointTexture.width,\r\n this._jointTexture.height\r\n );\r\n }\r\n /** @internal */\r\n apply() {\r\n this.computeJoints();\r\n for (const mesh of this._meshes) {\r\n this.computeBoundingBox(mesh.bounding, mesh.mesh.invWorldMatrix);\r\n mesh.mesh.setBoneMatrices(this.jointTexture);\r\n mesh.mesh.setAnimatedBoundingBox(mesh.bounding.boundingBox);\r\n }\r\n }\r\n /** @internal */\r\n reset() {\r\n for (const mesh of this._meshes) {\r\n mesh.mesh.setBoneMatrices(null);\r\n mesh.mesh.setAnimatedBoundingBox(null);\r\n }\r\n }\r\n /** @internal */\r\n computeBoundingBox(info: SkinnedBoundingBox, invWorldMatrix: Matrix4x4) {\r\n info.boundingBox.beginExtend();\r\n for (let i = 0; i < info.boundingVertices.length; i++) {\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV0)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 0]);\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV1)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 1]);\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV2)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 2]);\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV3)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 3]);\r\n tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);\r\n invWorldMatrix.transformPointAffine(tmpV0, tmpV0);\r\n info.boundingBox.extend(tmpV0);\r\n }\r\n }\r\n /** @internal */\r\n private _createJointTexture() {\r\n const textureWidth = nextPowerOf2(Math.max(4, Math.ceil(Math.sqrt((this._joints.length * 2 + 1) * 4))));\r\n const device = Application.instance.device;\r\n this._jointTexture = device.createTexture2D('rgba32f', textureWidth, textureWidth, {\r\n samplerOptions: {\r\n magFilter: 'nearest',\r\n minFilter: 'nearest',\r\n mipFilter: 'none'\r\n }\r\n });\r\n this._jointMatrixArray = new Float32Array(textureWidth * textureWidth * 4);\r\n const buffer = this._jointMatrixArray.buffer;\r\n this._jointOffsets = new Float32Array(buffer);\r\n this._jointOffsets[0] = 0;\r\n this._jointOffsets[1] = 0;\r\n this._jointMatrices = Array.from({ length: this._joints.length * 2 }).map(\r\n (val, index) => new Matrix4x4(buffer, (index + 1) * 16 * Float32Array.BYTES_PER_ELEMENT)\r\n );\r\n }\r\n /** @internal */\r\n private getBoundingInfo(meshData: AssetSubMeshData): SkinnedBoundingBox {\r\n const indices = [0, 0, 0, 0, 0, 0];\r\n let minx = Number.MAX_VALUE;\r\n let maxx = -Number.MAX_VALUE;\r\n let miny = Number.MAX_VALUE;\r\n let maxy = -Number.MAX_VALUE;\r\n let minz = Number.MAX_VALUE;\r\n let maxz = -Number.MAX_VALUE;\r\n const v = meshData.rawPositions;\r\n const vert = new Vector3();\r\n const tmpV0 = new Vector3();\r\n const tmpV1 = new Vector3();\r\n const tmpV2 = new Vector3();\r\n const tmpV3 = new Vector3();\r\n const numVertices = Math.floor(v.length / 3);\r\n for (let i = 0; i < numVertices; i++) {\r\n vert.setXYZ(v[i * 3], v[i * 3 + 1], v[i * 3 + 2]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV0)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 0]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV1)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 1]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV2)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 2]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV3)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 3]);\r\n tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);\r\n if (tmpV0.x < minx) {\r\n minx = tmpV0.x;\r\n indices[0] = i;\r\n }\r\n if (tmpV0.x > maxx) {\r\n maxx = tmpV0.x;\r\n indices[1] = i;\r\n }\r\n if (tmpV0.y < miny) {\r\n miny = tmpV0.y;\r\n indices[2] = i;\r\n }\r\n if (tmpV0.y > maxy) {\r\n maxy = tmpV0.y;\r\n indices[3] = i;\r\n }\r\n if (tmpV0.z < minz) {\r\n minz = tmpV0.z;\r\n indices[4] = i;\r\n }\r\n if (tmpV0.z > maxz) {\r\n maxz = tmpV0.z;\r\n indices[5] = i;\r\n }\r\n }\r\n const info: SkinnedBoundingBox = {\r\n boundingVertexBlendIndices: new Float32Array(\r\n Array.from({ length: 6 * 4 }).map(\r\n (val, index) => meshData.rawBlendIndices[indices[index >> 2] * 4 + (index % 4)]\r\n )\r\n ),\r\n boundingVertexJointWeights: new Float32Array(\r\n Array.from({ length: 6 * 4 }).map(\r\n (val, index) => meshData.rawJointWeights[indices[index >> 2] * 4 + (index % 4)]\r\n )\r\n ),\r\n boundingVertices: Array.from({ length: 6 }).map(\r\n (val, index) =>\r\n new Vector3(\r\n meshData.rawPositions[indices[index] * 3],\r\n meshData.rawPositions[indices[index] * 3 + 1],\r\n meshData.rawPositions[indices[index] * 3 + 2]\r\n )\r\n ),\r\n boundingBox: new BoundingBox()\r\n };\r\n return info;\r\n }\r\n}\r\n"],"names":["tmpV0","Vector3","tmpV1","tmpV2","tmpV3","Skeleton","joints","inverseBindMatrices","bindPoseMatrices","meshes","bounding","_joints","_inverseBindMatrices","_bindPoseMatrices","_jointMatrixArray","_jointMatrices","_jointOffsets","_jointTexture","updateJointMatrices","_meshes","map","mesh","index","getBoundingInfo","box","BoundingBox","dispose","jointTexture","jointTransforms","worldMatrix","_createJointTexture","length","i","mat","jointTransform","Matrix4x4","multiplyAffine","multiply","computeBindPose","model","update","width","height","computeJoints","apply","computeBoundingBox","invWorldMatrix","setBoneMatrices","setAnimatedBoundingBox","boundingBox","reset","info","beginExtend","boundingVertices","boundingVertexBlendIndices","transformPointAffine","scaleBy","boundingVertexJointWeights","addBy","extend","textureWidth","nextPowerOf2","Math","max","ceil","sqrt","device","Application","instance","createTexture2D","samplerOptions","magFilter","minFilter","mipFilter","Float32Array","buffer","Array","from","val","BYTES_PER_ELEMENT","meshData","indices","minx","Number","MAX_VALUE","maxx","miny","maxy","minz","maxz","v","rawPositions","vert","numVertices","floor","setXYZ","rawBlendIndices","rawJointWeights","x","y","z"],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { Interpolator, Vector3 } from '@zephyr3d/base';
2
- import { AnimationTrack } from './animationtrack.js';
3
-
4
- /**
5
- * Translate animation track
6
- * @public
7
- */ class NodeTranslationTrack extends AnimationTrack {
8
- _state;
9
- _interpolator;
10
- constructor(modeOrInterpolator, keyFramesOrEmbedded, embedded){
11
- if (modeOrInterpolator instanceof Interpolator) {
12
- if (modeOrInterpolator.target !== 'vec3') {
13
- throw new Error(`TranslationTrack(): interpolator target must be 'vec3'`);
14
- }
15
- super(keyFramesOrEmbedded ?? false);
16
- this._interpolator = modeOrInterpolator;
17
- } else {
18
- const keyFrames = keyFramesOrEmbedded;
19
- const inputs = new Float32Array(keyFrames.map((val)=>val.time));
20
- const outputs = new Float32Array(keyFrames.length * 3);
21
- for(let i = 0; i < keyFrames.length; i++){
22
- outputs[i * 3 + 0] = keyFrames[i].value.x;
23
- outputs[i * 3 + 1] = keyFrames[i].value.y;
24
- outputs[i * 3 + 2] = keyFrames[i].value.z;
25
- }
26
- super(embedded ?? false);
27
- this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);
28
- }
29
- this._state = new Vector3();
30
- }
31
- calculateState(target, currentTime) {
32
- this._interpolator.interpolate(currentTime, this._state);
33
- return this._state;
34
- }
35
- applyState(node, state) {
36
- node.position.set(state);
37
- }
38
- mixState(a, b, t) {
39
- return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));
40
- }
41
- getBlendId() {
42
- return 'node-translation';
43
- }
44
- getDuration() {
45
- return this._interpolator.maxTime;
46
- }
47
- }
48
-
49
- export { NodeTranslationTrack };
50
- //# sourceMappingURL=translationtrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"translationtrack.js","sources":["../../../src/animation/translationtrack.ts"],"sourcesContent":["import type { InterpolationMode } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack } from './animationtrack';\r\nimport type { SceneNode } from '../scene';\r\n\r\n/**\r\n * Translate animation track\r\n * @public\r\n */\r\nexport class NodeTranslationTrack extends AnimationTrack<Vector3> {\r\n private readonly _state: Vector3;\r\n private readonly _interpolator: Interpolator;\r\n /**\r\n * Create an instance of TranslationTrack from keyframe values\r\n * @param interpolator - Interpolator object that contains the keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(interpolator: Interpolator, embedded?: boolean);\r\n /**\r\n * Create an instance of TranslationTrack from keyframe values\r\n * @param mode - The interpolation mode of keyframes\r\n * @param keyFrames - Keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(mode: InterpolationMode, keyFrames: { time: number; value: Vector3 }[], embedded?: boolean);\r\n constructor(\r\n modeOrInterpolator?: Interpolator | InterpolationMode,\r\n keyFramesOrEmbedded?: { time: number; value: Vector3 }[] | boolean,\r\n embedded?: boolean\r\n ) {\r\n if (modeOrInterpolator instanceof Interpolator) {\r\n if (modeOrInterpolator.target !== 'vec3') {\r\n throw new Error(`TranslationTrack(): interpolator target must be 'vec3'`);\r\n }\r\n super((keyFramesOrEmbedded as boolean) ?? false);\r\n this._interpolator = modeOrInterpolator;\r\n } else {\r\n const keyFrames = keyFramesOrEmbedded as { time: number; value: Vector3 }[];\r\n const inputs = new Float32Array(keyFrames.map((val) => val.time));\r\n const outputs = new Float32Array(keyFrames.length * 3);\r\n for (let i = 0; i < keyFrames.length; i++) {\r\n outputs[i * 3 + 0] = keyFrames[i].value.x;\r\n outputs[i * 3 + 1] = keyFrames[i].value.y;\r\n outputs[i * 3 + 2] = keyFrames[i].value.z;\r\n }\r\n super(embedded ?? false);\r\n this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);\r\n }\r\n this._state = new Vector3();\r\n }\r\n calculateState(target: object, currentTime: number): Vector3 {\r\n this._interpolator.interpolate(currentTime, this._state);\r\n return this._state;\r\n }\r\n applyState(node: SceneNode, state: Vector3) {\r\n node.position.set(state);\r\n }\r\n mixState(a: Vector3, b: Vector3, t: number): Vector3 {\r\n return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));\r\n }\r\n getBlendId(): unknown {\r\n return 'node-translation';\r\n }\r\n getDuration(): number {\r\n return this._interpolator.maxTime;\r\n }\r\n}\r\n"],"names":["NodeTranslationTrack","AnimationTrack","_state","_interpolator","modeOrInterpolator","keyFramesOrEmbedded","embedded","Interpolator","target","Error","keyFrames","inputs","Float32Array","map","val","time","outputs","length","i","value","x","y","z","Vector3","calculateState","currentTime","interpolate","applyState","node","state","position","set","mixState","a","b","t","getBlendId","getDuration","maxTime"],"mappings":";;;AAKA;;;IAIO,MAAMA,oBAA6BC,SAAAA,cAAAA,CAAAA;IACvBC,MAAgB;IAChBC,aAA4B;AAc7C,IAAA,WAAA,CACEC,kBAAqD,EACrDC,mBAAkE,EAClEC,QAAkB,CAClB;AACA,QAAA,IAAIF,8BAA8BG,YAAc,EAAA;YAC9C,IAAIH,kBAAAA,CAAmBI,MAAM,KAAK,MAAQ,EAAA;AACxC,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,sDAAsD,CAAC,CAAA;AAC1E;YACA,KAAK,CAAC,mBAAoC,IAAA,KAAA,CAAA;YAC1C,IAAI,CAACN,aAAa,GAAGC,kBAAAA;SAChB,MAAA;AACL,YAAA,MAAMM,SAAYL,GAAAA,mBAAAA;YAClB,MAAMM,MAAAA,GAAS,IAAIC,YAAaF,CAAAA,SAAAA,CAAUG,GAAG,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,CAAA,CAAA;AAC/D,YAAA,MAAMC,OAAU,GAAA,IAAIJ,YAAaF,CAAAA,SAAAA,CAAUO,MAAM,GAAG,CAAA,CAAA;AACpD,YAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIR,SAAUO,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;gBACzCF,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACC,CAAC;gBACzCJ,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACE,CAAC;gBACzCL,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACG,CAAC;AAC3C;AACA,YAAA,KAAK,CAAChB,QAAY,IAAA,KAAA,CAAA;AAClB,YAAA,IAAI,CAACH,aAAa,GAAG,IAAII,YAAaH,CAAAA,kBAAAA,EAAoB,QAAQO,MAAQK,EAAAA,OAAAA,CAAAA;AAC5E;QACA,IAAI,CAACd,MAAM,GAAG,IAAIqB,OAAAA,EAAAA;AACpB;IACAC,cAAehB,CAAAA,MAAc,EAAEiB,WAAmB,EAAW;QAC3D,IAAI,CAACtB,aAAa,CAACuB,WAAW,CAACD,WAAa,EAAA,IAAI,CAACvB,MAAM,CAAA;QACvD,OAAO,IAAI,CAACA,MAAM;AACpB;IACAyB,UAAWC,CAAAA,IAAe,EAAEC,KAAc,EAAE;QAC1CD,IAAKE,CAAAA,QAAQ,CAACC,GAAG,CAACF,KAAAA,CAAAA;AACpB;AACAG,IAAAA,QAAAA,CAASC,CAAU,EAAEC,CAAU,EAAEC,CAAS,EAAW;AACnD,QAAA,OAAO,IAAIZ,OAAQU,CAAAA,CAAAA,CAAEb,CAAC,GAAGe,KAAKD,CAAAA,CAAEd,CAAC,GAAGa,EAAEb,CAAAA,CAAIa,EAAAA,CAAAA,CAAEZ,CAAC,GAAGc,CAAAA,IAAKD,CAAAA,CAAEb,CAAC,GAAGY,CAAAA,CAAEZ,CAAAA,GAAIY,CAAEX,CAAAA,CAAC,GAAGa,CAAAA,IAAKD,CAAEZ,CAAAA,CAAC,GAAGW,CAAAA,CAAEX,CAAC,CAADA,CAAAA;AACtF;IACAc,UAAsB,GAAA;QACpB,OAAO,kBAAA;AACT;IACAC,WAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAClC,aAAa,CAACmC,OAAO;AACnC;AACF;;;;"}