@woosh/meep-engine 2.169.1 → 2.169.3
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.
- package/editor/ecs/component/editors/NumericIntervalEditor.js +18 -35
- package/editor/ecs/component/editors/ObservedIntegerEditor.js +22 -43
- package/editor/ecs/component/editors/ObservedStringEditor.js +34 -51
- package/editor/ecs/component/editors/common/makeV3_editor.js +12 -30
- package/editor/ecs/component/editors/common/two_way_sync.js +50 -0
- package/editor/ecs/component/editors/geom/QuaternionEditor.js +20 -35
- package/editor/ecs/component/editors/geom/Vector1Editor.js +5 -28
- package/editor/ecs/component/editors/primitive/NumberEditor.js +15 -31
- package/editor/tools/paint/TerrainHeightPaintTool.js +22 -31
- package/editor/tools/paint/TerrainPaintTool.js +85 -13
- package/editor/tools/paint/TerrainTexturePaintTool.js +18 -29
- package/editor/view/ecs/components/TerrainController.js +1 -4
- package/package.json +1 -1
- package/src/DUPLICATION_AUDIT_2026_08_07/00_core_reuse_surface.md +738 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/A_core_math_geom.md +79 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/B_core_data.md +93 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/C_gfx_render.md +80 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/D_gfx_features.md +164 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/E_physics.md +69 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/F_sound.md +102 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/G_net_save.md +129 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/H_engine_misc.md +72 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/I_generation_view.md +74 -0
- package/src/DUPLICATION_AUDIT_2026_08_07/K_crosscutting.md +169 -0
- package/src/DUPLICATION_AUDIT_2026_08_07.md +254 -0
- package/src/DUPLICATION_AUDIT_REMEDIATION.md +250 -0
- package/src/core/bvh2/bvh3/query/bvh_collect_user_data.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_generic.js +77 -77
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray.js +90 -90
- package/src/core/bvh2/bvh3/query/bvh_query_leaves_ray_segment.js +94 -94
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_generic.js +86 -86
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_aabb.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_capsule.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_frustum.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_intersects_sphere.js +2 -2
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray.js +96 -96
- package/src/core/bvh2/bvh3/query/bvh_query_user_data_ray_segment.js +100 -100
- package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.js +2 -2
- package/src/core/bvh8/aabb3_round_to_float32.d.ts +16 -0
- package/src/core/bvh8/aabb3_round_to_float32.d.ts.map +1 -0
- package/src/core/bvh8/aabb3_round_to_float32.js +22 -0
- package/src/core/bvh8/bvh8_geometry_validate.d.ts.map +1 -1
- package/src/core/bvh8/bvh8_geometry_validate.js +1 -12
- package/src/core/bvh8/bvh8_geometry_validate_indirect.d.ts.map +1 -1
- package/src/core/bvh8/bvh8_geometry_validate_indirect.js +1 -12
- package/src/core/cache/Cache.d.ts +13 -0
- package/src/core/cache/Cache.d.ts.map +1 -1
- package/src/core/cache/Cache.js +13 -0
- package/src/core/color/operations/color_darken.d.ts +5 -2
- package/src/core/color/operations/color_darken.d.ts.map +1 -1
- package/src/core/color/operations/color_darken.js +24 -33
- package/src/core/color/operations/color_desaturate.d.ts +5 -2
- package/src/core/color/operations/color_desaturate.d.ts.map +1 -1
- package/src/core/color/operations/color_desaturate.js +24 -33
- package/src/core/color/operations/color_lighten.d.ts +5 -2
- package/src/core/color/operations/color_lighten.d.ts.map +1 -1
- package/src/core/color/operations/color_lighten.js +24 -33
- package/src/core/color/operations/color_saturate.d.ts +5 -2
- package/src/core/color/operations/color_saturate.d.ts.map +1 -1
- package/src/core/color/operations/color_saturate.js +24 -33
- package/src/core/color/operations/color_scale_okhsv_channel.d.ts +28 -0
- package/src/core/color/operations/color_scale_okhsv_channel.d.ts.map +1 -0
- package/src/core/color/operations/color_scale_okhsv_channel.js +45 -0
- package/src/core/geom/2d/hash-grid/SpatialHashGrid.d.ts.map +1 -1
- package/src/core/geom/2d/hash-grid/SpatialHashGrid.js +12 -0
- package/src/core/geom/2d/line/segment2_intersects_segment2_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/segment2_intersects_segment2_2d.js +25 -29
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.d.ts.map +1 -1
- package/src/core/geom/2d/line/segment2_segment_compute_intersection_array_2d.js +46 -51
- package/src/core/geom/2d/line/segment2_segment_intersection_fractions.d.ts +31 -0
- package/src/core/geom/2d/line/segment2_segment_intersection_fractions.d.ts.map +1 -0
- package/src/core/geom/2d/line/segment2_segment_intersection_fractions.js +52 -0
- package/src/core/geom/2d/quad-tree/qt_collect_by_circle.d.ts +6 -1
- package/src/core/geom/2d/quad-tree/qt_collect_by_circle.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/qt_collect_by_circle.js +39 -65
- package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.d.ts +15 -5
- package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.d.ts.map +1 -1
- package/src/core/geom/2d/quad-tree/qt_match_data_by_circle.js +101 -70
- package/src/core/geom/2d/r-tree/StaticR2Tree.d.ts.map +1 -1
- package/src/core/geom/2d/r-tree/StaticR2Tree.js +7 -3
- package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.d.ts +7 -8
- package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_intersects_ray_segment.js +15 -51
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.js +13 -14
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.js +2 -17
- package/src/core/geom/3d/atlas/segment/atlas_chart_roundness_delta.d.ts +22 -0
- package/src/core/geom/3d/atlas/segment/atlas_chart_roundness_delta.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/atlas_chart_roundness_delta.js +30 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts +19 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.js +5 -9
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.js +4 -12
- package/src/core/geom/3d/frustum/read_frustum_corner.d.ts +5 -0
- package/src/core/geom/3d/frustum/read_frustum_corner.d.ts.map +1 -1
- package/src/core/geom/3d/frustum/read_frustum_corner.js +8 -5
- package/src/core/geom/3d/line/line3_segment_segment_closest_point_pair.d.ts +33 -0
- package/src/core/geom/3d/line/line3_segment_segment_closest_point_pair.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_segment_segment_closest_point_pair.js +71 -0
- package/src/core/geom/3d/mat4/m4_compose.d.ts +5 -0
- package/src/core/geom/3d/mat4/m4_compose.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_compose.js +22 -53
- package/src/core/geom/3d/mat4/m4_decompose.d.ts +7 -3
- package/src/core/geom/3d/mat4/m4_decompose.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_decompose.js +64 -76
- package/src/core/geom/3d/mat4/m4_decompose_array.d.ts +28 -0
- package/src/core/geom/3d/mat4/m4_decompose_array.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_decompose_array.js +157 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts +2 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.js +10 -44
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.d.ts +27 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.js +67 -0
- package/src/core/geom/3d/plane/orient3d_fast.d.ts.map +1 -1
- package/src/core/geom/3d/plane/orient3d_fast.js +2 -22
- package/src/core/geom/3d/plane/orient3d_fast_point.d.ts +28 -0
- package/src/core/geom/3d/plane/orient3d_fast_point.d.ts.map +1 -0
- package/src/core/geom/3d/plane/orient3d_fast_point.js +47 -0
- package/src/core/geom/3d/quaternion/quat3_nlerp.d.ts +48 -0
- package/src/core/geom/3d/quaternion/quat3_nlerp.d.ts.map +1 -0
- package/src/core/geom/3d/quaternion/quat3_nlerp.js +72 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts +9 -0
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.js +44 -1
- package/src/core/geom/3d/shape/BoxShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/BoxShape3D.js +2 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/CapsuleShape3D.js +2 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts +0 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.js +25 -56
- package/src/core/geom/3d/shape/CylinderShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/CylinderShape3D.js +2 -1
- package/src/core/geom/3d/shape/HeightMapShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/HeightMapShape3D.js +3 -5
- package/src/core/geom/3d/shape/MeshShape3D.d.ts +0 -11
- package/src/core/geom/3d/shape/MeshShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/MeshShape3D.js +27 -106
- package/src/core/geom/3d/shape/Triangle3D.d.ts +1 -1
- package/src/core/geom/3d/shape/Triangle3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/Triangle3D.js +10 -31
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_carve_outside_surface.js +8 -57
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts +8 -1
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +281 -272
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadrics.js +3 -4
- package/src/core/geom/3d/topology/simplify/quadratic/quadric3_set_from_plane_through_point.d.ts +22 -0
- package/src/core/geom/3d/topology/simplify/quadratic/quadric3_set_from_plane_through_point.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/quadric3_set_from_plane_through_point.js +27 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.d.ts +24 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_boundary_loop.js +73 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_close_boundary_holes.js +2 -53
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadrics.js +3 -4
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_fill_small_holes.js +3 -33
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_from_indexed_geometry.js +4 -37
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_poke.js +3 -32
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_read_triangle.d.ts +32 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_read_triangle.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_read_triangle.js +66 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path.js +703 -728
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.js +13 -24
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_sample_interior_grid_points.js +8 -54
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_surface_ray_parity.d.ts +35 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_surface_ray_parity.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_surface_ray_parity.js +82 -0
- package/src/core/geom/3d/triangle/tri3_closest_point.d.ts +29 -0
- package/src/core/geom/3d/triangle/tri3_closest_point.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_closest_point.js +65 -0
- package/src/core/geom/3d/triangle/tri3_flatten_isometric.d.ts +42 -0
- package/src/core/geom/3d/triangle/tri3_flatten_isometric.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/tri3_flatten_isometric.js +79 -0
- package/src/core/geom/Vector2.d.ts.map +1 -1
- package/src/core/geom/Vector2.js +2 -1
- package/src/core/geom/random/random_orthonormal_basis.d.ts +21 -0
- package/src/core/geom/random/random_orthonormal_basis.d.ts.map +1 -0
- package/src/core/geom/random/random_orthonormal_basis.js +31 -0
- package/src/core/geom/vec2/v2_rotate.d.ts +18 -0
- package/src/core/geom/vec2/v2_rotate.d.ts.map +1 -0
- package/src/core/geom/vec2/v2_rotate.js +21 -0
- package/src/core/geom/vec2/v2_rotate_cos_sin.d.ts +19 -0
- package/src/core/geom/vec2/v2_rotate_cos_sin.d.ts.map +1 -0
- package/src/core/geom/vec2/v2_rotate_cos_sin.js +21 -0
- package/src/core/graph/csr/csr_graph_from_undirected_edge_list.d.ts +30 -0
- package/src/core/graph/csr/csr_graph_from_undirected_edge_list.d.ts.map +1 -0
- package/src/core/graph/csr/csr_graph_from_undirected_edge_list.js +94 -0
- package/src/core/graph/layout/CircleLayout.d.ts.map +1 -1
- package/src/core/graph/layout/CircleLayout.js +6 -29
- package/src/core/graph/layout/box/BoxLayouter.d.ts.map +1 -1
- package/src/core/graph/layout/box/BoxLayouter.js +2 -26
- package/src/core/graph/layout/box/position_box_next_to_box.d.ts.map +1 -1
- package/src/core/graph/layout/box/position_box_next_to_box.js +2 -1
- package/src/core/graph/layout/computeDisconnectedSubGraphs.d.ts.map +1 -1
- package/src/core/graph/layout/computeDisconnectedSubGraphs.js +14 -3
- package/src/core/graph/layout/graph_peel_topological_layer.d.ts +25 -0
- package/src/core/graph/layout/graph_peel_topological_layer.d.ts.map +1 -0
- package/src/core/graph/layout/graph_peel_topological_layer.js +45 -0
- package/src/core/math/hash/hash_mix2.d.ts +21 -0
- package/src/core/math/hash/hash_mix2.d.ts.map +1 -0
- package/src/core/math/hash/hash_mix2.js +22 -0
- package/src/core/math/hash/hash_mix3.d.ts +16 -0
- package/src/core/math/hash/hash_mix3.d.ts.map +1 -0
- package/src/core/math/hash/hash_mix3.js +19 -0
- package/src/core/math/lookup/LUT_HEATMAP.d.ts +17 -0
- package/src/core/math/lookup/LUT_HEATMAP.d.ts.map +1 -0
- package/src/core/math/lookup/LUT_HEATMAP.js +30 -0
- package/src/core/math/noise/curl_noise_3d.d.ts +6 -0
- package/src/core/math/noise/curl_noise_3d.d.ts.map +1 -1
- package/src/core/math/noise/curl_noise_3d.js +18 -27
- package/src/core/math/statistics/hammersley_sequence.d.ts +28 -16
- package/src/core/math/statistics/hammersley_sequence.d.ts.map +1 -1
- package/src/core/math/statistics/hammersley_sequence.js +53 -34
- package/src/core/primitives/strings/string_jaro_distance.d.ts +2 -2
- package/src/core/primitives/strings/string_jaro_distance.js +4 -4
- package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts +3 -0
- package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts.map +1 -1
- package/src/core/science/units/MEASUREMENT_UNITS_SI.js +5 -16
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +0 -2
- package/src/engine/animation/TransitionFunctions.d.ts +31 -0
- package/src/engine/animation/TransitionFunctions.d.ts.map +1 -1
- package/src/engine/animation/TransitionFunctions.js +44 -0
- package/src/engine/animation/curve/animation_curve_binary_codec.d.ts +29 -0
- package/src/engine/animation/curve/animation_curve_binary_codec.d.ts.map +1 -0
- package/src/engine/animation/curve/animation_curve_binary_codec.js +60 -0
- package/src/engine/animation/curve/draw/canvas_point_to_curve.d.ts +16 -0
- package/src/engine/animation/curve/draw/canvas_point_to_curve.d.ts.map +1 -0
- package/src/engine/animation/curve/draw/canvas_point_to_curve.js +22 -0
- package/src/engine/animation/curve/draw/curve_point_to_canvas.d.ts +27 -0
- package/src/engine/animation/curve/draw/curve_point_to_canvas.d.ts.map +1 -0
- package/src/engine/animation/curve/draw/curve_point_to_canvas.js +38 -0
- package/src/engine/animation/curve/draw/position_canvas_to_curve.d.ts +2 -0
- package/src/engine/animation/curve/draw/position_canvas_to_curve.d.ts.map +1 -1
- package/src/engine/animation/curve/draw/position_canvas_to_curve.js +22 -24
- package/src/engine/animation/curve/draw/position_curve_to_canvas.d.ts +2 -0
- package/src/engine/animation/curve/draw/position_curve_to_canvas.d.ts.map +1 -1
- package/src/engine/animation/curve/draw/position_curve_to_canvas.js +22 -25
- package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.d.ts.map +1 -1
- package/src/engine/animation/curve/editor/canvas2dDrawWorldAxisLabels.js +3 -2
- package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.d.ts.map +1 -1
- package/src/engine/animation/curve/editor/canvas2dPlotCurvePoints.js +14 -14
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.d.ts.map +1 -1
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +5 -0
- package/src/engine/asset/loaders/GLTFAssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/GLTFAssetLoader.js +25 -51
- package/src/engine/asset/loaders/SoundAssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/SoundAssetLoader.js +12 -1
- package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts +3 -2
- package/src/engine/asset/loaders/material/StaticMaterialCache.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/StaticMaterialCache.js +16 -55
- package/src/engine/asset/loaders/material/TextureCoalescer.d.ts +32 -0
- package/src/engine/asset/loaders/material/TextureCoalescer.d.ts.map +1 -0
- package/src/engine/asset/loaders/material/TextureCoalescer.js +68 -0
- package/src/engine/asset/loaders/material/traverseMaterialTextures.d.ts +10 -2
- package/src/engine/asset/loaders/material/traverseMaterialTextures.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/traverseMaterialTextures.js +10 -2
- package/src/engine/control/first-person/abilities/Mantle.d.ts.map +1 -1
- package/src/engine/control/first-person/abilities/Mantle.js +10 -26
- package/src/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/actions/definition/WeightedRandomActionDescription.js +5 -0
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts +22 -2
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.d.ts.map +1 -1
- package/src/engine/ecs/evaluation/complex/PointFitnessGaussianBlur.js +92 -41
- package/src/engine/ecs/gui/GUIElementSystem.d.ts +9 -0
- package/src/engine/ecs/gui/GUIElementSystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/GUIElementSystem.js +23 -3
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +3 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +14 -16
- package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/parallax/GuiElementParallaxSystem.js +16 -29
- package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPositionSystem.js +4 -2
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +12 -74
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +10 -73
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +38 -0
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +1 -0
- package/src/engine/ecs/ik/ik_probe_terrain_contact.js +119 -0
- package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.d.ts +0 -1
- package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.d.ts.map +1 -1
- package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js +2 -14
- package/src/engine/ecs/transform/Transform64.d.ts +306 -0
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -0
- package/src/engine/ecs/transform/Transform64.js +591 -0
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts +12 -1
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.d.ts.map +1 -1
- package/src/engine/graphics/FULL_SCREEN_QUAD_VERTEX_SHADER.js +14 -10
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +7 -28
- package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.d.ts +1 -2
- package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/renderer/HighlightDecodeShader.js +4 -12
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +2 -11
- package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.d.ts +1 -2
- package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/renderer/makeBlurShader_9.js +3 -11
- package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.d.ts +1 -2
- package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/renderer/makeDilationShader.js +3 -11
- package/src/engine/graphics/ecs/highlight/renderer/make_screen_space_quad_material.d.ts +33 -0
- package/src/engine/graphics/ecs/highlight/renderer/make_screen_space_quad_material.d.ts.map +1 -0
- package/src/engine/graphics/ecs/highlight/renderer/make_screen_space_quad_material.js +44 -0
- package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.d.ts +55 -0
- package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.d.ts.map +1 -0
- package/src/engine/graphics/ecs/highlight/system/HighlightSystemBase.js +205 -0
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts +4 -45
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +39 -162
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts +4 -51
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.js +34 -164
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts +5 -57
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +48 -175
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.d.ts.map +1 -1
- package/src/engine/graphics/ecs/light/shadow/extend_shadow_camera_near_for_casters.js +7 -25
- package/src/engine/graphics/ecs/make_bvh_depth_range_computer.d.ts +26 -0
- package/src/engine/graphics/ecs/make_bvh_depth_range_computer.d.ts.map +1 -0
- package/src/engine/graphics/ecs/make_bvh_depth_range_computer.js +33 -0
- package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh/MeshSystem.js +2 -5
- package/src/engine/graphics/ecs/mesh/SkeletonUtils.d.ts +3 -3
- package/src/engine/graphics/ecs/mesh/SkeletonUtils.js +4 -4
- package/src/engine/graphics/ecs/mesh-v2/DeferredBoundsQueue.d.ts +48 -0
- package/src/engine/graphics/ecs/mesh-v2/DeferredBoundsQueue.d.ts.map +1 -0
- package/src/engine/graphics/ecs/mesh-v2/DeferredBoundsQueue.js +88 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +28 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +79 -0
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +21 -3
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts +13 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +46 -12
- package/src/engine/graphics/ecs/render_layers_compute_depth_range.d.ts +35 -0
- package/src/engine/graphics/ecs/render_layers_compute_depth_range.d.ts.map +1 -0
- package/src/engine/graphics/ecs/render_layers_compute_depth_range.js +64 -0
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +2 -5
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.js +2 -5
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.js +2 -5
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js +22 -94
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_overlap_clipping_volume.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_overlap_clipping_volume.js +17 -57
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_raycast.js +17 -57
- package/src/engine/graphics/geometry/buffered/query/nearest_point_on_triangle_record.d.ts +30 -0
- package/src/engine/graphics/geometry/buffered/query/nearest_point_on_triangle_record.d.ts.map +1 -0
- package/src/engine/graphics/geometry/buffered/query/nearest_point_on_triangle_record.js +87 -0
- package/src/engine/graphics/geometry/buffered/query/query_bvh_geometry_nearest.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/query_bvh_geometry_nearest.js +11 -55
- package/src/engine/graphics/geometry/buffered/read_triangle_vertices.d.ts +29 -0
- package/src/engine/graphics/geometry/buffered/read_triangle_vertices.d.ts.map +1 -0
- package/src/engine/graphics/geometry/buffered/read_triangle_vertices.js +102 -0
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderDepthV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderDepthV0.js +17 -122
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderLitV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderLitV0.js +15 -194
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderNormalsV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderNormalsV0.js +12 -108
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderPerPixelV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderPerPixelV0.js +14 -183
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderV0.js +12 -154
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderViewportDepthV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderViewportDepthV0.js +10 -94
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderWireframeV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/shader/ImpostorShaderWireframeV0.js +8 -72
- package/src/engine/graphics/impostors/octahedral/shader/glsl/common.glsl +10 -0
- package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts.map +1 -1
- package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.js +79 -58
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.js +11 -22
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.js +7 -16
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.js +5 -9
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.js +4 -19
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts.map +1 -1
- package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.js +5 -9
- package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
- package/src/engine/graphics/material/SplatMaterial.js +2 -17
- package/src/engine/graphics/material/WaterMaterial.d.ts.map +1 -1
- package/src/engine/graphics/material/WaterMaterial.js +3 -18
- package/src/engine/graphics/material/manager/compilers/CoalesceTextures.d.ts +4 -4
- package/src/engine/graphics/material/manager/compilers/CoalesceTextures.d.ts.map +1 -1
- package/src/engine/graphics/material/manager/compilers/CoalesceTextures.js +25 -70
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +2 -5
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts +8 -11
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/codegen/glsl/getTypeByteSize.js +20 -21
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts +39 -0
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.d.ts.map +1 -0
- package/src/engine/graphics/particles/node-based/nodes/particle_data_type_component_count.js +45 -0
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts +6 -8
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.d.ts.map +1 -1
- package/src/engine/graphics/particles/node-based/particle/ParticleAttributeSpecification.js +2 -13
- package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/distributeParticlesOnObject3D.js +16 -78
- package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts +45 -0
- package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.d.ts.map +1 -0
- package/src/engine/graphics/particles/particular/engine/utils/distribute_points_on_indexed_triangles.js +168 -0
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/distrubuteParticlesOnMesh.js +11 -115
- package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.d.ts +24 -16
- package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.d.ts.map +1 -1
- package/src/engine/graphics/postprocess/threejs/shaders/CopyShader.js +15 -47
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts +4 -0
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +4 -0
- package/src/engine/graphics/sh3/build_injected_shader.d.ts +51 -0
- package/src/engine/graphics/sh3/build_injected_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/build_injected_shader.js +56 -0
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +10 -1
- package/src/engine/graphics/sh3/gi/material/chunk_lpv_get_irradiance_at.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/chunk_lpv_get_irradiance_at.js +17 -0
- package/src/engine/graphics/sh3/gi/material/common.d.ts +1 -1
- package/src/engine/graphics/sh3/gi/material/common.js +6 -222
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.js +7 -11
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.js +27 -29
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.js +7 -11
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.js +7 -12
- package/src/engine/graphics/sh3/grid_dilate_average.d.ts +38 -0
- package/src/engine/graphics/sh3/grid_dilate_average.d.ts.map +1 -0
- package/src/engine/graphics/sh3/grid_dilate_average.js +175 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts +4 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lightmap/lightmap_dilate.js +7 -70
- package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.d.ts +6 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/light_probe_grid_dilate.js +14 -113
- package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.js +7 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.js +5 -8
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.js +5 -8
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.js +5 -8
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.js +5 -8
- package/src/engine/graphics/sh3/lpv/depth/chunk_probe_depth_sampling.d.ts +38 -0
- package/src/engine/graphics/sh3/lpv/depth/chunk_probe_depth_sampling.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/chunk_probe_depth_sampling.js +265 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/visualize.frag.glsl +11 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js +5 -1
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.frag.glsl +189 -419
- package/src/engine/graphics/sh3/shader/visualize.frag.d.ts +1 -1
- package/src/engine/graphics/sh3/shader/visualize.frag.js +7 -0
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts +102 -0
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.d.ts.map +1 -0
- package/src/engine/graphics/shaders/chunks/glsl_octahedral_impostor.js +277 -0
- package/src/engine/graphics/shaders/chunks/glsl_packing.d.ts +29 -0
- package/src/engine/graphics/shaders/chunks/glsl_packing.d.ts.map +1 -0
- package/src/engine/graphics/shaders/chunks/glsl_packing.js +30 -0
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts +40 -0
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.d.ts.map +1 -0
- package/src/engine/graphics/shaders/chunks/glsl_voxel_impostor_splat.js +57 -0
- package/src/engine/graphics/shaders/lib/make_clouds_uniforms.d.ts +22 -0
- package/src/engine/graphics/shaders/lib/make_clouds_uniforms.d.ts.map +1 -0
- package/src/engine/graphics/shaders/lib/make_clouds_uniforms.js +39 -0
- package/src/engine/graphics/texture/attribute_spec_to_three_format.d.ts +6 -0
- package/src/engine/graphics/texture/attribute_spec_to_three_format.d.ts.map +1 -1
- package/src/engine/graphics/texture/attribute_spec_to_three_format.js +9 -9
- package/src/engine/graphics/texture/channel_count_to_format_prefix.d.ts +14 -0
- package/src/engine/graphics/texture/channel_count_to_format_prefix.d.ts.map +1 -0
- package/src/engine/graphics/texture/channel_count_to_format_prefix.js +26 -0
- package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.d.ts.map +1 -1
- package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.js +2 -20
- package/src/engine/graphics/texture/normalized_internal_format.d.ts.map +1 -1
- package/src/engine/graphics/texture/normalized_internal_format.js +2 -20
- package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.js +9 -3
- package/src/engine/input/devices/gamepad/GamepadDeviceLayout.d.ts +54 -0
- package/src/engine/input/devices/gamepad/GamepadDeviceLayout.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/GamepadDeviceLayout.js +323 -0
- package/src/engine/input/devices/gamepad/GamepadHandle.d.ts +21 -2
- package/src/engine/input/devices/gamepad/GamepadHandle.d.ts.map +1 -1
- package/src/engine/input/devices/gamepad/GamepadHandle.js +39 -11
- package/src/engine/input/devices/gamepad/GamepadLayout.d.ts +128 -0
- package/src/engine/input/devices/gamepad/GamepadLayout.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/GamepadLayout.js +160 -0
- package/src/engine/input/devices/gamepad/GamepadStandardMapping.d.ts +10 -0
- package/src/engine/input/devices/gamepad/GamepadStandardMapping.d.ts.map +1 -1
- package/src/engine/input/devices/gamepad/GamepadStandardMapping.js +11 -0
- package/src/engine/input/devices/gamepad/GamepadStick.d.ts +5 -1
- package/src/engine/input/devices/gamepad/GamepadStick.d.ts.map +1 -1
- package/src/engine/input/devices/gamepad/GamepadStick.js +5 -1
- package/src/engine/input/devices/gamepad/gamepad_layout_database.d.ts +27 -0
- package/src/engine/input/devices/gamepad/gamepad_layout_database.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/gamepad_layout_database.js +144 -0
- package/src/engine/input/devices/gamepad/gamepad_read_hat_axis.d.ts +25 -0
- package/src/engine/input/devices/gamepad/gamepad_read_hat_axis.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/gamepad_read_hat_axis.js +61 -0
- package/src/engine/input/devices/gamepad/prototypeGamepadTester.d.ts +2 -0
- package/src/engine/input/devices/gamepad/prototypeGamepadTester.d.ts.map +1 -0
- package/src/engine/input/devices/gamepad/prototypeGamepadTester.js +2124 -0
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +3 -33
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +5 -0
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +18 -19
- package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/TransformInterpolationAdapter.js +18 -13
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/NetworkPeer.js +2 -1
- package/src/engine/network/sim/ActionLog.d.ts +9 -6
- package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
- package/src/engine/network/sim/ActionLog.js +43 -80
- package/src/engine/network/sim/SmoothingState.d.ts.map +1 -1
- package/src/engine/network/sim/SmoothingState.js +27 -28
- package/src/engine/network/state/FrameBufferRing.d.ts +84 -0
- package/src/engine/network/state/FrameBufferRing.d.ts.map +1 -0
- package/src/engine/network/state/FrameBufferRing.js +168 -0
- package/src/engine/network/state/InputRing.d.ts +14 -12
- package/src/engine/network/state/InputRing.d.ts.map +1 -1
- package/src/engine/network/state/InputRing.js +37 -76
- package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
- package/src/engine/network/transport/LoopbackTransport.js +10 -31
- package/src/engine/network/transport/Transport.d.ts +42 -2
- package/src/engine/network/transport/Transport.d.ts.map +1 -1
- package/src/engine/network/transport/Transport.js +87 -3
- package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/NodeUDPTransport.js +7 -33
- package/src/engine/network/transport/adapters/SimulatedTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/SimulatedTransport.js +17 -28
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +6 -32
- package/src/engine/network/transport/adapters/WebSocketTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebSocketTransport.js +6 -32
- package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
- package/src/engine/network/transport/adapters/WebTransportTransport.js +11 -22
- package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
- package/src/engine/physics/constraint/solve_constraints.js +18 -48
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
- package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_scalar.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_scalar.js +7 -0
- package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_advect_maccormack_velocity.js +11 -18
- package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_advect_sl_velocity.js +7 -0
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_apply_advection_forward.js +15 -57
- package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_grid_apply_scalar_advection.js +7 -0
- package/src/engine/physics/fluid/solver/v3_grid_limit8_at_indices.d.ts +28 -0
- package/src/engine/physics/fluid/solver/v3_grid_limit8_at_indices.d.ts.map +1 -0
- package/src/engine/physics/fluid/solver/v3_grid_limit8_at_indices.js +38 -0
- package/src/engine/physics/fluid/solver/v3_mac_advect_maccormack_velocity.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_mac_advect_maccormack_velocity.js +12 -14
- package/src/engine/physics/fluid/solver/v3_mac_apply_vorticity_confinement.d.ts.map +1 -1
- package/src/engine/physics/fluid/solver/v3_mac_apply_vorticity_confinement.js +9 -0
- package/src/engine/physics/mls-mpm/MLS_MPM.d.ts +13 -1
- package/src/engine/physics/mls-mpm/MLS_MPM.d.ts.map +1 -1
- package/src/engine/physics/mls-mpm/MLS_MPM.js +15 -4
- package/src/engine/physics/narrowphase/box_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/box_triangle_contact.js +9 -0
- package/src/engine/physics/narrowphase/capsule_contacts.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/capsule_contacts.js +10 -11
- package/src/engine/physics/narrowphase/sphere_triangle_contact.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/sphere_triangle_contact.js +7 -12
- package/src/engine/physics/solver/apply_impulse_to_body.d.ts +36 -0
- package/src/engine/physics/solver/apply_impulse_to_body.d.ts.map +1 -0
- package/src/engine/physics/solver/apply_impulse_to_body.js +86 -0
- package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
- package/src/engine/physics/solver/solve_contacts.js +1 -53
- package/src/engine/plugin/EnginePlugin.d.ts +3 -0
- package/src/engine/plugin/EnginePlugin.d.ts.map +1 -1
- package/src/engine/plugin/EnginePlugin.js +3 -0
- package/src/engine/save/storage/IndexedDBStorage.d.ts +1 -0
- package/src/engine/save/storage/IndexedDBStorage.d.ts.map +1 -1
- package/src/engine/save/storage/IndexedDBStorage.js +50 -50
- package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundControllerSystem.js +2 -10
- package/src/engine/sound/simulation/AcousticSimulator.d.ts.map +1 -1
- package/src/engine/sound/simulation/AcousticSimulator.js +2 -1
- package/src/engine/sound/simulation/core/AcousticOccluderIndex.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/AcousticOccluderIndex.js +4 -6
- package/src/engine/sound/simulation/core/OcclusionSolver.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/OcclusionSolver.js +2 -9
- package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/ProbeVisibilityRecheck.js +9 -14
- package/src/engine/sound/simulation/probe/bakeReverbBands.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/bakeReverbBands.js +2 -6
- package/src/engine/sound/simulation/probe/bakeVisibility.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/bakeVisibility.js +4 -34
- package/src/engine/sound/simulation/probe/probe_densify_portals.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_densify_portals.js +3 -6
- package/src/engine/sound/simulation/probe/probe_edge_key.d.ts +31 -0
- package/src/engine/sound/simulation/probe/probe_edge_key.d.ts.map +1 -0
- package/src/engine/sound/simulation/probe/probe_edge_key.js +38 -0
- package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts +10 -3
- package/src/engine/sound/simulation/probe/probe_sdf_grid.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_sdf_grid.js +10 -22
- package/src/engine/sound/simulation/probe/probe_visibility_augment.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_visibility_augment.js +12 -48
- package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/probe_visibility_bridge_components.js +4 -3
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts +5 -4
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.d.ts.map +1 -1
- package/src/engine/sound/simulation/render/foaReverbImpulseResponse.js +23 -31
- package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts +1 -8
- package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts.map +1 -1
- package/src/engine/sound/simulation/render/reverbImpulseResponse.js +21 -31
- package/src/engine/sound/simulation/render/reverb_band_tails.d.ts +55 -0
- package/src/engine/sound/simulation/render/reverb_band_tails.d.ts.map +1 -0
- package/src/engine/sound/simulation/render/reverb_band_tails.js +93 -0
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +6 -22
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClip.js +7 -3
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/BlendContainerAudioClipSerializationAdapter.js +7 -22
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/ContainerAudioClip.js +28 -0
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/RandomContainerAudioClip.js +1 -5
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SequenceContainerAudioClip.js +1 -13
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/clip/SwitchContainerAudioClip.js +2 -8
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +3 -0
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -1
- package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +26 -14
- package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/BusGraph.js +21 -33
- package/src/engine/sound/sopra/runtime/EventInstance.js +1 -1
- package/src/engine/ui/apply_pointer_tilt_3d.d.ts +25 -0
- package/src/engine/ui/apply_pointer_tilt_3d.d.ts.map +1 -0
- package/src/engine/ui/apply_pointer_tilt_3d.js +50 -0
- package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.d.ts.map +1 -1
- package/src/engine/ui/bindings/processors/DomElementProcessorTilt3D.js +9 -26
- package/src/generation/filtering/numeric/CellFilterCache.d.ts.map +1 -1
- package/src/generation/filtering/numeric/CellFilterCache.js +4 -21
- package/src/generation/filtering/numeric/complex/CellFilterSobel.d.ts.map +1 -1
- package/src/generation/filtering/numeric/complex/CellFilterSobel.js +11 -20
- package/src/generation/filtering/numeric/math/CellFilterPower.d.ts +1 -1
- package/src/generation/filtering/numeric/math/CellFilterPower.d.ts.map +1 -1
- package/src/generation/filtering/numeric/math/CellFilterPower.js +1 -5
- package/src/generation/filtering/numeric/process/computeCellFilterGradient.d.ts.map +1 -1
- package/src/generation/filtering/numeric/process/computeCellFilterGradient.js +13 -15
- package/src/generation/filtering/numeric/process/computeCellFilterSobel.d.ts +20 -0
- package/src/generation/filtering/numeric/process/computeCellFilterSobel.d.ts.map +1 -0
- package/src/generation/filtering/numeric/process/computeCellFilterSobel.js +36 -0
- package/src/generation/filtering/numeric/util/CellFilterDisplaced.d.ts.map +1 -1
- package/src/generation/filtering/numeric/util/CellFilterDisplaced.js +11 -6
- package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.d.ts.map +1 -1
- package/src/generation/filtering/numeric/util/populateSampler2DFromCellFilter.js +18 -36
- package/src/generation/filtering/numeric/util/write_cell_filter_to_sampler2d.d.ts +21 -0
- package/src/generation/filtering/numeric/util/write_cell_filter_to_sampler2d.d.ts.map +1 -0
- package/src/generation/filtering/numeric/util/write_cell_filter_to_sampler2d.js +47 -0
- package/src/generation/filtering/util/cell_filter_weights_pick.d.ts +25 -0
- package/src/generation/filtering/util/cell_filter_weights_pick.d.ts.map +1 -0
- package/src/generation/filtering/util/cell_filter_weights_pick.js +54 -0
- package/src/generation/grid/generation/discrete/GridTaskConnectRooms.d.ts.map +1 -1
- package/src/generation/grid/generation/discrete/GridTaskConnectRooms.js +14 -1
- package/src/generation/markers/GridActionRuleSet.d.ts.map +1 -1
- package/src/generation/markers/GridActionRuleSet.js +10 -7
- package/src/generation/markers/GridCellActionPlaceMarker.d.ts.map +1 -1
- package/src/generation/markers/GridCellActionPlaceMarker.js +10 -12
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.d.ts.map +1 -1
- package/src/generation/markers/actions/probability/MarkerNodeActionSelectWeighted.js +7 -42
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +11 -6
- package/src/generation/placement/GridCellPlacementRule.d.ts.map +1 -1
- package/src/generation/placement/GridCellPlacementRule.js +10 -7
- package/src/generation/placement/action/GridCellActionPlaceTags.d.ts.map +1 -1
- package/src/generation/placement/action/GridCellActionPlaceTags.js +10 -4
- package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.d.ts.map +1 -1
- package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.js +2 -38
- package/src/generation/placement/action/util/GridCellDisplacedAction.d.ts.map +1 -1
- package/src/generation/placement/action/util/GridCellDisplacedAction.js +11 -6
- package/src/generation/rules/cell/CellMatcherGridPattern.d.ts.map +1 -1
- package/src/generation/rules/cell/CellMatcherGridPattern.js +11 -4
- package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
- package/src/generation/theme/ThemeEngine.js +7 -12
- package/src/view/elements/Group.d.ts +24 -3
- package/src/view/elements/Group.d.ts.map +1 -1
- package/src/view/elements/Group.js +56 -34
- package/src/view/minimap/gl/MinimapMarkersGL.d.ts.map +1 -1
- package/src/view/minimap/gl/MinimapMarkersGL.js +3 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compose a 4x4 transform matrix from a rotation quaternion, a translation and a (non-uniform) scale,
|
|
3
|
+
* taking every operand as a loose scalar. `out = T * R * S`.
|
|
4
|
+
*
|
|
5
|
+
* This is the shared core of {@link m4_compose} (object operands) and
|
|
6
|
+
* {@link m4_from_rotation_translation_scale} (array operands) — those two differ only in how they read
|
|
7
|
+
* their inputs, and previously each carried its own copy of the quaternion→matrix expansion.
|
|
8
|
+
*
|
|
9
|
+
* The quaternion is assumed to be of unit length. Allocation-free.
|
|
10
|
+
*
|
|
11
|
+
* @param {number[]|Float32Array|Float64Array} out destination 4x4 matrix
|
|
12
|
+
* @param {number} qx
|
|
13
|
+
* @param {number} qy
|
|
14
|
+
* @param {number} qz
|
|
15
|
+
* @param {number} qw
|
|
16
|
+
* @param {number} tx
|
|
17
|
+
* @param {number} ty
|
|
18
|
+
* @param {number} tz
|
|
19
|
+
* @param {number} sx
|
|
20
|
+
* @param {number} sy
|
|
21
|
+
* @param {number} sz
|
|
22
|
+
*
|
|
23
|
+
* @author Alex Goldring
|
|
24
|
+
* @copyright Company Named Limited (c) 2026
|
|
25
|
+
*/
|
|
26
|
+
export function m4_from_rotation_translation_scale_scalar(out: number[] | Float32Array | Float64Array, qx: number, qy: number, qz: number, qw: number, tx: number, ty: number, tz: number, sx: number, sy: number, sz: number): void;
|
|
27
|
+
//# sourceMappingURL=m4_from_rotation_translation_scale_scalar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m4_from_rotation_translation_scale_scalar.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_from_rotation_translation_scale_scalar.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,+DAfW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,MAClC,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QA8ChB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compose a 4x4 transform matrix from a rotation quaternion, a translation and a (non-uniform) scale,
|
|
3
|
+
* taking every operand as a loose scalar. `out = T * R * S`.
|
|
4
|
+
*
|
|
5
|
+
* This is the shared core of {@link m4_compose} (object operands) and
|
|
6
|
+
* {@link m4_from_rotation_translation_scale} (array operands) — those two differ only in how they read
|
|
7
|
+
* their inputs, and previously each carried its own copy of the quaternion→matrix expansion.
|
|
8
|
+
*
|
|
9
|
+
* The quaternion is assumed to be of unit length. Allocation-free.
|
|
10
|
+
*
|
|
11
|
+
* @param {number[]|Float32Array|Float64Array} out destination 4x4 matrix
|
|
12
|
+
* @param {number} qx
|
|
13
|
+
* @param {number} qy
|
|
14
|
+
* @param {number} qz
|
|
15
|
+
* @param {number} qw
|
|
16
|
+
* @param {number} tx
|
|
17
|
+
* @param {number} ty
|
|
18
|
+
* @param {number} tz
|
|
19
|
+
* @param {number} sx
|
|
20
|
+
* @param {number} sy
|
|
21
|
+
* @param {number} sz
|
|
22
|
+
*
|
|
23
|
+
* @author Alex Goldring
|
|
24
|
+
* @copyright Company Named Limited (c) 2026
|
|
25
|
+
*/
|
|
26
|
+
export function m4_from_rotation_translation_scale_scalar(
|
|
27
|
+
out,
|
|
28
|
+
qx, qy, qz, qw,
|
|
29
|
+
tx, ty, tz,
|
|
30
|
+
sx, sy, sz
|
|
31
|
+
) {
|
|
32
|
+
const x2 = qx + qx;
|
|
33
|
+
const y2 = qy + qy;
|
|
34
|
+
const z2 = qz + qz;
|
|
35
|
+
|
|
36
|
+
const xx = qx * x2;
|
|
37
|
+
const xy = qx * y2;
|
|
38
|
+
const xz = qx * z2;
|
|
39
|
+
|
|
40
|
+
const yy = qy * y2;
|
|
41
|
+
const yz = qy * z2;
|
|
42
|
+
const zz = qz * z2;
|
|
43
|
+
|
|
44
|
+
const wx = qw * x2;
|
|
45
|
+
const wy = qw * y2;
|
|
46
|
+
const wz = qw * z2;
|
|
47
|
+
|
|
48
|
+
out[0] = (1 - (yy + zz)) * sx;
|
|
49
|
+
out[1] = (xy + wz) * sx;
|
|
50
|
+
out[2] = (xz - wy) * sx;
|
|
51
|
+
out[3] = 0;
|
|
52
|
+
|
|
53
|
+
out[4] = (xy - wz) * sy;
|
|
54
|
+
out[5] = (1 - (xx + zz)) * sy;
|
|
55
|
+
out[6] = (yz + wx) * sy;
|
|
56
|
+
out[7] = 0;
|
|
57
|
+
|
|
58
|
+
out[8] = (xz + wy) * sz;
|
|
59
|
+
out[9] = (yz - wx) * sz;
|
|
60
|
+
out[10] = (1 - (xx + yy)) * sz;
|
|
61
|
+
out[11] = 0;
|
|
62
|
+
|
|
63
|
+
out[12] = tx;
|
|
64
|
+
out[13] = ty;
|
|
65
|
+
out[14] = tz;
|
|
66
|
+
out[15] = 1;
|
|
67
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orient3d_fast.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/plane/orient3d_fast.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orient3d_fast.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/plane/orient3d_fast.js"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,sCAPW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAMlB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { orient3d_fast_point } from "./orient3d_fast_point.js";
|
|
1
2
|
/**
|
|
2
3
|
* Non-robust
|
|
3
4
|
*
|
|
@@ -20,29 +21,8 @@
|
|
|
20
21
|
* @returns {number}
|
|
21
22
|
*/
|
|
22
23
|
export function orient3d_fast(points, a, b, c, d) {
|
|
23
|
-
const a3 = a * 3;
|
|
24
24
|
const d3 = d * 3;
|
|
25
|
-
const b3 = b * 3;
|
|
26
|
-
const c3 = c * 3;
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
const d_y = points[d3 + 1];
|
|
30
|
-
const d_z = points[d3 + 2];
|
|
31
|
-
|
|
32
|
-
const adx = points[a3] - d_x;
|
|
33
|
-
const ady = points[a3 + 1] - d_y;
|
|
34
|
-
const adz = points[a3 + 2] - d_z;
|
|
35
|
-
|
|
36
|
-
const bdx = points[b3] - d_x;
|
|
37
|
-
const bdy = points[b3 + 1] - d_y;
|
|
38
|
-
const bdz = points[b3 + 2] - d_z;
|
|
39
|
-
|
|
40
|
-
const cdx = points[c3] - d_x;
|
|
41
|
-
const cdy = points[c3 + 1] - d_y;
|
|
42
|
-
const cdz = points[c3 + 2] - d_z;
|
|
43
|
-
|
|
44
|
-
return adx * (bdy * cdz - bdz * cdy)
|
|
45
|
-
+ bdx * (cdy * adz - cdz * ady)
|
|
46
|
-
+ cdx * (ady * bdz - adz * bdy);
|
|
26
|
+
return orient3d_fast_point(points, a, b, c, points[d3], points[d3 + 1], points[d3 + 2]);
|
|
47
27
|
}
|
|
48
28
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Non-robust `orient3d`: the signed volume (x6) of the tetrahedron `(a, b, c, e)`, where `a`/`b`/`c` are
|
|
3
|
+
* INDICES into a flat `(x, y, z)`-per-point buffer and `e` is given as loose coordinates.
|
|
4
|
+
*
|
|
5
|
+
* Sign convention matches {@link orient3d_fast}: positive when `e` is below the plane of `a`, `b`, `c`
|
|
6
|
+
* with respect to their winding.
|
|
7
|
+
*
|
|
8
|
+
* This is the shared core of {@link orient3d_fast} — that one simply reads its fourth point out of the
|
|
9
|
+
* same buffer first. Use this flavour when the query point is not stored in the buffer, which is the
|
|
10
|
+
* common case for point-in-solid tests.
|
|
11
|
+
*
|
|
12
|
+
* NON-ROBUST: this is the floating-point determinant, not the adaptive-precision predicate. Use
|
|
13
|
+
* `orient3d_robust` when the sign must be exact for nearly-degenerate configurations.
|
|
14
|
+
*
|
|
15
|
+
* @param {number[]|Float32Array|Float64Array} points flat `(x, y, z)` per point
|
|
16
|
+
* @param {number} a index of the first plane point
|
|
17
|
+
* @param {number} b index of the second plane point
|
|
18
|
+
* @param {number} c index of the third plane point
|
|
19
|
+
* @param {number} ex query point x
|
|
20
|
+
* @param {number} ey query point y
|
|
21
|
+
* @param {number} ez query point z
|
|
22
|
+
* @returns {number}
|
|
23
|
+
*
|
|
24
|
+
* @author Alex Goldring
|
|
25
|
+
* @copyright Company Named Limited (c) 2026
|
|
26
|
+
*/
|
|
27
|
+
export function orient3d_fast_point(points: number[] | Float32Array | Float64Array, a: number, b: number, c: number, ex: number, ey: number, ez: number): number;
|
|
28
|
+
//# sourceMappingURL=orient3d_fast_point.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orient3d_fast_point.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/plane/orient3d_fast_point.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,4CAZW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,KAClC,MAAM,KACN,MAAM,KACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAyBlB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Non-robust `orient3d`: the signed volume (x6) of the tetrahedron `(a, b, c, e)`, where `a`/`b`/`c` are
|
|
3
|
+
* INDICES into a flat `(x, y, z)`-per-point buffer and `e` is given as loose coordinates.
|
|
4
|
+
*
|
|
5
|
+
* Sign convention matches {@link orient3d_fast}: positive when `e` is below the plane of `a`, `b`, `c`
|
|
6
|
+
* with respect to their winding.
|
|
7
|
+
*
|
|
8
|
+
* This is the shared core of {@link orient3d_fast} — that one simply reads its fourth point out of the
|
|
9
|
+
* same buffer first. Use this flavour when the query point is not stored in the buffer, which is the
|
|
10
|
+
* common case for point-in-solid tests.
|
|
11
|
+
*
|
|
12
|
+
* NON-ROBUST: this is the floating-point determinant, not the adaptive-precision predicate. Use
|
|
13
|
+
* `orient3d_robust` when the sign must be exact for nearly-degenerate configurations.
|
|
14
|
+
*
|
|
15
|
+
* @param {number[]|Float32Array|Float64Array} points flat `(x, y, z)` per point
|
|
16
|
+
* @param {number} a index of the first plane point
|
|
17
|
+
* @param {number} b index of the second plane point
|
|
18
|
+
* @param {number} c index of the third plane point
|
|
19
|
+
* @param {number} ex query point x
|
|
20
|
+
* @param {number} ey query point y
|
|
21
|
+
* @param {number} ez query point z
|
|
22
|
+
* @returns {number}
|
|
23
|
+
*
|
|
24
|
+
* @author Alex Goldring
|
|
25
|
+
* @copyright Company Named Limited (c) 2026
|
|
26
|
+
*/
|
|
27
|
+
export function orient3d_fast_point(points, a, b, c, ex, ey, ez) {
|
|
28
|
+
const a3 = a * 3;
|
|
29
|
+
const b3 = b * 3;
|
|
30
|
+
const c3 = c * 3;
|
|
31
|
+
|
|
32
|
+
const adx = points[a3] - ex;
|
|
33
|
+
const ady = points[a3 + 1] - ey;
|
|
34
|
+
const adz = points[a3 + 2] - ez;
|
|
35
|
+
|
|
36
|
+
const bdx = points[b3] - ex;
|
|
37
|
+
const bdy = points[b3 + 1] - ey;
|
|
38
|
+
const bdz = points[b3 + 2] - ez;
|
|
39
|
+
|
|
40
|
+
const cdx = points[c3] - ex;
|
|
41
|
+
const cdy = points[c3 + 1] - ey;
|
|
42
|
+
const cdz = points[c3 + 2] - ez;
|
|
43
|
+
|
|
44
|
+
return adx * (bdy * cdz - bdz * cdy)
|
|
45
|
+
+ bdx * (cdy * adz - cdz * ady)
|
|
46
|
+
+ cdx * (ady * bdz - adz * bdy);
|
|
47
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shortest-path normalized linear interpolation between two unit quaternions:
|
|
3
|
+
* `out = normalize(a + (b' - a) * t)`, where `b'` is `b` negated when the two
|
|
4
|
+
* point into opposite hemispheres.
|
|
5
|
+
*
|
|
6
|
+
* The hemisphere flip is what makes this "shortest path". `q` and `-q` name the
|
|
7
|
+
* same rotation, so a raw componentwise lerp between two quaternions whose dot
|
|
8
|
+
* product is negative travels the long way round — a visible backwards spin at
|
|
9
|
+
* playback. Testing `a · b < 0` and negating `b` costs four multiplies and
|
|
10
|
+
* removes the failure mode entirely.
|
|
11
|
+
*
|
|
12
|
+
* nlerp, not slerp: the path is the same, only the angular *rate* differs, and
|
|
13
|
+
* the error is bounded by a few degrees for the per-tick steps this is built
|
|
14
|
+
* for (network interpolation between adjacent snapshots, render smoothing).
|
|
15
|
+
* Slerp's `acos`/`sin` pair costs far more than the visual difference is worth
|
|
16
|
+
* at those step sizes. Reach for {@link Quaternion#slerpQuaternions} instead
|
|
17
|
+
* when blending across wide angles, e.g. animation keyframes seconds apart.
|
|
18
|
+
*
|
|
19
|
+
* Exists because this was hand-inlined at three separate interpolation sites
|
|
20
|
+
* with no primitive to call — the `quat3_*` family had `multiply`, `integrate`
|
|
21
|
+
* and the uint32 codecs but no blend.
|
|
22
|
+
*
|
|
23
|
+
* Sign convention: `(x, y, z, w)` — `w` last, matching {@link Quaternion} and
|
|
24
|
+
* the rest of the `core/geom/3d/quaternion/` family.
|
|
25
|
+
*
|
|
26
|
+
* All eight components are read from the argument list before anything is
|
|
27
|
+
* written, so `out` may safely be the same backing array the inputs were read
|
|
28
|
+
* from, at any offset.
|
|
29
|
+
*
|
|
30
|
+
* **Precondition: `a` and `b` are non-zero.** The blend cannot otherwise
|
|
31
|
+
* cancel to the zero quaternion — the hemisphere flip guarantees the endpoints
|
|
32
|
+
* are never antipodal by the time they are mixed, so the only way to reach a
|
|
33
|
+
* zero-length result is to hand in a zero-length input.
|
|
34
|
+
*
|
|
35
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
36
|
+
* @param {number} out_offset offset into `out`; receives 4 floats (x, y, z, w)
|
|
37
|
+
* @param {number} ax
|
|
38
|
+
* @param {number} ay
|
|
39
|
+
* @param {number} az
|
|
40
|
+
* @param {number} aw
|
|
41
|
+
* @param {number} bx
|
|
42
|
+
* @param {number} by
|
|
43
|
+
* @param {number} bz
|
|
44
|
+
* @param {number} bw
|
|
45
|
+
* @param {number} t blend factor; 0 yields `a`, 1 yields `b` (or `-b`)
|
|
46
|
+
*/
|
|
47
|
+
export function quat3_nlerp(out: number[] | Float32Array | Float64Array, out_offset: number, ax: number, ay: number, az: number, aw: number, bx: number, by: number, bz: number, bw: number, t: number): void;
|
|
48
|
+
//# sourceMappingURL=quat3_nlerp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quat3_nlerp.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/quaternion/quat3_nlerp.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,iCAZW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,KACN,MAAM,QAyBhB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Shortest-path normalized linear interpolation between two unit quaternions:
|
|
5
|
+
* `out = normalize(a + (b' - a) * t)`, where `b'` is `b` negated when the two
|
|
6
|
+
* point into opposite hemispheres.
|
|
7
|
+
*
|
|
8
|
+
* The hemisphere flip is what makes this "shortest path". `q` and `-q` name the
|
|
9
|
+
* same rotation, so a raw componentwise lerp between two quaternions whose dot
|
|
10
|
+
* product is negative travels the long way round — a visible backwards spin at
|
|
11
|
+
* playback. Testing `a · b < 0` and negating `b` costs four multiplies and
|
|
12
|
+
* removes the failure mode entirely.
|
|
13
|
+
*
|
|
14
|
+
* nlerp, not slerp: the path is the same, only the angular *rate* differs, and
|
|
15
|
+
* the error is bounded by a few degrees for the per-tick steps this is built
|
|
16
|
+
* for (network interpolation between adjacent snapshots, render smoothing).
|
|
17
|
+
* Slerp's `acos`/`sin` pair costs far more than the visual difference is worth
|
|
18
|
+
* at those step sizes. Reach for {@link Quaternion#slerpQuaternions} instead
|
|
19
|
+
* when blending across wide angles, e.g. animation keyframes seconds apart.
|
|
20
|
+
*
|
|
21
|
+
* Exists because this was hand-inlined at three separate interpolation sites
|
|
22
|
+
* with no primitive to call — the `quat3_*` family had `multiply`, `integrate`
|
|
23
|
+
* and the uint32 codecs but no blend.
|
|
24
|
+
*
|
|
25
|
+
* Sign convention: `(x, y, z, w)` — `w` last, matching {@link Quaternion} and
|
|
26
|
+
* the rest of the `core/geom/3d/quaternion/` family.
|
|
27
|
+
*
|
|
28
|
+
* All eight components are read from the argument list before anything is
|
|
29
|
+
* written, so `out` may safely be the same backing array the inputs were read
|
|
30
|
+
* from, at any offset.
|
|
31
|
+
*
|
|
32
|
+
* **Precondition: `a` and `b` are non-zero.** The blend cannot otherwise
|
|
33
|
+
* cancel to the zero quaternion — the hemisphere flip guarantees the endpoints
|
|
34
|
+
* are never antipodal by the time they are mixed, so the only way to reach a
|
|
35
|
+
* zero-length result is to hand in a zero-length input.
|
|
36
|
+
*
|
|
37
|
+
* @param {number[]|Float32Array|Float64Array} out
|
|
38
|
+
* @param {number} out_offset offset into `out`; receives 4 floats (x, y, z, w)
|
|
39
|
+
* @param {number} ax
|
|
40
|
+
* @param {number} ay
|
|
41
|
+
* @param {number} az
|
|
42
|
+
* @param {number} aw
|
|
43
|
+
* @param {number} bx
|
|
44
|
+
* @param {number} by
|
|
45
|
+
* @param {number} bz
|
|
46
|
+
* @param {number} bw
|
|
47
|
+
* @param {number} t blend factor; 0 yields `a`, 1 yields `b` (or `-b`)
|
|
48
|
+
*/
|
|
49
|
+
export function quat3_nlerp(out, out_offset, ax, ay, az, aw, bx, by, bz, bw, t) {
|
|
50
|
+
if (ax * bx + ay * by + az * bz + aw * bw < 0) {
|
|
51
|
+
bx = -bx;
|
|
52
|
+
by = -by;
|
|
53
|
+
bz = -bz;
|
|
54
|
+
bw = -bw;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const qx = ax + (bx - ax) * t;
|
|
58
|
+
const qy = ay + (by - ay) * t;
|
|
59
|
+
const qz = az + (bz - az) * t;
|
|
60
|
+
const qw = aw + (bw - aw) * t;
|
|
61
|
+
|
|
62
|
+
const len2 = qx * qx + qy * qy + qz * qz + qw * qw;
|
|
63
|
+
|
|
64
|
+
assert.ok(len2 > 0, 'quat3_nlerp: blend cancelled to the zero quaternion; a or b was not a rotation');
|
|
65
|
+
|
|
66
|
+
const inv_len = 1 / Math.sqrt(len2);
|
|
67
|
+
|
|
68
|
+
out[out_offset] = qx * inv_len;
|
|
69
|
+
out[out_offset + 1] = qy * inv_len;
|
|
70
|
+
out[out_offset + 2] = qz * inv_len;
|
|
71
|
+
out[out_offset + 3] = qw * inv_len;
|
|
72
|
+
}
|
|
@@ -20,6 +20,15 @@ export class AbstractShape3D {
|
|
|
20
20
|
*/
|
|
21
21
|
nearest_point_on_surface(result: number[], reference: number[]): void;
|
|
22
22
|
/**
|
|
23
|
+
* Uniformly sample a point inside the shape's volume.
|
|
24
|
+
*
|
|
25
|
+
* Generic implementation: rejection-sample the bounding box until a probe lands inside. Requires only
|
|
26
|
+
* {@link compute_bounding_box} and {@link contains_point}, so every shape gets it for free; shapes with
|
|
27
|
+
* a closed-form sampler (sphere, box) override it.
|
|
28
|
+
*
|
|
29
|
+
* After {@link SAMPLE_VOLUME_MAX_ATTEMPTS} misses it falls back to the bounding-box centre. That bound
|
|
30
|
+
* matters for shapes whose volume is a small fraction of their bounds (a thin diagonal capsule, a torus
|
|
31
|
+
* with a large hole) where rejection sampling can otherwise run unbounded.
|
|
23
32
|
*
|
|
24
33
|
* @param {number[]} result
|
|
25
34
|
* @param {number} result_offset
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/AbstractShape3D.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/AbstractShape3D.js"],"names":[],"mappings":"AASA;IACI;;;;OAIG;IACH,gCAHW,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;OAKG;IACH,0CAJW,MAAM,EAAE,SACR,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;OAKG;IACH,iCAJW,MAAM,EAAE,aACR,MAAM,EAAE,GACN,IAAI,CAIhB;IAED;;;;;;;;;;;;;;;OAeG;IACH,sCALW,MAAM,EAAE,iBACR,MAAM,qBAEJ,IAAI,CA6BhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,GACN,OAAO,CAInB;IAED;;;OAGG;IACH,qBAEC;IAED;;OAEG;IACH,2BAEC;IAED;;;;OAIG;IACH,6BAHW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,GAAC,YAAY,GAClD,IAAI,CAIhB;IAED;;;;;;;;;OASG;IACH,gBAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;;;;;;;OAWG;IACH,aAJW,YAAY,GAAC,MAAM,EAAE,cAEnB,OAAO,CAInB;IAED;;;;OAIG;IACH,6CAFa,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAGL;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oBAFU,OAAO,CAEkB;CAvBlC"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rejection-sampling budget for the generic {@link AbstractShape3D#sample_random_point_in_volume}.
|
|
3
|
+
* @type {number}
|
|
4
|
+
*/
|
|
5
|
+
const SAMPLE_VOLUME_MAX_ATTEMPTS = 256;
|
|
6
|
+
|
|
7
|
+
const scratch_sample_bounds = new Float64Array(6);
|
|
8
|
+
const scratch_sample_probe = new Float64Array(3);
|
|
9
|
+
|
|
1
10
|
export class AbstractShape3D {
|
|
2
11
|
/**
|
|
3
12
|
* Signed distance to boundary of the shape from the given point
|
|
@@ -29,6 +38,15 @@ export class AbstractShape3D {
|
|
|
29
38
|
}
|
|
30
39
|
|
|
31
40
|
/**
|
|
41
|
+
* Uniformly sample a point inside the shape's volume.
|
|
42
|
+
*
|
|
43
|
+
* Generic implementation: rejection-sample the bounding box until a probe lands inside. Requires only
|
|
44
|
+
* {@link compute_bounding_box} and {@link contains_point}, so every shape gets it for free; shapes with
|
|
45
|
+
* a closed-form sampler (sphere, box) override it.
|
|
46
|
+
*
|
|
47
|
+
* After {@link SAMPLE_VOLUME_MAX_ATTEMPTS} misses it falls back to the bounding-box centre. That bound
|
|
48
|
+
* matters for shapes whose volume is a small fraction of their bounds (a thin diagonal capsule, a torus
|
|
49
|
+
* with a large hole) where rejection sampling can otherwise run unbounded.
|
|
32
50
|
*
|
|
33
51
|
* @param {number[]} result
|
|
34
52
|
* @param {number} result_offset
|
|
@@ -36,7 +54,32 @@ export class AbstractShape3D {
|
|
|
36
54
|
* @returns {void}
|
|
37
55
|
*/
|
|
38
56
|
sample_random_point_in_volume(result, result_offset, random) {
|
|
39
|
-
|
|
57
|
+
const bounds = scratch_sample_bounds;
|
|
58
|
+
|
|
59
|
+
this.compute_bounding_box(bounds);
|
|
60
|
+
|
|
61
|
+
const lx = bounds[0], ly = bounds[1], lz = bounds[2];
|
|
62
|
+
const sx = bounds[3] - lx, sy = bounds[4] - ly, sz = bounds[5] - lz;
|
|
63
|
+
|
|
64
|
+
const probe = scratch_sample_probe;
|
|
65
|
+
|
|
66
|
+
for (let attempt = 0; attempt < SAMPLE_VOLUME_MAX_ATTEMPTS; attempt++) {
|
|
67
|
+
probe[0] = lx + random() * sx;
|
|
68
|
+
probe[1] = ly + random() * sy;
|
|
69
|
+
probe[2] = lz + random() * sz;
|
|
70
|
+
|
|
71
|
+
if (this.contains_point(probe)) {
|
|
72
|
+
result[result_offset] = probe[0];
|
|
73
|
+
result[result_offset + 1] = probe[1];
|
|
74
|
+
result[result_offset + 2] = probe[2];
|
|
75
|
+
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
result[result_offset] = lx + sx * 0.5;
|
|
81
|
+
result[result_offset + 1] = ly + sy * 0.5;
|
|
82
|
+
result[result_offset + 2] = lz + sz * 0.5;
|
|
40
83
|
}
|
|
41
84
|
|
|
42
85
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoxShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/BoxShape3D.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BoxShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/BoxShape3D.js"],"names":[],"mappings":"AAcA;;;;;;;;;;;;GAYG;AACH;IAYI;;;;;;OAMG;IACH,gBALW,MAAM,MACN,MAAM,MACN,MAAM,GACJ,UAAU,CAMtB;IAED;;;;;;;OAOG;IACH,wBALW,MAAM,UACN,MAAM,SACN,MAAM,GACJ,UAAU,CAItB;IA/BG;;;;OAIG;IACH,uBAFU,OAAO,CAE6B;IAsClD,wCAIC;IAED,4DAQC;IAED,qGAKC;IAED,qCAaC;IAED,mEAEC;IAED,6CAaC;IAED,oCAQC;IAED,kFAOC;IAED;;;OAGG;IACH,cAHW,UAAU,GACR,OAAO,CAInB;IAWL;;;;;;OAMG;IACH,uBAFU,OAAO,CAEgB;CAThC;gCA1J+B,sBAAsB;oBAVlC,kBAAkB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hash_mix3 } from "../../../math/hash/hash_mix3.js";
|
|
1
2
|
import Vector3 from "../../Vector3.js";
|
|
2
3
|
import { max2 } from "../../../math/max2.js";
|
|
3
4
|
import { max3 } from "../../../math/max3.js";
|
|
@@ -160,7 +161,7 @@ export class BoxShape3D extends AbstractShape3D {
|
|
|
160
161
|
const a = computeHashFloat(h.x);
|
|
161
162
|
const b = computeHashFloat(h.y);
|
|
162
163
|
const c = computeHashFloat(h.z);
|
|
163
|
-
return (
|
|
164
|
+
return hash_mix3(a, b, c);
|
|
164
165
|
}
|
|
165
166
|
}
|
|
166
167
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapsuleShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CapsuleShape3D.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CapsuleShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CapsuleShape3D.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH;IAiBI;;;;OAIG;IACH,oBAJW,MAAM,UACN,MAAM,GACJ,cAAc,CAa1B;IA7BG;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAED;IAqCnB,wCAUC;IAED,qCAgBC;IAED,6CAaC;IAED,mEAEC;IAED,oCAcC;IAED,4DA+BC;IAED,qGAUC;IAED,kFA+BC;IAED;;;OAGG;IACH,cAHW,cAAc,GACZ,OAAO,CAMnB;IAUL;;;;;;;;;OASG;IACH,2BAFU,OAAO,CAEwB;CAZxC;gCA5N+B,sBAAsB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hash_mix2 } from "../../../math/hash/hash_mix2.js";
|
|
1
2
|
import { assert } from "../../../assert.js";
|
|
2
3
|
import { clamp } from "../../../math/clamp.js";
|
|
3
4
|
import { sign_not_zero } from "../../../math/sign_not_zero.js";
|
|
@@ -224,7 +225,7 @@ export class CapsuleShape3D extends AbstractShape3D {
|
|
|
224
225
|
const a = computeHashFloat(this.radius);
|
|
225
226
|
const b = computeHashFloat(this.height);
|
|
226
227
|
|
|
227
|
-
return (
|
|
228
|
+
return hash_mix2(a, b);
|
|
228
229
|
}
|
|
229
230
|
}
|
|
230
231
|
|
|
@@ -95,7 +95,6 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
95
95
|
signed_distance_at_point(point: any): number;
|
|
96
96
|
signed_distance_gradient_at_point(result: any, point: any): number;
|
|
97
97
|
nearest_point_on_surface(result: any, reference: any): void;
|
|
98
|
-
sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
|
|
99
98
|
/**
|
|
100
99
|
* @param {ConvexHullShape3D} other
|
|
101
100
|
* @returns {boolean}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvexHullShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/ConvexHullShape3D.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConvexHullShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/ConvexHullShape3D.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;IA+CI;;;;;;;OAOG;IACH,sBAJW,YAAY,WACZ,WAAW,GACT,iBAAiB,CAQ7B;IAxDG;;;;OAIG;IACH,UAFU,YAAY,CAEa;IAEnC;;;;OAIG;IACH,SAFU,WAAW,CAEY;IAEjC;;;;;;OAMG;IACH,cAFU,WAAW,CAEiB;IACtC,0BAA0B;IAC1B,YADW,WAAW,CACc;IAEpC;;;;;;OAMG;IACH,iBAAmC;IAEnC,oCAAoC;IACpC,eAAiC;IACjC,8BAA8B;IAC9B,iBAAiB;IACjB,8BAA8B;IAC9B,uBAAuB;IAmB3B;;;OAGG;IACH,kBA8EC;IAKD,wCAIC;IAED;;;;;OAKG;IACH,qGAgBC;IAED;;;OAGG;IACH,oCAgBC;IAED;;;OAGG;IACH,6CAiBC;IAED,mEAEC;IAED,4DAoBC;IAGD;;;OAGG;IACH,cAHW,iBAAiB,GACf,OAAO,CAanB;IAcL;;;;OAIG;IACH,8BAFU,OAAO,CAE8B;CAP9C;gCArT+B,sBAAsB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { hash_mix2 } from "../../../math/hash/hash_mix2.js";
|
|
1
2
|
import { computeHashFloat } from "../../../primitives/numbers/computeHashFloat.js";
|
|
2
|
-
import {
|
|
3
|
+
import { tri3_closest_point } from "../triangle/tri3_closest_point.js";
|
|
3
4
|
import { AbstractShape3D } from "./AbstractShape3D.js";
|
|
4
5
|
import { compute_signed_distance_gradient_by_sampling } from "./util/compute_signed_distance_gradient_by_sampling.js";
|
|
6
|
+
import { aabb3_from_v3_array } from "../aabb/aabb3_from_v3_array.js";
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* Convex polyhedron collider.
|
|
@@ -100,18 +102,15 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
100
102
|
const v = this.vertices;
|
|
101
103
|
const idx = this.indices;
|
|
102
104
|
|
|
103
|
-
let mnx = Infinity, mny = Infinity, mnz = Infinity;
|
|
104
|
-
let mxx = -Infinity, mxy = -Infinity, mxz = -Infinity;
|
|
105
105
|
const vc = v.length / 3;
|
|
106
|
-
for (let i = 0; i < vc; i++) {
|
|
107
|
-
const x = v[i * 3], y = v[i * 3 + 1], z = v[i * 3 + 2];
|
|
108
|
-
if (x < mnx) mnx = x; if (x > mxx) mxx = x;
|
|
109
|
-
if (y < mny) mny = y; if (y > mxy) mxy = y;
|
|
110
|
-
if (z < mnz) mnz = z; if (z > mxz) mxz = z;
|
|
111
|
-
}
|
|
112
|
-
if (vc === 0) { mnx = mny = mnz = mxx = mxy = mxz = 0; }
|
|
113
106
|
const b = this.__bbox;
|
|
114
|
-
|
|
107
|
+
|
|
108
|
+
aabb3_from_v3_array(b, v, v.length);
|
|
109
|
+
|
|
110
|
+
if (vc === 0) {
|
|
111
|
+
// empty hull collapses to a degenerate box at the origin; the reduction leaves ±Infinity
|
|
112
|
+
b[0] = b[1] = b[2] = b[3] = b[4] = b[5] = 0;
|
|
113
|
+
}
|
|
115
114
|
|
|
116
115
|
// Volume is accumulated about the hull's own bbox centre, not the
|
|
117
116
|
// origin. Σ a·(b×c) is translation invariant over a closed surface --
|
|
@@ -133,9 +132,9 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
133
132
|
// read a plausible 1.0 at the origin and something else entirely once
|
|
134
133
|
// translated. This number is at least a property of the surface rather
|
|
135
134
|
// than of where it sits.
|
|
136
|
-
const ox = (
|
|
137
|
-
const oy = (
|
|
138
|
-
const oz = (
|
|
135
|
+
const ox = (b[0] + b[3]) * 0.5;
|
|
136
|
+
const oy = (b[1] + b[4]) * 0.5;
|
|
137
|
+
const oz = (b[2] + b[5]) * 0.5;
|
|
139
138
|
|
|
140
139
|
const tri = idx.length / 3;
|
|
141
140
|
const planes = new Float64Array(tri * 4);
|
|
@@ -245,19 +244,12 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
245
244
|
const px = point[0], py = point[1], pz = point[2];
|
|
246
245
|
|
|
247
246
|
let best_d2 = Infinity;
|
|
248
|
-
const baryc = scratch_barycentric;
|
|
249
247
|
for (let i = 0; i < tri; i++) {
|
|
250
248
|
const ia = idx[i * 3] * 3, ib = idx[i * 3 + 1] * 3, ic = idx[i * 3 + 2] * 3;
|
|
251
249
|
const ax = v[ia], ay = v[ia + 1], az = v[ia + 2];
|
|
252
250
|
const bx = v[ib], by = v[ib + 1], bz = v[ib + 2];
|
|
253
251
|
const cx = v[ic], cy = v[ic + 1], cz = v[ic + 2];
|
|
254
|
-
|
|
255
|
-
const u = baryc[0], w = baryc[1], t = 1 - u - w;
|
|
256
|
-
const qx = u * ax + w * bx + t * cx;
|
|
257
|
-
const qy = u * ay + w * by + t * cy;
|
|
258
|
-
const qz = u * az + w * bz + t * cz;
|
|
259
|
-
const dx = qx - px, dy = qy - py, dz = qz - pz;
|
|
260
|
-
const d2 = dx * dx + dy * dy + dz * dz;
|
|
252
|
+
const d2 = tri3_closest_point(scratch_closest, 0, px, py, pz, ax, ay, az, bx, by, bz, cx, cy, cz);
|
|
261
253
|
if (d2 < best_d2) best_d2 = d2;
|
|
262
254
|
}
|
|
263
255
|
const dist = Math.sqrt(best_d2);
|
|
@@ -276,44 +268,20 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
276
268
|
|
|
277
269
|
let best_d2 = Infinity;
|
|
278
270
|
let bx_ = 0, by_ = 0, bz_ = 0;
|
|
279
|
-
const baryc = scratch_barycentric;
|
|
280
271
|
for (let i = 0; i < tri; i++) {
|
|
281
272
|
const ia = idx[i * 3] * 3, ib = idx[i * 3 + 1] * 3, ic = idx[i * 3 + 2] * 3;
|
|
282
273
|
const ax = v[ia], ay = v[ia + 1], az = v[ia + 2];
|
|
283
274
|
const bx = v[ib], by = v[ib + 1], bz = v[ib + 2];
|
|
284
275
|
const cx = v[ic], cy = v[ic + 1], cz = v[ic + 2];
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
const dx = qx - px, dy = qy - py, dz = qz - pz;
|
|
291
|
-
const d2 = dx * dx + dy * dy + dz * dz;
|
|
292
|
-
if (d2 < best_d2) { best_d2 = d2; bx_ = qx; by_ = qy; bz_ = qz; }
|
|
276
|
+
const d2 = tri3_closest_point(scratch_closest, 0, px, py, pz, ax, ay, az, bx, by, bz, cx, cy, cz);
|
|
277
|
+
if (d2 < best_d2) {
|
|
278
|
+
best_d2 = d2;
|
|
279
|
+
bx_ = scratch_closest[0]; by_ = scratch_closest[1]; bz_ = scratch_closest[2];
|
|
280
|
+
}
|
|
293
281
|
}
|
|
294
282
|
result[0] = bx_; result[1] = by_; result[2] = bz_;
|
|
295
283
|
}
|
|
296
284
|
|
|
297
|
-
sample_random_point_in_volume(result, result_offset, random) {
|
|
298
|
-
const b = this.__bbox;
|
|
299
|
-
const lx = b[0], ly = b[1], lz = b[2];
|
|
300
|
-
const sx = b[3] - b[0], sy = b[4] - b[1], sz = b[5] - b[2];
|
|
301
|
-
const probe = scratch_point;
|
|
302
|
-
for (let attempt = 0; attempt < 256; attempt++) {
|
|
303
|
-
probe[0] = lx + random() * sx;
|
|
304
|
-
probe[1] = ly + random() * sy;
|
|
305
|
-
probe[2] = lz + random() * sz;
|
|
306
|
-
if (this.contains_point(probe)) {
|
|
307
|
-
result[result_offset] = probe[0];
|
|
308
|
-
result[result_offset + 1] = probe[1];
|
|
309
|
-
result[result_offset + 2] = probe[2];
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
result[result_offset] = lx + sx * 0.5;
|
|
314
|
-
result[result_offset + 1] = ly + sy * 0.5;
|
|
315
|
-
result[result_offset + 2] = lz + sz * 0.5;
|
|
316
|
-
}
|
|
317
285
|
|
|
318
286
|
/**
|
|
319
287
|
* @param {ConvexHullShape3D} other
|
|
@@ -335,12 +303,12 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
335
303
|
hash() {
|
|
336
304
|
const v_count = this.vertices.length / 3 | 0;
|
|
337
305
|
const t_count = this.indices.length / 3 | 0;
|
|
338
|
-
let h = (v_count
|
|
306
|
+
let h = hash_mix2(v_count, t_count);
|
|
339
307
|
if (this.vertices.length >= 3) {
|
|
340
|
-
h = (h
|
|
341
|
-
h = (h
|
|
308
|
+
h = hash_mix2(h, computeHashFloat(this.vertices[0]));
|
|
309
|
+
h = hash_mix2(h, computeHashFloat(this.vertices[this.vertices.length - 1]));
|
|
342
310
|
}
|
|
343
|
-
return h
|
|
311
|
+
return h;
|
|
344
312
|
}
|
|
345
313
|
}
|
|
346
314
|
|
|
@@ -351,5 +319,6 @@ export class ConvexHullShape3D extends AbstractShape3D {
|
|
|
351
319
|
*/
|
|
352
320
|
ConvexHullShape3D.prototype.isConvexHullShape3D = true;
|
|
353
321
|
|
|
354
|
-
|
|
322
|
+
// closest-point-on-triangle output for the surface-scan query helpers
|
|
323
|
+
const scratch_closest = new Float64Array(3);
|
|
355
324
|
const scratch_point = new Float64Array(3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CylinderShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CylinderShape3D.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CylinderShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CylinderShape3D.js"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;GAaG;AACH;IAkBI;;;;OAIG;IACH,oBAJW,MAAM,UACN,MAAM,GACJ,eAAe,CAa3B;IA9BG;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;;OAIG;IACH,QAFU,MAAM,CAED;IAgCnB,wCAUC;IAED,qGAqBC;IAED,6CAoBC;IAED,mEAEC;IAED,oCASC;IAED,4DA0CC;IAED,kFAOC;IAED;;;OAGG;IACH,cAHW,eAAe,GACb,OAAO,CAMnB;IAUL;;;;;;;OAOG;IACH,4BAFU,OAAO,CAE0B;CAV1C;gCA/M+B,sBAAsB"}
|