@woosh/meep-engine 3.43.0 → 3.45.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 (466) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/editor/prototypeEditorShell.d.ts.map +1 -1
  3. package/editor/prototypeEditorShell.js +4 -2
  4. package/package.json +1 -1
  5. package/src/core/collection/array/array_sort_insertion_ascending.d.ts +19 -0
  6. package/src/core/collection/array/array_sort_insertion_ascending.d.ts.map +1 -0
  7. package/src/core/collection/array/array_sort_insertion_ascending.js +31 -0
  8. package/src/core/geom/3d/aabb/aabb3_array_round_outward_f32.d.ts +27 -0
  9. package/src/core/geom/3d/aabb/aabb3_array_round_outward_f32.d.ts.map +1 -0
  10. package/src/core/geom/3d/aabb/aabb3_array_round_outward_f32.js +39 -0
  11. package/src/core/geom/3d/aabb/aabb3_from_v3_array.d.ts.map +1 -1
  12. package/src/core/geom/3d/aabb/aabb3_from_v3_array.js +4 -1
  13. package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts +2 -2
  14. package/src/core/geom/3d/aabb/aabb3_transform_oriented.d.ts.map +1 -1
  15. package/src/core/geom/3d/aabb/aabb3_transform_oriented.js +1 -1
  16. package/src/core/geom/3d/pose/pose3_apply_inverse_point_array.d.ts +21 -0
  17. package/src/core/geom/3d/pose/pose3_apply_inverse_point_array.d.ts.map +1 -0
  18. package/src/core/geom/3d/pose/pose3_apply_inverse_point_array.js +36 -0
  19. package/src/core/geom/3d/pose/pose3_apply_point_array.d.ts +25 -0
  20. package/src/core/geom/3d/pose/pose3_apply_point_array.d.ts.map +1 -0
  21. package/src/core/geom/3d/pose/pose3_apply_point_array.js +40 -0
  22. package/src/core/geom/3d/pose/pose3_compose_array.d.ts +28 -0
  23. package/src/core/geom/3d/pose/pose3_compose_array.d.ts.map +1 -0
  24. package/src/core/geom/3d/pose/pose3_compose_array.js +41 -0
  25. package/src/core/geom/3d/pose/pose3_to_local_array.d.ts +29 -0
  26. package/src/core/geom/3d/pose/pose3_to_local_array.d.ts.map +1 -0
  27. package/src/core/geom/3d/pose/pose3_to_local_array.js +42 -0
  28. package/src/core/geom/3d/quaternion/quat3_clamp_angle_array.d.ts +28 -0
  29. package/src/core/geom/3d/quaternion/quat3_clamp_angle_array.d.ts.map +1 -0
  30. package/src/core/geom/3d/quaternion/quat3_clamp_angle_array.js +66 -0
  31. package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.d.ts +22 -0
  32. package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.d.ts.map +1 -0
  33. package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_left_array.js +30 -0
  34. package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.d.ts +23 -0
  35. package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.d.ts.map +1 -0
  36. package/src/core/geom/3d/quaternion/quat3_multiply_conjugate_right_array.js +31 -0
  37. package/src/core/geom/3d/triangle/tri3_compute_normal_area_weighted_array.d.ts +26 -0
  38. package/src/core/geom/3d/triangle/tri3_compute_normal_area_weighted_array.d.ts.map +1 -0
  39. package/src/core/geom/3d/triangle/tri3_compute_normal_area_weighted_array.js +46 -0
  40. package/src/core/geom/vec3/v3_distance_array.d.ts +11 -0
  41. package/src/core/geom/vec3/v3_distance_array.d.ts.map +1 -0
  42. package/src/core/geom/vec3/v3_distance_array.js +19 -0
  43. package/src/core/geom/vec3/v3_normalize_array_checked.d.ts +23 -0
  44. package/src/core/geom/vec3/v3_normalize_array_checked.d.ts.map +1 -0
  45. package/src/core/geom/vec3/v3_normalize_array_checked.js +49 -0
  46. package/src/core/geom/vec3/v3_reject_array.d.ts +15 -0
  47. package/src/core/geom/vec3/v3_reject_array.d.ts.map +1 -0
  48. package/src/core/geom/vec3/v3_reject_array.js +32 -0
  49. package/src/core/graph/csr/csr_build_incidence.d.ts +26 -0
  50. package/src/core/graph/csr/csr_build_incidence.d.ts.map +1 -0
  51. package/src/core/graph/csr/csr_build_incidence.js +71 -0
  52. package/src/core/graph/csr/csr_graph_color_greedy.d.ts +25 -0
  53. package/src/core/graph/csr/csr_graph_color_greedy.d.ts.map +1 -0
  54. package/src/core/graph/csr/csr_graph_color_greedy.js +83 -0
  55. package/src/core/graph/csr/csr_graph_validate_coloring.d.ts +15 -0
  56. package/src/core/graph/csr/csr_graph_validate_coloring.d.ts.map +1 -0
  57. package/src/core/graph/csr/csr_graph_validate_coloring.js +33 -0
  58. package/src/core/math/linalg/matrix_symmetric_3x3_solve_ldlt.d.ts +26 -0
  59. package/src/core/math/linalg/matrix_symmetric_3x3_solve_ldlt.d.ts.map +1 -0
  60. package/src/core/math/linalg/matrix_symmetric_3x3_solve_ldlt.js +71 -0
  61. package/src/core/math/max2_exact.d.ts +15 -0
  62. package/src/core/math/max2_exact.d.ts.map +1 -0
  63. package/src/core/math/max2_exact.js +30 -0
  64. package/src/core/math/min2_exact.d.ts +20 -0
  65. package/src/core/math/min2_exact.d.ts.map +1 -0
  66. package/src/core/math/min2_exact.js +35 -0
  67. package/src/engine/Clock.d.ts +15 -0
  68. package/src/engine/Clock.d.ts.map +1 -1
  69. package/src/engine/Clock.js +29 -5
  70. package/src/engine/Engine.d.ts.map +1 -1
  71. package/src/engine/Engine.js +11 -19
  72. package/src/engine/ecs/ik/IKGoalSystem.d.ts.map +1 -1
  73. package/src/engine/ecs/ik/IKGoalSystem.js +3 -19
  74. package/src/engine/ecs/parent/parent_entity_model_of.d.ts +17 -0
  75. package/src/engine/ecs/parent/parent_entity_model_of.d.ts.map +1 -0
  76. package/src/engine/ecs/parent/parent_entity_model_of.js +26 -0
  77. package/src/engine/ecs/transform/t64_read_pose_array.d.ts +15 -0
  78. package/src/engine/ecs/transform/t64_read_pose_array.d.ts.map +1 -0
  79. package/src/engine/ecs/transform/t64_read_pose_array.js +24 -0
  80. package/src/engine/graphics/ecs/mesh-v2/MeshSkin.d.ts +57 -0
  81. package/src/engine/graphics/ecs/mesh-v2/MeshSkin.d.ts.map +1 -0
  82. package/src/engine/graphics/ecs/mesh-v2/MeshSkin.js +84 -0
  83. package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.d.ts +2 -0
  84. package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.d.ts.map +1 -1
  85. package/src/engine/graphics/geometry/geometry_construct_triangle_normal_area_weighted.js +10 -21
  86. package/src/engine/graphics3/AnimationGraphSystem.d.ts +28 -13
  87. package/src/engine/graphics3/AnimationGraphSystem.d.ts.map +1 -1
  88. package/src/engine/graphics3/AnimationGraphSystem.js +107 -64
  89. package/src/engine/graphics3/AnimationSystem.d.ts +29 -15
  90. package/src/engine/graphics3/AnimationSystem.d.ts.map +1 -1
  91. package/src/engine/graphics3/AnimationSystem.js +112 -61
  92. package/src/engine/graphics3/MeshSkinSystem.d.ts +56 -0
  93. package/src/engine/graphics3/MeshSkinSystem.d.ts.map +1 -0
  94. package/src/engine/graphics3/MeshSkinSystem.js +317 -0
  95. package/src/engine/graphics3/MeshSystem.d.ts +15 -35
  96. package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
  97. package/src/engine/graphics3/MeshSystem.js +21 -298
  98. package/src/engine/graphics3/RowChains.d.ts +76 -0
  99. package/src/engine/graphics3/RowChains.d.ts.map +1 -0
  100. package/src/engine/graphics3/RowChains.js +347 -0
  101. package/src/engine/graphics3/ShadedGeometrySystem.d.ts +6 -0
  102. package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
  103. package/src/engine/graphics3/ShadedGeometrySystem.js +329 -309
  104. package/src/engine/graphics3/animation/AnimationClips.d.ts +56 -0
  105. package/src/engine/graphics3/animation/AnimationClips.d.ts.map +1 -0
  106. package/src/engine/graphics3/animation/AnimationClips.js +79 -0
  107. package/src/engine/graphics3/animation/ClipListPlayer.d.ts +13 -14
  108. package/src/engine/graphics3/animation/ClipListPlayer.d.ts.map +1 -1
  109. package/src/engine/graphics3/animation/ClipListPlayer.js +262 -263
  110. package/src/engine/graphics3/animation/write_clip_playback.d.ts +3 -3
  111. package/src/engine/graphics3/animation/write_clip_playback.js +4 -4
  112. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts +5 -0
  113. package/src/engine/graphics3/pose/query_entity_node_world_pose.d.ts.map +1 -1
  114. package/src/engine/graphics3/pose/query_entity_node_world_pose.js +80 -75
  115. package/src/engine/graphics3/prefab/PrefabInstance.d.ts +4 -24
  116. package/src/engine/graphics3/prefab/PrefabInstance.d.ts.map +1 -1
  117. package/src/engine/graphics3/prefab/PrefabInstance.js +60 -80
  118. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts +16 -3
  119. package/src/engine/graphics3/prefab/prefab_instantiate.d.ts.map +1 -1
  120. package/src/engine/graphics3/prefab/prefab_instantiate.js +49 -12
  121. package/src/engine/graphics3/prefab/prefab_place.d.ts +31 -17
  122. package/src/engine/graphics3/prefab/prefab_place.d.ts.map +1 -1
  123. package/src/engine/graphics3/prefab/prefab_place.js +175 -130
  124. package/src/engine/graphics3/register_clips.d.ts +93 -0
  125. package/src/engine/graphics3/register_clips.d.ts.map +1 -0
  126. package/src/engine/graphics3/register_clips.js +166 -0
  127. package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts +9 -0
  128. package/src/engine/physics/broadphase/compute_fat_world_aabb.d.ts.map +1 -1
  129. package/src/engine/physics/broadphase/compute_fat_world_aabb.js +3 -1
  130. package/src/engine/physics/cloth/MEASUREMENTS.md +795 -0
  131. package/src/engine/physics/cloth/PLAN.md +349 -17
  132. package/src/engine/physics/cloth/build/ClothProxy.d.ts +113 -61
  133. package/src/engine/physics/cloth/build/ClothProxy.d.ts.map +1 -1
  134. package/src/engine/physics/cloth/build/ClothProxy.js +142 -77
  135. package/src/engine/physics/cloth/build/cloth_bind_in_frame.d.ts +44 -0
  136. package/src/engine/physics/cloth/build/cloth_bind_in_frame.d.ts.map +1 -0
  137. package/src/engine/physics/cloth/build/cloth_bind_in_frame.js +107 -0
  138. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts +43 -30
  139. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.d.ts.map +1 -1
  140. package/src/engine/physics/cloth/build/cloth_proxy_from_joints.js +371 -284
  141. package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.d.ts +62 -0
  142. package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.d.ts.map +1 -0
  143. package/src/engine/physics/cloth/build/cloth_proxy_from_mesh.js +275 -0
  144. package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts +7 -0
  145. package/src/engine/physics/cloth/collider/ClothColliderIndex.d.ts.map +1 -1
  146. package/src/engine/physics/cloth/collider/ClothColliderIndex.js +85 -67
  147. package/src/engine/physics/cloth/collider/cloth_collider_bounds.d.ts.map +1 -1
  148. package/src/engine/physics/cloth/collider/cloth_collider_bounds.js +19 -101
  149. package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts +2 -5
  150. package/src/engine/physics/cloth/collider/cloth_collider_pack.d.ts.map +1 -1
  151. package/src/engine/physics/cloth/collider/cloth_collider_pack.js +7 -15
  152. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts +1 -1
  153. package/src/engine/physics/cloth/collider/cloth_collider_sdf.d.ts.map +1 -1
  154. package/src/engine/physics/cloth/collider/cloth_collider_sdf.js +17 -62
  155. package/src/engine/physics/cloth/ecs/Cloth.d.ts +17 -9
  156. package/src/engine/physics/cloth/ecs/Cloth.d.ts.map +1 -1
  157. package/src/engine/physics/cloth/ecs/Cloth.js +220 -212
  158. package/src/engine/physics/cloth/ecs/ClothColliderFlags.d.ts +0 -1
  159. package/src/engine/physics/cloth/ecs/ClothColliderFlags.js +6 -19
  160. package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts +1 -2
  161. package/src/engine/physics/cloth/ecs/ClothColliderSystem.d.ts.map +1 -1
  162. package/src/engine/physics/cloth/ecs/ClothColliderSystem.js +3 -12
  163. package/src/engine/physics/cloth/ecs/ClothDynamicsFlags.js +6 -0
  164. package/src/engine/physics/cloth/ecs/ClothHold.d.ts +91 -0
  165. package/src/engine/physics/cloth/ecs/ClothHold.d.ts.map +1 -0
  166. package/src/engine/physics/cloth/ecs/ClothHold.js +103 -0
  167. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts +254 -48
  168. package/src/engine/physics/cloth/ecs/ClothInstance.d.ts.map +1 -1
  169. package/src/engine/physics/cloth/ecs/ClothInstance.js +277 -47
  170. package/src/engine/physics/cloth/ecs/ClothPin.d.ts +73 -0
  171. package/src/engine/physics/cloth/ecs/ClothPin.d.ts.map +1 -0
  172. package/src/engine/physics/cloth/ecs/ClothPin.js +92 -0
  173. package/src/engine/physics/cloth/ecs/ClothPinSerializationAdapter.d.ts +36 -0
  174. package/src/engine/physics/cloth/ecs/ClothPinSerializationAdapter.d.ts.map +1 -0
  175. package/src/engine/physics/cloth/ecs/ClothPinSerializationAdapter.js +61 -0
  176. package/src/engine/physics/cloth/ecs/ClothRig.d.ts +23 -17
  177. package/src/engine/physics/cloth/ecs/ClothRig.d.ts.map +1 -1
  178. package/src/engine/physics/cloth/ecs/ClothRig.js +29 -27
  179. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts +12 -14
  180. package/src/engine/physics/cloth/ecs/ClothSystem.d.ts.map +1 -1
  181. package/src/engine/physics/cloth/ecs/ClothSystem.js +20 -15
  182. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts +57 -36
  183. package/src/engine/physics/cloth/ecs/ClothWorld.d.ts.map +1 -1
  184. package/src/engine/physics/cloth/ecs/ClothWorld.js +754 -207
  185. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts +12 -13
  186. package/src/engine/physics/cloth/ecs/WorkerClothSystem.d.ts.map +1 -1
  187. package/src/engine/physics/cloth/ecs/WorkerClothSystem.js +20 -14
  188. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts +63 -11
  189. package/src/engine/physics/cloth/ecs/cloth_build_rows.d.ts.map +1 -1
  190. package/src/engine/physics/cloth/ecs/cloth_build_rows.js +297 -101
  191. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts +9 -7
  192. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.d.ts.map +1 -1
  193. package/src/engine/physics/cloth/ecs/cloth_dynamics_map.js +12 -10
  194. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts +3 -3
  195. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.d.ts.map +1 -1
  196. package/src/engine/physics/cloth/ecs/cloth_gather_colliders.js +60 -120
  197. package/src/engine/physics/cloth/ecs/cloth_geodesic.d.ts +37 -0
  198. package/src/engine/physics/cloth/ecs/cloth_geodesic.d.ts.map +1 -0
  199. package/src/engine/physics/cloth/ecs/cloth_geodesic.js +135 -0
  200. package/src/engine/physics/cloth/ecs/cloth_holds.d.ts +97 -0
  201. package/src/engine/physics/cloth/ecs/cloth_holds.d.ts.map +1 -0
  202. package/src/engine/physics/cloth/ecs/cloth_holds.js +583 -0
  203. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts +2 -2
  204. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.d.ts.map +1 -1
  205. package/src/engine/physics/cloth/ecs/cloth_reconstruct_pose.js +168 -51
  206. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts +17 -22
  207. package/src/engine/physics/cloth/ecs/cloth_seed_rig.d.ts.map +1 -1
  208. package/src/engine/physics/cloth/ecs/cloth_seed_rig.js +55 -117
  209. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts +21 -6
  210. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.d.ts.map +1 -1
  211. package/src/engine/physics/cloth/ecs/cloth_seed_subtree.js +51 -42
  212. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts +5 -0
  213. package/src/engine/physics/cloth/ecs/cloth_write_back.d.ts.map +1 -1
  214. package/src/engine/physics/cloth/ecs/cloth_write_back.js +62 -50
  215. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.d.ts.map +1 -1
  216. package/src/engine/physics/cloth/ecs/cloth_write_back_rig.js +65 -58
  217. package/src/engine/physics/cloth/playground/cloth_playground_build.d.ts.map +1 -1
  218. package/src/engine/physics/cloth/playground/cloth_playground_build.js +2 -3
  219. package/src/engine/physics/cloth/playground/collide_main.js +3 -29
  220. package/src/engine/physics/cloth/playground/garment_build.d.ts.map +1 -1
  221. package/src/engine/physics/cloth/playground/garment_build.js +17 -5
  222. package/src/engine/physics/cloth/playground/garment_main.js +5 -20
  223. package/src/engine/physics/cloth/playground/main.js +6 -48
  224. package/src/engine/physics/cloth/playground/rig_build.d.ts.map +1 -1
  225. package/src/engine/physics/cloth/playground/rig_build.js +302 -296
  226. package/src/engine/physics/cloth/playground/rig_main.js +947 -955
  227. package/src/engine/physics/cloth/playground/wind_main.js +8 -7
  228. package/src/engine/physics/cloth/solver/ClothState.d.ts +45 -7
  229. package/src/engine/physics/cloth/solver/ClothState.d.ts.map +1 -1
  230. package/src/engine/physics/cloth/solver/ClothState.js +79 -83
  231. package/src/engine/physics/cloth/solver/cloth_color_particles.d.ts +10 -8
  232. package/src/engine/physics/cloth/solver/cloth_color_particles.d.ts.map +1 -1
  233. package/src/engine/physics/cloth/solver/cloth_color_particles.js +30 -102
  234. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts +6 -1
  235. package/src/engine/physics/cloth/solver/cloth_contact_find.d.ts.map +1 -1
  236. package/src/engine/physics/cloth/solver/cloth_contact_find.js +9 -3
  237. package/src/engine/physics/cloth/solver/cloth_hold_line.d.ts +114 -0
  238. package/src/engine/physics/cloth/solver/cloth_hold_line.d.ts.map +1 -0
  239. package/src/engine/physics/cloth/solver/cloth_hold_line.js +350 -0
  240. package/src/engine/physics/cloth/solver/cloth_kinetic_energy.d.ts +21 -0
  241. package/src/engine/physics/cloth/solver/cloth_kinetic_energy.d.ts.map +1 -0
  242. package/src/engine/physics/cloth/solver/cloth_kinetic_energy.js +45 -0
  243. package/src/engine/physics/cloth/solver/cloth_particle_coupling.d.ts +32 -0
  244. package/src/engine/physics/cloth/solver/cloth_particle_coupling.d.ts.map +1 -0
  245. package/src/engine/physics/cloth/solver/cloth_particle_coupling.js +133 -0
  246. package/src/engine/physics/cloth/solver/cloth_particle_of_source.d.ts +16 -0
  247. package/src/engine/physics/cloth/solver/cloth_particle_of_source.d.ts.map +1 -0
  248. package/src/engine/physics/cloth/solver/cloth_particle_of_source.js +19 -0
  249. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts +6 -2
  250. package/src/engine/physics/cloth/solver/cloth_self_find.d.ts.map +1 -1
  251. package/src/engine/physics/cloth/solver/cloth_self_find.js +19 -68
  252. package/src/engine/physics/cloth/solver/cloth_solve_vertex.d.ts.map +1 -1
  253. package/src/engine/physics/cloth/solver/cloth_solve_vertex.js +30 -65
  254. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts +24 -12
  255. package/src/engine/physics/cloth/solver/cloth_solver_constants.d.ts.map +1 -1
  256. package/src/engine/physics/cloth/solver/cloth_solver_constants.js +24 -12
  257. package/src/engine/physics/cloth/solver/cloth_step.d.ts +16 -0
  258. package/src/engine/physics/cloth/solver/cloth_step.d.ts.map +1 -1
  259. package/src/engine/physics/cloth/solver/cloth_step.js +189 -48
  260. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts +1 -0
  261. package/src/engine/physics/cloth/solver/cloth_step_instance.d.ts.map +1 -1
  262. package/src/engine/physics/cloth/solver/cloth_step_instance.js +12 -6
  263. package/src/engine/physics/cloth/solver/cloth_stretch_residual.d.ts +21 -0
  264. package/src/engine/physics/cloth/solver/cloth_stretch_residual.d.ts.map +1 -0
  265. package/src/engine/physics/cloth/solver/cloth_stretch_residual.js +54 -0
  266. package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.d.ts +15 -0
  267. package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.d.ts.map +1 -1
  268. package/src/engine/physics/cloth/solver/cloth_vertex_accumulator.js +28 -0
  269. package/src/engine/physics/cloth/solver/cloth_worst_tether_ratio.d.ts +30 -0
  270. package/src/engine/physics/cloth/solver/cloth_worst_tether_ratio.d.ts.map +1 -0
  271. package/src/engine/physics/cloth/solver/cloth_worst_tether_ratio.js +56 -0
  272. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.d.ts.map +1 -1
  273. package/src/engine/physics/cloth/solver/constraint/cloth_contact_row.js +3 -17
  274. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.d.ts +1 -1
  275. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.d.ts.map +1 -1
  276. package/src/engine/physics/cloth/solver/constraint/cloth_leash_row.js +353 -346
  277. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts +7 -5
  278. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.d.ts.map +1 -1
  279. package/src/engine/physics/cloth/solver/constraint/cloth_self_row.js +7 -5
  280. package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts +2 -1
  281. package/src/engine/physics/cloth/wind/ClothFluidWind.d.ts.map +1 -1
  282. package/src/engine/physics/cloth/wind/ClothFluidWind.js +7 -25
  283. package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts +12 -10
  284. package/src/engine/physics/cloth/wind/cloth_sample_air.d.ts.map +1 -1
  285. package/src/engine/physics/cloth/wind/cloth_sample_air.js +60 -82
  286. package/src/engine/physics/ecs/ContactProbeSystem.d.ts.map +1 -1
  287. package/src/engine/physics/ecs/ContactProbeSystem.js +2 -18
  288. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  289. package/src/engine/physics/ecs/PhysicsSystem.js +9 -50
  290. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  291. package/src/engine/physics/fluid/ecs/fluid_sample_domain_bounds.d.ts +24 -0
  292. package/src/engine/physics/fluid/ecs/fluid_sample_domain_bounds.d.ts.map +1 -0
  293. package/src/engine/physics/fluid/ecs/fluid_sample_domain_bounds.js +42 -0
  294. package/src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.d.ts +25 -0
  295. package/src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.d.ts.map +1 -0
  296. package/src/engine/physics/fluid/ecs/fluid_sample_velocity_world_mps.js +40 -0
  297. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.d.ts.map +1 -1
  298. package/src/engine/physics/inverse_kinematics/frame_fabrik/frame_fabrik_solve.js +40 -90
  299. package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
  300. package/src/engine/physics/narrowphase/capsule_contacts.js +3 -5
  301. package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.d.ts.map +1 -1
  302. package/src/engine/physics/narrowphase/decomposition/mesh_enumerate_triangles.js +2 -14
  303. package/src/engine/physics/narrowphase/hull_sphere_contact.d.ts.map +1 -1
  304. package/src/engine/physics/narrowphase/hull_sphere_contact.js +2 -5
  305. package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
  306. package/src/engine/physics/narrowphase/narrowphase_step.js +13 -32
  307. package/src/engine/physics/narrowphase/sphere_box_contact.d.ts.map +1 -1
  308. package/src/engine/physics/narrowphase/sphere_box_contact.js +2 -5
  309. package/src/engine/simulation/Ticker.d.ts +13 -0
  310. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  311. package/src/engine/simulation/Ticker.js +43 -8
  312. package/src/format/texture/basis/transcode/etc1s_to_astc.d.ts.map +1 -1
  313. package/src/format/texture/basis/transcode/etc1s_to_astc.js +2 -1
  314. package/src/shade/RENDERER_CONTRACT.md +8 -2
  315. package/src/shade/playground/image_decode_bench/main.js +2 -1
  316. package/src/shade/playground/mesh_row_ceiling/main.js +2 -1
  317. package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.d.ts.map +1 -1
  318. package/src/shade/playground/skinned_blas_refit/diff_traced_against_rasterized.js +2 -1
  319. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  320. package/src/shade/playground/skinned_blas_refit/main.js +11 -19
  321. package/src/shade/playground/skinned_blas_refit/place_character.d.ts +6 -3
  322. package/src/shade/playground/skinned_blas_refit/place_character.d.ts.map +1 -1
  323. package/src/shade/playground/skinned_blas_refit/place_character.js +90 -90
  324. package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -1
  325. package/src/shade/playground/skinned_mesh_soup/main.js +502 -509
  326. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -1
  327. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +2 -1
  328. package/src/shade/playground/ssr_variance/statistics.d.ts.map +1 -1
  329. package/src/shade/playground/ssr_variance/statistics.js +2 -1
  330. package/src/shade/playground/texture_encode/README.md +129 -109
  331. package/src/shade/playground/texture_encode/main.d.ts.map +1 -1
  332. package/src/shade/playground/texture_encode/main.js +1431 -1430
  333. package/src/shade/playground/volumetrics_froxel/measure.d.ts.map +1 -1
  334. package/src/shade/playground/volumetrics_froxel/measure.js +2 -1
  335. package/src/shade/renderer/animation/GPUAnimationManager.d.ts +45 -14
  336. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  337. package/src/shade/renderer/animation/GPUAnimationManager.js +316 -64
  338. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts +5 -0
  339. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  340. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +11 -1
  341. package/src/shade/renderer/buffer/table/gpu_database_check_links.d.ts.map +1 -1
  342. package/src/shade/renderer/buffer/table/gpu_database_check_links.js +2 -1
  343. package/src/shade/renderer/geometry/BoxGeometry.d.ts +1 -11
  344. package/src/shade/renderer/geometry/BoxGeometry.d.ts.map +1 -1
  345. package/src/shade/renderer/geometry/BoxGeometry.js +6 -13
  346. package/src/shade/renderer/geometry/CapsuleGeometry.d.ts +19 -0
  347. package/src/shade/renderer/geometry/CapsuleGeometry.d.ts.map +1 -0
  348. package/src/shade/renderer/geometry/CapsuleGeometry.js +24 -0
  349. package/src/shade/renderer/geometry/ConeGeometry.d.ts +20 -0
  350. package/src/shade/renderer/geometry/ConeGeometry.d.ts.map +1 -0
  351. package/src/shade/renderer/geometry/ConeGeometry.js +33 -0
  352. package/src/shade/renderer/geometry/CylinderGeometry.d.ts +21 -0
  353. package/src/shade/renderer/geometry/CylinderGeometry.d.ts.map +1 -0
  354. package/src/shade/renderer/geometry/CylinderGeometry.js +35 -0
  355. package/src/shade/renderer/geometry/PlaneGeometry.d.ts +17 -0
  356. package/src/shade/renderer/geometry/PlaneGeometry.d.ts.map +1 -0
  357. package/src/shade/renderer/geometry/PlaneGeometry.js +22 -0
  358. package/src/shade/renderer/geometry/TorusGeometry.d.ts +18 -0
  359. package/src/shade/renderer/geometry/TorusGeometry.d.ts.map +1 -0
  360. package/src/shade/renderer/geometry/TorusGeometry.js +23 -0
  361. package/src/shade/renderer/geometry/UVSphereGeometry.d.ts +21 -0
  362. package/src/shade/renderer/geometry/UVSphereGeometry.d.ts.map +1 -0
  363. package/src/shade/renderer/geometry/UVSphereGeometry.js +34 -0
  364. package/src/shade/renderer/geometry/primitives/make_capsule_geometry.d.ts +19 -0
  365. package/src/shade/renderer/geometry/primitives/make_capsule_geometry.d.ts.map +1 -0
  366. package/src/shade/renderer/geometry/primitives/make_capsule_geometry.js +205 -0
  367. package/src/shade/renderer/geometry/primitives/make_cone_geometry.d.ts +21 -0
  368. package/src/shade/renderer/geometry/primitives/make_cone_geometry.d.ts.map +1 -0
  369. package/src/shade/renderer/geometry/primitives/make_cone_geometry.js +36 -0
  370. package/src/shade/renderer/geometry/primitives/make_cylinder_geometry.d.ts +1 -1
  371. package/src/shade/renderer/geometry/primitives/make_cylinder_geometry.d.ts.map +1 -1
  372. package/src/shade/renderer/geometry/primitives/make_cylinder_geometry.js +44 -9
  373. package/src/shade/renderer/geometry/primitives/make_uv_sphere_geometry.d.ts +20 -0
  374. package/src/shade/renderer/geometry/primitives/make_uv_sphere_geometry.d.ts.map +1 -0
  375. package/src/shade/renderer/geometry/primitives/make_uv_sphere_geometry.js +190 -0
  376. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.d.ts.map +1 -1
  377. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_group_step.js +3 -2
  378. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.d.ts.map +1 -1
  379. package/src/shade/renderer/geometry/virtual/build/level/vgeo_build_leaf_frontier.js +2 -1
  380. package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.d.ts.map +1 -1
  381. package/src/shade/renderer/geometry/virtual/build/level/vgeo_partition_into_groups.js +2 -1
  382. package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.d.ts.map +1 -1
  383. package/src/shade/renderer/geometry/virtual/build/level/vgeo_run_round.js +2 -1
  384. package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.d.ts.map +1 -1
  385. package/src/shade/renderer/geometry/virtual/build/level/vgeo_try_repack.js +3 -2
  386. package/src/shade/renderer/geometry/virtual/build/partition/vgeo_graph_components.d.ts.map +1 -1
  387. package/src/shade/renderer/geometry/virtual/build/partition/vgeo_graph_components.js +2 -1
  388. package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set_packed.d.ts.map +1 -1
  389. package/src/shade/renderer/geometry/virtual/build/partition/vgeo_split_face_set_packed.js +2 -1
  390. package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.d.ts.map +1 -1
  391. package/src/shade/renderer/geometry/virtual/format/vgeo_write_container.js +3 -2
  392. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.d.ts.map +1 -1
  393. package/src/shade/renderer/geometry/virtual/runtime/graph_vgeo_expand_instances_to_meshlets.js +7 -2
  394. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts +26 -8
  395. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.d.ts.map +1 -1
  396. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/graph_prefix_scan_csdldf.js +56 -39
  397. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts +7 -0
  398. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts.map +1 -1
  399. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.js +46 -4
  400. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.d.ts.map +1 -1
  401. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/test_prefix_sum.js +4 -2
  402. package/src/shade/renderer/gpu_primitive/sort/defs.d.ts +2 -2
  403. package/src/shade/renderer/gpu_primitive/sort/defs.js +79 -79
  404. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts +1 -1
  405. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
  406. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +7 -3
  407. package/src/shade/renderer/particles/GPUParticleSystem.js +1 -1
  408. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +4 -3
  409. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
  410. package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +200 -194
  411. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  412. package/src/shade/renderer/particles/graph_particles.js +6 -2
  413. package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.d.ts.map +1 -1
  414. package/src/shade/renderer/particles/optimizer/dag/particle_vector_extract.js +3 -2
  415. package/src/shade/renderer/particles/warmup/graph_particle_warmup.d.ts.map +1 -1
  416. package/src/shade/renderer/particles/warmup/graph_particle_warmup.js +334 -329
  417. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
  418. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +7 -2
  419. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.d.ts.map +1 -1
  420. package/src/shade/renderer/rasterize/expand/mesh/graph_expand_meshes_to_meshlets.js +16 -4
  421. package/src/shade/renderer/texture/COMPRESSED_TEXTURE_PLAN_2026_09_01.md +2444 -2345
  422. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.d.ts.map +1 -1
  423. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.js +312 -310
  424. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts +3 -3
  425. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts.map +1 -1
  426. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.js +383 -375
  427. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.d.ts.map +1 -1
  428. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.js +349 -346
  429. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block.d.ts +58 -0
  430. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block.d.ts.map +1 -0
  431. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block.js +536 -0
  432. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts +21 -7
  433. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts.map +1 -1
  434. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.js +291 -327
  435. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode1.d.ts +25 -0
  436. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode1.d.ts.map +1 -0
  437. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode1.js +99 -0
  438. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts +5 -3
  439. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts.map +1 -1
  440. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.js +47 -71
  441. package/src/shade/renderer/texture/encode/chunk_bc7_partition_2.d.ts +10 -0
  442. package/src/shade/renderer/texture/encode/chunk_bc7_partition_2.d.ts.map +1 -0
  443. package/src/shade/renderer/texture/encode/chunk_bc7_partition_2.js +50 -0
  444. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts +4 -5
  445. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts.map +1 -1
  446. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.js +7 -8
  447. package/src/shade/renderer/water/chunk_water_transport.d.ts.map +1 -1
  448. package/src/shade/renderer/water/chunk_water_transport.js +7 -5
  449. package/src/shade/renderer/water/medium/GPUWaterBodies.d.ts.map +1 -1
  450. package/src/shade/renderer/water/medium/GPUWaterBodies.js +8 -2
  451. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts +3 -2
  452. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.d.ts.map +1 -1
  453. package/src/shade/renderer/water/optics/chunk_water_receiver_downwelling.js +3 -2
  454. package/src/shade/renderer/water/shader_water.d.ts.map +1 -1
  455. package/src/shade/renderer/water/shader_water.js +3 -1
  456. package/src/shade/renderer/water/surface/GPUWaterSurface.d.ts.map +1 -1
  457. package/src/shade/renderer/water/surface/GPUWaterSurface.js +3 -1
  458. package/src/shade/renderer/water/surface/graph_water_tessellation.d.ts.map +1 -1
  459. package/src/shade/renderer/water/surface/graph_water_tessellation.js +11 -4
  460. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.d.ts.map +1 -1
  461. package/src/shade/renderer/water/surface/particles/GPUWaterParticles.js +37 -20
  462. package/src/shade/wgsl/validate_wgsl_source.d.ts.map +1 -1
  463. package/src/shade/wgsl/validate_wgsl_source.js +74 -3
  464. package/src/engine/graphics3/register_instance_animation.d.ts +0 -114
  465. package/src/engine/graphics3/register_instance_animation.d.ts.map +0 -1
  466. package/src/engine/graphics3/register_instance_animation.js +0 -201
