@woosh/meep-engine 3.42.0 → 3.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/editor/prototypeEditorShell.d.ts.map +1 -1
  2. package/editor/prototypeEditorShell.js +4 -2
  3. package/package.json +91 -96
  4. package/src/engine/Clock.d.ts +15 -0
  5. package/src/engine/Clock.d.ts.map +1 -1
  6. package/src/engine/Clock.js +29 -5
  7. package/src/engine/Engine.d.ts.map +1 -1
  8. package/src/engine/Engine.js +11 -19
  9. package/src/engine/graphics/ecs/mesh-v2/MeshSkin.d.ts +57 -0
  10. package/src/engine/graphics/ecs/mesh-v2/MeshSkin.d.ts.map +1 -0
  11. package/src/engine/graphics/ecs/mesh-v2/MeshSkin.js +84 -0
  12. package/src/engine/graphics3/AnimationGraphSystem.d.ts +23 -13
  13. package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
  14. package/src/engine/graphics3/AnimationGraphSystem.js +61 -64
  15. package/src/engine/graphics3/AnimationSystem.d.ts +24 -15
  16. package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
  17. package/src/engine/graphics3/AnimationSystem.js +67 -61
  18. package/src/engine/graphics3/MeshSkinSystem.d.ts +56 -0
  19. package/src/engine/graphics3/MeshSkinSystem.d.ts.map +1 -0
  20. package/src/engine/graphics3/MeshSkinSystem.js +317 -0
  21. package/src/engine/graphics3/MeshSystem.d.ts +15 -35
  22. package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
  23. package/src/engine/graphics3/MeshSystem.js +21 -298
  24. package/src/engine/graphics3/RowChains.d.ts +76 -0
  25. package/src/engine/graphics3/RowChains.d.ts.map +1 -0
  26. package/src/engine/graphics3/RowChains.js +347 -0
  27. package/src/engine/graphics3/ShadedGeometrySystem.d.ts +6 -0
  28. package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
  29. package/src/engine/graphics3/ShadedGeometrySystem.js +329 -309
  30. package/src/engine/graphics3/animation/AnimationClips.d.ts +56 -0
  31. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -0
  32. package/src/engine/graphics3/animation/AnimationClips.js +79 -0
  33. package/src/engine/graphics3/animation/ClipListPlayer.d.ts +13 -14
  34. package/src/engine/graphics3/animation/ClipListPlayer.d.ts.map +1 -1
  35. package/src/engine/graphics3/animation/ClipListPlayer.js +262 -263
  36. package/src/engine/graphics3/animation/write_clip_playback.d.ts +3 -3
  37. package/src/engine/graphics3/animation/write_clip_playback.js +4 -4
  38. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +5 -0
  39. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
  40. package/src/engine/graphics3/pose/query_entity_node_world_pose.js +80 -75
  41. package/src/engine/graphics3/prefab/PrefabInstance.d.ts +4 -24
  42. package/src/engine/graphics3/prefab/PrefabInstance.d.ts.map +1 -1
  43. package/src/engine/graphics3/prefab/PrefabInstance.js +60 -80
  44. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts +16 -3
  45. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -1
  46. package/src/engine/graphics3/prefab/prefab_instantiate.js +49 -12
  47. package/src/engine/graphics3/prefab/prefab_place.d.ts +31 -17
  48. package/src/engine/graphics3/prefab/prefab_place.d.ts.map +1 -1
  49. package/src/engine/graphics3/prefab/prefab_place.js +175 -130
  50. package/src/engine/graphics3/register_clips.d.ts +64 -0
  51. package/src/engine/graphics3/register_clips.d.ts.map +1 -0
  52. package/src/engine/graphics3/register_clips.js +114 -0
  53. package/src/engine/physics/cloth/MEASUREMENTS.md +795 -0
  54. package/src/engine/physics/cloth/PLAN.md +339 -9
  55. package/src/engine/physics/cloth/build/ClothProxy.d.ts +113 -61
  56. package/src/engine/physics/cloth/build/ClothProxy.d.ts.map +1 -1
  57. package/src/engine/physics/cloth/build/ClothProxy.js +142 -77
  58. package/src/engine/physics/cloth/build/cloth_bind_in_frame.d.ts +22 -0
  59. package/src/engine/physics/cloth/build/cloth_bind_in_frame.d.ts.map +1 -0
  60. package/src/engine/physics/cloth/build/cloth_bind_in_frame.js +75 -0
  61. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +43 -30
  62. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
  63. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +357 -284
  64. package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.d.ts +62 -0
  65. package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.d.ts.map +1 -0
  66. package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.js +280 -0
  67. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts +1 -1
  68. package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +1 -1
  69. package/src/engine/physics/cloth/ecs/Cloth.d.ts +17 -9
  70. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
  71. package/src/engine/physics/cloth/ecs/Cloth.js +220 -212
  72. package/src/engine/physics/cloth/ecs/ClothDynamicsFlags.js +6 -0
  73. package/src/engine/physics/cloth/ecs/ClothHold.d.ts +91 -0
  74. package/src/engine/physics/cloth/ecs/ClothHold.d.ts.map +1 -0
  75. package/src/engine/physics/cloth/ecs/ClothHold.js +103 -0
  76. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +254 -48
  77. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
  78. package/src/engine/physics/cloth/ecs/ClothInstance.js +277 -47
  79. package/src/engine/physics/cloth/ecs/ClothPin.d.ts +73 -0
  80. package/src/engine/physics/cloth/ecs/ClothPin.d.ts.map +1 -0
  81. package/src/engine/physics/cloth/ecs/ClothPin.js +92 -0
  82. package/src/engine/physics/cloth/ecs/ClothPinSerializationAdapter.d.ts +36 -0
  83. package/src/engine/physics/cloth/ecs/ClothPinSerializationAdapter.d.ts.map +1 -0
  84. package/src/engine/physics/cloth/ecs/ClothPinSerializationAdapter.js +61 -0
  85. package/src/engine/physics/cloth/ecs/ClothRig.d.ts +23 -17
  86. package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -1
  87. package/src/engine/physics/cloth/ecs/ClothRig.js +29 -27
  88. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +12 -14
  89. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
  90. package/src/engine/physics/cloth/ecs/ClothSystem.js +20 -15
  91. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts +57 -36
  92. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
  93. package/src/engine/physics/cloth/ecs/ClothWorld.js +816 -179
  94. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts +12 -13
  95. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts.map +1 -1
  96. package/src/engine/physics/cloth/ecs/WorkerClothSystem.js +20 -14
  97. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts +63 -11
  98. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
  99. package/src/engine/physics/cloth/ecs/cloth_build_rows.js +321 -84
  100. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts +9 -7
  101. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts.map +1 -1
  102. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.js +9 -7
  103. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts +3 -3
  104. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.js +30 -30
  105. package/src/engine/physics/cloth/ecs/cloth_geodesic.d.ts +37 -0
  106. package/src/engine/physics/cloth/ecs/cloth_geodesic.d.ts.map +1 -0
  107. package/src/engine/physics/cloth/ecs/cloth_geodesic.js +142 -0
  108. package/src/engine/physics/cloth/ecs/cloth_holds.d.ts +97 -0
  109. package/src/engine/physics/cloth/ecs/cloth_holds.d.ts.map +1 -0
  110. package/src/engine/physics/cloth/ecs/cloth_holds.js +608 -0
  111. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts +2 -2
  112. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts.map +1 -1
  113. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.js +160 -9
  114. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +17 -22
  115. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
  116. package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +55 -117
  117. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts +21 -6
  118. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
  119. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +44 -15
  120. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts +5 -0
  121. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts.map +1 -1
  122. package/src/engine/physics/cloth/ecs/cloth_write_back.js +60 -16
  123. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -1
  124. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +65 -58
  125. package/src/engine/physics/cloth/playground/collide_main.js +1 -1
  126. package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -1
  127. package/src/engine/physics/cloth/playground/garment_build.js +17 -5
  128. package/src/engine/physics/cloth/playground/garment_main.js +1 -1
  129. package/src/engine/physics/cloth/playground/rig_build.d.ts.map +1 -1
  130. package/src/engine/physics/cloth/playground/rig_build.js +302 -296
  131. package/src/engine/physics/cloth/solver/ClothState.d.ts +45 -7
  132. package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
  133. package/src/engine/physics/cloth/solver/ClothState.js +63 -7
  134. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts +6 -1
  135. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
  136. package/src/engine/physics/cloth/solver/cloth_contact_find.js +7 -2
  137. package/src/engine/physics/cloth/solver/cloth_hold_line.d.ts +114 -0
  138. package/src/engine/physics/cloth/solver/cloth_hold_line.d.ts.map +1 -0
  139. package/src/engine/physics/cloth/solver/cloth_hold_line.js +362 -0
  140. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts +6 -2
  141. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -1
  142. package/src/engine/physics/cloth/solver/cloth_self_find.js +13 -13
  143. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +24 -12
  144. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -1
  145. package/src/engine/physics/cloth/solver/cloth_solver_constants.js +24 -12
  146. package/src/engine/physics/cloth/solver/cloth_step.d.ts +16 -0
  147. package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
  148. package/src/engine/physics/cloth/solver/cloth_step.js +183 -20
  149. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts +1 -0
  150. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -1
  151. package/src/engine/physics/cloth/solver/cloth_step_instance.js +10 -3
  152. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.d.ts +1 -1
  153. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.d.ts.map +1 -1
  154. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.js +353 -346
  155. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts +7 -5
  156. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts.map +1 -1
  157. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.js +7 -5
  158. package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts +9 -9
  159. package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts.map +1 -1
  160. package/src/engine/physics/cloth/wind/cloth_sample_air.js +26 -26
  161. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  162. package/src/engine/simulation/Ticker.d.ts +13 -0
  163. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  164. package/src/engine/simulation/Ticker.js +43 -8
  165. package/src/shade/RENDERER_CONTRACT.md +8 -2
  166. package/src/shade/playground/mesh_row_ceiling/main.js +2 -1
  167. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  168. package/src/shade/playground/skinned_blas_refit/main.js +11 -19
  169. package/src/shade/playground/skinned_blas_refit/place_character.d.ts +6 -3
  170. package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -1
  171. package/src/shade/playground/skinned_blas_refit/place_character.js +90 -90
  172. package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
  173. package/src/shade/playground/skinned_mesh_soup/main.js +502 -509
  174. package/src/shade/playground/texture_encode/README.md +129 -109
  175. package/src/shade/playground/texture_encode/main.js +1430 -1430
  176. package/src/shade/playground/vgeo_runtime/README.md +5 -4
  177. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  178. package/src/shade/renderer/Renderer.js +6 -5
  179. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +45 -14
  180. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  181. package/src/shade/renderer/animation/GPUAnimationManager.js +316 -64
  182. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +5 -0
  183. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  184. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +11 -1
  185. package/src/shade/renderer/atmosphere/GPUSky.d.ts +12 -0
  186. package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
  187. package/src/shade/renderer/atmosphere/GPUSky.js +162 -147
  188. package/src/shade/renderer/geometry/BoxGeometry.d.ts +1 -11
  189. package/src/shade/renderer/geometry/BoxGeometry.d.ts.map +1 -1
  190. package/src/shade/renderer/geometry/BoxGeometry.js +6 -13
  191. package/src/shade/renderer/geometry/CapsuleGeometry.d.ts +19 -0
  192. package/src/shade/renderer/geometry/CapsuleGeometry.d.ts.map +1 -0
  193. package/src/shade/renderer/geometry/CapsuleGeometry.js +24 -0
  194. package/src/shade/renderer/geometry/ConeGeometry.d.ts +20 -0
  195. package/src/shade/renderer/geometry/ConeGeometry.d.ts.map +1 -0
  196. package/src/shade/renderer/geometry/ConeGeometry.js +33 -0
  197. package/src/shade/renderer/geometry/CylinderGeometry.d.ts +21 -0
  198. package/src/shade/renderer/geometry/CylinderGeometry.d.ts.map +1 -0
  199. package/src/shade/renderer/geometry/CylinderGeometry.js +35 -0
  200. package/src/shade/renderer/geometry/PlaneGeometry.d.ts +17 -0
  201. package/src/shade/renderer/geometry/PlaneGeometry.d.ts.map +1 -0
  202. package/src/shade/renderer/geometry/PlaneGeometry.js +22 -0
  203. package/src/shade/renderer/geometry/TorusGeometry.d.ts +18 -0
  204. package/src/shade/renderer/geometry/TorusGeometry.d.ts.map +1 -0
  205. package/src/shade/renderer/geometry/TorusGeometry.js +23 -0
  206. package/src/shade/renderer/geometry/UVSphereGeometry.d.ts +21 -0
  207. package/src/shade/renderer/geometry/UVSphereGeometry.d.ts.map +1 -0
  208. package/src/shade/renderer/geometry/UVSphereGeometry.js +34 -0
  209. package/src/shade/renderer/geometry/primitives/make_capsule_geometry.d.ts +19 -0
  210. package/src/shade/renderer/geometry/primitives/make_capsule_geometry.d.ts.map +1 -0
  211. package/src/shade/renderer/geometry/primitives/make_capsule_geometry.js +205 -0
  212. package/src/shade/renderer/geometry/primitives/make_cone_geometry.d.ts +21 -0
  213. package/src/shade/renderer/geometry/primitives/make_cone_geometry.d.ts.map +1 -0
  214. package/src/shade/renderer/geometry/primitives/make_cone_geometry.js +36 -0
  215. package/src/shade/renderer/geometry/primitives/make_cylinder_geometry.d.ts +1 -1
  216. package/src/shade/renderer/geometry/primitives/make_cylinder_geometry.d.ts.map +1 -1
  217. package/src/shade/renderer/geometry/primitives/make_cylinder_geometry.js +44 -9
  218. package/src/shade/renderer/geometry/primitives/make_uv_sphere_geometry.d.ts +20 -0
  219. package/src/shade/renderer/geometry/primitives/make_uv_sphere_geometry.d.ts.map +1 -0
  220. package/src/shade/renderer/geometry/primitives/make_uv_sphere_geometry.js +190 -0
  221. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -1
  222. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +7 -2
  223. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts +26 -8
  224. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts.map +1 -1
  225. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.js +56 -39
  226. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts +7 -0
  227. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts.map +1 -1
  228. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.js +46 -4
  229. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.d.ts.map +1 -1
  230. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.js +4 -2
  231. package/src/shade/renderer/gpu_primitive/sort/defs.d.ts +2 -2
  232. package/src/shade/renderer/gpu_primitive/sort/defs.js +79 -79
  233. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +1 -1
  234. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
  235. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +7 -3
  236. package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.d.ts.map +1 -1
  237. package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js +10 -3
  238. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  239. package/src/shade/renderer/particles/DESIGN.md +13 -9
  240. package/src/shade/renderer/particles/GPUParticleSystem.js +1 -1
  241. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +4 -3
  242. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
  243. package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +200 -194
  244. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  245. package/src/shade/renderer/particles/graph_particles.js +6 -2
  246. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +1 -1
  247. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +1 -1
  248. package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts.map +1 -1
  249. package/src/shade/renderer/particles/warmup/graph_particle_warmup.js +334 -329
  250. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  251. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
  252. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +7 -2
  253. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts.map +1 -1
  254. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.js +16 -4
  255. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +3 -2
  256. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -1
  257. package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +3 -2
  258. package/src/shade/renderer/scene/GPUSceneContext.d.ts +9 -1
  259. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  260. package/src/shade/renderer/scene/GPUSceneContext.js +23 -1
  261. package/src/shade/renderer/texture/COMPRESSED_TEXTURE_PLAN_2026_09_01.md +2444 -2345
  262. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.d.ts.map +1 -1
  263. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.js +312 -310
  264. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts +3 -3
  265. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts.map +1 -1
  266. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.js +383 -375
  267. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.d.ts.map +1 -1
  268. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.js +349 -346
  269. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block.d.ts +58 -0
  270. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block.d.ts.map +1 -0
  271. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block.js +536 -0
  272. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts +21 -7
  273. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts.map +1 -1
  274. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.js +291 -327
  275. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode1.d.ts +25 -0
  276. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode1.d.ts.map +1 -0
  277. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode1.js +99 -0
  278. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts +5 -3
  279. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts.map +1 -1
  280. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.js +47 -71
  281. package/src/shade/renderer/texture/encode/chunk_bc7_partition_2.d.ts +10 -0
  282. package/src/shade/renderer/texture/encode/chunk_bc7_partition_2.d.ts.map +1 -0
  283. package/src/shade/renderer/texture/encode/chunk_bc7_partition_2.js +50 -0
  284. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts +4 -5
  285. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts.map +1 -1
  286. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.js +7 -8
  287. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +4 -1
  288. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  289. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +74 -3
  290. package/src/shade/renderer/volumetrics/NOTES.md +1023 -957
  291. package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts +5 -4
  292. package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.d.ts.map +1 -1
  293. package/src/shade/renderer/volumetrics/chunk_volumetrics_irradiance_sh.js +5 -4
  294. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.d.ts +1 -1
  295. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +1 -1
  296. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.d.ts +1 -1
  297. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +1 -1
  298. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts +41 -0
  299. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.d.ts.map +1 -0
  300. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +112 -0
  301. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +9 -23
  302. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  303. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +18 -126
  304. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts +22 -0
  305. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.d.ts.map +1 -0
  306. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +228 -0
  307. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
  308. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +0 -53
  309. package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
  310. package/src/shade/renderer/water/chunk_water_transport.js +7 -5
  311. package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +1 -1
  312. package/src/shade/renderer/water/medium/GPUWaterBodies.js +8 -2
  313. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts +3 -2
  314. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts.map +1 -1
  315. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.js +3 -2
  316. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  317. package/src/shade/renderer/water/shader_water.js +3 -1
  318. package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts.map +1 -1
  319. package/src/shade/renderer/water/surface/GPUWaterSurface.js +3 -1
  320. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts +4 -3
  321. package/src/shade/renderer/water/surface/chunk_water_surface_sample.d.ts.map +1 -1
  322. package/src/shade/renderer/water/surface/chunk_water_surface_sample.js +17 -7
  323. package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts.map +1 -1
  324. package/src/shade/renderer/water/surface/graph_water_tessellation.js +11 -4
  325. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
  326. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +93 -30
  327. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.d.ts.map +1 -1
  328. package/src/shade/renderer/water/surface/particles/WATER_PARTICLE_STRUCT.js +13 -5
  329. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts +29 -8
  330. package/src/shade/renderer/water/surface/particles/chunk_water_particle.d.ts.map +1 -1
  331. package/src/shade/renderer/water/surface/particles/chunk_water_particle.js +155 -30
  332. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts +6 -1
  333. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.d.ts.map +1 -1
  334. package/src/shade/renderer/water/surface/particles/chunk_water_particle_step.js +157 -39
  335. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts +91 -21
  336. package/src/shade/renderer/water/surface/particles/shader_water_particles.d.ts.map +1 -1
  337. package/src/shade/renderer/water/surface/particles/shader_water_particles.js +442 -70
  338. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +11 -3
  339. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  340. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +3 -0
  341. package/src/shade/wgsl/validate_wgsl_source.d.ts.map +1 -1
  342. package/src/shade/wgsl/validate_wgsl_source.js +74 -3
  343. package/src/engine/graphics3/register_instance_animation.d.ts +0 -114
  344. package/src/engine/graphics3/register_instance_animation.d.ts.map +0 -1
  345. package/src/engine/graphics3/register_instance_animation.js +0 -201
