@woosh/meep-engine 2.169.1 → 2.169.2

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 (680) hide show
  1. package/editor/ecs/component/editors/NumericIntervalEditor.js +18 -35
  2. package/editor/ecs/component/editors/ObservedIntegerEditor.js +22 -43
  3. package/editor/ecs/component/editors/ObservedStringEditor.js +34 -51
  4. package/editor/ecs/component/editors/common/makeV3_editor.js +12 -30
  5. package/editor/ecs/component/editors/common/two_way_sync.js +50 -0
  6. package/editor/ecs/component/editors/geom/QuaternionEditor.js +20 -35
  7. package/editor/ecs/component/editors/geom/Vector1Editor.js +5 -28
  8. package/editor/ecs/component/editors/primitive/NumberEditor.js +15 -31
  9. package/editor/tools/paint/TerrainHeightPaintTool.js +22 -31
  10. package/editor/tools/paint/TerrainPaintTool.js +85 -13
  11. package/editor/tools/paint/TerrainTexturePaintTool.js +18 -29
  12. package/editor/view/ecs/components/TerrainController.js +1 -4
  13. package/package.json +1 -1
  14. package/src/DUPLICATION_AUDIT_2026_08_07/00_core_reuse_surface.md +738 -0
  15. package/src/DUPLICATION_AUDIT_2026_08_07/A_core_math_geom.md +79 -0
  16. package/src/DUPLICATION_AUDIT_2026_08_07/B_core_data.md +93 -0
  17. package/src/DUPLICATION_AUDIT_2026_08_07/C_gfx_render.md +80 -0
  18. package/src/DUPLICATION_AUDIT_2026_08_07/D_gfx_features.md +164 -0
  19. package/src/DUPLICATION_AUDIT_2026_08_07/E_physics.md +69 -0
  20. package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +102 -0
  21. package/src/DUPLICATION_AUDIT_2026_08_07/G_net_save.md +129 -0
  22. package/src/DUPLICATION_AUDIT_2026_08_07/H_engine_misc.md +72 -0
  23. package/src/DUPLICATION_AUDIT_2026_08_07/I_generation_view.md +74 -0
  24. package/src/DUPLICATION_AUDIT_2026_08_07/K_crosscutting.md +169 -0
  25. package/src/DUPLICATION_AUDIT_2026_08_07.md +254 -0
  26. package/src/DUPLICATION_AUDIT_REMEDIATION.md +250 -0
  27. package/src/core/bvh2/bvh3/query/bvh_collect_user_data.js +2 -2
  28. package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.js +77 -77
  29. package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.js +90 -90
  30. package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray_segment.js +94 -94
  31. package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.js +86 -86
  32. package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_aabb.js +2 -2
  33. package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_capsule.js +2 -2
  34. package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_frustum.js +2 -2
  35. package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_sphere.js +2 -2
  36. package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.js +96 -96
  37. package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray_segment.js +100 -100
  38. package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.js +2 -2
  39. package/src/core/bvh8/aabb3_round_to_float32.d.ts +16 -0
  40. package/src/core/bvh8/aabb3_round_to_float32.d.ts.map +1 -0
  41. package/src/core/bvh8/aabb3_round_to_float32.js +22 -0
  42. package/src/core/bvh8/bvh8_geometry_validate.d.ts.map +1 -1
  43. package/src/core/bvh8/bvh8_geometry_validate.js +1 -12
  44. package/src/core/bvh8/bvh8_geometry_validate_indirect.d.ts.map +1 -1
  45. package/src/core/bvh8/bvh8_geometry_validate_indirect.js +1 -12
  46. package/src/core/cache/Cache.d.ts +13 -0
  47. package/src/core/cache/Cache.d.ts.map +1 -1
  48. package/src/core/cache/Cache.js +13 -0
  49. package/src/core/color/operations/color_darken.d.ts +5 -2
  50. package/src/core/color/operations/color_darken.d.ts.map +1 -1
  51. package/src/core/color/operations/color_darken.js +24 -33
  52. package/src/core/color/operations/color_desaturate.d.ts +5 -2
  53. package/src/core/color/operations/color_desaturate.d.ts.map +1 -1
  54. package/src/core/color/operations/color_desaturate.js +24 -33
  55. package/src/core/color/operations/color_lighten.d.ts +5 -2
  56. package/src/core/color/operations/color_lighten.d.ts.map +1 -1
  57. package/src/core/color/operations/color_lighten.js +24 -33
  58. package/src/core/color/operations/color_saturate.d.ts +5 -2
  59. package/src/core/color/operations/color_saturate.d.ts.map +1 -1
  60. package/src/core/color/operations/color_saturate.js +24 -33
  61. package/src/core/color/operations/color_scale_okhsv_channel.d.ts +28 -0
  62. package/src/core/color/operations/color_scale_okhsv_channel.d.ts.map +1 -0
  63. package/src/core/color/operations/color_scale_okhsv_channel.js +45 -0
  64. package/src/core/geom/2d/hash-grid/SpatialHashGrid.d.ts.map +1 -1
  65. package/src/core/geom/2d/hash-grid/SpatialHashGrid.js +12 -0
  66. package/src/core/geom/2d/line/segment2_intersects_segment2_2d.d.ts.map +1 -1
  67. package/src/core/geom/2d/line/segment2_intersects_segment2_2d.js +25 -29
  68. package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.d.ts.map +1 -1
  69. package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.js +46 -51
  70. package/src/core/geom/2d/line/segment2_segment_intersection_fractions.d.ts +31 -0
  71. package/src/core/geom/2d/line/segment2_segment_intersection_fractions.d.ts.map +1 -0
  72. package/src/core/geom/2d/line/segment2_segment_intersection_fractions.js +52 -0
  73. package/src/core/geom/2d/quad-tree/qt_collect_by_circle.d.ts +6 -1
  74. package/src/core/geom/2d/quad-tree/qt_collect_by_circle.d.ts.map +1 -1
  75. package/src/core/geom/2d/quad-tree/qt_collect_by_circle.js +39 -65
  76. package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.d.ts +15 -5
  77. package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.d.ts.map +1 -1
  78. package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.js +101 -70
  79. package/src/core/geom/2d/r-tree/StaticR2Tree.d.ts.map +1 -1
  80. package/src/core/geom/2d/r-tree/StaticR2Tree.js +7 -3
  81. package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.d.ts +7 -8
  82. package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.d.ts.map +1 -1
  83. package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.js +15 -51
  84. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts.map +1 -1
  85. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.js +13 -14
  86. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts.map +1 -1
  87. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.js +2 -17
  88. package/src/core/geom/3d/atlas/segment/atlas_chart_roundness_delta.d.ts +22 -0
  89. package/src/core/geom/3d/atlas/segment/atlas_chart_roundness_delta.d.ts.map +1 -0
  90. package/src/core/geom/3d/atlas/segment/atlas_chart_roundness_delta.js +30 -0
  91. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts +19 -0
  92. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts.map +1 -1
  93. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.js +5 -9
  94. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts.map +1 -1
  95. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.js +4 -12
  96. package/src/core/geom/3d/frustum/read_frustum_corner.d.ts +5 -0
  97. package/src/core/geom/3d/frustum/read_frustum_corner.d.ts.map +1 -1
  98. package/src/core/geom/3d/frustum/read_frustum_corner.js +8 -5
  99. package/src/core/geom/3d/line/line3_segment_segment_closest_point_pair.d.ts +33 -0
  100. package/src/core/geom/3d/line/line3_segment_segment_closest_point_pair.d.ts.map +1 -0
  101. package/src/core/geom/3d/line/line3_segment_segment_closest_point_pair.js +71 -0
  102. package/src/core/geom/3d/mat4/m4_compose.d.ts +5 -0
  103. package/src/core/geom/3d/mat4/m4_compose.d.ts.map +1 -1
  104. package/src/core/geom/3d/mat4/m4_compose.js +22 -53
  105. package/src/core/geom/3d/mat4/m4_decompose.d.ts +8 -0
  106. package/src/core/geom/3d/mat4/m4_decompose.d.ts.map +1 -1
  107. package/src/core/geom/3d/mat4/m4_decompose.js +84 -76
  108. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts +2 -0
  109. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts.map +1 -1
  110. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.js +10 -44
  111. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.d.ts +27 -0
  112. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.d.ts.map +1 -0
  113. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.js +67 -0
  114. package/src/core/geom/3d/plane/orient3d_fast.d.ts.map +1 -1
  115. package/src/core/geom/3d/plane/orient3d_fast.js +2 -22
  116. package/src/core/geom/3d/plane/orient3d_fast_point.d.ts +28 -0
  117. package/src/core/geom/3d/plane/orient3d_fast_point.d.ts.map +1 -0
  118. package/src/core/geom/3d/plane/orient3d_fast_point.js +47 -0
  119. package/src/core/geom/3d/quaternion/quat3_nlerp.d.ts +48 -0
  120. package/src/core/geom/3d/quaternion/quat3_nlerp.d.ts.map +1 -0
  121. package/src/core/geom/3d/quaternion/quat3_nlerp.js +72 -0
  122. package/src/core/geom/3d/shape/AbstractShape3D.d.ts +9 -0
  123. package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
  124. package/src/core/geom/3d/shape/AbstractShape3D.js +44 -1
  125. package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -1
  126. package/src/core/geom/3d/shape/BoxShape3D.js +2 -1
  127. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
  128. package/src/core/geom/3d/shape/CapsuleShape3D.js +2 -1
  129. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts +0 -1
  130. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
  131. package/src/core/geom/3d/shape/ConvexHullShape3D.js +25 -56
  132. package/src/core/geom/3d/shape/CylinderShape3D.d.ts.map +1 -1
  133. package/src/core/geom/3d/shape/CylinderShape3D.js +2 -1
  134. package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
  135. package/src/core/geom/3d/shape/HeightMapShape3D.js +3 -5
  136. package/src/core/geom/3d/shape/MeshShape3D.d.ts +0 -11
  137. package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -1
  138. package/src/core/geom/3d/shape/MeshShape3D.js +27 -106
  139. package/src/core/geom/3d/shape/Triangle3D.d.ts +1 -1
  140. package/src/core/geom/3d/shape/Triangle3D.d.ts.map +1 -1
  141. package/src/core/geom/3d/shape/Triangle3D.js +10 -31
  142. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.d.ts.map +1 -1
  143. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.js +8 -57
  144. package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts +8 -1
  145. package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts.map +1 -1
  146. package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +281 -272
  147. package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.d.ts.map +1 -1
  148. package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.js +3 -4
  149. package/src/core/geom/3d/topology/simplify/quadratic/quadric3_set_from_plane_through_point.d.ts +22 -0
  150. package/src/core/geom/3d/topology/simplify/quadratic/quadric3_set_from_plane_through_point.d.ts.map +1 -0
  151. package/src/core/geom/3d/topology/simplify/quadratic/quadric3_set_from_plane_through_point.js +27 -0
  152. package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.d.ts +24 -0
  153. package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.d.ts.map +1 -0
  154. package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.js +73 -0
  155. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.d.ts.map +1 -1
  156. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.js +2 -53
  157. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts.map +1 -1
  158. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.js +3 -4
  159. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.d.ts.map +1 -1
  160. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.js +3 -33
  161. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.d.ts.map +1 -1
  162. package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.js +4 -37
  163. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts.map +1 -1
  164. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.js +3 -32
  165. package/src/core/geom/3d/topology/struct/binary/query/bt_face_read_triangle.d.ts +32 -0
  166. package/src/core/geom/3d/topology/struct/binary/query/bt_face_read_triangle.d.ts.map +1 -0
  167. package/src/core/geom/3d/topology/struct/binary/query/bt_face_read_triangle.js +66 -0
  168. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path.d.ts.map +1 -1
  169. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path.js +703 -728
  170. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.d.ts.map +1 -1
  171. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.js +13 -24
  172. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.d.ts.map +1 -1
  173. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.js +8 -54
  174. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_surface_ray_parity.d.ts +35 -0
  175. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_surface_ray_parity.d.ts.map +1 -0
  176. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_surface_ray_parity.js +82 -0
  177. package/src/core/geom/3d/triangle/tri3_closest_point.d.ts +29 -0
  178. package/src/core/geom/3d/triangle/tri3_closest_point.d.ts.map +1 -0
  179. package/src/core/geom/3d/triangle/tri3_closest_point.js +65 -0
  180. package/src/core/geom/3d/triangle/tri3_flatten_isometric.d.ts +42 -0
  181. package/src/core/geom/3d/triangle/tri3_flatten_isometric.d.ts.map +1 -0
  182. package/src/core/geom/3d/triangle/tri3_flatten_isometric.js +79 -0
  183. package/src/core/geom/Vector2.d.ts.map +1 -1
  184. package/src/core/geom/Vector2.js +2 -1
  185. package/src/core/geom/random/random_orthonormal_basis.d.ts +21 -0
  186. package/src/core/geom/random/random_orthonormal_basis.d.ts.map +1 -0
  187. package/src/core/geom/random/random_orthonormal_basis.js +31 -0
  188. package/src/core/geom/vec2/v2_rotate.d.ts +18 -0
  189. package/src/core/geom/vec2/v2_rotate.d.ts.map +1 -0
  190. package/src/core/geom/vec2/v2_rotate.js +21 -0
  191. package/src/core/geom/vec2/v2_rotate_cos_sin.d.ts +19 -0
  192. package/src/core/geom/vec2/v2_rotate_cos_sin.d.ts.map +1 -0
  193. package/src/core/geom/vec2/v2_rotate_cos_sin.js +21 -0
  194. package/src/core/graph/csr/csr_graph_from_undirected_edge_list.d.ts +30 -0
  195. package/src/core/graph/csr/csr_graph_from_undirected_edge_list.d.ts.map +1 -0
  196. package/src/core/graph/csr/csr_graph_from_undirected_edge_list.js +94 -0
  197. package/src/core/graph/layout/CircleLayout.d.ts.map +1 -1
  198. package/src/core/graph/layout/CircleLayout.js +6 -29
  199. package/src/core/graph/layout/box/BoxLayouter.d.ts.map +1 -1
  200. package/src/core/graph/layout/box/BoxLayouter.js +2 -26
  201. package/src/core/graph/layout/box/position_box_next_to_box.d.ts.map +1 -1
  202. package/src/core/graph/layout/box/position_box_next_to_box.js +2 -1
  203. package/src/core/graph/layout/computeDisconnectedSubGraphs.d.ts.map +1 -1
  204. package/src/core/graph/layout/computeDisconnectedSubGraphs.js +14 -3
  205. package/src/core/graph/layout/graph_peel_topological_layer.d.ts +25 -0
  206. package/src/core/graph/layout/graph_peel_topological_layer.d.ts.map +1 -0
  207. package/src/core/graph/layout/graph_peel_topological_layer.js +45 -0
  208. package/src/core/math/hash/hash_mix2.d.ts +21 -0
  209. package/src/core/math/hash/hash_mix2.d.ts.map +1 -0
  210. package/src/core/math/hash/hash_mix2.js +22 -0
  211. package/src/core/math/hash/hash_mix3.d.ts +16 -0
  212. package/src/core/math/hash/hash_mix3.d.ts.map +1 -0
  213. package/src/core/math/hash/hash_mix3.js +19 -0
  214. package/src/core/math/lookup/LUT_HEATMAP.d.ts +17 -0
  215. package/src/core/math/lookup/LUT_HEATMAP.d.ts.map +1 -0
  216. package/src/core/math/lookup/LUT_HEATMAP.js +30 -0
  217. package/src/core/math/noise/curl_noise_3d.d.ts +6 -0
  218. package/src/core/math/noise/curl_noise_3d.d.ts.map +1 -1
  219. package/src/core/math/noise/curl_noise_3d.js +18 -27
  220. package/src/core/math/statistics/hammersley_sequence.d.ts +28 -16
  221. package/src/core/math/statistics/hammersley_sequence.d.ts.map +1 -1
  222. package/src/core/math/statistics/hammersley_sequence.js +53 -34
  223. package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts +3 -0
  224. package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts.map +1 -1
  225. package/src/core/science/units/MEASUREMENT_UNITS_SI.js +5 -16
  226. package/src/engine/animation/TransitionFunctions.d.ts +31 -0
  227. package/src/engine/animation/TransitionFunctions.d.ts.map +1 -1
  228. package/src/engine/animation/TransitionFunctions.js +44 -0
  229. package/src/engine/animation/curve/animation_curve_binary_codec.d.ts +29 -0
  230. package/src/engine/animation/curve/animation_curve_binary_codec.d.ts.map +1 -0
  231. package/src/engine/animation/curve/animation_curve_binary_codec.js +60 -0
  232. package/src/engine/animation/curve/draw/canvas_point_to_curve.d.ts +16 -0
  233. package/src/engine/animation/curve/draw/canvas_point_to_curve.d.ts.map +1 -0
  234. package/src/engine/animation/curve/draw/canvas_point_to_curve.js +22 -0
  235. package/src/engine/animation/curve/draw/curve_point_to_canvas.d.ts +27 -0
  236. package/src/engine/animation/curve/draw/curve_point_to_canvas.d.ts.map +1 -0
  237. package/src/engine/animation/curve/draw/curve_point_to_canvas.js +38 -0
  238. package/src/engine/animation/curve/draw/position_canvas_to_curve.d.ts +2 -0
  239. package/src/engine/animation/curve/draw/position_canvas_to_curve.d.ts.map +1 -1
  240. package/src/engine/animation/curve/draw/position_canvas_to_curve.js +22 -24
  241. package/src/engine/animation/curve/draw/position_curve_to_canvas.d.ts +2 -0
  242. package/src/engine/animation/curve/draw/position_curve_to_canvas.d.ts.map +1 -1
  243. package/src/engine/animation/curve/draw/position_curve_to_canvas.js +22 -25
  244. package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.d.ts.map +1 -1
  245. package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.js +3 -2
  246. package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.d.ts.map +1 -1
  247. package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.js +14 -14
  248. package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts.map +1 -1
  249. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +5 -0
  250. package/src/engine/asset/loaders/GLTFAssetLoader.d.ts.map +1 -1
  251. package/src/engine/asset/loaders/GLTFAssetLoader.js +25 -51
  252. package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts +3 -2
  253. package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts.map +1 -1
  254. package/src/engine/asset/loaders/material/StaticMaterialCache.js +16 -55
  255. package/src/engine/asset/loaders/material/TextureCoalescer.d.ts +32 -0
  256. package/src/engine/asset/loaders/material/TextureCoalescer.d.ts.map +1 -0
  257. package/src/engine/asset/loaders/material/TextureCoalescer.js +68 -0
  258. package/src/engine/asset/loaders/material/traverseMaterialTextures.d.ts +10 -2
  259. package/src/engine/asset/loaders/material/traverseMaterialTextures.d.ts.map +1 -1
  260. package/src/engine/asset/loaders/material/traverseMaterialTextures.js +10 -2
  261. package/src/engine/control/first-person/abilities/Mantle.d.ts.map +1 -1
  262. package/src/engine/control/first-person/abilities/Mantle.js +10 -26
  263. package/src/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.d.ts.map +1 -1
  264. package/src/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.js +5 -0
  265. package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts +22 -2
  266. package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts.map +1 -1
  267. package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +92 -41
  268. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +3 -1
  269. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
  270. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +14 -16
  271. package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.d.ts.map +1 -1
  272. package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.js +16 -29
  273. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts.map +1 -1
  274. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +12 -74
  275. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
  276. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +10 -73
  277. package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +38 -0
  278. package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +1 -0
  279. package/src/engine/ecs/ik/ik_probe_terrain_contact.js +119 -0
  280. package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.d.ts +0 -1
  281. package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.d.ts.map +1 -1
  282. package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js +2 -14
  283. package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts +12 -1
  284. package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts.map +1 -1
  285. package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.js +14 -10
  286. package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.d.ts.map +1 -1
  287. package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +7 -28
  288. package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.d.ts +1 -2
  289. package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.d.ts.map +1 -1
  290. package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.js +4 -12
  291. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts.map +1 -1
  292. package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +2 -11
  293. package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.d.ts +1 -2
  294. package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.d.ts.map +1 -1
  295. package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.js +3 -11
  296. package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.d.ts +1 -2
  297. package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.d.ts.map +1 -1
  298. package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.js +3 -11
  299. package/src/engine/graphics/ecs/highlight/renderer/make_screen_space_quad_material.d.ts +33 -0
  300. package/src/engine/graphics/ecs/highlight/renderer/make_screen_space_quad_material.d.ts.map +1 -0
  301. package/src/engine/graphics/ecs/highlight/renderer/make_screen_space_quad_material.js +44 -0
  302. package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.d.ts +55 -0
  303. package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.d.ts.map +1 -0
  304. package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.js +205 -0
  305. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts +4 -45
  306. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
  307. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +39 -162
  308. package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts +4 -51
  309. package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts.map +1 -1
  310. package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.js +34 -164
  311. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts +5 -57
  312. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
  313. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +48 -175
  314. package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts.map +1 -1
  315. package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.js +7 -25
  316. package/src/engine/graphics/ecs/make_bvh_depth_range_computer.d.ts +26 -0
  317. package/src/engine/graphics/ecs/make_bvh_depth_range_computer.d.ts.map +1 -0
  318. package/src/engine/graphics/ecs/make_bvh_depth_range_computer.js +33 -0
  319. package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
  320. package/src/engine/graphics/ecs/mesh/MeshSystem.js +2 -5
  321. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
  322. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +2 -5
  323. package/src/engine/graphics/ecs/render_layers_compute_depth_range.d.ts +35 -0
  324. package/src/engine/graphics/ecs/render_layers_compute_depth_range.d.ts.map +1 -0
  325. package/src/engine/graphics/ecs/render_layers_compute_depth_range.js +64 -0
  326. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
  327. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +2 -5
  328. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts.map +1 -1
  329. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.js +2 -5
  330. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  331. package/src/engine/graphics/ecs/water/WaterSystem.js +2 -5
  332. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.d.ts.map +1 -1
  333. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js +22 -94
  334. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_overlap_clipping_volume.d.ts.map +1 -1
  335. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_overlap_clipping_volume.js +17 -57
  336. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.d.ts.map +1 -1
  337. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js +17 -57
  338. package/src/engine/graphics/geometry/buffered/query/nearest_point_on_triangle_record.d.ts +30 -0
  339. package/src/engine/graphics/geometry/buffered/query/nearest_point_on_triangle_record.d.ts.map +1 -0
  340. package/src/engine/graphics/geometry/buffered/query/nearest_point_on_triangle_record.js +87 -0
  341. package/src/engine/graphics/geometry/buffered/query/query_bvh_geometry_nearest.d.ts.map +1 -1
  342. package/src/engine/graphics/geometry/buffered/query/query_bvh_geometry_nearest.js +11 -55
  343. package/src/engine/graphics/geometry/buffered/read_triangle_vertices.d.ts +29 -0
  344. package/src/engine/graphics/geometry/buffered/read_triangle_vertices.d.ts.map +1 -0
  345. package/src/engine/graphics/geometry/buffered/read_triangle_vertices.js +102 -0
  346. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderDepthV0.d.ts.map +1 -1
  347. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderDepthV0.js +17 -122
  348. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderLitV0.d.ts.map +1 -1
  349. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderLitV0.js +15 -194
  350. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderNormalsV0.d.ts.map +1 -1
  351. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderNormalsV0.js +12 -108
  352. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderPerPixelV0.d.ts.map +1 -1
  353. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderPerPixelV0.js +14 -183
  354. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderV0.d.ts.map +1 -1
  355. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderV0.js +12 -154
  356. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderViewportDepthV0.d.ts.map +1 -1
  357. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderViewportDepthV0.js +10 -94
  358. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderWireframeV0.d.ts.map +1 -1
  359. package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderWireframeV0.js +8 -72
  360. package/src/engine/graphics/impostors/octahedral/shader/glsl/common.glsl +10 -0
  361. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts.map +1 -1
  362. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.js +79 -58
  363. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts.map +1 -1
  364. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.js +11 -22
  365. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts.map +1 -1
  366. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.js +7 -16
  367. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts.map +1 -1
  368. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.js +5 -9
  369. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts.map +1 -1
  370. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.js +4 -19
  371. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts.map +1 -1
  372. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.js +5 -9
  373. package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
  374. package/src/engine/graphics/material/SplatMaterial.js +2 -17
  375. package/src/engine/graphics/material/WaterMaterial.d.ts.map +1 -1
  376. package/src/engine/graphics/material/WaterMaterial.js +3 -18
  377. package/src/engine/graphics/material/manager/compilers/CoalesceTextures.d.ts +4 -4
  378. package/src/engine/graphics/material/manager/compilers/CoalesceTextures.d.ts.map +1 -1
  379. package/src/engine/graphics/material/manager/compilers/CoalesceTextures.js +25 -70
  380. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts.map +1 -1
  381. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +2 -5
  382. package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts +8 -11
  383. package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts.map +1 -1
  384. package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.js +20 -21
  385. package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts +39 -0
  386. package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts.map +1 -0
  387. package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.js +45 -0
  388. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts +6 -8
  389. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts.map +1 -1
  390. package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.js +2 -13
  391. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts.map +1 -1
  392. package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +16 -78
  393. package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts +45 -0
  394. package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts.map +1 -0
  395. package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.js +168 -0
  396. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +1 -1
  397. package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +11 -115
  398. package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.d.ts +24 -16
  399. package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.d.ts.map +1 -1
  400. package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.js +15 -47
  401. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts +4 -0
  402. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
  403. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +4 -0
  404. package/src/engine/graphics/sh3/build_injected_shader.d.ts +51 -0
  405. package/src/engine/graphics/sh3/build_injected_shader.d.ts.map +1 -0
  406. package/src/engine/graphics/sh3/build_injected_shader.js +56 -0
  407. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
  408. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +10 -1
  409. package/src/engine/graphics/sh3/gi/material/chunk_lpv_get_irradiance_at.d.ts.map +1 -1
  410. package/src/engine/graphics/sh3/gi/material/chunk_lpv_get_irradiance_at.js +17 -0
  411. package/src/engine/graphics/sh3/gi/material/common.d.ts +1 -1
  412. package/src/engine/graphics/sh3/gi/material/common.js +6 -222
  413. package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.d.ts.map +1 -1
  414. package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.js +7 -11
  415. package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.d.ts.map +1 -1
  416. package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.js +27 -29
  417. package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.d.ts.map +1 -1
  418. package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.js +7 -11
  419. package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.d.ts.map +1 -1
  420. package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.js +7 -12
  421. package/src/engine/graphics/sh3/grid_dilate_average.d.ts +38 -0
  422. package/src/engine/graphics/sh3/grid_dilate_average.d.ts.map +1 -0
  423. package/src/engine/graphics/sh3/grid_dilate_average.js +175 -0
  424. package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts +4 -0
  425. package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts.map +1 -1
  426. package/src/engine/graphics/sh3/lightmap/lightmap_dilate.js +7 -70
  427. package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.d.ts +6 -0
  428. package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.d.ts.map +1 -1
  429. package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.js +14 -113
  430. package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.d.ts.map +1 -1
  431. package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.js +7 -0
  432. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.d.ts.map +1 -1
  433. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.js +5 -8
  434. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.d.ts.map +1 -1
  435. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.js +5 -8
  436. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.d.ts.map +1 -1
  437. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.js +5 -8
  438. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.d.ts.map +1 -1
  439. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.js +5 -8
  440. package/src/engine/graphics/sh3/lpv/depth/chunk_probe_depth_sampling.d.ts +38 -0
  441. package/src/engine/graphics/sh3/lpv/depth/chunk_probe_depth_sampling.d.ts.map +1 -0
  442. package/src/engine/graphics/sh3/lpv/depth/chunk_probe_depth_sampling.js +265 -0
  443. package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/visualize.frag.glsl +11 -0
  444. package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts.map +1 -1
  445. package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js +5 -1
  446. package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.frag.glsl +189 -419
  447. package/src/engine/graphics/sh3/shader/visualize.frag.d.ts +1 -1
  448. package/src/engine/graphics/sh3/shader/visualize.frag.js +7 -0
  449. package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts +102 -0
  450. package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts.map +1 -0
  451. package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.js +277 -0
  452. package/src/engine/graphics/shaders/chunks/glsl_packing.d.ts +29 -0
  453. package/src/engine/graphics/shaders/chunks/glsl_packing.d.ts.map +1 -0
  454. package/src/engine/graphics/shaders/chunks/glsl_packing.js +30 -0
  455. package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts +40 -0
  456. package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts.map +1 -0
  457. package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.js +57 -0
  458. package/src/engine/graphics/shaders/lib/make_clouds_uniforms.d.ts +22 -0
  459. package/src/engine/graphics/shaders/lib/make_clouds_uniforms.d.ts.map +1 -0
  460. package/src/engine/graphics/shaders/lib/make_clouds_uniforms.js +39 -0
  461. package/src/engine/graphics/texture/attribute_spec_to_three_format.d.ts +6 -0
  462. package/src/engine/graphics/texture/attribute_spec_to_three_format.d.ts.map +1 -1
  463. package/src/engine/graphics/texture/attribute_spec_to_three_format.js +9 -9
  464. package/src/engine/graphics/texture/channel_count_to_format_prefix.d.ts +14 -0
  465. package/src/engine/graphics/texture/channel_count_to_format_prefix.d.ts.map +1 -0
  466. package/src/engine/graphics/texture/channel_count_to_format_prefix.js +26 -0
  467. package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.d.ts.map +1 -1
  468. package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.js +2 -20
  469. package/src/engine/graphics/texture/normalized_internal_format.d.ts.map +1 -1
  470. package/src/engine/graphics/texture/normalized_internal_format.js +2 -20
  471. package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.d.ts.map +1 -1
  472. package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.js +9 -3
  473. package/src/engine/input/devices/gamepad/GamepadDeviceLayout.d.ts +54 -0
  474. package/src/engine/input/devices/gamepad/GamepadDeviceLayout.d.ts.map +1 -0
  475. package/src/engine/input/devices/gamepad/GamepadDeviceLayout.js +323 -0
  476. package/src/engine/input/devices/gamepad/GamepadHandle.d.ts +21 -2
  477. package/src/engine/input/devices/gamepad/GamepadHandle.d.ts.map +1 -1
  478. package/src/engine/input/devices/gamepad/GamepadHandle.js +39 -11
  479. package/src/engine/input/devices/gamepad/GamepadLayout.d.ts +128 -0
  480. package/src/engine/input/devices/gamepad/GamepadLayout.d.ts.map +1 -0
  481. package/src/engine/input/devices/gamepad/GamepadLayout.js +160 -0
  482. package/src/engine/input/devices/gamepad/GamepadStandardMapping.d.ts +10 -0
  483. package/src/engine/input/devices/gamepad/GamepadStandardMapping.d.ts.map +1 -1
  484. package/src/engine/input/devices/gamepad/GamepadStandardMapping.js +11 -0
  485. package/src/engine/input/devices/gamepad/GamepadStick.d.ts +5 -1
  486. package/src/engine/input/devices/gamepad/GamepadStick.d.ts.map +1 -1
  487. package/src/engine/input/devices/gamepad/GamepadStick.js +5 -1
  488. package/src/engine/input/devices/gamepad/gamepad_layout_database.d.ts +27 -0
  489. package/src/engine/input/devices/gamepad/gamepad_layout_database.d.ts.map +1 -0
  490. package/src/engine/input/devices/gamepad/gamepad_layout_database.js +144 -0
  491. package/src/engine/input/devices/gamepad/gamepad_read_hat_axis.d.ts +25 -0
  492. package/src/engine/input/devices/gamepad/gamepad_read_hat_axis.d.ts.map +1 -0
  493. package/src/engine/input/devices/gamepad/gamepad_read_hat_axis.js +61 -0
  494. package/src/engine/input/devices/gamepad/prototypeGamepadTester.d.ts +2 -0
  495. package/src/engine/input/devices/gamepad/prototypeGamepadTester.d.ts.map +1 -0
  496. package/src/engine/input/devices/gamepad/prototypeGamepadTester.js +2124 -0
  497. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
  498. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +3 -33
  499. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts.map +1 -1
  500. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +5 -0
  501. package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts.map +1 -1
  502. package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +18 -19
  503. package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts.map +1 -1
  504. package/src/engine/network/adapters/TransformInterpolationAdapter.js +18 -13
  505. package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
  506. package/src/engine/network/orchestrator/NetworkPeer.js +2 -1
  507. package/src/engine/network/sim/ActionLog.d.ts +9 -6
  508. package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
  509. package/src/engine/network/sim/ActionLog.js +43 -80
  510. package/src/engine/network/sim/SmoothingState.d.ts.map +1 -1
  511. package/src/engine/network/sim/SmoothingState.js +27 -28
  512. package/src/engine/network/state/FrameBufferRing.d.ts +84 -0
  513. package/src/engine/network/state/FrameBufferRing.d.ts.map +1 -0
  514. package/src/engine/network/state/FrameBufferRing.js +168 -0
  515. package/src/engine/network/state/InputRing.d.ts +14 -12
  516. package/src/engine/network/state/InputRing.d.ts.map +1 -1
  517. package/src/engine/network/state/InputRing.js +37 -76
  518. package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
  519. package/src/engine/network/transport/LoopbackTransport.js +10 -31
  520. package/src/engine/network/transport/Transport.d.ts +42 -2
  521. package/src/engine/network/transport/Transport.d.ts.map +1 -1
  522. package/src/engine/network/transport/Transport.js +87 -3
  523. package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
  524. package/src/engine/network/transport/adapters/NodeUDPTransport.js +7 -33
  525. package/src/engine/network/transport/adapters/SimulatedTransport.d.ts.map +1 -1
  526. package/src/engine/network/transport/adapters/SimulatedTransport.js +17 -28
  527. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -1
  528. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +6 -32
  529. package/src/engine/network/transport/adapters/WebSocketTransport.d.ts.map +1 -1
  530. package/src/engine/network/transport/adapters/WebSocketTransport.js +6 -32
  531. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
  532. package/src/engine/network/transport/adapters/WebTransportTransport.js +11 -22
  533. package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
  534. package/src/engine/physics/constraint/solve_constraints.js +18 -48
  535. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  536. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
  537. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_scalar.d.ts.map +1 -1
  538. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_scalar.js +7 -0
  539. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.d.ts.map +1 -1
  540. package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.js +11 -18
  541. package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.d.ts.map +1 -1
  542. package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js +7 -0
  543. package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.d.ts.map +1 -1
  544. package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.js +15 -57
  545. package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.d.ts.map +1 -1
  546. package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.js +7 -0
  547. package/src/engine/physics/fluid/solver/v3_grid_limit8_at_indices.d.ts +28 -0
  548. package/src/engine/physics/fluid/solver/v3_grid_limit8_at_indices.d.ts.map +1 -0
  549. package/src/engine/physics/fluid/solver/v3_grid_limit8_at_indices.js +38 -0
  550. package/src/engine/physics/fluid/solver/v3_mac_advect_maccormack_velocity.d.ts.map +1 -1
  551. package/src/engine/physics/fluid/solver/v3_mac_advect_maccormack_velocity.js +12 -14
  552. package/src/engine/physics/fluid/solver/v3_mac_apply_vorticity_confinement.d.ts.map +1 -1
  553. package/src/engine/physics/fluid/solver/v3_mac_apply_vorticity_confinement.js +9 -0
  554. package/src/engine/physics/mls-mpm/MLS_MPM.d.ts +13 -1
  555. package/src/engine/physics/mls-mpm/MLS_MPM.d.ts.map +1 -1
  556. package/src/engine/physics/mls-mpm/MLS_MPM.js +15 -4
  557. package/src/engine/physics/narrowphase/box_triangle_contact.d.ts.map +1 -1
  558. package/src/engine/physics/narrowphase/box_triangle_contact.js +9 -0
  559. package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
  560. package/src/engine/physics/narrowphase/capsule_contacts.js +10 -11
  561. package/src/engine/physics/narrowphase/sphere_triangle_contact.d.ts.map +1 -1
  562. package/src/engine/physics/narrowphase/sphere_triangle_contact.js +7 -12
  563. package/src/engine/physics/solver/apply_impulse_to_body.d.ts +36 -0
  564. package/src/engine/physics/solver/apply_impulse_to_body.d.ts.map +1 -0
  565. package/src/engine/physics/solver/apply_impulse_to_body.js +86 -0
  566. package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
  567. package/src/engine/physics/solver/solve_contacts.js +1 -53
  568. package/src/engine/plugin/EnginePlugin.d.ts +3 -0
  569. package/src/engine/plugin/EnginePlugin.d.ts.map +1 -1
  570. package/src/engine/plugin/EnginePlugin.js +3 -0
  571. package/src/engine/save/storage/IndexedDBStorage.d.ts +1 -0
  572. package/src/engine/save/storage/IndexedDBStorage.d.ts.map +1 -1
  573. package/src/engine/save/storage/IndexedDBStorage.js +50 -50
  574. package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
  575. package/src/engine/sound/ecs/SoundControllerSystem.js +2 -10
  576. package/src/engine/sound/simulation/AcousticSimulator.d.ts.map +1 -1
  577. package/src/engine/sound/simulation/AcousticSimulator.js +2 -1
  578. package/src/engine/sound/simulation/core/AcousticOccluderIndex.d.ts.map +1 -1
  579. package/src/engine/sound/simulation/core/AcousticOccluderIndex.js +4 -6
  580. package/src/engine/sound/simulation/core/OcclusionSolver.d.ts.map +1 -1
  581. package/src/engine/sound/simulation/core/OcclusionSolver.js +2 -9
  582. package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.d.ts.map +1 -1
  583. package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.js +9 -14
  584. package/src/engine/sound/simulation/probe/bakeReverbBands.d.ts.map +1 -1
  585. package/src/engine/sound/simulation/probe/bakeReverbBands.js +2 -6
  586. package/src/engine/sound/simulation/probe/bakeVisibility.d.ts.map +1 -1
  587. package/src/engine/sound/simulation/probe/bakeVisibility.js +4 -34
  588. package/src/engine/sound/simulation/probe/probe_densify_portals.d.ts.map +1 -1
  589. package/src/engine/sound/simulation/probe/probe_densify_portals.js +3 -6
  590. package/src/engine/sound/simulation/probe/probe_edge_key.d.ts +31 -0
  591. package/src/engine/sound/simulation/probe/probe_edge_key.d.ts.map +1 -0
  592. package/src/engine/sound/simulation/probe/probe_edge_key.js +38 -0
  593. package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts +10 -3
  594. package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts.map +1 -1
  595. package/src/engine/sound/simulation/probe/probe_sdf_grid.js +10 -22
  596. package/src/engine/sound/simulation/probe/probe_visibility_augment.d.ts.map +1 -1
  597. package/src/engine/sound/simulation/probe/probe_visibility_augment.js +12 -48
  598. package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.d.ts.map +1 -1
  599. package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.js +4 -3
  600. package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts +5 -4
  601. package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts.map +1 -1
  602. package/src/engine/sound/simulation/render/foaReverbImpulseResponse.js +23 -31
  603. package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts +1 -8
  604. package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts.map +1 -1
  605. package/src/engine/sound/simulation/render/reverbImpulseResponse.js +21 -31
  606. package/src/engine/sound/simulation/render/reverb_band_tails.d.ts +55 -0
  607. package/src/engine/sound/simulation/render/reverb_band_tails.d.ts.map +1 -0
  608. package/src/engine/sound/simulation/render/reverb_band_tails.js +93 -0
  609. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
  610. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +6 -22
  611. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
  612. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +7 -3
  613. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.d.ts.map +1 -1
  614. package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.js +7 -22
  615. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.d.ts.map +1 -1
  616. package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +28 -0
  617. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts.map +1 -1
  618. package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +1 -5
  619. package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts.map +1 -1
  620. package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.js +1 -13
  621. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
  622. package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -8
  623. package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +3 -0
  624. package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -1
  625. package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +26 -14
  626. package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
  627. package/src/engine/sound/sopra/runtime/BusGraph.js +21 -33
  628. package/src/engine/sound/sopra/runtime/EventInstance.js +1 -1
  629. package/src/engine/ui/apply_pointer_tilt_3d.d.ts +25 -0
  630. package/src/engine/ui/apply_pointer_tilt_3d.d.ts.map +1 -0
  631. package/src/engine/ui/apply_pointer_tilt_3d.js +50 -0
  632. package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.d.ts.map +1 -1
  633. package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.js +9 -26
  634. package/src/generation/filtering/numeric/CellFilterCache.d.ts.map +1 -1
  635. package/src/generation/filtering/numeric/CellFilterCache.js +4 -21
  636. package/src/generation/filtering/numeric/complex/CellFilterSobel.d.ts.map +1 -1
  637. package/src/generation/filtering/numeric/complex/CellFilterSobel.js +11 -20
  638. package/src/generation/filtering/numeric/math/CellFilterPower.d.ts +1 -1
  639. package/src/generation/filtering/numeric/math/CellFilterPower.d.ts.map +1 -1
  640. package/src/generation/filtering/numeric/math/CellFilterPower.js +1 -5
  641. package/src/generation/filtering/numeric/process/computeCellFilterGradient.d.ts.map +1 -1
  642. package/src/generation/filtering/numeric/process/computeCellFilterGradient.js +13 -15
  643. package/src/generation/filtering/numeric/process/computeCellFilterSobel.d.ts +20 -0
  644. package/src/generation/filtering/numeric/process/computeCellFilterSobel.d.ts.map +1 -0
  645. package/src/generation/filtering/numeric/process/computeCellFilterSobel.js +36 -0
  646. package/src/generation/filtering/numeric/util/CellFilterDisplaced.d.ts.map +1 -1
  647. package/src/generation/filtering/numeric/util/CellFilterDisplaced.js +11 -6
  648. package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.d.ts.map +1 -1
  649. package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.js +18 -36
  650. package/src/generation/filtering/numeric/util/write_cell_filter_to_sampler2d.d.ts +21 -0
  651. package/src/generation/filtering/numeric/util/write_cell_filter_to_sampler2d.d.ts.map +1 -0
  652. package/src/generation/filtering/numeric/util/write_cell_filter_to_sampler2d.js +47 -0
  653. package/src/generation/filtering/util/cell_filter_weights_pick.d.ts +25 -0
  654. package/src/generation/filtering/util/cell_filter_weights_pick.d.ts.map +1 -0
  655. package/src/generation/filtering/util/cell_filter_weights_pick.js +54 -0
  656. package/src/generation/grid/generation/discrete/GridTaskConnectRooms.d.ts.map +1 -1
  657. package/src/generation/grid/generation/discrete/GridTaskConnectRooms.js +14 -1
  658. package/src/generation/markers/GridActionRuleSet.d.ts.map +1 -1
  659. package/src/generation/markers/GridActionRuleSet.js +10 -7
  660. package/src/generation/markers/GridCellActionPlaceMarker.d.ts.map +1 -1
  661. package/src/generation/markers/GridCellActionPlaceMarker.js +10 -12
  662. package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.d.ts.map +1 -1
  663. package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.js +7 -42
  664. package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.d.ts.map +1 -1
  665. package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +11 -6
  666. package/src/generation/placement/GridCellPlacementRule.d.ts.map +1 -1
  667. package/src/generation/placement/GridCellPlacementRule.js +10 -7
  668. package/src/generation/placement/action/GridCellActionPlaceTags.d.ts.map +1 -1
  669. package/src/generation/placement/action/GridCellActionPlaceTags.js +10 -4
  670. package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.d.ts.map +1 -1
  671. package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.js +2 -38
  672. package/src/generation/placement/action/util/GridCellDisplacedAction.d.ts.map +1 -1
  673. package/src/generation/placement/action/util/GridCellDisplacedAction.js +11 -6
  674. package/src/generation/rules/cell/CellMatcherGridPattern.d.ts.map +1 -1
  675. package/src/generation/rules/cell/CellMatcherGridPattern.js +11 -4
  676. package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
  677. package/src/generation/theme/ThemeEngine.js +7 -12
  678. package/src/view/elements/Group.d.ts +24 -3
  679. package/src/view/elements/Group.d.ts.map +1 -1
  680. package/src/view/elements/Group.js +56 -34