@@ -517,16 +517,26 @@ export class GPUMeshSkinningContext {
517
517
  * registrations (which would otherwise try to look up the freed
518
518
  * skin's matrix offset on the next bindings upload and assert).
519
519
  *
520
+ * **A mesh bound before its clone exists is forgotten too.** It has no binding record yet, only
521
+ * its skin, and keeping that skin past this call would leave the entity naming a freed id: the
522
+ * next skin to take the id would deform it, and binding it to a skin of its own would be refused
523
+ * as a rebind.
524
+ *
520
525
  * @param {number} skin_id
521
526
  */
522
527
  unbind_all_by_skin(skin_id) {
523
528
  for (let i = this.#bindings.length - 1; i >= 0; i--) {
524
529
  const b = this.#bindings[i];
525
530
  if (b.skin_id === skin_id) {
526
- this.#skin_by_entity.delete(b.entity);
527
531
  this.#drop_binding_at(i);
528
532
  }
529
533
  }
534
+
535
+ for (const [entity, bound] of this.#skin_by_entity) {
536
+ if (bound === skin_id) {
537
+ this.#skin_by_entity.delete(entity);
538
+ }
539
+ }
530
540
  }
531
541
 
532
542
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gpu_database_check_links.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/buffer/table/gpu_database_check_links.js"],"names":[],"mappings":"AAiFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,oDAHW,WAAW,EAAE,GACX,wBAAwB,EAAE,CA2VtC;0BAlcY,OAAO,kBAAkB,EAAE,WAAW;oCACtC,OAAO,4BAA4B,EAAE,qBAAqB;;2BAE1D,OAAO,mBAAmB,EAAE,YAAY;4BACxC,OAAO,oBAAoB,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;YAyBzC,UAAU,GAAC,kBAAkB,GAAC,iBAAiB,GAAC,YAAY,GAAC,QAAQ,GAAC,aAAa;;;;cACnF,MAAM;WACN,MAAM;SACN,MAAM;;;;;WACN,MAAM;WAEN,MAAM;;;;;yBAMP;IAAC,IAAI,EAAE,YAAY,GAAC,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,GAAC,IAAI,CAAC;IAAC,MAAM,kDAAe;CAAC"}
1
+ {"version":3,"file":"gpu_database_check_links.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/buffer/table/gpu_database_check_links.js"],"names":[],"mappings":"AAkFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,oDAHW,WAAW,EAAE,GACX,wBAAwB,EAAE,CA2VtC;0BAlcY,OAAO,kBAAkB,EAAE,WAAW;oCACtC,OAAO,4BAA4B,EAAE,qBAAqB;;2BAE1D,OAAO,mBAAmB,EAAE,YAAY;4BACxC,OAAO,oBAAoB,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;YAyBzC,UAAU,GAAC,kBAAkB,GAAC,iBAAiB,GAAC,YAAY,GAAC,QAAQ,GAAC,aAAa;;;;cACnF,MAAM;WACN,MAAM;SACN,MAAM;;;;;WACN,MAAM;WAEN,MAAM;;;;;yBAMP;IAAC,IAAI,EAAE,YAAY,GAAC,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,GAAC,IAAI,CAAC;IAAC,MAAM,kDAAe;CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { assert } from "../../../../core/assert.js";
2
2
  import { GPU_DATABASE_NULL } from "./GPU_DATABASE_NULL.js";
3
3
  import { gpu_table_range_well_formed } from "./gpu_table_range_well_formed.js";
4
+ import { number_compare_ascending } from "../../../../core/primitives/numbers/number_compare_ascending.js";
4
5
 
5
6
  /**
6
7
  * @typedef {import("./GPUDatabase.js").GPUDatabase} GPUDatabase
@@ -412,7 +413,7 @@ export function gpu_database_check_links(databases) {
412
413
  const counts = owner_counts.get(table);
413
414
 
414
415
  if (counts !== undefined) {
415
- const rows = Array.from(counts.keys()).sort((a, b) => a - b);
416
+ const rows = Array.from(counts.keys()).sort(number_compare_ascending);
416
417
 
417
418
  for (let i = 0; i < rows.length; i++) {
418
419
  const count = counts.get(rows[i]);
@@ -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
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Sphere of rings and meridians with its poles on the Y axis, ready to render. Constructs a regular
3
+ * triangulated `Geometry` and immediately converts it to the meshlet representation the renderer
4
+ * consumes.
5
+ *
6
+ * @see make_uv_sphere_geometry
7
+ */
8
+ export class UVSphereGeometry extends MeshletGeometry {
9
+ /**
10
+ * @param {number} [radius]
11
+ * @param {number} [widthSegments] segments around the axis, at least 3
12
+ * @param {number} [heightSegments] segments from pole to pole, at least 2
13
+ * @param {number} [phiStart]
14
+ * @param {number} [phiLength] how much of the turn about the axis to build, in radians
15
+ * @param {number} [thetaStart] where to start, in radians down from the north pole
16
+ * @param {number} [thetaLength] how far toward the south pole to build, in radians
17
+ */
18
+ constructor(radius?: number, widthSegments?: number, heightSegments?: number, phiStart?: number, phiLength?: number, thetaStart?: number, thetaLength?: number);
19
+ }
20
+ import { MeshletGeometry } from "./MeshletGeometry.js";
21
+ //# sourceMappingURL=UVSphereGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UVSphereGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/geometry/UVSphereGeometry.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH;IACI;;;;;;;;OAQG;IACH,qBARW,MAAM,kBACN,MAAM,mBACN,MAAM,aACN,MAAM,cACN,MAAM,eACN,MAAM,gBACN,MAAM,EAahB;CACJ;gCAhC+B,sBAAsB"}
@@ -0,0 +1,34 @@
1
+ import { meshlet_geometry_build_from_geometry } from "./meshlet_geometry_build_from_geometry.js";
2
+ import { MeshletGeometry } from "./MeshletGeometry.js";
3
+ import { make_uv_sphere_geometry } from "./primitives/make_uv_sphere_geometry.js";
4
+
5
+ /**
6
+ * Sphere of rings and meridians with its poles on the Y axis, ready to render. Constructs a regular
7
+ * triangulated `Geometry` and immediately converts it to the meshlet representation the renderer
8
+ * consumes.
9
+ *
10
+ * @see make_uv_sphere_geometry
11
+ */
12
+ export class UVSphereGeometry extends MeshletGeometry {
13
+ /**
14
+ * @param {number} [radius]
15
+ * @param {number} [widthSegments] segments around the axis, at least 3
16
+ * @param {number} [heightSegments] segments from pole to pole, at least 2
17
+ * @param {number} [phiStart]
18
+ * @param {number} [phiLength] how much of the turn about the axis to build, in radians
19
+ * @param {number} [thetaStart] where to start, in radians down from the north pole
20
+ * @param {number} [thetaLength] how far toward the south pole to build, in radians
21
+ */
22
+ constructor(
23
+ radius = 1,
24
+ widthSegments = 32,
25
+ heightSegments = 16,
26
+ phiStart = 0,
27
+ phiLength = Math.PI * 2,
28
+ thetaStart = 0,
29
+ thetaLength = Math.PI
30
+ ) {
31
+ super();
32
+ meshlet_geometry_build_from_geometry(make_uv_sphere_geometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength), this);
33
+ }
34
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * A capsule along the Y axis, centred on the origin: a cylinder of length `height` closed by two
3
+ * hemispheres of `radius`, so the whole body spans `height + 2 * radius`. That is the same shape
4
+ * `CapsuleShape3D` describes for the same two numbers, so a collider and its mesh agree.
5
+ *
6
+ * The texture coordinates wrap `u` once around the axis and run `v` from the south pole (0) to the
7
+ * north pole (1) by arc length along the profile, so a texture is not stretched over the caps
8
+ * relative to the straight section.
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, at least 1
13
+ * @param {number} [radialSegments] segments around the axis, at least 3
14
+ * @param {number} [heightSegments] segments along the straight section, at least 1 unless `height` is zero
15
+ * @returns {Geometry}
16
+ */
17
+ export function make_capsule_geometry(radius?: number, height?: number, capSegments?: number, radialSegments?: number, heightSegments?: number): Geometry;
18
+ import { Geometry } from "../Geometry.js";
19
+ //# sourceMappingURL=make_capsule_geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make_capsule_geometry.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/renderer/geometry/primitives/make_capsule_geometry.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,+CAPW,MAAM,WACN,MAAM,gBACN,MAAM,mBACN,MAAM,mBACN,MAAM,GACJ,QAAQ,CA0LpB;yBA3MwB,gBAAgB"}