@@ -1,148 +1,163 @@
1
- import { FrameGraph } from "../../../engine/graphics/render/frame_graph/FrameGraph.js";
2
- import { TextureResourceDescriptor } from "../../device/graph/TextureResourceDescriptor.js";
3
- import { ShadeGPUCommandContext } from "../../device/ShadeGPUCommandContext.js";
4
- import { graph_compute_pass } from "../shader/graph/compute/graph_compute_pass.js";
5
- import { graph_image_pass } from "../shader/graph/graph_image_pass.js";
6
- import { debug_draw_texture } from "../texture/debug_draw_texture.js";
7
- import { GPUTextureContext } from "../texture/GPUTextureContext.js";
8
- import { shader_multiscatter_lut } from "./shader_multiscatter_lut.js";
9
- import { shader_transmittance_lut } from "./shader_transmittance_lut.js";
10
-
11
- export class GPUSky {
12
-
13
- /**
14
- * @type {GraphicsContext}
15
- */
16
- #graphics;
17
-
18
- /**
19
- * @type {GPUTextureContext}
20
- */
21
- #lut_transmittance;
22
-
23
- /**
24
- *
25
- * @returns {GPUTextureContext}
26
- */
27
- get lut_transmittance() {
28
- return this.#lut_transmittance;
29
- }
30
-
31
- /**
32
- * @type {GPUTextureContext}
33
- */
34
- #lut_multiple_scattering;
35
-
36
- /**
37
- *
38
- * @returns {GPUTextureContext}
39
- */
40
- get lut_multiple_scattering() {
41
- return this.#lut_multiple_scattering;
42
- }
43
-
44
- /**
45
- *
46
- * @type {boolean}
47
- */
48
- #needs_update = true;
49
-
50
- /**
51
- *
52
- * @param {GraphicsContext} graphics
53
- */
54
- constructor(graphics) {
55
- this.#graphics = graphics;
56
-
57
- const device = graphics.device;
58
-
59
- this.#lut_transmittance = new GPUTextureContext(device);
60
- this.#lut_transmittance.descriptor.label = "Sky / Transmittance LUT";
61
- this.#lut_transmittance.descriptor.format = "rgba16float";
62
- this.#lut_transmittance.descriptor.usage = GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC;
63
- this.#lut_transmittance.resize(256, 64);
64
-
65
- this.#lut_multiple_scattering = new GPUTextureContext(device);
66
- this.#lut_multiple_scattering.descriptor.label = "Sky / Multiple Scattering LUT";
67
- this.#lut_multiple_scattering.descriptor.format = "rgba16float";
68
- // written by a compute shader, so STORAGE_BINDING rather than RENDER_ATTACHMENT
69
- this.#lut_multiple_scattering.descriptor.usage = GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC;
70
- this.#lut_multiple_scattering.resize(32, 32);
71
-
72
-
73
- }
74
-
75
- destroy() {
76
- this.#lut_transmittance.destroy();
77
- this.#lut_multiple_scattering.destroy();
78
- }
79
-
80
- debug() {
81
-
82
-
83
- let y = 50;
84
- debug_draw_texture({ texture: this.#lut_transmittance, x: 50, y: y });
85
-
86
- y += this.#lut_transmittance.size[1] + 50;
87
-
88
- debug_draw_texture({ texture: this.#lut_multiple_scattering, x: 50, y: y });
89
-
90
- y += this.#lut_multiple_scattering.size[1] + 50;
91
-
92
- }
93
-
94
- /**
95
- *
96
- */
97
- update() {
98
- if (!this.#needs_update) {
99
- return;
100
- }
101
-
102
- const graph = new FrameGraph("sky update");
103
-
104
- const command_ctx = ShadeGPUCommandContext.create(
105
- this.#graphics,
106
- "Renderer/main"
107
- );
108
-
109
- const gr_transmittance = graph.import_resource("transmittance", TextureResourceDescriptor.fromTexture(this.#lut_transmittance.gpu_texture), this.#lut_transmittance);
110
- const gr_multiscatter = graph.import_resource("multiscatter", TextureResourceDescriptor.fromTexture(this.#lut_multiple_scattering.gpu_texture), this.#lut_multiple_scattering);
111
-
112
- // the handle the write produced, not the one imported: binding the pre-write version below
113
- // is a superseded read, which is exactly what `validate()` rejects
114
- const [gr_transmittance_written] = graph_image_pass({
115
- graph,
116
- shader: shader_transmittance_lut,
117
- inputs: {
118
- settings: {
119
- steps: 40,
120
- // read off the texture rather than restated, so the two cannot disagree
121
- resolution: [this.#lut_transmittance.width, this.#lut_transmittance.height],
122
- }
123
- },
124
- output: [gr_transmittance]
125
- });
126
-
127
-
128
- graph_compute_pass({
129
- graph,
130
- shader: shader_multiscatter_lut,
131
- // one workgroup per LUT texel, counted off the texture being written so the
132
- // dispatch cannot cover a different area than the shader stores into
133
- group_count: [this.#lut_multiple_scattering.width, this.#lut_multiple_scattering.height, 1],
134
- bindings: {
135
- tSkyLutTransmittance: gr_transmittance_written,
136
- tSkyLutMultiscatterOut: gr_multiscatter
137
- }
138
- });
139
-
140
- command_ctx.encodeGraph(graph);
141
-
142
- command_ctx.finish();
143
-
144
-
145
- this.#needs_update = false;
146
- }
147
-
1
+ import { FrameGraph } from "../../../engine/graphics/render/frame_graph/FrameGraph.js";
2
+ import { TextureResourceDescriptor } from "../../device/graph/TextureResourceDescriptor.js";
3
+ import { ShadeGPUCommandContext } from "../../device/ShadeGPUCommandContext.js";
4
+ import { graph_compute_pass } from "../shader/graph/compute/graph_compute_pass.js";
5
+ import { graph_image_pass } from "../shader/graph/graph_image_pass.js";
6
+ import { debug_draw_texture } from "../texture/debug_draw_texture.js";
7
+ import { GPUTextureContext } from "../texture/GPUTextureContext.js";
8
+ import { shader_multiscatter_lut } from "./shader_multiscatter_lut.js";
9
+ import { shader_transmittance_lut } from "./shader_transmittance_lut.js";
10
+
11
+ /**
12
+ * @typedef {import("../GraphicsContext.js").GraphicsContext} GraphicsContext
13
+ */
14
+
15
+ export class GPUSky {
16
+
17
+ /**
18
+ * @type {GraphicsContext}
19
+ */
20
+ #graphics;
21
+
22
+ /**
23
+ * @type {GPUTextureContext}
24
+ */
25
+ #lut_transmittance;
26
+
27
+ /**
28
+ *
29
+ * @returns {GPUTextureContext}
30
+ */
31
+ get lut_transmittance() {
32
+ return this.#lut_transmittance;
33
+ }
34
+
35
+ /**
36
+ * @type {GPUTextureContext}
37
+ */
38
+ #lut_multiple_scattering;
39
+
40
+ /**
41
+ *
42
+ * @returns {GPUTextureContext}
43
+ */
44
+ get lut_multiple_scattering() {
45
+ return this.#lut_multiple_scattering;
46
+ }
47
+
48
+ /**
49
+ *
50
+ * @type {boolean}
51
+ */
52
+ #needs_update = true;
53
+
54
+ /**
55
+ * Whether the LUTs still hold nothing a reader could use: true until the first {@link update}.
56
+ * What reads {@link lut_transmittance} or {@link lut_multiple_scattering} has to see this false,
57
+ * as a texture nobody wrote reads as zero rather than failing.
58
+ *
59
+ * @returns {boolean}
60
+ */
61
+ get needs_update() {
62
+ return this.#needs_update;
63
+ }
64
+
65
+ /**
66
+ *
67
+ * @param {GraphicsContext} graphics
68
+ */
69
+ constructor(graphics) {
70
+ this.#graphics = graphics;
71
+
72
+ const device = graphics.device;
73
+
74
+ this.#lut_transmittance = new GPUTextureContext(device);
75
+ this.#lut_transmittance.descriptor.label = "Sky / Transmittance LUT";
76
+ this.#lut_transmittance.descriptor.format = "rgba16float";
77
+ this.#lut_transmittance.descriptor.usage = GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC;
78
+ this.#lut_transmittance.resize(256, 64);
79
+
80
+ this.#lut_multiple_scattering = new GPUTextureContext(device);
81
+ this.#lut_multiple_scattering.descriptor.label = "Sky / Multiple Scattering LUT";
82
+ this.#lut_multiple_scattering.descriptor.format = "rgba16float";
83
+ // written by a compute shader, so STORAGE_BINDING rather than RENDER_ATTACHMENT
84
+ this.#lut_multiple_scattering.descriptor.usage = GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC;
85
+ this.#lut_multiple_scattering.resize(32, 32);
86
+
87
+
88
+ }
89
+
90
+ destroy() {
91
+ this.#lut_transmittance.destroy();
92
+ this.#lut_multiple_scattering.destroy();
93
+ }
94
+
95
+ debug() {
96
+
97
+
98
+ let y = 50;
99
+ debug_draw_texture({ texture: this.#lut_transmittance, x: 50, y: y });
100
+
101
+ y += this.#lut_transmittance.size[1] + 50;
102
+
103
+ debug_draw_texture({ texture: this.#lut_multiple_scattering, x: 50, y: y });
104
+
105
+ y += this.#lut_multiple_scattering.size[1] + 50;
106
+
107
+ }
108
+
109
+ /**
110
+ *
111
+ */
112
+ update() {
113
+ if (!this.#needs_update) {
114
+ return;
115
+ }
116
+
117
+ const graph = new FrameGraph("sky update");
118
+
119
+ const command_ctx = ShadeGPUCommandContext.create(
120
+ this.#graphics,
121
+ "Renderer/main"
122
+ );
123
+
124
+ const gr_transmittance = graph.import_resource("transmittance", TextureResourceDescriptor.fromTexture(this.#lut_transmittance.gpu_texture), this.#lut_transmittance);
125
+ const gr_multiscatter = graph.import_resource("multiscatter", TextureResourceDescriptor.fromTexture(this.#lut_multiple_scattering.gpu_texture), this.#lut_multiple_scattering);
126
+
127
+ // the handle the write produced, not the one imported: binding the pre-write version below
128
+ // is a superseded read, which is exactly what `validate()` rejects
129
+ const [gr_transmittance_written] = graph_image_pass({
130
+ graph,
131
+ shader: shader_transmittance_lut,
132
+ inputs: {
133
+ settings: {
134
+ steps: 40,
135
+ // read off the texture rather than restated, so the two cannot disagree
136
+ resolution: [this.#lut_transmittance.width, this.#lut_transmittance.height],
137
+ }
138
+ },
139
+ output: [gr_transmittance]
140
+ });
141
+
142
+
143
+ graph_compute_pass({
144
+ graph,
145
+ shader: shader_multiscatter_lut,
146
+ // one workgroup per LUT texel, counted off the texture being written so the
147
+ // dispatch cannot cover a different area than the shader stores into
148
+ group_count: [this.#lut_multiple_scattering.width, this.#lut_multiple_scattering.height, 1],
149
+ bindings: {
150
+ tSkyLutTransmittance: gr_transmittance_written,
151
+ tSkyLutMultiscatterOut: gr_multiscatter
152
+ }
153
+ });
154
+
155
+ command_ctx.encodeGraph(graph);
156
+
157
+ command_ctx.finish();
158
+
159
+
160
+ this.#needs_update = false;
161
+ }
162
+
148
163
  }
@@ -11,16 +11,6 @@ export class BoxGeometry extends MeshletGeometry {
11
11
  */
12
12
  constructor(width?: number, height?: number, depth?: number);
13
13
  }
14
- /**
15
- */
16
- export class PlaneGeometry extends MeshletGeometry {
17
- /**
18
- * @param {number} [width]
19
- * @param {number} [height]
20
- * @param {number} [widthSegments]
21
- * @param {number} [heightSegments]
22
- */
23
- constructor(width?: number, height?: number, widthSegments?: number, heightSegments?: number);
24
- }
14
+ export { PlaneGeometry } from "./PlaneGeometry.js";
25
15
  import { MeshletGeometry } from "./MeshletGeometry.js";
26
16
  //# sourceMappingURL=BoxGeometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoxGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/BoxGeometry.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH;IACI;;;;OAIG;IACH,oBAJW,MAAM,WACN,MAAM,UACN,MAAM,EAKhB;CACJ;AAED;GACG;AACH;IACI;;;;;OAKG;IACH,oBALW,MAAM,WACN,MAAM,kBACN,MAAM,mBACN,MAAM,EAKhB;CACJ;gCAlC+B,sBAAsB"}
1
+ {"version":3,"file":"BoxGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/BoxGeometry.js"],"names":[],"mappings":"AAIA;;;;GAIG;AACH;IACI;;;;OAIG;IACH,oBAJW,MAAM,WACN,MAAM,UACN,MAAM,EAKhB;CACJ;;gCAlB+B,sBAAsB"}
@@ -1,7 +1,6 @@
1
1
  import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
2
  import { MeshletGeometry } from "./MeshletGeometry.js";
3
3
  import { make_box_geometry } from "./primitives/make_box_geometry.js";
4
- import { make_plane_geometry } from "./primitives/make_plane_geometry.js";
5
4
 
6
5
  /**
7
6
  * Axis-aligned box, ready to render. Constructs a regular triangulated
@@ -20,17 +19,11 @@ export class BoxGeometry extends MeshletGeometry {
20
19
  }
21
20
  }
22
21
 
23
- /**
24
- */
25
- export class PlaneGeometry extends MeshletGeometry {
22
+ export {
23
+ // The tag goes on the specifier, inside the braces: on the statement, TypeScript never sees it.
26
24
  /**
27
- * @param {number} [width]
28
- * @param {number} [height]
29
- * @param {number} [widthSegments]
30
- * @param {number} [heightSegments]
25
+ * @deprecated `PlaneGeometry` moved to its own module, one class per file like every other
26
+ * primitive. Import {@link PlaneGeometry} from "./PlaneGeometry.js" instead.
31
27
  */
32
- constructor(width = 1, height = 1, widthSegments = 1, heightSegments = 1) {
33
- super();
34
- meshlet_geometry_build_from_geometry(make_plane_geometry(width, height, widthSegments, heightSegments), this);
35
- }
36
- }
28
+ PlaneGeometry
29
+ } from "./PlaneGeometry.js";
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Capsule along the Y axis, ready to render: the same shape a `CapsuleShape3D` of the same radius
3
+ * and height describes. Constructs a regular triangulated `Geometry` and immediately converts it to
4
+ * the meshlet representation the renderer consumes.
5
+ *
6
+ * @see make_capsule_geometry
7
+ */
8
+ export class CapsuleGeometry extends MeshletGeometry {
9
+ /**
10
+ * @param {number} [radius]
11
+ * @param {number} [height] length of the straight section, not counting the caps
12
+ * @param {number} [capSegments] segments from each pole to the equator
13
+ * @param {number} [radialSegments] segments around the axis
14
+ * @param {number} [heightSegments] segments along the straight section
15
+ */
16
+ constructor(radius?: number, height?: number, capSegments?: number, radialSegments?: number, heightSegments?: number);
17
+ }
18
+ import { MeshletGeometry } from "./MeshletGeometry.js";
19
+ //# sourceMappingURL=CapsuleGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CapsuleGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/CapsuleGeometry.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH;IACI;;;;;;OAMG;IACH,qBANW,MAAM,WACN,MAAM,gBACN,MAAM,mBACN,MAAM,mBACN,MAAM,EAKhB;CACJ;gCAtB+B,sBAAsB"}
@@ -0,0 +1,24 @@
1
+ import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
+ import { MeshletGeometry } from "./MeshletGeometry.js";
3
+ import { make_capsule_geometry } from "./primitives/make_capsule_geometry.js";
4
+
5
+ /**
6
+ * Capsule along the Y axis, ready to render: the same shape a `CapsuleShape3D` of the same radius
7
+ * and height describes. Constructs a regular triangulated `Geometry` and immediately converts it to
8
+ * the meshlet representation the renderer consumes.
9
+ *
10
+ * @see make_capsule_geometry
11
+ */
12
+ export class CapsuleGeometry extends MeshletGeometry {
13
+ /**
14
+ * @param {number} [radius]
15
+ * @param {number} [height] length of the straight section, not counting the caps
16
+ * @param {number} [capSegments] segments from each pole to the equator
17
+ * @param {number} [radialSegments] segments around the axis
18
+ * @param {number} [heightSegments] segments along the straight section
19
+ */
20
+ constructor(radius = 1, height = 1, capSegments = 4, radialSegments = 8, heightSegments = 1) {
21
+ super();
22
+ meshlet_geometry_build_from_geometry(make_capsule_geometry(radius, height, capSegments, radialSegments, heightSegments), this);
23
+ }
24
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cone along the Y axis with its apex at the top, ready to render. Constructs a regular triangulated
3
+ * `Geometry` and immediately converts it to the meshlet representation the renderer consumes.
4
+ *
5
+ * @see make_cone_geometry
6
+ */
7
+ export class ConeGeometry extends MeshletGeometry {
8
+ /**
9
+ * @param {number} [radius] radius of the base
10
+ * @param {number} [height]
11
+ * @param {number} [radialSegments] segments around the axis
12
+ * @param {number} [heightSegments] segments along the axis
13
+ * @param {boolean} [openEnded] leave the base off
14
+ * @param {number} [thetaStart]
15
+ * @param {number} [thetaLength] how much of the turn to build, in radians
16
+ */
17
+ constructor(radius?: number, height?: number, radialSegments?: number, heightSegments?: number, openEnded?: boolean, thetaStart?: number, thetaLength?: number);
18
+ }
19
+ import { MeshletGeometry } from "./MeshletGeometry.js";
20
+ //# sourceMappingURL=ConeGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConeGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/ConeGeometry.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IACI;;;;;;;;OAQG;IACH,qBARW,MAAM,WACN,MAAM,mBACN,MAAM,mBACN,MAAM,cACN,OAAO,eACP,MAAM,gBACN,MAAM,EAahB;CACJ;gCA/B+B,sBAAsB"}
@@ -0,0 +1,33 @@
1
+ import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
+ import { MeshletGeometry } from "./MeshletGeometry.js";
3
+ import { make_cone_geometry } from "./primitives/make_cone_geometry.js";
4
+
5
+ /**
6
+ * Cone along the Y axis with its apex at the top, ready to render. Constructs a regular triangulated
7
+ * `Geometry` and immediately converts it to the meshlet representation the renderer consumes.
8
+ *
9
+ * @see make_cone_geometry
10
+ */
11
+ export class ConeGeometry extends MeshletGeometry {
12
+ /**
13
+ * @param {number} [radius] radius of the base
14
+ * @param {number} [height]
15
+ * @param {number} [radialSegments] segments around the axis
16
+ * @param {number} [heightSegments] segments along the axis
17
+ * @param {boolean} [openEnded] leave the base off
18
+ * @param {number} [thetaStart]
19
+ * @param {number} [thetaLength] how much of the turn to build, in radians
20
+ */
21
+ constructor(
22
+ radius = 1,
23
+ height = 1,
24
+ radialSegments = 8,
25
+ heightSegments = 1,
26
+ openEnded = false,
27
+ thetaStart = 0,
28
+ thetaLength = Math.PI * 2
29
+ ) {
30
+ super();
31
+ meshlet_geometry_build_from_geometry(make_cone_geometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength), this);
32
+ }
33
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Cylinder along the Y axis, ready to render. Constructs a regular triangulated `Geometry` and
3
+ * immediately converts it to the meshlet representation the renderer consumes.
4
+ *
5
+ * @see make_cylinder_geometry
6
+ */
7
+ export class CylinderGeometry extends MeshletGeometry {
8
+ /**
9
+ * @param {number} [radiusTop]
10
+ * @param {number} [radiusBottom]
11
+ * @param {number} [height]
12
+ * @param {number} [radialSegments] segments around the axis
13
+ * @param {number} [heightSegments] segments along the axis
14
+ * @param {boolean} [openEnded] leave the caps off
15
+ * @param {number} [thetaStart]
16
+ * @param {number} [thetaLength] how much of the turn to build, in radians
17
+ */
18
+ constructor(radiusTop?: number, radiusBottom?: number, height?: number, radialSegments?: number, heightSegments?: number, openEnded?: boolean, thetaStart?: number, thetaLength?: number);
19
+ }
20
+ import { MeshletGeometry } from "./MeshletGeometry.js";
21
+ //# sourceMappingURL=CylinderGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CylinderGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/CylinderGeometry.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IACI;;;;;;;;;OASG;IACH,wBATW,MAAM,iBACN,MAAM,WACN,MAAM,mBACN,MAAM,mBACN,MAAM,cACN,OAAO,eACP,MAAM,gBACN,MAAM,EAchB;CACJ;gCAjC+B,sBAAsB"}
@@ -0,0 +1,35 @@
1
+ import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
+ import { MeshletGeometry } from "./MeshletGeometry.js";
3
+ import { make_cylinder_geometry } from "./primitives/make_cylinder_geometry.js";
4
+
5
+ /**
6
+ * Cylinder along the Y axis, ready to render. Constructs a regular triangulated `Geometry` and
7
+ * immediately converts it to the meshlet representation the renderer consumes.
8
+ *
9
+ * @see make_cylinder_geometry
10
+ */
11
+ export class CylinderGeometry extends MeshletGeometry {
12
+ /**
13
+ * @param {number} [radiusTop]
14
+ * @param {number} [radiusBottom]
15
+ * @param {number} [height]
16
+ * @param {number} [radialSegments] segments around the axis
17
+ * @param {number} [heightSegments] segments along the axis
18
+ * @param {boolean} [openEnded] leave the caps off
19
+ * @param {number} [thetaStart]
20
+ * @param {number} [thetaLength] how much of the turn to build, in radians
21
+ */
22
+ constructor(
23
+ radiusTop = 1,
24
+ radiusBottom = 1,
25
+ height = 1,
26
+ radialSegments = 8,
27
+ heightSegments = 1,
28
+ openEnded = false,
29
+ thetaStart = 0,
30
+ thetaLength = Math.PI * 2
31
+ ) {
32
+ super();
33
+ meshlet_geometry_build_from_geometry(make_cylinder_geometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength), this);
34
+ }
35
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Plane in the XY plane facing +Z, ready to render. Constructs a regular triangulated `Geometry`
3
+ * and immediately converts it to the meshlet representation the renderer consumes.
4
+ *
5
+ * @see make_plane_geometry
6
+ */
7
+ export class PlaneGeometry extends MeshletGeometry {
8
+ /**
9
+ * @param {number} [width]
10
+ * @param {number} [height]
11
+ * @param {number} [widthSegments]
12
+ * @param {number} [heightSegments]
13
+ */
14
+ constructor(width?: number, height?: number, widthSegments?: number, heightSegments?: number);
15
+ }
16
+ import { MeshletGeometry } from "./MeshletGeometry.js";
17
+ //# sourceMappingURL=PlaneGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaneGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/PlaneGeometry.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IACI;;;;;OAKG;IACH,oBALW,MAAM,WACN,MAAM,kBACN,MAAM,mBACN,MAAM,EAKhB;CACJ;gCApB+B,sBAAsB"}
@@ -0,0 +1,22 @@
1
+ import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
+ import { MeshletGeometry } from "./MeshletGeometry.js";
3
+ import { make_plane_geometry } from "./primitives/make_plane_geometry.js";
4
+
5
+ /**
6
+ * Plane in the XY plane facing +Z, ready to render. Constructs a regular triangulated `Geometry`
7
+ * and immediately converts it to the meshlet representation the renderer consumes.
8
+ *
9
+ * @see make_plane_geometry
10
+ */
11
+ export class PlaneGeometry extends MeshletGeometry {
12
+ /**
13
+ * @param {number} [width]
14
+ * @param {number} [height]
15
+ * @param {number} [widthSegments]
16
+ * @param {number} [heightSegments]
17
+ */
18
+ constructor(width = 1, height = 1, widthSegments = 1, heightSegments = 1) {
19
+ super();
20
+ meshlet_geometry_build_from_geometry(make_plane_geometry(width, height, widthSegments, heightSegments), this);
21
+ }
22
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Torus in the XY plane with its hole along Z, ready to render. Constructs a regular triangulated
3
+ * `Geometry` and immediately converts it to the meshlet representation the renderer consumes.
4
+ *
5
+ * @see make_torus_geometry
6
+ */
7
+ export class TorusGeometry extends MeshletGeometry {
8
+ /**
9
+ * @param {number} [radius] distance from the centre of the hole to the centre of the tube
10
+ * @param {number} [tube] radius of the tube itself
11
+ * @param {number} [radialSegments] segments around the tube
12
+ * @param {number} [tubularSegments] segments around the ring
13
+ * @param {number} [arc] how much of the ring to build, in radians
14
+ */
15
+ constructor(radius?: number, tube?: number, radialSegments?: number, tubularSegments?: number, arc?: number);
16
+ }
17
+ import { MeshletGeometry } from "./MeshletGeometry.js";
18
+ //# sourceMappingURL=TorusGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TorusGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/TorusGeometry.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IACI;;;;;;OAMG;IACH,qBANW,MAAM,SACN,MAAM,mBACN,MAAM,oBACN,MAAM,QACN,MAAM,EAKhB;CACJ;gCArB+B,sBAAsB"}
@@ -0,0 +1,23 @@
1
+ import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
+ import { MeshletGeometry } from "./MeshletGeometry.js";
3
+ import { make_torus_geometry } from "./primitives/make_torus_geometry.js";
4
+
5
+ /**
6
+ * Torus in the XY plane with its hole along Z, ready to render. Constructs a regular triangulated
7
+ * `Geometry` and immediately converts it to the meshlet representation the renderer consumes.
8
+ *
9
+ * @see make_torus_geometry
10
+ */
11
+ export class TorusGeometry extends MeshletGeometry {
12
+ /**
13
+ * @param {number} [radius] distance from the centre of the hole to the centre of the tube
14
+ * @param {number} [tube] radius of the tube itself
15
+ * @param {number} [radialSegments] segments around the tube
16
+ * @param {number} [tubularSegments] segments around the ring
17
+ * @param {number} [arc] how much of the ring to build, in radians
18
+ */
19
+ constructor(radius = 1, tube = 0.4, radialSegments = 8, tubularSegments = 6, arc = Math.PI * 2) {
20
+ super();
21
+ meshlet_geometry_build_from_geometry(make_torus_geometry(radius, tube, radialSegments, tubularSegments, arc), this);
22
+ }
23
+ }