@@ -1,33 +1,24 @@
1
- import { assert } from "../../assert.js";
2
- import { clamp01 } from "../../math/clamp01.js";
3
- import { Color } from "../Color.js";
4
- import { linear_srgb_to_okhsv } from "../oklab/linear_srgb_to_okhsv.js";
5
- import { okhsv_to_linear_srgb } from "../oklab/okhsv_to_linear_srgb.js";
6
-
7
- const hsv = [0, 0, 0];
8
-
9
- /**
10
- *
11
- * @param {Color} input
12
- * @param {number} [amount]
13
- * @returns {Color}
14
- */
15
- export function color_saturate(input, amount = 1) {
16
- assert.isNumber(amount, 'amount');
17
- assert.greaterThanOrEqual(amount, 0, 'amount');
18
-
19
- if (amount === 0) {
20
- // no change
21
- return input;
22
- }
23
-
24
- const r = new Color();
25
-
26
- linear_srgb_to_okhsv(hsv, input.r, input.g, input.b);
27
-
28
- hsv[1] = clamp01(hsv[1] * (1 + amount));
29
-
30
- okhsv_to_linear_srgb(r, ...hsv);
31
-
32
- return r;
33
- }
1
+ import { assert } from "../../assert.js";
2
+ import { OKHSV_CHANNEL_SATURATION, color_scale_okhsv_channel } from "./color_scale_okhsv_channel.js";
3
+
4
+ /**
5
+ * Saturate a colour by scaling its OkHSV saturation channel up.
6
+ *
7
+ * `amount` of 0 is a no-op and returns `input` itself rather than a copy. The scaled channel is clamped to
8
+ * `[0, 1]`, so an `amount` beyond the useful range saturates rather than wrapping.
9
+ *
10
+ * @param {Color} input
11
+ * @param {number} [amount]
12
+ * @returns {Color} `input` when `amount` is 0, otherwise a new Color
13
+ */
14
+ export function color_saturate(input, amount = 1) {
15
+ assert.isNumber(amount, 'amount');
16
+ assert.greaterThanOrEqual(amount, 0, 'amount');
17
+
18
+ if (amount === 0) {
19
+ // skip allocation, no change
20
+ return input;
21
+ }
22
+
23
+ return color_scale_okhsv_channel(input, OKHSV_CHANNEL_SATURATION, 1 + amount);
24
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Convert `input` to OkHSV, multiply one channel by `factor`, clamp it to `[0, 1]`, and convert back.
3
+ *
4
+ * Shared body of {@link color_lighten} / {@link color_darken} / {@link color_saturate} /
5
+ * {@link color_desaturate}, which differed only in the channel index and the factor. `channel` is a
6
+ * numeric index, not a string key — the four public functions remain the typed entry points.
7
+ *
8
+ * @param {Color} input
9
+ * @param {number} channel OkHSV channel index; see {@link OKHSV_CHANNEL_SATURATION} / {@link OKHSV_CHANNEL_VALUE}
10
+ * @param {number} factor multiplier applied to that channel
11
+ * @returns {Color} a new Color
12
+ *
13
+ * @author Alex Goldring
14
+ * @copyright Company Named Limited (c) 2026
15
+ */
16
+ export function color_scale_okhsv_channel(input: Color, channel: number, factor: number): Color;
17
+ /**
18
+ * OkHSV channel index for saturation.
19
+ * @type {number}
20
+ */
21
+ export const OKHSV_CHANNEL_SATURATION: number;
22
+ /**
23
+ * OkHSV channel index for value.
24
+ * @type {number}
25
+ */
26
+ export const OKHSV_CHANNEL_VALUE: number;
27
+ import { Color } from "../Color.js";
28
+ //# sourceMappingURL=color_scale_okhsv_channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color_scale_okhsv_channel.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/operations/color_scale_okhsv_channel.js"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;GAcG;AACH,iDARW,KAAK,WACL,MAAM,UACN,MAAM,GACJ,KAAK,CAejB;AAvCD;;;GAGG;AACH,uCAFU,MAAM,CAE0B;AAE1C;;;GAGG;AACH,kCAFU,MAAM,CAEqB;sBAff,aAAa"}
@@ -0,0 +1,45 @@
1
+ import { Color } from "../Color.js";
2
+ import { clamp01 } from "../../math/clamp01.js";
3
+ import { linear_srgb_to_okhsv } from "../oklab/linear_srgb_to_okhsv.js";
4
+ import { okhsv_to_linear_srgb } from "../oklab/okhsv_to_linear_srgb.js";
5
+
6
+ /**
7
+ * OkHSV channel index for saturation.
8
+ * @type {number}
9
+ */
10
+ export const OKHSV_CHANNEL_SATURATION = 1;
11
+
12
+ /**
13
+ * OkHSV channel index for value.
14
+ * @type {number}
15
+ */
16
+ export const OKHSV_CHANNEL_VALUE = 2;
17
+
18
+ const hsv = [0, 0, 0];
19
+
20
+ /**
21
+ * Convert `input` to OkHSV, multiply one channel by `factor`, clamp it to `[0, 1]`, and convert back.
22
+ *
23
+ * Shared body of {@link color_lighten} / {@link color_darken} / {@link color_saturate} /
24
+ * {@link color_desaturate}, which differed only in the channel index and the factor. `channel` is a
25
+ * numeric index, not a string key — the four public functions remain the typed entry points.
26
+ *
27
+ * @param {Color} input
28
+ * @param {number} channel OkHSV channel index; see {@link OKHSV_CHANNEL_SATURATION} / {@link OKHSV_CHANNEL_VALUE}
29
+ * @param {number} factor multiplier applied to that channel
30
+ * @returns {Color} a new Color
31
+ *
32
+ * @author Alex Goldring
33
+ * @copyright Company Named Limited (c) 2026
34
+ */
35
+ export function color_scale_okhsv_channel(input, channel, factor) {
36
+ const result = new Color();
37
+
38
+ linear_srgb_to_okhsv(hsv, input.r, input.g, input.b);
39
+
40
+ hsv[channel] = clamp01(hsv[channel] * factor);
41
+
42
+ okhsv_to_linear_srgb(result, hsv[0], hsv[1], hsv[2]);
43
+
44
+ return result;
45
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SpatialHashGrid.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/hash-grid/SpatialHashGrid.js"],"names":[],"mappings":"AAMA,kCAAuC;AA2BvC,kCAAmC;AACnC,kCAAmC;AACnC,kCAAmC;AACnC,kCAAmC;AAEnC;IAuCI,8DAYC;IAxCD,qBAEC;IAED,qBAEC;IAED,mCAEC;IAED;;;OAGG;IACH,sCAEC;IAED,oBAEC;IAED,4BAEC;IAsBD,2BAIC;IAED,0DAKC;IAED,4CAKC;IAED;;;;;;;OAOG;IACH,sCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAYhB;IAED;;;OAGG;IACH,yBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QA8BhB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACL,MAAM,CAKjB;IAED;;;;OAIG;IACH,mCAHW,MAAM,GACL,MAAM,CAMjB;IAED;;;;OAIG;IACH,gCAHW,MAAM,GACL,MAAM,CAMjB;IAED;;;;;OAKG;IACH,gCAJW,MAAM,KACN,MAAM,GACL,MAAM,CAOjB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAgBlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,UACN,MAAM,GACL,OAAO,CAclB;IA0FD;;;OAGG;IACH,wBAFW,MAAM,QA+BhB;;CACJ;kCAjYiC,sDAAsD"}
1
+ {"version":3,"file":"SpatialHashGrid.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/hash-grid/SpatialHashGrid.js"],"names":[],"mappings":"AAMA,kCAAuC;AAuCvC,kCAAmC;AACnC,kCAAmC;AACnC,kCAAmC;AACnC,kCAAmC;AAEnC;IAuCI,8DAYC;IAxCD,qBAEC;IAED,qBAEC;IAED,mCAEC;IAED;;;OAGG;IACH,sCAEC;IAED,oBAEC;IAED,4BAEC;IAsBD,2BAIC;IAED,0DAKC;IAED,4CAKC;IAED;;;;;;;OAOG;IACH,sCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAYhB;IAED;;;OAGG;IACH,yBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QA8BhB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACL,MAAM,CAKjB;IAED;;;;OAIG;IACH,mCAHW,MAAM,GACL,MAAM,CAMjB;IAED;;;;OAIG;IACH,gCAHW,MAAM,GACL,MAAM,CAMjB;IAED;;;;;OAKG;IACH,gCAJW,MAAM,KACN,MAAM,GACL,MAAM,CAOjB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAgBlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,UACN,MAAM,GACL,OAAO,CAclB;IA0FD;;;OAGG;IACH,wBAFW,MAAM,QA+BhB;;CACJ;kCA7YiC,sDAAsD"}
@@ -31,6 +31,18 @@ const COLUMN_NODE_GRID_INDEX = 3;
31
31
 
32
32
  const COLUMN_ELEMENT_DATA = 0;
33
33
  const COLUMN_ELEMENT_NODE_FIRST = 1;
34
+ /*
35
+ * ELEMENT AABB LAYOUT
36
+ *
37
+ * The COLUMN_ELEMENT_* offsets below are the single source of truth for an element's stored bounds; the
38
+ * query functions (shg_query_elements_circle / _line / _box) each read the four floats inline rather than
39
+ * through a helper. That is deliberate: a shared reader would have to return four values through an out
40
+ * array, turning four register-resident locals into a memory round-trip inside a per-element broadphase
41
+ * loop. The layout itself is not duplicated -- every query imports these constants.
42
+ *
43
+ * DUPLICATE EMISSION: an element spanning several cells is emitted once per overlapping cell. None of the
44
+ * query functions de-duplicate; callers that need distinct elements must do so themselves.
45
+ */
34
46
  export const COLUMN_ELEMENT_X0 = 2;
35
47
  export const COLUMN_ELEMENT_Y0 = 3;
36
48
  export const COLUMN_ELEMENT_X1 = 4;
@@ -1 +1 @@
1
- {"version":3,"file":"segment2_intersects_segment2_2d.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/line/segment2_intersects_segment2_2d.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,sDAXW,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,GACJ,OAAO,CAkBnB"}
1
+ {"version":3,"file":"segment2_intersects_segment2_2d.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/line/segment2_intersects_segment2_2d.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,sDAXW,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,GACJ,OAAO,CASnB"}
@@ -1,29 +1,25 @@
1
- /**
2
- *
3
- * @param {number} a0_x
4
- * @param {number} a0_y
5
- * @param {number} a1_x
6
- * @param {number} a1_y
7
- * @param {number} b0_x
8
- * @param {number} b0_y
9
- * @param {number} b1_x
10
- * @param {number} b1_y
11
- * @returns {boolean} True if segments intersect, False otherwise
12
- * @public
13
- */
14
- export function segment2_intersects_segment2_2d(a0_x, a0_y, a1_x, a1_y, b0_x, b0_y, b1_x, b1_y) {
15
- const s1_x = a1_x - a0_x;
16
- const s1_y = a1_y - a0_y;
17
- const s2_x = b1_x - b0_x;
18
- const s2_y = b1_y - b0_y;
19
-
20
- const dy_02 = a0_y - b0_y;
21
- const dx_02 = a0_x - b0_x;
22
-
23
- const inv_denom = 1 / (-s2_x * s1_y + s1_x * s2_y);
24
-
25
- const s = (-s1_y * dx_02 + s1_x * dy_02) * inv_denom;
26
- const t = (s2_x * dy_02 - s2_y * dx_02) * inv_denom;
27
-
28
- return s >= 0 && s <= 1 && t >= 0 && t <= 1;
29
- }
1
+ import { segment2_segment_intersection_fractions } from "./segment2_segment_intersection_fractions.js";
2
+
3
+ // the fractions themselves are discarded by this boolean face
4
+ const scratch_fractions = new Float64Array(2);
5
+
6
+ /**
7
+ *
8
+ * @param {number} a0_x
9
+ * @param {number} a0_y
10
+ * @param {number} a1_x
11
+ * @param {number} a1_y
12
+ * @param {number} b0_x
13
+ * @param {number} b0_y
14
+ * @param {number} b1_x
15
+ * @param {number} b1_y
16
+ * @returns {boolean} True if segments intersect, False otherwise
17
+ * @public
18
+ */
19
+ export function segment2_intersects_segment2_2d(a0_x, a0_y, a1_x, a1_y, b0_x, b0_y, b1_x, b1_y) {
20
+ return segment2_segment_intersection_fractions(
21
+ scratch_fractions, 0,
22
+ a0_x, a0_y, a1_x, a1_y,
23
+ b0_x, b0_y, b1_x, b1_y
24
+ );
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"segment2_segment_compute_intersection_array_2d.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,uEAZW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,GACL,OAAO,CAkClB"}
1
+ {"version":3,"file":"segment2_segment_compute_intersection_array_2d.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AACH,uEAZW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,GACL,OAAO,CAyBlB"}
@@ -1,51 +1,46 @@
1
- /**
2
- *
3
- * Find intersection point between two line segments if they intersect at all
4
- * Adapted from answer by iMalc from stackoverflow.com "how do you detect where two line segments intersect"
5
- * @link https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
6
- *
7
- * @param {number[]|Float32Array|Float64Array} result resulting intersection point will be stored here if intersection exists
8
- * @param {number} result_offset
9
- * @param {number} a0_x
10
- * @param {number} a0_y
11
- * @param {number} a1_x
12
- * @param {number} a1_y
13
- * @param {number} b0_x
14
- * @param {number} b0_y
15
- * @param {number} b1_x
16
- * @param {number} b1_y
17
- * @return {boolean} True if segments intersect, False otherwise
18
- */
19
- export function segment2_segment_compute_intersection_array_2d(
20
- result, result_offset,
21
- a0_x, a0_y, a1_x, a1_y,
22
- b0_x, b0_y, b1_x, b1_y
23
- ) {
24
-
25
- const s1_x = a1_x - a0_x;
26
- const s1_y = a1_y - a0_y;
27
- const s2_x = b1_x - b0_x;
28
- const s2_y = b1_y - b0_y;
29
-
30
- const dy_02 = a0_y - b0_y;
31
- const dx_02 = a0_x - b0_x;
32
-
33
- const inv_denom = 1 / (-s2_x * s1_y + s1_x * s2_y);
34
-
35
- const s = (-s1_y * dx_02 + s1_x * dy_02) * inv_denom;
36
- const t = (s2_x * dy_02 - s2_y * dx_02) * inv_denom;
37
-
38
- if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {
39
- // Collision detected
40
-
41
- const intercept_x = a0_x + (t * s1_x);
42
- const intercept_y = a0_y + (t * s1_y);
43
-
44
- result[result_offset] = intercept_x;
45
- result[result_offset + 1] = intercept_y;
46
-
47
- return true;
48
- }
49
-
50
- return false; // No collision
51
- }
1
+ import { segment2_segment_intersection_fractions } from "./segment2_segment_intersection_fractions.js";
2
+
3
+ const scratch_fractions = new Float64Array(2);
4
+
5
+ /**
6
+ *
7
+ * Find intersection point between two line segments if they intersect at all
8
+ * Adapted from answer by iMalc from stackoverflow.com "how do you detect where two line segments intersect"
9
+ * @link https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
10
+ *
11
+ * @param {number[]|Float32Array|Float64Array} result resulting intersection point will be stored here if intersection exists
12
+ * @param {number} result_offset
13
+ * @param {number} a0_x
14
+ * @param {number} a0_y
15
+ * @param {number} a1_x
16
+ * @param {number} a1_y
17
+ * @param {number} b0_x
18
+ * @param {number} b0_y
19
+ * @param {number} b1_x
20
+ * @param {number} b1_y
21
+ * @return {boolean} True if segments intersect, False otherwise
22
+ */
23
+ export function segment2_segment_compute_intersection_array_2d(
24
+ result, result_offset,
25
+ a0_x, a0_y, a1_x, a1_y,
26
+ b0_x, b0_y, b1_x, b1_y
27
+ ) {
28
+
29
+ const overlaps = segment2_segment_intersection_fractions(
30
+ scratch_fractions, 0,
31
+ a0_x, a0_y, a1_x, a1_y,
32
+ b0_x, b0_y, b1_x, b1_y
33
+ );
34
+
35
+ if (overlaps) {
36
+ // Collision detected -- reconstruct the point from the fraction along segment A
37
+ const t = scratch_fractions[1];
38
+
39
+ result[result_offset] = a0_x + t * (a1_x - a0_x);
40
+ result[result_offset + 1] = a0_y + t * (a1_y - a0_y);
41
+
42
+ return true;
43
+ }
44
+
45
+ return false; // No collision
46
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Compute the parametric fractions at which two 2D segments meet, and report whether that meeting point
3
+ * lies within both segments.
4
+ *
5
+ * Writes `[s, t]` into `result`, where the intersection of the two supporting LINES sits at `s` along
6
+ * segment B and `t` along segment A — so the point itself is `a0 + t * (a1 - a0)`. Both fractions are
7
+ * written whether or not the segments actually overlap, so a caller that wants the line-line answer can
8
+ * ignore the return value.
9
+ *
10
+ * Shared core of {@link segment2_intersects_segment2_2d} (boolean) and
11
+ * {@link segment2_segment_compute_intersection_array_2d} (point-returning); those two previously carried
12
+ * byte-identical copies of this arithmetic.
13
+ *
14
+ * PARALLEL SEGMENTS: the denominator is zero, so `s` and `t` come out `±Infinity` or `NaN` and the range
15
+ * test is false. Exactly-collinear overlapping segments are therefore reported as non-intersecting — the
16
+ * historical behaviour of both callers, preserved here deliberately.
17
+ *
18
+ * @param {number[]|Float32Array|Float64Array} result destination for `[s, t]`
19
+ * @param {number} result_offset
20
+ * @param {number} a0_x
21
+ * @param {number} a0_y
22
+ * @param {number} a1_x
23
+ * @param {number} a1_y
24
+ * @param {number} b0_x
25
+ * @param {number} b0_y
26
+ * @param {number} b1_x
27
+ * @param {number} b1_y
28
+ * @returns {boolean} true when the segments genuinely overlap (both fractions inside `[0, 1]`)
29
+ */
30
+ export function segment2_segment_intersection_fractions(result: number[] | Float32Array | Float64Array, result_offset: number, a0_x: number, a0_y: number, a1_x: number, a1_y: number, b0_x: number, b0_y: number, b1_x: number, b1_y: number): boolean;
31
+ //# sourceMappingURL=segment2_segment_intersection_fractions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment2_segment_intersection_fractions.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/line/segment2_segment_intersection_fractions.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,gEAZW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,GACJ,OAAO,CAwBnB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Compute the parametric fractions at which two 2D segments meet, and report whether that meeting point
3
+ * lies within both segments.
4
+ *
5
+ * Writes `[s, t]` into `result`, where the intersection of the two supporting LINES sits at `s` along
6
+ * segment B and `t` along segment A — so the point itself is `a0 + t * (a1 - a0)`. Both fractions are
7
+ * written whether or not the segments actually overlap, so a caller that wants the line-line answer can
8
+ * ignore the return value.
9
+ *
10
+ * Shared core of {@link segment2_intersects_segment2_2d} (boolean) and
11
+ * {@link segment2_segment_compute_intersection_array_2d} (point-returning); those two previously carried
12
+ * byte-identical copies of this arithmetic.
13
+ *
14
+ * PARALLEL SEGMENTS: the denominator is zero, so `s` and `t` come out `±Infinity` or `NaN` and the range
15
+ * test is false. Exactly-collinear overlapping segments are therefore reported as non-intersecting — the
16
+ * historical behaviour of both callers, preserved here deliberately.
17
+ *
18
+ * @param {number[]|Float32Array|Float64Array} result destination for `[s, t]`
19
+ * @param {number} result_offset
20
+ * @param {number} a0_x
21
+ * @param {number} a0_y
22
+ * @param {number} a1_x
23
+ * @param {number} a1_y
24
+ * @param {number} b0_x
25
+ * @param {number} b0_y
26
+ * @param {number} b1_x
27
+ * @param {number} b1_y
28
+ * @returns {boolean} true when the segments genuinely overlap (both fractions inside `[0, 1]`)
29
+ */
30
+ export function segment2_segment_intersection_fractions(
31
+ result, result_offset,
32
+ a0_x, a0_y, a1_x, a1_y,
33
+ b0_x, b0_y, b1_x, b1_y
34
+ ) {
35
+ const s1_x = a1_x - a0_x;
36
+ const s1_y = a1_y - a0_y;
37
+ const s2_x = b1_x - b0_x;
38
+ const s2_y = b1_y - b0_y;
39
+
40
+ const dy_02 = a0_y - b0_y;
41
+ const dx_02 = a0_x - b0_x;
42
+
43
+ const inv_denom = 1 / (-s2_x * s1_y + s1_x * s2_y);
44
+
45
+ const s = (-s1_y * dx_02 + s1_x * dy_02) * inv_denom;
46
+ const t = (s2_x * dy_02 - s2_y * dx_02) * inv_denom;
47
+
48
+ result[result_offset] = s;
49
+ result[result_offset + 1] = t;
50
+
51
+ return s >= 0 && s <= 1 && t >= 0 && t <= 1;
52
+ }
@@ -1,4 +1,9 @@
1
1
  /**
2
+ * Collect every datum whose bounds lie within `radius` of `(x, y)`.
3
+ *
4
+ * The unfiltered face of {@link qt_match_data_by_circle}; the traversal previously existed twice,
5
+ * differing only by that query's extra `predicate` conjunct.
6
+ *
2
7
  * @template T
3
8
  * @param {Array<QuadTreeDatum<T>>} result
4
9
  * @param {number} result_offset
@@ -6,7 +11,7 @@
6
11
  * @param {number} x
7
12
  * @param {number} y
8
13
  * @param {number} radius
9
- * @returns {number}
14
+ * @returns {number} number of matches written
10
15
  */
11
16
  export function qt_collect_by_circle<T>(result: Array<QuadTreeDatum<T>>, result_offset: number, tree: QuadTreeNode<T>, x: number, y: number, radius: number): number;
12
17
  //# sourceMappingURL=qt_collect_by_circle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qt_collect_by_circle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/quad-tree/qt_collect_by_circle.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,gDARW,uBAAuB,iBACvB,MAAM,4BAEN,MAAM,KACN,MAAM,UACN,MAAM,GACJ,MAAM,CAgDlB"}
1
+ {"version":3,"file":"qt_collect_by_circle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/quad-tree/qt_collect_by_circle.js"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;GAcG;AACH,gDARW,uBAAuB,iBACvB,MAAM,4BAEN,MAAM,KACN,MAAM,UACN,MAAM,GACJ,MAAM,CAalB"}
@@ -1,65 +1,39 @@
1
- import { aabb2_distance_sqr_to_point } from "../aabb/aabb2_distance_sqr_to_point.js";
2
-
3
- /**
4
- *
5
- * @type {QuadTreeNode[]}
6
- */
7
- const node_stack = [];
8
-
9
- /**
10
- * @template T
11
- * @param {Array<QuadTreeDatum<T>>} result
12
- * @param {number} result_offset
13
- * @param {QuadTreeNode<T>} tree
14
- * @param {number} x
15
- * @param {number} y
16
- * @param {number} radius
17
- * @returns {number}
18
- */
19
- export function qt_collect_by_circle(
20
- result, result_offset,
21
- tree,
22
- x, y, radius
23
- ) {
24
- let result_cursor = result_offset;
25
-
26
- let stack_pointer = 1;
27
-
28
- const r2 = radius * radius;
29
-
30
- node_stack[0] = tree;
31
-
32
- while (stack_pointer-- > 0) {
33
-
34
- const node = node_stack[stack_pointer];
35
-
36
- const d2 = aabb2_distance_sqr_to_point(node.x0, node.y0, node.x1, node.y1, x, y);
37
-
38
- if (d2 > r2) {
39
- // not a match
40
- continue;
41
- }
42
-
43
- const data = node.data;
44
- const data_count = data.length;
45
-
46
- for (let i = 0; i < data_count; i++) {
47
- const datum = data[i];
48
-
49
- const d2_to_datum = aabb2_distance_sqr_to_point(datum.x0, datum.y0, datum.x1, datum.y1, x, y);
50
-
51
- if (d2_to_datum <= r2) {
52
- result[result_cursor++] = datum;
53
- }
54
- }
55
-
56
- if (node.isSplit()) {
57
- node_stack[stack_pointer++] = node.topLeft;
58
- node_stack[stack_pointer++] = node.bottomLeft;
59
- node_stack[stack_pointer++] = node.topRight;
60
- node_stack[stack_pointer++] = node.bottomRight;
61
- }
62
- }
63
-
64
- return result_cursor - result_offset;
65
- }
1
+ import { qt_match_data_by_circle } from "./qt_match_data_by_circle.js";
2
+
3
+ /**
4
+ * Accept every datum. A real function rather than a null/undefined sentinel, so
5
+ * {@link qt_match_data_by_circle} has exactly one control-flow path.
6
+ *
7
+ * @returns {boolean}
8
+ */
9
+ function accept_all() {
10
+ return true;
11
+ }
12
+
13
+ /**
14
+ * Collect every datum whose bounds lie within `radius` of `(x, y)`.
15
+ *
16
+ * The unfiltered face of {@link qt_match_data_by_circle}; the traversal previously existed twice,
17
+ * differing only by that query's extra `predicate` conjunct.
18
+ *
19
+ * @template T
20
+ * @param {Array<QuadTreeDatum<T>>} result
21
+ * @param {number} result_offset
22
+ * @param {QuadTreeNode<T>} tree
23
+ * @param {number} x
24
+ * @param {number} y
25
+ * @param {number} radius
26
+ * @returns {number} number of matches written
27
+ */
28
+ export function qt_collect_by_circle(
29
+ result, result_offset,
30
+ tree,
31
+ x, y, radius
32
+ ) {
33
+ return qt_match_data_by_circle(
34
+ result, result_offset,
35
+ tree,
36
+ x, y, radius,
37
+ accept_all, undefined
38
+ );
39
+ }
@@ -1,14 +1,24 @@
1
1
  /**
2
+ * Collect every datum whose bounds lie within `radius` of `(x, y)` AND satisfy `predicate`.
3
+ *
4
+ * Also the implementation behind {@link qt_collect_by_circle}, which is this query with an
5
+ * accept-everything predicate — the traversal was previously written out twice, differing only by the
6
+ * `predicate.call(...)` conjunct.
7
+ *
8
+ * Children are pruned on PUSH (against the circle's bounding square) as well as tested on POP, matching
9
+ * {@link qt_collect_by_box}. Testing only on pop still returns the right answer but walks and re-tests
10
+ * quadrants the circle cannot reach.
11
+ *
2
12
  * @template T
3
- * @param {QuadTreeDatum<T>[]} result
13
+ * @param {Array<QuadTreeDatum<T>>} result
4
14
  * @param {number} result_offset
5
15
  * @param {QuadTreeNode<T>} tree
6
16
  * @param {number} x
7
17
  * @param {number} y
8
18
  * @param {number} radius
9
- * @param {(data: T) => boolean} [predicate]
10
- * @param {*} [predicateContext]
11
- * @returns {number}
19
+ * @param {function(T):boolean} predicate
20
+ * @param {*} [predicateContext] `this` for `predicate`
21
+ * @returns {number} number of matches written
12
22
  */
13
- export function qt_match_data_by_circle<T>(result: QuadTreeDatum<T>[], result_offset: number, tree: QuadTreeNode<T>, x: number, y: number, radius: number, predicate?: (data: T) => boolean, predicateContext?: any): number;
23
+ export function qt_match_data_by_circle<T>(result: Array<QuadTreeDatum<T>>, result_offset: number, tree: QuadTreeNode<T>, x: number, y: number, radius: number, predicate: (arg0: T) => boolean, predicateContext?: any): number;
14
24
  //# sourceMappingURL=qt_match_data_by_circle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qt_match_data_by_circle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/quad-tree/qt_match_data_by_circle.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;GAWG;AACH,mDAVW,kBAAkB,iBAClB,MAAM,4BAEN,MAAM,KACN,MAAM,UACN,MAAM,2BACO,OAAO,2BAElB,MAAM,CAmDlB"}
1
+ {"version":3,"file":"qt_match_data_by_circle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/quad-tree/qt_match_data_by_circle.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,mDAVW,uBAAuB,iBACvB,MAAM,4BAEN,MAAM,KACN,MAAM,UACN,MAAM,0BACM,OAAO,2BAEjB,MAAM,CAyElB"}