@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.
- 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 +8 -0
- package/src/core/geom/3d/mat4/m4_decompose.d.ts.map +1 -1
- package/src/core/geom/3d/mat4/m4_decompose.js +84 -76
- 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/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/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/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/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/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/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-v2/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +2 -5
- 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
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @param {number}
|
|
12
|
-
* @param {number}
|
|
13
|
-
* @param {number}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const _x = p_z0[1] - p_y0[2];
|
|
21
|
-
const _y = p_x0[2] - p_z0[0];
|
|
22
|
-
const _z = p_y0[0] - p_x0[1];
|
|
23
|
-
|
|
24
|
-
result[0] = _x;
|
|
25
|
-
result[1] = _y;
|
|
26
|
-
result[2] = _z;
|
|
27
|
-
}
|
|
1
|
+
import { curl_noise_3dt } from "./curl_noise_3dt.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Divergence-free 3D curl noise.
|
|
5
|
+
*
|
|
6
|
+
* This is the time-independent face of {@link curl_noise_3dt}: sampling the animated field at `w = 0`.
|
|
7
|
+
* `0` is a real point on the time axis, not a sentinel. The three decorrelation offsets that separate the
|
|
8
|
+
* potential-field components live in `curl_noise_3dt` only — duplicating them here meant retuning one
|
|
9
|
+
* field silently decorrelated it from the other.
|
|
10
|
+
*
|
|
11
|
+
* @param {number[]} result
|
|
12
|
+
* @param {number} x
|
|
13
|
+
* @param {number} y
|
|
14
|
+
* @param {number} z
|
|
15
|
+
*/
|
|
16
|
+
export function curl_noise_3d(result, x, y, z) {
|
|
17
|
+
curl_noise_3dt(result, x, y, z, 0);
|
|
18
|
+
}
|
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* of `i` in base `R`.
|
|
2
|
+
* Writes the `i`-th point of the `N`-point Hammersley set to `output`.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* enumerate; this is O(log i).
|
|
4
|
+
* The point is `( i/N, Φ_b(i) … )`, one radical inverse per entry of `bases`.
|
|
5
|
+
* Only the leading `i/N` distinguishes the Hammersley set from the Halton
|
|
6
|
+
* sequence -- every coordinate after it is a radical inverse, identical to the
|
|
7
|
+
* corresponding Halton coordinate. That one term is the whole construction: it
|
|
8
|
+
* buys a log factor of star discrepancy, O((log N)^(s-1) / N) against Halton's
|
|
9
|
+
* O((log N)^s / N), and it is paid for with `N`.
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* Which is why this is a *set* and not a sequence. `N` is fixed before the
|
|
12
|
+
* first point, and adding one moves every point already emitted. Where samples
|
|
13
|
+
* are drawn until some quality bar is met, rather than counted out in advance,
|
|
14
|
+
* the extensible {@link halton_sequence} is the one that applies.
|
|
16
15
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
16
|
+
* ### This is the slow path
|
|
17
|
+
*
|
|
18
|
+
* Prefer {@link hammersley_sequence_2d}, which is the two-dimensional base-2
|
|
19
|
+
* case -- overwhelmingly the common one, and the only one anything in this tree
|
|
20
|
+
* currently asks for. It resolves its second coordinate through
|
|
21
|
+
* {@link radical_inverse_VdC_base_2}: a single bit reversal and a multiply, no
|
|
22
|
+
* loop. This function has no such route. Each coordinate costs a digit loop
|
|
23
|
+
* with a division per digit, so a point runs `bases.length` of them. Generate
|
|
24
|
+
* the set once into a buffer, as {@link generate_hammersley_jitter} does; do
|
|
25
|
+
* not call it per sample inside a hot loop.
|
|
26
|
+
*
|
|
27
|
+
* @param {number[]|Float32Array|Float64Array} output receives `1 + bases.length` values
|
|
28
|
+
* @param {number} output_offset
|
|
29
|
+
* @param {number} i index of the point within the set
|
|
30
|
+
* @param {number} N size of the set; `i` must lie in [0, N)
|
|
31
|
+
* @param {number[]} bases one per dimension after the first, pairwise coprime -- consecutive primes, canonically
|
|
20
32
|
*/
|
|
21
|
-
export function hammersley_sequence(i: number,
|
|
33
|
+
export function hammersley_sequence(output: number[] | Float32Array | Float64Array, output_offset: number, i: number, N: number, bases: number[]): void;
|
|
22
34
|
//# sourceMappingURL=hammersley_sequence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hammersley_sequence.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/hammersley_sequence.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hammersley_sequence.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/hammersley_sequence.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,4CANW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,KACN,MAAM,KACN,MAAM,SACN,MAAM,EAAE,QAmBlB"}
|
|
@@ -1,34 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
1
|
+
import { assert } from "../../assert.js";
|
|
2
|
+
import { halton_sequence } from "./halton_sequence.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Writes the `i`-th point of the `N`-point Hammersley set to `output`.
|
|
6
|
+
*
|
|
7
|
+
* The point is `( i/N, Φ_b(i) … )`, one radical inverse per entry of `bases`.
|
|
8
|
+
* Only the leading `i/N` distinguishes the Hammersley set from the Halton
|
|
9
|
+
* sequence -- every coordinate after it is a radical inverse, identical to the
|
|
10
|
+
* corresponding Halton coordinate. That one term is the whole construction: it
|
|
11
|
+
* buys a log factor of star discrepancy, O((log N)^(s-1) / N) against Halton's
|
|
12
|
+
* O((log N)^s / N), and it is paid for with `N`.
|
|
13
|
+
*
|
|
14
|
+
* Which is why this is a *set* and not a sequence. `N` is fixed before the
|
|
15
|
+
* first point, and adding one moves every point already emitted. Where samples
|
|
16
|
+
* are drawn until some quality bar is met, rather than counted out in advance,
|
|
17
|
+
* the extensible {@link halton_sequence} is the one that applies.
|
|
18
|
+
*
|
|
19
|
+
* ### This is the slow path
|
|
20
|
+
*
|
|
21
|
+
* Prefer {@link hammersley_sequence_2d}, which is the two-dimensional base-2
|
|
22
|
+
* case -- overwhelmingly the common one, and the only one anything in this tree
|
|
23
|
+
* currently asks for. It resolves its second coordinate through
|
|
24
|
+
* {@link radical_inverse_VdC_base_2}: a single bit reversal and a multiply, no
|
|
25
|
+
* loop. This function has no such route. Each coordinate costs a digit loop
|
|
26
|
+
* with a division per digit, so a point runs `bases.length` of them. Generate
|
|
27
|
+
* the set once into a buffer, as {@link generate_hammersley_jitter} does; do
|
|
28
|
+
* not call it per sample inside a hot loop.
|
|
29
|
+
*
|
|
30
|
+
* @param {number[]|Float32Array|Float64Array} output receives `1 + bases.length` values
|
|
31
|
+
* @param {number} output_offset
|
|
32
|
+
* @param {number} i index of the point within the set
|
|
33
|
+
* @param {number} N size of the set; `i` must lie in [0, N)
|
|
34
|
+
* @param {number[]} bases one per dimension after the first, pairwise coprime -- consecutive primes, canonically
|
|
35
|
+
*/
|
|
36
|
+
export function hammersley_sequence(
|
|
37
|
+
output, output_offset,
|
|
38
|
+
i, N, bases
|
|
39
|
+
) {
|
|
40
|
+
assert.isNonNegativeInteger(output_offset, 'output_offset');
|
|
41
|
+
assert.isNonNegativeInteger(i, 'i');
|
|
42
|
+
assert.isPositiveInteger(N, 'N');
|
|
43
|
+
assert.lessThan(i, N, 'point index must lie within the set');
|
|
44
|
+
assert.isArray(bases, 'bases');
|
|
45
|
+
|
|
46
|
+
output[output_offset] = i / N;
|
|
47
|
+
|
|
48
|
+
const dimensions = bases.length;
|
|
49
|
+
|
|
50
|
+
for (let d = 0; d < dimensions; d++) {
|
|
51
|
+
output[output_offset + 1 + d] = halton_sequence(bases[d], i);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
* with no derived shorthand. Compound matrices like Newton or Volt fall back to base-unit
|
|
8
8
|
* rendering (`kg·m/s^2`, `kg·m^2/s^3·A`).
|
|
9
9
|
*
|
|
10
|
+
* The ordering invariant (array index === UnitDimension ordinal) is defined once, by
|
|
11
|
+
* {@link UNIT_DIMENSION_MAPPING}; this is an alias of it so the two cannot drift apart.
|
|
12
|
+
*
|
|
10
13
|
* @type {NamedUnit[]}
|
|
11
14
|
*/
|
|
12
15
|
export const MEASUREMENT_UNITS_SI: NamedUnit[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MEASUREMENT_UNITS_SI.d.ts","sourceRoot":"","sources":["../../../../../src/core/science/units/MEASUREMENT_UNITS_SI.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MEASUREMENT_UNITS_SI.d.ts","sourceRoot":"","sources":["../../../../../src/core/science/units/MEASUREMENT_UNITS_SI.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,mCAFU,WAAW,CAEsC"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { KILOGRAM } from "./si/KILOGRAM.js";
|
|
3
|
-
import { SECOND } from "./si/SECOND.js";
|
|
4
|
-
import { AMPERE } from "./si/AMPERE.js";
|
|
5
|
-
import { KELVIN } from "./si/KELVIN.js";
|
|
6
|
-
import { MOLE } from "./si/MOLE.js";
|
|
7
|
-
import { CANDELA } from "./si/CANDELA.js";
|
|
1
|
+
import { UNIT_DIMENSION_MAPPING } from "./UNIT_DIMENSION_MAPPING.js";
|
|
8
2
|
|
|
9
3
|
/**
|
|
10
4
|
* The 7 SI base units in their ISO order: length, mass, time, electric current, temperature,
|
|
@@ -15,14 +9,9 @@ import { CANDELA } from "./si/CANDELA.js";
|
|
|
15
9
|
* with no derived shorthand. Compound matrices like Newton or Volt fall back to base-unit
|
|
16
10
|
* rendering (`kg·m/s^2`, `kg·m^2/s^3·A`).
|
|
17
11
|
*
|
|
12
|
+
* The ordering invariant (array index === UnitDimension ordinal) is defined once, by
|
|
13
|
+
* {@link UNIT_DIMENSION_MAPPING}; this is an alias of it so the two cannot drift apart.
|
|
14
|
+
*
|
|
18
15
|
* @type {NamedUnit[]}
|
|
19
16
|
*/
|
|
20
|
-
export const MEASUREMENT_UNITS_SI =
|
|
21
|
-
METER,
|
|
22
|
-
KILOGRAM,
|
|
23
|
-
SECOND,
|
|
24
|
-
AMPERE,
|
|
25
|
-
KELVIN,
|
|
26
|
-
MOLE,
|
|
27
|
-
CANDELA
|
|
28
|
-
];
|
|
17
|
+
export const MEASUREMENT_UNITS_SI = UNIT_DIMENSION_MAPPING;
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export default TransitionFunctions;
|
|
2
|
+
/**
|
|
3
|
+
* Engine-wide easing enum. Members are compared by identity by serialization adapters
|
|
4
|
+
* (see `model/game/story/behaviors/camera/CameraMoveToTargetBehaviorSerializationAdapter.js`),
|
|
5
|
+
* so members may be added but never re-pointed.
|
|
6
|
+
*
|
|
7
|
+
* `EaseIn`/`EaseOut`/`EaseInOut` are the quadratic tier, `EaseInCubic`/`EaseOutCubic`/`EaseInOutCubic`
|
|
8
|
+
* the cubic one. A curve-valued expression of the same three concepts lives alongside as
|
|
9
|
+
* {@link CURVE_EASE_IN }/`CURVE_EASE_OUT`/`CURVE_EASE_IN_OUT` in `engine/animation/curve/preset/`
|
|
10
|
+
* — use those where an {@link AnimationCurve } is wanted rather than a plain function.
|
|
11
|
+
*/
|
|
2
12
|
type TransitionFunctions = (x: number) => number;
|
|
3
13
|
declare namespace TransitionFunctions {
|
|
4
14
|
export { linear as Linear };
|
|
@@ -7,6 +17,9 @@ declare namespace TransitionFunctions {
|
|
|
7
17
|
export { easeOutQuad as EaseOut };
|
|
8
18
|
export { easeInOutQuad as EaseInOut };
|
|
9
19
|
export let CubicEaseIn: (arg0: number) => number;
|
|
20
|
+
export { easeInCubic as EaseInCubic };
|
|
21
|
+
export { easeOutCubic as EaseOutCubic };
|
|
22
|
+
export { easeInOutCubic as EaseInOutCubic };
|
|
10
23
|
}
|
|
11
24
|
/**
|
|
12
25
|
* @param {number} x
|
|
@@ -36,4 +49,22 @@ declare function easeOutQuad(x: number): number;
|
|
|
36
49
|
* @returns {number}
|
|
37
50
|
*/
|
|
38
51
|
declare function easeInOutQuad(t: number): number;
|
|
52
|
+
/**
|
|
53
|
+
* Back-loaded ease — gentle start, accelerating finish.
|
|
54
|
+
* @param {number} t [0..1]
|
|
55
|
+
* @returns {number}
|
|
56
|
+
*/
|
|
57
|
+
declare function easeInCubic(t: number): number;
|
|
58
|
+
/**
|
|
59
|
+
* Front-loaded ease — fast rise then gentle settle.
|
|
60
|
+
* @param {number} t [0..1]
|
|
61
|
+
* @returns {number}
|
|
62
|
+
*/
|
|
63
|
+
declare function easeOutCubic(t: number): number;
|
|
64
|
+
/**
|
|
65
|
+
* Smoothstep-style ease — slow-fast-slow. Sharper than {@link easeInOutQuad}.
|
|
66
|
+
* @param {number} t [0..1]
|
|
67
|
+
* @returns {number}
|
|
68
|
+
*/
|
|
69
|
+
declare function easeInOutCubic(t: number): number;
|
|
39
70
|
//# sourceMappingURL=TransitionFunctions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransitionFunctions.d.ts","sourceRoot":"","sources":["../../../../src/engine/animation/TransitionFunctions.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TransitionFunctions.d.ts","sourceRoot":"","sources":["../../../../src/engine/animation/TransitionFunctions.js"],"names":[],"mappings":";;;;;;;;;;;+BAYc,MAAM,KAAK,MAAM;;;;;;;;;;;;AAmB/B;;;GAGG;AACH,2BAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;GAGG;AACH,yBAHW,MAAM,GACJ,MAAM,CAKlB;AAED;;;;GAIG;AACH,+BAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,gCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,kCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,gCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,iCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,mCAHW,MAAM,GACJ,MAAM,CAMlB"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { makeCubicCurve } from "../../core/math/spline/makeCubicCurve.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
+
* Engine-wide easing enum. Members are compared by identity by serialization adapters
|
|
5
|
+
* (see `model/game/story/behaviors/camera/CameraMoveToTargetBehaviorSerializationAdapter.js`),
|
|
6
|
+
* so members may be added but never re-pointed.
|
|
7
|
+
*
|
|
8
|
+
* `EaseIn`/`EaseOut`/`EaseInOut` are the quadratic tier, `EaseInCubic`/`EaseOutCubic`/`EaseInOutCubic`
|
|
9
|
+
* the cubic one. A curve-valued expression of the same three concepts lives alongside as
|
|
10
|
+
* {@link CURVE_EASE_IN}/`CURVE_EASE_OUT`/`CURVE_EASE_IN_OUT` in `engine/animation/curve/preset/`
|
|
11
|
+
* — use those where an {@link AnimationCurve} is wanted rather than a plain function.
|
|
4
12
|
*
|
|
5
13
|
* @enum {(x: number) => number}
|
|
6
14
|
*/
|
|
@@ -10,7 +18,14 @@ const TransitionFunctions = {
|
|
|
10
18
|
EaseIn: easeInQuad,
|
|
11
19
|
EaseOut: easeOutQuad,
|
|
12
20
|
EaseInOut: easeInOutQuad,
|
|
21
|
+
/**
|
|
22
|
+
* NOTE: despite the name this is a cubic *Bézier* through (0,1,0.98,1), not `t³`.
|
|
23
|
+
* It rises almost immediately and then flattens. For `t³` use {@link TransitionFunctions.EaseInCubic}.
|
|
24
|
+
*/
|
|
13
25
|
CubicEaseIn: makeCubicCurve(0, 1, 0.98, 1),
|
|
26
|
+
EaseInCubic: easeInCubic,
|
|
27
|
+
EaseOutCubic: easeOutCubic,
|
|
28
|
+
EaseInOutCubic: easeInOutCubic,
|
|
14
29
|
};
|
|
15
30
|
|
|
16
31
|
|
|
@@ -58,4 +73,33 @@ function easeInOutQuad(t) {
|
|
|
58
73
|
return t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
|
|
59
74
|
}
|
|
60
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Back-loaded ease — gentle start, accelerating finish.
|
|
78
|
+
* @param {number} t [0..1]
|
|
79
|
+
* @returns {number}
|
|
80
|
+
*/
|
|
81
|
+
function easeInCubic(t) {
|
|
82
|
+
return t * t * t;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Front-loaded ease — fast rise then gentle settle.
|
|
87
|
+
* @param {number} t [0..1]
|
|
88
|
+
* @returns {number}
|
|
89
|
+
*/
|
|
90
|
+
function easeOutCubic(t) {
|
|
91
|
+
return 1 - Math.pow(1 - t, 3);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Smoothstep-style ease — slow-fast-slow. Sharper than {@link easeInOutQuad}.
|
|
96
|
+
* @param {number} t [0..1]
|
|
97
|
+
* @returns {number}
|
|
98
|
+
*/
|
|
99
|
+
function easeInOutCubic(t) {
|
|
100
|
+
return t < 0.5
|
|
101
|
+
? 4 * t * t * t
|
|
102
|
+
: 1 - Math.pow(-2 * t + 2, 3) / 2;
|
|
103
|
+
}
|
|
104
|
+
|
|
61
105
|
export default TransitionFunctions;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary wire codec for {@link AnimationCurve}: a `uintVar` keyframe count followed by
|
|
3
|
+
* `time / value / inTangent / outTangent` as float32 per key.
|
|
4
|
+
*
|
|
5
|
+
* WHY this exists: {@link AnimationCurve} has no registered binary class adapter of its own, so every binary
|
|
6
|
+
* adapter that owns a curve-valued FIELD has to spell the payload out inline. Two sopra adapters
|
|
7
|
+
* (`EventDescriptionSerializationAdapter` for the attenuation curve, `BlendContainerAudioClipSerializationAdapter`
|
|
8
|
+
* for the per-child blend curves) had written the same four float32s out and read them back — four hand-written
|
|
9
|
+
* copies of one wire format, where changing the payload (adding wrap modes, packing tangents) in three of the
|
|
10
|
+
* four places leaves the fourth silently mis-reading a stream it thinks it understands.
|
|
11
|
+
*
|
|
12
|
+
* This is deliberately a plain read/write PAIR rather than a registered `ObjectBasedClassSerializationAdapter`:
|
|
13
|
+
* routing curves through the object adapter would prefix each one with a class tag and change the bytes on the
|
|
14
|
+
* wire, breaking every already-serialized payload. The format here is byte-identical to what the sopra adapters
|
|
15
|
+
* previously emitted inline.
|
|
16
|
+
*
|
|
17
|
+
* @param {BinaryBuffer} buffer
|
|
18
|
+
* @param {AnimationCurve} curve
|
|
19
|
+
*/
|
|
20
|
+
export function serialize_animation_curve(buffer: BinaryBuffer, curve: AnimationCurve): void;
|
|
21
|
+
/**
|
|
22
|
+
* Read back a curve written by {@link serialize_animation_curve}.
|
|
23
|
+
*
|
|
24
|
+
* @param {BinaryBuffer} buffer
|
|
25
|
+
* @returns {AnimationCurve} a fresh curve
|
|
26
|
+
*/
|
|
27
|
+
export function deserialize_animation_curve(buffer: BinaryBuffer): AnimationCurve;
|
|
28
|
+
import { AnimationCurve } from "./AnimationCurve.js";
|
|
29
|
+
//# sourceMappingURL=animation_curve_binary_codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation_curve_binary_codec.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/curve/animation_curve_binary_codec.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,uEAFW,cAAc,QAgBxB;AAED;;;;;GAKG;AACH,mEAFa,cAAc,CAiB1B;+BA3D8B,qBAAqB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { AnimationCurve } from "./AnimationCurve.js";
|
|
2
|
+
import { Keyframe } from "./Keyframe.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Binary wire codec for {@link AnimationCurve}: a `uintVar` keyframe count followed by
|
|
6
|
+
* `time / value / inTangent / outTangent` as float32 per key.
|
|
7
|
+
*
|
|
8
|
+
* WHY this exists: {@link AnimationCurve} has no registered binary class adapter of its own, so every binary
|
|
9
|
+
* adapter that owns a curve-valued FIELD has to spell the payload out inline. Two sopra adapters
|
|
10
|
+
* (`EventDescriptionSerializationAdapter` for the attenuation curve, `BlendContainerAudioClipSerializationAdapter`
|
|
11
|
+
* for the per-child blend curves) had written the same four float32s out and read them back — four hand-written
|
|
12
|
+
* copies of one wire format, where changing the payload (adding wrap modes, packing tangents) in three of the
|
|
13
|
+
* four places leaves the fourth silently mis-reading a stream it thinks it understands.
|
|
14
|
+
*
|
|
15
|
+
* This is deliberately a plain read/write PAIR rather than a registered `ObjectBasedClassSerializationAdapter`:
|
|
16
|
+
* routing curves through the object adapter would prefix each one with a class tag and change the bytes on the
|
|
17
|
+
* wire, breaking every already-serialized payload. The format here is byte-identical to what the sopra adapters
|
|
18
|
+
* previously emitted inline.
|
|
19
|
+
*
|
|
20
|
+
* @param {BinaryBuffer} buffer
|
|
21
|
+
* @param {AnimationCurve} curve
|
|
22
|
+
*/
|
|
23
|
+
export function serialize_animation_curve(buffer, curve) {
|
|
24
|
+
const keys = curve.keys;
|
|
25
|
+
const key_count = keys.length;
|
|
26
|
+
|
|
27
|
+
buffer.writeUintVar(key_count);
|
|
28
|
+
|
|
29
|
+
for (let i = 0; i < key_count; i++) {
|
|
30
|
+
const key = keys[i];
|
|
31
|
+
|
|
32
|
+
buffer.writeFloat32(key.time);
|
|
33
|
+
buffer.writeFloat32(key.value);
|
|
34
|
+
buffer.writeFloat32(key.inTangent);
|
|
35
|
+
buffer.writeFloat32(key.outTangent);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Read back a curve written by {@link serialize_animation_curve}.
|
|
41
|
+
*
|
|
42
|
+
* @param {BinaryBuffer} buffer
|
|
43
|
+
* @returns {AnimationCurve} a fresh curve
|
|
44
|
+
*/
|
|
45
|
+
export function deserialize_animation_curve(buffer) {
|
|
46
|
+
const curve = new AnimationCurve();
|
|
47
|
+
|
|
48
|
+
const key_count = buffer.readUintVar();
|
|
49
|
+
|
|
50
|
+
for (let i = 0; i < key_count; i++) {
|
|
51
|
+
const time = buffer.readFloat32();
|
|
52
|
+
const value = buffer.readFloat32();
|
|
53
|
+
const inTangent = buffer.readFloat32();
|
|
54
|
+
const outTangent = buffer.readFloat32();
|
|
55
|
+
|
|
56
|
+
curve.add(Keyframe.from(time, value, inTangent, outTangent));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return curve;
|
|
60
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map a point in canvas space (pixels) back to curve space (time, value).
|
|
3
|
+
*
|
|
4
|
+
* Inverse of {@link curve_point_to_canvas}; see that function for why the mapping lives in exactly
|
|
5
|
+
* one place. Written as an out-parameter form so callers on a drag path do not allocate.
|
|
6
|
+
*
|
|
7
|
+
* @param {Float32Array|Float64Array|number[]} out receives 2 floats: curve time then curve value
|
|
8
|
+
* @param {number} out_offset
|
|
9
|
+
* @param {Vector2} size canvas size in pixels
|
|
10
|
+
* @param {AABB2} frame region of curve space made visible
|
|
11
|
+
* @param {Vector2} margin pixels reserved on each side of the plot
|
|
12
|
+
* @param {number} x canvas x
|
|
13
|
+
* @param {number} y canvas y
|
|
14
|
+
*/
|
|
15
|
+
export function canvas_point_to_curve(out: Float32Array | Float64Array | number[], out_offset: number, size: Vector2, frame: AABB2, margin: Vector2, x: number, y: number): void;
|
|
16
|
+
//# sourceMappingURL=canvas_point_to_curve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas_point_to_curve.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/animation/curve/draw/canvas_point_to_curve.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,2CARW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,mDAIN,MAAM,KACN,MAAM,QAShB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map a point in canvas space (pixels) back to curve space (time, value).
|
|
3
|
+
*
|
|
4
|
+
* Inverse of {@link curve_point_to_canvas}; see that function for why the mapping lives in exactly
|
|
5
|
+
* one place. Written as an out-parameter form so callers on a drag path do not allocate.
|
|
6
|
+
*
|
|
7
|
+
* @param {Float32Array|Float64Array|number[]} out receives 2 floats: curve time then curve value
|
|
8
|
+
* @param {number} out_offset
|
|
9
|
+
* @param {Vector2} size canvas size in pixels
|
|
10
|
+
* @param {AABB2} frame region of curve space made visible
|
|
11
|
+
* @param {Vector2} margin pixels reserved on each side of the plot
|
|
12
|
+
* @param {number} x canvas x
|
|
13
|
+
* @param {number} y canvas y
|
|
14
|
+
*/
|
|
15
|
+
export function canvas_point_to_curve(out, out_offset, size, frame, margin, x, y) {
|
|
16
|
+
|
|
17
|
+
const u = (x - margin.x) / (size.x - margin.x * 2);
|
|
18
|
+
const v = 1 - (y - margin.y) / (size.y - margin.y * 2);
|
|
19
|
+
|
|
20
|
+
out[out_offset] = u * frame.width + frame.x0;
|
|
21
|
+
out[out_offset + 1] = v * frame.height + frame.y0;
|
|
22
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map a point in curve space (time, value) to canvas space (pixels).
|
|
3
|
+
*
|
|
4
|
+
* The frame is stretched to fill the canvas minus a symmetric pixel margin on each side, and the
|
|
5
|
+
* value axis is flipped so larger values are higher on screen.
|
|
6
|
+
*
|
|
7
|
+
* This is the ONE definition of the curve-editor's coordinate mapping. It exists because the editor
|
|
8
|
+
* used to draw the curve through an inline copy of this arithmetic
|
|
9
|
+
* ({@link canvas2dPlotCurvePoints}) while hit-testing, marker placement and panning went through
|
|
10
|
+
* {@link position_curve_to_canvas} / {@link position_canvas_to_curve} — the same formula written
|
|
11
|
+
* twice, so a change to the margin or anchoring convention in one desynced what the user clicks
|
|
12
|
+
* from what they see. Written as an out-parameter form because the plot calls it once per pixel
|
|
13
|
+
* column.
|
|
14
|
+
*
|
|
15
|
+
* Inverse of {@link canvas_point_to_curve}.
|
|
16
|
+
*
|
|
17
|
+
* @param {Float32Array|Float64Array|number[]} out receives 2 floats: canvas x then canvas y
|
|
18
|
+
* @param {number} out_offset
|
|
19
|
+
* @param {Vector2} size canvas size in pixels
|
|
20
|
+
* @param {AABB2} frame region of curve space made visible; a zero-width or zero-height frame
|
|
21
|
+
* collapses that axis onto the low edge of the plot rather than producing a non-finite coordinate
|
|
22
|
+
* @param {Vector2} margin pixels reserved on each side of the plot
|
|
23
|
+
* @param {number} x curve time
|
|
24
|
+
* @param {number} y curve value
|
|
25
|
+
*/
|
|
26
|
+
export function curve_point_to_canvas(out: Float32Array | Float64Array | number[], out_offset: number, size: Vector2, frame: AABB2, margin: Vector2, x: number, y: number): void;
|
|
27
|
+
//# sourceMappingURL=curve_point_to_canvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curve_point_to_canvas.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/animation/curve/draw/curve_point_to_canvas.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,2CATW,YAAY,GAAC,YAAY,GAAC,MAAM,EAAE,cAClC,MAAM,mDAKN,MAAM,KACN,MAAM,QAchB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map a point in curve space (time, value) to canvas space (pixels).
|
|
3
|
+
*
|
|
4
|
+
* The frame is stretched to fill the canvas minus a symmetric pixel margin on each side, and the
|
|
5
|
+
* value axis is flipped so larger values are higher on screen.
|
|
6
|
+
*
|
|
7
|
+
* This is the ONE definition of the curve-editor's coordinate mapping. It exists because the editor
|
|
8
|
+
* used to draw the curve through an inline copy of this arithmetic
|
|
9
|
+
* ({@link canvas2dPlotCurvePoints}) while hit-testing, marker placement and panning went through
|
|
10
|
+
* {@link position_curve_to_canvas} / {@link position_canvas_to_curve} — the same formula written
|
|
11
|
+
* twice, so a change to the margin or anchoring convention in one desynced what the user clicks
|
|
12
|
+
* from what they see. Written as an out-parameter form because the plot calls it once per pixel
|
|
13
|
+
* column.
|
|
14
|
+
*
|
|
15
|
+
* Inverse of {@link canvas_point_to_curve}.
|
|
16
|
+
*
|
|
17
|
+
* @param {Float32Array|Float64Array|number[]} out receives 2 floats: canvas x then canvas y
|
|
18
|
+
* @param {number} out_offset
|
|
19
|
+
* @param {Vector2} size canvas size in pixels
|
|
20
|
+
* @param {AABB2} frame region of curve space made visible; a zero-width or zero-height frame
|
|
21
|
+
* collapses that axis onto the low edge of the plot rather than producing a non-finite coordinate
|
|
22
|
+
* @param {Vector2} margin pixels reserved on each side of the plot
|
|
23
|
+
* @param {number} x curve time
|
|
24
|
+
* @param {number} y curve value
|
|
25
|
+
*/
|
|
26
|
+
export function curve_point_to_canvas(out, out_offset, size, frame, margin, x, y) {
|
|
27
|
+
|
|
28
|
+
const curve_width = frame.width;
|
|
29
|
+
const curve_width_multiplier = curve_width > 0 ? 1 / curve_width : 0;
|
|
30
|
+
const u = (x - frame.x0) * curve_width_multiplier;
|
|
31
|
+
|
|
32
|
+
const curve_height = frame.height;
|
|
33
|
+
const curve_height_multiplier = curve_height > 0 ? 1 / curve_height : 0;
|
|
34
|
+
const v = 1 - (y - frame.y0) * curve_height_multiplier;
|
|
35
|
+
|
|
36
|
+
out[out_offset] = margin.x + u * (size.x - margin.x * 2);
|
|
37
|
+
out[out_offset + 1] = margin.y + v * (size.y - margin.y * 2);
|
|
38
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position_canvas_to_curve.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/animation/curve/draw/position_canvas_to_curve.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"position_canvas_to_curve.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/animation/curve/draw/position_canvas_to_curve.js"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,+CAPW,OAAO,wBAEP,OAAO,KACP,MAAM,KACN,MAAM,GACL,OAAO,CAOlB;oBArBmB,kCAAkC"}
|
|
@@ -1,24 +1,22 @@
|
|
|
1
|
-
import Vector2 from "../../../../core/geom/Vector2.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* @
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
);
|
|
24
|
-
}
|
|
1
|
+
import Vector2 from "../../../../core/geom/Vector2.js";
|
|
2
|
+
import { canvas_point_to_curve } from "./canvas_point_to_curve.js";
|
|
3
|
+
|
|
4
|
+
const scratch = new Float64Array(2);
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Allocating convenience wrapper around {@link canvas_point_to_curve}; use that directly on any
|
|
8
|
+
* path that runs per-pixel or per-frame.
|
|
9
|
+
*
|
|
10
|
+
* @param {Vector2} size
|
|
11
|
+
* @param {AABB2} frame
|
|
12
|
+
* @param {Vector2} margin
|
|
13
|
+
* @param {number} x
|
|
14
|
+
* @param {number} y
|
|
15
|
+
* @return {Vector2}
|
|
16
|
+
*/
|
|
17
|
+
export function position_canvas_to_curve(size, frame, margin, x, y) {
|
|
18
|
+
|
|
19
|
+
canvas_point_to_curve(scratch, 0, size, frame, margin, x, y);
|
|
20
|
+
|
|
21
|
+
return new Vector2(scratch[0], scratch[1]);
|
|
22
|
+
}
|