@pibbl/core 0.0.1 → 0.0.3-alpha.109.1
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/README.md +1 -1
- package/THIRD_PARTY_NOTICES.txt +81 -0
- package/dist/features/machines/animation.d.ts +64 -0
- package/dist/features/machines/animation.js +55 -0
- package/dist/features/machines/animation.js.map +7 -0
- package/dist/features/machines/animation.mjs +1 -0
- package/dist/features/machines/assign.d.ts +16 -0
- package/dist/features/machines/assign.js +15 -0
- package/dist/features/machines/assign.js.map +7 -0
- package/dist/features/machines/callback.d.ts +9 -0
- package/dist/features/machines/callback.js +7 -0
- package/dist/features/machines/callback.js.map +7 -0
- package/dist/features/machines/hook.d.ts +30 -0
- package/dist/features/machines/hook.js +37 -0
- package/dist/features/machines/hook.js.map +7 -0
- package/dist/features/machines/index.d.ts +6 -0
- package/dist/features/machines/index.js +12 -0
- package/dist/features/machines/index.js.map +7 -0
- package/dist/features/machines/index.mjs +1 -0
- package/dist/features/machines/runtime.d.ts +18 -0
- package/dist/features/machines/runtime.js +363 -0
- package/dist/features/machines/runtime.js.map +7 -0
- package/dist/features/machines/types.d.ts +164 -0
- package/dist/features/physics/2d-geometry.d.ts +3 -3
- package/dist/features/physics/2d-geometry.js.map +1 -1
- package/dist/features/physics/2d-testing.d.ts +1 -1
- package/dist/features/physics/2d-testing.js +2 -2
- package/dist/features/physics/2d-testing.js.map +2 -2
- package/dist/features/physics/2d.d.ts +115 -62
- package/dist/features/physics/2d.js +59 -28
- package/dist/features/physics/2d.js.map +2 -2
- package/dist/features/physics/lib/2d/canvas/components.js +25 -21
- package/dist/features/physics/lib/2d/canvas/components.js.map +2 -2
- package/dist/features/physics/lib/2d/canvas/presentation.js +1 -2
- package/dist/features/physics/lib/2d/canvas/presentation.js.map +2 -2
- package/dist/features/physics/lib/2d/collision/casts.js +4 -2
- package/dist/features/physics/lib/2d/collision/casts.js.map +2 -2
- package/dist/features/physics/lib/2d/query-types.d.ts +6 -0
- package/dist/features/physics/lib/2d/runtime/controller.d.ts +7 -6
- package/dist/features/physics/lib/2d/runtime/controller.js +1 -1
- package/dist/features/physics/lib/2d/runtime/controller.js.map +2 -2
- package/dist/features/physics/lib/2d/runtime/obstacles.js +9 -11
- package/dist/features/physics/lib/2d/runtime/obstacles.js.map +2 -2
- package/dist/features/physics/lib/2d/shapes.js +8 -9
- package/dist/features/physics/lib/2d/shapes.js.map +2 -2
- package/dist/features/physics/lib/2d/types.d.ts +8 -30
- package/dist/features/physics/lib/2d/world/queries.d.ts +7 -6
- package/dist/features/physics/lib/2d/world/queries.js.map +2 -2
- package/dist/features/physics/lib/2d/world/rapier.js +22 -26
- package/dist/features/physics/lib/2d/world/rapier.js.map +2 -2
- package/dist/features/sprites/formats/aseprite.d.ts +5 -0
- package/dist/features/sprites/formats/texture-packer.d.ts +5 -0
- package/dist/features/sprites/index.d.ts +6 -0
- package/dist/features/sprites/loader.d.ts +25 -0
- package/dist/features/sprites/loader.js +6 -3
- package/dist/features/sprites/loader.js.map +2 -2
- package/dist/features/sprites/model.d.ts +75 -0
- package/dist/features/sprites/sprite.d.ts +22 -0
- package/dist/features/textures/index.d.ts +12 -2
- package/dist/features/textures/index.js +33 -1
- package/dist/features/textures/index.js.map +2 -2
- package/dist/features/textures/lib/chemical-field.d.ts +56 -0
- package/dist/features/textures/lib/chemical-field.js +154 -0
- package/dist/features/textures/lib/chemical-field.js.map +7 -0
- package/dist/features/textures/lib/chemical-recipes.d.ts +119 -0
- package/dist/features/textures/lib/chemical-recipes.js +275 -0
- package/dist/features/textures/lib/chemical-recipes.js.map +7 -0
- package/dist/features/textures/lib/definitions.d.ts +3 -18
- package/dist/features/textures/lib/definitions.js +17 -24
- package/dist/features/textures/lib/definitions.js.map +2 -2
- package/dist/features/textures/lib/geometric-patterns.d.ts +149 -0
- package/dist/features/textures/lib/geometric-patterns.js +305 -0
- package/dist/features/textures/lib/geometric-patterns.js.map +7 -0
- package/dist/features/textures/lib/gray-scott.d.ts +55 -0
- package/dist/features/textures/lib/gray-scott.js +37 -0
- package/dist/features/textures/lib/gray-scott.js.map +7 -0
- package/dist/features/textures/lib/palette.js +1 -3
- package/dist/features/textures/lib/palette.js.map +2 -2
- package/dist/features/textures/lib/patterns.d.ts +123 -0
- package/dist/features/textures/lib/patterns.js +344 -0
- package/dist/features/textures/lib/patterns.js.map +7 -0
- package/dist/features/textures/lib/rain-drops.js +2 -1
- package/dist/features/textures/lib/rain-drops.js.map +2 -2
- package/dist/features/textures/lib/reaction-diffusion.d.ts +3 -2
- package/dist/features/textures/lib/reaction-diffusion.js +9 -20
- package/dist/features/textures/lib/reaction-diffusion.js.map +2 -2
- package/dist/features/textures/lib/simulation.d.ts +10 -4
- package/dist/features/textures/lib/simulation.js +23 -13
- package/dist/features/textures/lib/simulation.js.map +2 -2
- package/dist/features/textures/lib/wasm/electric.js +8 -1
- package/dist/features/textures/lib/wasm/electric.js.map +2 -2
- package/dist/features/textures/lib/water-surface.js +1 -3
- package/dist/features/textures/lib/water-surface.js.map +2 -2
- package/dist/features/viz/index.d.ts +92 -5
- package/dist/features/viz/index.js +202 -4
- package/dist/features/viz/index.js.map +2 -2
- package/dist/features/viz/inspection/bar.d.ts +79 -0
- package/dist/features/viz/inspection/bar.js +49 -0
- package/dist/features/viz/inspection/bar.js.map +7 -0
- package/dist/features/viz/inspection/candle.d.ts +156 -0
- package/dist/features/viz/inspection/candle.js +120 -0
- package/dist/features/viz/inspection/candle.js.map +7 -0
- package/dist/features/viz/inspection/capture-types.d.ts +65 -0
- package/dist/features/viz/inspection/capture.d.ts +16 -0
- package/dist/features/viz/inspection/capture.js +49 -0
- package/dist/features/viz/inspection/capture.js.map +7 -0
- package/dist/features/viz/inspection/handler.d.ts +36 -0
- package/dist/features/viz/inspection/handler.js +91 -0
- package/dist/features/viz/inspection/handler.js.map +7 -0
- package/dist/features/viz/inspection/ohlc-bar.d.ts +132 -0
- package/dist/features/viz/inspection/ohlc-bar.js +118 -0
- package/dist/features/viz/inspection/ohlc-bar.js.map +7 -0
- package/dist/features/viz/inspection/owned-ref.d.ts +16 -0
- package/dist/features/viz/inspection/owned-ref.js +99 -0
- package/dist/features/viz/inspection/owned-ref.js.map +7 -0
- package/dist/features/viz/inspection/painted-point.d.ts +22 -0
- package/dist/features/viz/inspection/painted-point.js +29 -0
- package/dist/features/viz/inspection/painted-point.js.map +7 -0
- package/dist/features/viz/inspection/queries.d.ts +100 -0
- package/dist/features/viz/inspection/queries.js +192 -0
- package/dist/features/viz/inspection/queries.js.map +7 -0
- package/dist/features/viz/inspection/query-types.d.ts +177 -0
- package/dist/features/viz/inspection/volume.d.ts +104 -0
- package/dist/features/viz/inspection/volume.js +95 -0
- package/dist/features/viz/inspection/volume.js.map +7 -0
- package/dist/features/viz/inspection.d.ts +19 -0
- package/dist/features/viz/inspection.js +54 -0
- package/dist/features/viz/inspection.js.map +7 -0
- package/dist/features/viz/inspection.mjs +1 -0
- package/dist/features/viz/lib/area-series.d.ts +62 -0
- package/dist/features/viz/lib/area-series.js +120 -0
- package/dist/features/viz/lib/area-series.js.map +7 -0
- package/dist/features/viz/lib/axis-labels.d.ts +2 -0
- package/dist/features/viz/lib/axis-labels.js +41 -0
- package/dist/features/viz/lib/axis-labels.js.map +7 -0
- package/dist/features/viz/lib/axis-title.d.ts +23 -0
- package/dist/features/viz/lib/axis-title.js +24 -0
- package/dist/features/viz/lib/axis-title.js.map +7 -0
- package/dist/features/viz/lib/axis.d.ts +1 -1
- package/dist/features/viz/lib/axis.js +50 -50
- package/dist/features/viz/lib/axis.js.map +2 -2
- package/dist/features/viz/lib/bar-scale.d.ts +7 -0
- package/dist/features/viz/lib/bar-scale.js +34 -0
- package/dist/features/viz/lib/bar-scale.js.map +7 -0
- package/dist/features/viz/lib/bar-series.d.ts +3 -1
- package/dist/features/viz/lib/bar-series.js +21 -5
- package/dist/features/viz/lib/bar-series.js.map +2 -2
- package/dist/features/viz/lib/baseline-series.d.ts +55 -0
- package/dist/features/viz/lib/baseline-series.js +136 -0
- package/dist/features/viz/lib/baseline-series.js.map +7 -0
- package/dist/features/viz/lib/candlestick-series.d.ts +62 -0
- package/dist/features/viz/lib/candlestick-series.js +150 -0
- package/dist/features/viz/lib/candlestick-series.js.map +7 -0
- package/dist/features/viz/lib/censored-point-series.d.ts +71 -0
- package/dist/features/viz/lib/censored-point-series.js +129 -0
- package/dist/features/viz/lib/censored-point-series.js.map +7 -0
- package/dist/features/viz/lib/chart-lines.d.ts +41 -0
- package/dist/features/viz/lib/chart-lines.js +32 -0
- package/dist/features/viz/lib/chart-lines.js.map +7 -0
- package/dist/features/viz/lib/color-context.d.ts +4 -0
- package/dist/features/viz/lib/color-context.js +41 -0
- package/dist/features/viz/lib/color-context.js.map +7 -0
- package/dist/features/viz/lib/color-math.d.ts +4 -0
- package/dist/features/viz/lib/color-math.js +31 -0
- package/dist/features/viz/lib/color-math.js.map +7 -0
- package/dist/features/viz/lib/color-types.d.ts +53 -0
- package/dist/features/viz/lib/curve-definition.d.ts +49 -0
- package/dist/features/viz/lib/curve-definition.js +142 -0
- package/dist/features/viz/lib/curve-definition.js.map +7 -0
- package/dist/features/viz/lib/diverging-color-scale.d.ts +11 -0
- package/dist/features/viz/lib/diverging-color-scale.js +51 -0
- package/dist/features/viz/lib/diverging-color-scale.js.map +7 -0
- package/dist/features/viz/lib/domain-navigation.d.ts +40 -0
- package/dist/features/viz/lib/domain-navigation.js +77 -0
- package/dist/features/viz/lib/domain-navigation.js.map +7 -0
- package/dist/features/viz/lib/editable-chart-elements.d.ts +178 -0
- package/dist/features/viz/lib/editable-chart-elements.js +733 -0
- package/dist/features/viz/lib/editable-chart-elements.js.map +7 -0
- package/dist/features/viz/lib/financial-aggregation.d.ts +127 -0
- package/dist/features/viz/lib/financial-aggregation.js +116 -0
- package/dist/features/viz/lib/financial-aggregation.js.map +7 -0
- package/dist/features/viz/lib/financial-autoscale.d.ts +64 -0
- package/dist/features/viz/lib/financial-autoscale.js +61 -0
- package/dist/features/viz/lib/financial-autoscale.js.map +7 -0
- package/dist/features/viz/lib/financial-comparison.d.ts +62 -0
- package/dist/features/viz/lib/financial-comparison.js +98 -0
- package/dist/features/viz/lib/financial-comparison.js.map +7 -0
- package/dist/features/viz/lib/financial-geometry.d.ts +77 -0
- package/dist/features/viz/lib/financial-geometry.js +67 -0
- package/dist/features/viz/lib/financial-geometry.js.map +7 -0
- package/dist/features/viz/lib/financial-indicators.d.ts +114 -0
- package/dist/features/viz/lib/financial-indicators.js +135 -0
- package/dist/features/viz/lib/financial-indicators.js.map +7 -0
- package/dist/features/viz/lib/financial-oscillators.d.ts +171 -0
- package/dist/features/viz/lib/financial-oscillators.js +265 -0
- package/dist/features/viz/lib/financial-oscillators.js.map +7 -0
- package/dist/features/viz/lib/graph/bipartite.d.ts +14 -0
- package/dist/features/viz/lib/graph/bipartite.js +250 -0
- package/dist/features/viz/lib/graph/bipartite.js.map +7 -0
- package/dist/features/viz/lib/graph/chord.d.ts +44 -0
- package/dist/features/viz/lib/graph/chord.js +348 -0
- package/dist/features/viz/lib/graph/chord.js.map +7 -0
- package/dist/features/viz/lib/graph/dependency.d.ts +26 -0
- package/dist/features/viz/lib/graph/dependency.js +140 -0
- package/dist/features/viz/lib/graph/dependency.js.map +7 -0
- package/dist/features/viz/lib/graph/force.d.ts +28 -0
- package/dist/features/viz/lib/graph/force.js +580 -0
- package/dist/features/viz/lib/graph/force.js.map +7 -0
- package/dist/features/viz/lib/graph/hierarchy.d.ts +21 -0
- package/dist/features/viz/lib/graph/hierarchy.js +112 -0
- package/dist/features/viz/lib/graph/hierarchy.js.map +7 -0
- package/dist/features/viz/lib/graph/icicle.d.ts +16 -0
- package/dist/features/viz/lib/graph/icicle.js +153 -0
- package/dist/features/viz/lib/graph/icicle.js.map +7 -0
- package/dist/features/viz/lib/graph/matrix.d.ts +30 -0
- package/dist/features/viz/lib/graph/matrix.js +243 -0
- package/dist/features/viz/lib/graph/matrix.js.map +7 -0
- package/dist/features/viz/lib/graph/neighborhood.d.ts +11 -0
- package/dist/features/viz/lib/graph/neighborhood.js +281 -0
- package/dist/features/viz/lib/graph/neighborhood.js.map +7 -0
- package/dist/features/viz/lib/graph/routes.d.ts +35 -0
- package/dist/features/viz/lib/graph/routes.js +101 -0
- package/dist/features/viz/lib/graph/routes.js.map +7 -0
- package/dist/features/viz/lib/graph/sankey.d.ts +44 -0
- package/dist/features/viz/lib/graph/sankey.js +341 -0
- package/dist/features/viz/lib/graph/sankey.js.map +7 -0
- package/dist/features/viz/lib/graph/shared.d.ts +59 -0
- package/dist/features/viz/lib/graph/shared.js +301 -0
- package/dist/features/viz/lib/graph/shared.js.map +7 -0
- package/dist/features/viz/lib/graph/tree.d.ts +11 -0
- package/dist/features/viz/lib/graph/tree.js +232 -0
- package/dist/features/viz/lib/graph/tree.js.map +7 -0
- package/dist/features/viz/lib/graph/treemap.d.ts +20 -0
- package/dist/features/viz/lib/graph/treemap.js +227 -0
- package/dist/features/viz/lib/graph/treemap.js.map +7 -0
- package/dist/features/viz/lib/graph/types.d.ts +1097 -0
- package/dist/features/viz/lib/hover-card.js +8 -9
- package/dist/features/viz/lib/hover-card.js.map +2 -2
- package/dist/features/viz/lib/hover-data.d.ts +1 -1
- package/dist/features/viz/lib/hover-data.js +6 -3
- package/dist/features/viz/lib/hover-data.js.map +2 -2
- package/dist/features/viz/lib/hover-types.d.ts +5 -5
- package/dist/features/viz/lib/interval-band-series.d.ts +49 -0
- package/dist/features/viz/lib/interval-band-series.js +136 -0
- package/dist/features/viz/lib/interval-band-series.js.map +7 -0
- package/dist/features/viz/lib/interval-diamond-series.d.ts +43 -0
- package/dist/features/viz/lib/interval-diamond-series.js +122 -0
- package/dist/features/viz/lib/interval-diamond-series.js.map +7 -0
- package/dist/features/viz/lib/interval-series.d.ts +79 -0
- package/dist/features/viz/lib/interval-series.js +158 -0
- package/dist/features/viz/lib/interval-series.js.map +7 -0
- package/dist/features/viz/lib/layout-pie.js +9 -13
- package/dist/features/viz/lib/layout-pie.js.map +2 -2
- package/dist/features/viz/lib/line-series.d.ts +1 -1
- package/dist/features/viz/lib/line-series.js +47 -28
- package/dist/features/viz/lib/line-series.js.map +2 -2
- package/dist/features/viz/lib/linear-scale-component.d.ts +7 -0
- package/dist/features/viz/lib/linear-scale-component.js +18 -0
- package/dist/features/viz/lib/linear-scale-component.js.map +7 -0
- package/dist/features/viz/lib/linear-scale.js +1 -1
- package/dist/features/viz/lib/linear-scale.js.map +2 -2
- package/dist/features/viz/lib/log-scale-component.d.ts +7 -0
- package/dist/features/viz/lib/log-scale-component.js +19 -0
- package/dist/features/viz/lib/log-scale-component.js.map +7 -0
- package/dist/features/viz/lib/log-scale.d.ts +2 -0
- package/dist/features/viz/lib/log-scale.js +53 -0
- package/dist/features/viz/lib/log-scale.js.map +7 -0
- package/dist/features/viz/lib/monotone-curve.d.ts +11 -0
- package/dist/features/viz/lib/monotone-curve.js +63 -0
- package/dist/features/viz/lib/monotone-curve.js.map +7 -0
- package/dist/features/viz/lib/nearest.d.ts +9 -9
- package/dist/features/viz/lib/nearest.js.map +1 -1
- package/dist/features/viz/lib/numeric-range-interpolation.d.ts +15 -0
- package/dist/features/viz/lib/numeric-range-interpolation.js +36 -0
- package/dist/features/viz/lib/numeric-range-interpolation.js.map +7 -0
- package/dist/features/viz/lib/numeric-ticks.d.ts +38 -0
- package/dist/features/viz/lib/numeric-ticks.js +54 -0
- package/dist/features/viz/lib/numeric-ticks.js.map +7 -0
- package/dist/features/viz/lib/ohlc-bar-series.d.ts +55 -0
- package/dist/features/viz/lib/ohlc-bar-series.js +168 -0
- package/dist/features/viz/lib/ohlc-bar-series.js.map +7 -0
- package/dist/features/viz/lib/paired-series.d.ts +44 -0
- package/dist/features/viz/lib/paired-series.js +93 -0
- package/dist/features/viz/lib/paired-series.js.map +7 -0
- package/dist/features/viz/lib/pie-layout.js +2 -1
- package/dist/features/viz/lib/pie-layout.js.map +2 -2
- package/dist/features/viz/lib/plot-series.js +11 -6
- package/dist/features/viz/lib/plot-series.js.map +2 -2
- package/dist/features/viz/lib/plot-types.d.ts +4 -3
- package/dist/features/viz/lib/point-scale-component.d.ts +7 -0
- package/dist/features/viz/lib/point-scale-component.js +19 -0
- package/dist/features/viz/lib/point-scale-component.js.map +7 -0
- package/dist/features/viz/lib/point-scale.d.ts +2 -0
- package/dist/features/viz/lib/point-scale.js +45 -0
- package/dist/features/viz/lib/point-scale.js.map +7 -0
- package/dist/features/viz/lib/point-series.d.ts +1 -1
- package/dist/features/viz/lib/point-series.js +36 -9
- package/dist/features/viz/lib/point-series.js.map +2 -2
- package/dist/features/viz/lib/point-types.d.ts +5 -2
- package/dist/features/viz/lib/reference-band.d.ts +16 -0
- package/dist/features/viz/lib/reference-band.js +30 -0
- package/dist/features/viz/lib/reference-band.js.map +7 -0
- package/dist/features/viz/lib/scale-adjust.js +9 -4
- package/dist/features/viz/lib/scale-adjust.js.map +2 -2
- package/dist/features/viz/lib/scale-context.d.ts +5 -4
- package/dist/features/viz/lib/scale-context.js +15 -11
- package/dist/features/viz/lib/scale-context.js.map +2 -2
- package/dist/features/viz/lib/scale-provider.d.ts +2 -0
- package/dist/features/viz/lib/scale-provider.js +13 -0
- package/dist/features/viz/lib/scale-provider.js.map +7 -0
- package/dist/features/viz/lib/scale-ticks.d.ts +5 -0
- package/dist/features/viz/lib/scale-ticks.js +64 -0
- package/dist/features/viz/lib/scale-ticks.js.map +7 -0
- package/dist/features/viz/lib/scale-view.d.ts +4 -0
- package/dist/features/viz/lib/scale-view.js +21 -0
- package/dist/features/viz/lib/scale-view.js.map +7 -0
- package/dist/features/viz/lib/sequential-color-scale.d.ts +11 -0
- package/dist/features/viz/lib/sequential-color-scale.js +49 -0
- package/dist/features/viz/lib/sequential-color-scale.js.map +7 -0
- package/dist/features/viz/lib/series-position.d.ts +12 -0
- package/dist/features/viz/lib/series-position.js +44 -0
- package/dist/features/viz/lib/series-position.js.map +7 -0
- package/dist/features/viz/lib/step-curves.d.ts +19 -0
- package/dist/features/viz/lib/step-curves.js +53 -0
- package/dist/features/viz/lib/step-curves.js.map +7 -0
- package/dist/features/viz/lib/symlog-scale-component.d.ts +7 -0
- package/dist/features/viz/lib/symlog-scale-component.js +19 -0
- package/dist/features/viz/lib/symlog-scale-component.js.map +7 -0
- package/dist/features/viz/lib/symlog-scale.d.ts +2 -0
- package/dist/features/viz/lib/symlog-scale.js +38 -0
- package/dist/features/viz/lib/symlog-scale.js.map +7 -0
- package/dist/features/viz/lib/threshold-color-scale.d.ts +43 -0
- package/dist/features/viz/lib/threshold-color-scale.js +59 -0
- package/dist/features/viz/lib/threshold-color-scale.js.map +7 -0
- package/dist/features/viz/lib/trading-time-mapping.d.ts +32 -0
- package/dist/features/viz/lib/trading-time-mapping.js +89 -0
- package/dist/features/viz/lib/trading-time-mapping.js.map +7 -0
- package/dist/features/viz/lib/trading-time-scale.d.ts +83 -0
- package/dist/features/viz/lib/trading-time-scale.js +96 -0
- package/dist/features/viz/lib/trading-time-scale.js.map +7 -0
- package/dist/features/viz/lib/trajectory-series.d.ts +71 -0
- package/dist/features/viz/lib/trajectory-series.js +111 -0
- package/dist/features/viz/lib/trajectory-series.js.map +7 -0
- package/dist/features/viz/lib/types.d.ts +114 -21
- package/dist/features/viz/lib/use-bar-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-bar-scale.js +9 -0
- package/dist/features/viz/lib/use-bar-scale.js.map +7 -0
- package/dist/features/viz/lib/use-continuous-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-continuous-scale.js +14 -0
- package/dist/features/viz/lib/use-continuous-scale.js.map +7 -0
- package/dist/features/viz/lib/use-linear-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-linear-scale.js +9 -0
- package/dist/features/viz/lib/use-linear-scale.js.map +7 -0
- package/dist/features/viz/lib/use-log-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-log-scale.js +9 -0
- package/dist/features/viz/lib/use-log-scale.js.map +7 -0
- package/dist/features/viz/lib/use-point-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-point-scale.js +9 -0
- package/dist/features/viz/lib/use-point-scale.js.map +7 -0
- package/dist/features/viz/lib/use-symlog-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-symlog-scale.js +9 -0
- package/dist/features/viz/lib/use-symlog-scale.js.map +7 -0
- package/dist/features/viz/lib/use-utc-scale.d.ts +8 -0
- package/dist/features/viz/lib/use-utc-scale.js +9 -0
- package/dist/features/viz/lib/use-utc-scale.js.map +7 -0
- package/dist/features/viz/lib/utc-labels.d.ts +12 -0
- package/dist/features/viz/lib/utc-labels.js +27 -0
- package/dist/features/viz/lib/utc-labels.js.map +7 -0
- package/dist/features/viz/lib/utc-scale-component.d.ts +7 -0
- package/dist/features/viz/lib/utc-scale-component.js +18 -0
- package/dist/features/viz/lib/utc-scale-component.js.map +7 -0
- package/dist/features/viz/lib/utc-scale.d.ts +21 -0
- package/dist/features/viz/lib/utc-scale.js +124 -0
- package/dist/features/viz/lib/utc-scale.js.map +7 -0
- package/dist/features/viz/lib/volume-series.d.ts +59 -0
- package/dist/features/viz/lib/volume-series.js +117 -0
- package/dist/features/viz/lib/volume-series.js.map +7 -0
- package/dist/features/viz/lib/weighted-point-series.d.ts +71 -0
- package/dist/features/viz/lib/weighted-point-series.js +169 -0
- package/dist/features/viz/lib/weighted-point-series.js.map +7 -0
- package/dist/filters/backdrop-contrast-gpu.d.ts +5 -0
- package/dist/filters/backdrop-contrast-gpu.js +33 -0
- package/dist/filters/backdrop-contrast-gpu.js.map +7 -0
- package/dist/filters/backdrop-contrast.d.ts +21 -0
- package/dist/filters/backdrop-contrast.js +61 -0
- package/dist/filters/backdrop-contrast.js.map +7 -0
- package/dist/filters/displacement.js +1 -1
- package/dist/filters/displacement.js.map +2 -2
- package/dist/filters/emboss-gpu.d.ts +4 -0
- package/dist/filters/emboss-gpu.js +39 -0
- package/dist/filters/emboss-gpu.js.map +7 -0
- package/dist/filters/emboss.d.ts +32 -0
- package/dist/filters/emboss.js +104 -0
- package/dist/filters/emboss.js.map +7 -0
- package/dist/filters/filter-executor.d.ts +11 -4
- package/dist/filters/filter-executor.js +104 -49
- package/dist/filters/filter-executor.js.map +2 -2
- package/dist/filters/reflected-light.js +1 -1
- package/dist/filters/reflected-light.js.map +2 -2
- package/dist/filters/reflection-gpu.d.ts +3 -1
- package/dist/filters/reflection-gpu.js +5 -2
- package/dist/filters/reflection-gpu.js.map +2 -2
- package/dist/filters/render-backdrop-contrast-boundary.d.ts +31 -0
- package/dist/filters/render-backdrop-contrast-boundary.js +116 -0
- package/dist/filters/render-backdrop-contrast-boundary.js.map +7 -0
- package/dist/filters/render-emboss-boundary.d.ts +13 -0
- package/dist/filters/render-emboss-boundary.js +131 -0
- package/dist/filters/render-emboss-boundary.js.map +7 -0
- package/dist/filters.d.ts +9 -5
- package/dist/filters.js +4 -0
- package/dist/filters.js.map +2 -2
- package/dist/index.d.ts +10 -6
- package/dist/index.js +18 -2
- package/dist/index.js.map +2 -2
- package/dist/internal.d.ts +4 -0
- package/dist/internal.js +6 -0
- package/dist/internal.js.map +2 -2
- package/dist/layout-kernel.d.ts +12 -0
- package/dist/layout-kernel.js +11 -0
- package/dist/layout-kernel.js.map +7 -0
- package/dist/layout-kernel.mjs +1 -0
- package/dist/lib/animation/definition.d.ts +5 -3
- package/dist/lib/animation/definition.js +29 -4
- package/dist/lib/animation/definition.js.map +2 -2
- package/dist/lib/animation/playback.d.ts +8 -0
- package/dist/lib/animation/playback.js +33 -11
- package/dist/lib/animation/playback.js.map +2 -2
- package/dist/lib/animation/spring.d.ts +3 -1
- package/dist/lib/animation/spring.js.map +2 -2
- package/dist/lib/animation/types.d.ts +29 -73
- package/dist/lib/backend/types.d.ts +13 -1
- package/dist/lib/backend/types.js.map +2 -2
- package/dist/lib/components/arc-geometry.js +2 -1
- package/dist/lib/components/arc-geometry.js.map +2 -2
- package/dist/lib/components/g.js +2 -0
- package/dist/lib/components/g.js.map +2 -2
- package/dist/lib/components/html-box.js +2 -1
- package/dist/lib/components/html-box.js.map +2 -2
- package/dist/lib/components/img.js +3 -3
- package/dist/lib/components/img.js.map +2 -2
- package/dist/lib/components/layer.js +98 -16
- package/dist/lib/components/layer.js.map +3 -3
- package/dist/lib/components/text.d.ts +16 -0
- package/dist/lib/components/text.js +131 -24
- package/dist/lib/components/text.js.map +2 -2
- package/dist/lib/define-primitive.d.ts +4 -2
- package/dist/lib/define-primitive.js +3 -1
- package/dist/lib/define-primitive.js.map +2 -2
- package/dist/lib/element/metadata.d.ts +9 -0
- package/dist/lib/element/metadata.js +19 -0
- package/dist/lib/element/metadata.js.map +2 -2
- package/dist/lib/element/resolve-primitive-inputs.d.ts +2 -0
- package/dist/lib/element/resolve-primitive-inputs.js +17 -4
- package/dist/lib/element/resolve-primitive-inputs.js.map +2 -2
- package/dist/lib/events/event-facade.d.ts +18 -0
- package/dist/lib/events/event-facade.js +28 -2
- package/dist/lib/events/event-facade.js.map +2 -2
- package/dist/lib/events/hit-test.js +2 -1
- package/dist/lib/events/hit-test.js.map +2 -2
- package/dist/lib/events/propagation.d.ts +2 -1
- package/dist/lib/events/propagation.js +22 -16
- package/dist/lib/events/propagation.js.map +2 -2
- package/dist/lib/events/registrations.d.ts +10 -0
- package/dist/lib/events/registrations.js +160 -5
- package/dist/lib/events/registrations.js.map +2 -2
- package/dist/lib/execute-render.js +25 -1
- package/dist/lib/execute-render.js.map +2 -2
- package/dist/lib/filter/filter-region.js +3 -10
- package/dist/lib/filter/filter-region.js.map +2 -2
- package/dist/lib/focus/focus-manager.d.ts +8 -1
- package/dist/lib/focus/focus-manager.js +87 -43
- package/dist/lib/focus/focus-manager.js.map +2 -2
- package/dist/lib/focus/geometry.d.ts +2 -0
- package/dist/lib/focus/geometry.js +6 -0
- package/dist/lib/focus/geometry.js.map +2 -2
- package/dist/lib/geometry/path-bend-guide.js +1 -1
- package/dist/lib/geometry/path-bend-guide.js.map +2 -2
- package/dist/lib/geometry/path-geometry.js +12 -11
- package/dist/lib/geometry/path-geometry.js.map +2 -2
- package/dist/lib/geometry/path-transforms.js +17 -21
- package/dist/lib/geometry/path-transforms.js.map +2 -2
- package/dist/lib/geometry/path-warp-bezier.js +3 -1
- package/dist/lib/geometry/path-warp-bezier.js.map +2 -2
- package/dist/lib/geometry/path-warp.js +1 -1
- package/dist/lib/geometry/path-warp.js.map +2 -2
- package/dist/lib/global-state.js +2 -0
- package/dist/lib/global-state.js.map +2 -2
- package/dist/lib/hooks/use-animated-value.d.ts +11 -21
- package/dist/lib/hooks/use-animated-value.js +23 -70
- package/dist/lib/hooks/use-animated-value.js.map +3 -3
- package/dist/lib/hooks/use-playback.js +1 -0
- package/dist/lib/hooks/use-playback.js.map +2 -2
- package/dist/lib/html/html-events.d.ts +32 -0
- package/dist/lib/html/html-events.js +179 -0
- package/dist/lib/html/html-events.js.map +7 -0
- package/dist/lib/html/html-service.d.ts +8 -2
- package/dist/lib/html/html-service.js +198 -65
- package/dist/lib/html/html-service.js.map +2 -2
- package/dist/lib/html/overlay-config.js +7 -6
- package/dist/lib/html/overlay-config.js.map +2 -2
- package/dist/lib/html/types.d.ts +29 -2
- package/dist/lib/layout/absolute.d.ts +11 -5
- package/dist/lib/layout/absolute.js +329 -55
- package/dist/lib/layout/absolute.js.map +3 -3
- package/dist/lib/layout/allocation-checkpoint-owner.d.ts +11 -0
- package/dist/lib/layout/allocation-checkpoint-owner.js +86 -0
- package/dist/lib/layout/allocation-checkpoint-owner.js.map +7 -0
- package/dist/lib/layout/allocation-checkpoint.d.ts +53 -0
- package/dist/lib/layout/allocation-checkpoint.js +463 -0
- package/dist/lib/layout/allocation-checkpoint.js.map +7 -0
- package/dist/lib/layout/allocation-dependencies.d.ts +30 -0
- package/dist/lib/layout/allocation-dependencies.js +90 -0
- package/dist/lib/layout/allocation-dependencies.js.map +7 -0
- package/dist/lib/layout/allocation-revision.d.ts +13 -0
- package/dist/lib/layout/allocation-revision.js +67 -0
- package/dist/lib/layout/allocation-revision.js.map +7 -0
- package/dist/lib/layout/box-insets.d.ts +17 -0
- package/dist/lib/layout/box-insets.js +138 -0
- package/dist/lib/layout/box-insets.js.map +7 -0
- package/dist/lib/layout/box-sizing.d.ts +16 -0
- package/dist/lib/layout/box-sizing.js +77 -0
- package/dist/lib/layout/box-sizing.js.map +7 -0
- package/dist/lib/layout/box.js +42 -12
- package/dist/lib/layout/box.js.map +2 -2
- package/dist/lib/layout/canvas-measurement.d.ts +13 -0
- package/dist/lib/layout/canvas-measurement.js +57 -0
- package/dist/lib/layout/canvas-measurement.js.map +7 -0
- package/dist/lib/layout/context.d.ts +35 -6
- package/dist/lib/layout/context.js +72 -3
- package/dist/lib/layout/context.js.map +2 -2
- package/dist/lib/layout/define-layout-component.d.ts +23 -0
- package/dist/lib/layout/define-layout-component.js +84 -0
- package/dist/lib/layout/define-layout-component.js.map +7 -0
- package/dist/lib/layout/flex-allocation-cache.d.ts +42 -0
- package/dist/lib/layout/flex-baseline-mode.d.ts +2 -0
- package/dist/lib/layout/flex-baseline-mode.js +7 -0
- package/dist/lib/layout/flex-baseline-mode.js.map +7 -0
- package/dist/lib/layout/flex.d.ts +50 -15
- package/dist/lib/layout/flex.js +2124 -195
- package/dist/lib/layout/flex.js.map +3 -3
- package/dist/lib/layout/flow.js +225 -49
- package/dist/lib/layout/flow.js.map +2 -2
- package/dist/lib/layout/geometry-publication.d.ts +53 -0
- package/dist/lib/layout/geometry-publication.js +244 -0
- package/dist/lib/layout/geometry-publication.js.map +7 -0
- package/dist/lib/layout/grid-kernel.d.ts +63 -0
- package/dist/lib/layout/grid-kernel.js +168 -0
- package/dist/lib/layout/grid-kernel.js.map +7 -0
- package/dist/lib/layout/grid.d.ts +63 -4
- package/dist/lib/layout/grid.js +767 -171
- package/dist/lib/layout/grid.js.map +3 -3
- package/dist/lib/layout/measure.d.ts +55 -3
- package/dist/lib/layout/measure.js +448 -15
- package/dist/lib/layout/measure.js.map +2 -2
- package/dist/lib/layout/overlay.js +81 -23
- package/dist/lib/layout/overlay.js.map +2 -2
- package/dist/lib/layout/participation.d.ts +27 -0
- package/dist/lib/layout/participation.js +188 -0
- package/dist/lib/layout/participation.js.map +7 -0
- package/dist/lib/layout/place-child.js +1 -1
- package/dist/lib/layout/place-child.js.map +2 -2
- package/dist/lib/layout/positioning-diagnostics.d.ts +1 -1
- package/dist/lib/layout/positioning-diagnostics.js +13 -2
- package/dist/lib/layout/positioning-diagnostics.js.map +2 -2
- package/dist/lib/layout/prepared-root.d.ts +121 -0
- package/dist/lib/layout/prepared-root.js +360 -0
- package/dist/lib/layout/prepared-root.js.map +7 -0
- package/dist/lib/layout/standalone-kernel.d.ts +60 -0
- package/dist/lib/layout/standalone-kernel.js +722 -0
- package/dist/lib/layout/standalone-kernel.js.map +7 -0
- package/dist/lib/layout/topology.d.ts +21 -0
- package/dist/lib/layout/topology.js +113 -0
- package/dist/lib/layout/topology.js.map +7 -0
- package/dist/lib/layout/types.d.ts +5 -0
- package/dist/lib/layout/wasm/artifact.d.ts +1 -0
- package/dist/lib/layout/wasm/artifact.js +5 -0
- package/dist/lib/layout/wasm/artifact.js.map +7 -0
- package/dist/lib/layout/wasm/bytes.d.ts +1 -0
- package/dist/lib/layout/wasm/bytes.js +5 -0
- package/dist/lib/layout/wasm/bytes.js.map +7 -0
- package/dist/lib/layout/wasm/embedded.d.ts +2 -0
- package/dist/lib/layout/wasm/embedded.js +12 -0
- package/dist/lib/layout/wasm/embedded.js.map +7 -0
- package/dist/lib/layout/wasm/layout.wasm +0 -0
- package/dist/lib/layout/wasm/module.d.ts +8 -0
- package/dist/lib/layout/wasm/module.js +70 -0
- package/dist/lib/layout/wasm/module.js.map +7 -0
- package/dist/lib/layout/wasm/region.d.ts +267 -0
- package/dist/lib/layout/wasm/region.js +1018 -0
- package/dist/lib/layout/wasm/region.js.map +7 -0
- package/dist/lib/manipulation/controller.js +4 -7
- package/dist/lib/manipulation/controller.js.map +2 -2
- package/dist/lib/manipulation/frame.js +1 -1
- package/dist/lib/manipulation/frame.js.map +2 -2
- package/dist/lib/manipulation/handles.js +32 -33
- package/dist/lib/manipulation/handles.js.map +2 -2
- package/dist/lib/manipulation/solve.js +12 -10
- package/dist/lib/manipulation/solve.js.map +2 -2
- package/dist/lib/mount-pibbl.js +1 -0
- package/dist/lib/mount-pibbl.js.map +2 -2
- package/dist/lib/mount-prepared-pibbl.d.ts +5 -0
- package/dist/lib/mount-prepared-pibbl.js +29 -0
- package/dist/lib/mount-prepared-pibbl.js.map +7 -0
- package/dist/lib/mount-request.d.ts +8 -0
- package/dist/lib/mount-request.js +41 -0
- package/dist/lib/mount-request.js.map +7 -0
- package/dist/lib/pibbl.d.ts +21 -13
- package/dist/lib/pibbl.js +18 -16
- package/dist/lib/pibbl.js.map +2 -2
- package/dist/lib/recording/recording.d.ts +43 -0
- package/dist/lib/recording/recording.js +555 -0
- package/dist/lib/recording/recording.js.map +7 -0
- package/dist/lib/recording/types.d.ts +118 -0
- package/dist/lib/recording/wasm-bytes.d.ts +1 -0
- package/dist/lib/recording/wasm-bytes.js +5 -0
- package/dist/lib/recording/wasm-bytes.js.map +7 -0
- package/dist/lib/recording/worker-source.d.ts +1 -0
- package/dist/lib/recording/worker-source.js +5 -0
- package/dist/lib/recording/worker-source.js.map +7 -0
- package/dist/lib/render-layer/controller.d.ts +9 -3
- package/dist/lib/render-layer/controller.js +259 -110
- package/dist/lib/render-layer/controller.js.map +2 -2
- package/dist/lib/render-transaction.d.ts +12 -2
- package/dist/lib/render-transaction.js +69 -1
- package/dist/lib/render-transaction.js.map +2 -2
- package/dist/lib/render.js +32 -8
- package/dist/lib/render.js.map +2 -2
- package/dist/lib/scheduler/realm-scheduler.d.ts +2 -0
- package/dist/lib/scheduler/realm-scheduler.js +55 -26
- package/dist/lib/scheduler/realm-scheduler.js.map +2 -2
- package/dist/lib/scheduler/renderer-participant.js +1 -0
- package/dist/lib/scheduler/renderer-participant.js.map +2 -2
- package/dist/lib/series-inspection-frame.d.ts +18 -0
- package/dist/lib/series-inspection-frame.js +70 -0
- package/dist/lib/series-inspection-frame.js.map +7 -0
- package/dist/lib/signals/edge.d.ts +7 -4
- package/dist/lib/signals/edge.js +25 -3
- package/dist/lib/signals/edge.js.map +2 -2
- package/dist/lib/signals/graph.d.ts +16 -2
- package/dist/lib/signals/graph.js +54 -12
- package/dist/lib/signals/graph.js.map +2 -2
- package/dist/lib/signals/input-provision.d.ts +15 -0
- package/dist/lib/signals/input-provision.js +53 -3
- package/dist/lib/signals/input-provision.js.map +2 -2
- package/dist/lib/signals/render-consumer.d.ts +3 -0
- package/dist/lib/signals/render-consumer.js +22 -14
- package/dist/lib/signals/render-consumer.js.map +2 -2
- package/dist/lib/style/positioning.d.ts +50 -2
- package/dist/lib/style/positioning.js +28 -4
- package/dist/lib/style/positioning.js.map +2 -2
- package/dist/lib/style/resolve-built-in.d.ts +4 -3
- package/dist/lib/style/resolve-built-in.js +17 -3
- package/dist/lib/style/resolve-built-in.js.map +2 -2
- package/dist/lib/style/resolve-dispatch.d.ts +3 -0
- package/dist/lib/style/resolve-dispatch.js +77 -4
- package/dist/lib/style/resolve-dispatch.js.map +2 -2
- package/dist/lib/style/resolve-length.d.ts +2 -0
- package/dist/lib/style/resolve-length.js +13 -9
- package/dist/lib/style/resolve-length.js.map +2 -2
- package/dist/lib/style/sizing-length.d.ts +51 -0
- package/dist/lib/style/sizing-length.js +77 -0
- package/dist/lib/style/sizing-length.js.map +7 -0
- package/dist/lib/style/types.d.ts +63 -25
- package/dist/lib/surface/root-surface.js +10 -6
- package/dist/lib/surface/root-surface.js.map +2 -2
- package/dist/lib/textures/texture.js +10 -8
- package/dist/lib/textures/texture.js.map +2 -2
- package/dist/lib/transitions/capture.js +4 -1
- package/dist/lib/transitions/capture.js.map +2 -2
- package/dist/lib/transitions/embers-physics.js +17 -10
- package/dist/lib/transitions/embers-physics.js.map +2 -2
- package/dist/lib/types.d.ts +110 -1
- package/dist/sync.d.ts +16 -0
- package/dist/sync.js +13 -0
- package/dist/sync.js.map +7 -0
- package/dist/sync.mjs +1 -0
- package/package.json +43 -6
- package/dist/features/viz/lib/scale.d.ts +0 -11
- package/dist/features/viz/lib/scale.js +0 -80
- package/dist/features/viz/lib/scale.js.map +0 -7
- package/dist/features/viz/lib/use-scale.d.ts +0 -20
- package/dist/features/viz/lib/use-scale.js +0 -10
- package/dist/features/viz/lib/use-scale.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/features/physics/2d-geometry.ts"],
|
|
4
|
-
"sourcesContent": ["import type { boundsOfShape2D, massProperties2D, transformShape2D } from './lib/2d/shapes.js';\nimport type { queryAabb2D, raycast2D } from './2d.js';\nimport type { raycastShape2D, shapeCastAgainstShape2D } from './lib/2d/collision/casts.js';\nimport type { PibblPhysicsCollisionEvent2D, PibblPhysicsQueryHit2D } from './lib/2d/types.js';\nimport type { PibblPhysicsContactInspection2D } from './lib/2d/inspection-types.js';\n/**\n * An x/y pair in the 2D physics coordinate system.\n *\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsAabb2D}\n * @see {@link PibblPhysicsRay2D}\n */\nexport type PibblPhysicsVector2 = readonly [x: number, y: number];\n\n/**\n * Position and rotation in degrees for a 2D shape or body.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsTransform2D}\n * @see {@link containsPoint2D}\n */\nexport interface PibblPhysicsPose2D {\n /** Position of the geometry, source, or selected resize handle. See {@link PibblPhysicsVector2}. */\n readonly position: PibblPhysicsVector2;\n /** Rotation in degrees. See {@link PibblPhysicsPose2D}. */\n readonly rotationDegrees: number;\n}\n\n/**\n * A rigid 2D transform expressed as position and rotation in degrees.\n *\n * @see {@link PibblPhysicsPose2D}\n * @see {@link transformShape2D}\n */\nexport type PibblPhysicsTransform2D = PibblPhysicsPose2D;\n\n/**\n * Axis-aligned bounds expressed as minimum and maximum coordinates.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link boundsOfShape2D}\n * @see {@link queryAabb2D}\n */\nexport interface PibblPhysicsAabb2D {\n /** Lower bound of the coordinate or sampling interval. See {@link PibblPhysicsVector2}. */\n readonly min: PibblPhysicsVector2;\n /** Upper bound of the coordinate or sampling interval. See {@link PibblPhysicsVector2}. */\n readonly max: PibblPhysicsVector2;\n}\n\n/**\n * Origin, direction, and maximum travel distance of a 2D query ray.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link raycastShape2D}\n * @see {@link raycast2D}\n */\nexport interface PibblPhysicsRay2D {\n /** Origin of the transform or geometric query. See {@link PibblPhysicsVector2}. */\n readonly origin: PibblPhysicsVector2;\n /** Direction in which this operation proceeds. See {@link PibblPhysicsVector2}. */\n readonly direction: PibblPhysicsVector2;\n /** Maximum distance accepted by the query. See {@link PibblPhysicsRay2D}. */\n readonly maxDistance: number;\n}\n\ndeclare const physicsShape2DBrand: unique symbol;\n/**\n * An immutable branded shape created by the public 2D geometry constructors.\n *\n * @see {@link containsPoint2D}\n * @see {@link distanceBetweenShapes2D}\n * @see {@link overlapShapes2D}\n */\nexport interface PibblPhysicsShape2D {\n readonly [physicsShape2DBrand]: true;\n}\n\n/**\n * Area, centroid, mass, and rotational inertia derived from a shape and density.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link massProperties2D}\n */\nexport interface PibblPhysicsMassProperties2D {\n /** Area enclosed by the shape. See {@link PibblPhysicsMassProperties2D}. */\n readonly area: number;\n /** Area-weighted center of the shape. See {@link PibblPhysicsVector2}. */\n readonly centroid: PibblPhysicsVector2;\n /** Mass used by the spring or physics calculation. See {@link PibblPhysicsMassProperties2D}. */\n readonly mass: number;\n /** Moment of inertia about the shape's center of mass. See {@link PibblPhysicsMassProperties2D}. */\n readonly rotationalInertia: number;\n}\n\n/**\n * Signed separation, witness points, and normal between two posed shapes.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link distanceBetweenShapes2D}\n */\nexport interface PibblPhysicsDistance2D {\n /** Signed distance between the witness points. See {@link PibblPhysicsDistance2D}. */\n readonly separation: number;\n /** Witness point on the first shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnFirst: PibblPhysicsVector2;\n /** Witness point on the second shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnSecond: PibblPhysicsVector2;\n /** Direction from the second shape toward the first. */\n readonly normal: PibblPhysicsVector2;\n}\n\n/**\n * A pair of contact witness points and their signed separation.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsShapeContact2D}\n * @see {@link PibblPhysicsCollisionEvent2D}\n * @see {@link PibblPhysicsContactInspection2D}\n */\nexport interface PibblPhysicsContactPoint2D {\n /** Witness point on the first shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnFirst: PibblPhysicsVector2;\n /** Witness point on the second shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnSecond: PibblPhysicsVector2;\n /** Signed distance between the witness points. See {@link PibblPhysicsContactPoint2D}. */\n readonly separation: number;\n}\n\n/**\n * Contact normal and witness-point pairs for two overlapping or touching shapes.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsContactPoint2D}\n * @see {@link contactBetweenShapes2D}\n */\nexport interface PibblPhysicsShapeContact2D {\n /** Direction from the second shape toward the first. */\n readonly normal: PibblPhysicsVector2;\n /**\n * Points defining the geometry or reported by the contact query. See\n * {@link PibblPhysicsContactPoint2D}.\n */\n readonly points: readonly PibblPhysicsContactPoint2D[];\n}\n\n/**\n * Point, normal, distance, and time of impact returned by a geometry cast.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link raycastShape2D}\n * @see {@link shapeCastAgainstShape2D}\n * @see {@link PibblPhysicsQueryHit2D}\n */\nexport interface PibblPhysicsShapeHit2D {\n /** A point in the operation's coordinate system. See {@link PibblPhysicsVector2}. */\n readonly point: PibblPhysicsVector2;\n /** Contact or surface normal returned by this query. See {@link PibblPhysicsVector2}. */\n readonly normal: PibblPhysicsVector2;\n /**\n * Distance measured in this query or guide's coordinate system. See {@link PibblPhysicsShapeHit2D}\n * .\n */\n readonly distance: number;\n /** Position along the cast at which contact first occurs. See {@link PibblPhysicsShapeHit2D}. */\n readonly timeOfImpact: number;\n}\n\nexport {\n arcShape2D,\n boundsOfShape2D,\n boxShape2D,\n capsuleShape2D,\n chainShape2D,\n circleShape2D,\n ellipseShape2D,\n massProperties2D,\n polygonShape2D,\n roundedBoxShape2D,\n segmentShape2D,\n transformShape2D,\n wedgeShape2D,\n} from './lib/2d/shapes.js';\n\nimport {\n contactBetweenPreparedShapes2D,\n containsPointInShape2D,\n distanceBetweenPreparedShapes2D,\n overlapPreparedShapes2D,\n} from './lib/2d/collision/pairs.js';\nexport {\n raycastShape2D,\n shapeCastAgainstShape2D,\n} from './lib/2d/collision/casts.js';\n\n/**\n * Tests whether a point lies within a posed shape without creating a physics world.\n *\n * @param shape - Shape to test. See {@link PibblPhysicsShape2D}.\n * @param pose - Shape pose. See {@link PibblPhysicsPose2D}.\n * @param point - Point in the same coordinate space as the posed shape. See\n * {@link PibblPhysicsVector2} .\n * @returns Whether the posed shape contains the point.\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsVector2}\n */\nexport function containsPoint2D(\n shape: PibblPhysicsShape2D,\n pose: PibblPhysicsPose2D,\n point: PibblPhysicsVector2,\n): boolean {\n return containsPointInShape2D(shape, pose, point);\n}\n\n/**\n * Computes signed separation and witness geometry between two posed shapes.\n *\n * @param first - First shape. See {@link PibblPhysicsShape2D}.\n * @param firstPose - Pose of the first shape. See {@link PibblPhysicsPose2D}.\n * @param second - Second shape. See {@link PibblPhysicsShape2D}.\n * @param secondPose - Pose of the second shape. See {@link PibblPhysicsPose2D}.\n * @returns Distance and closest-point information for the two posed shapes. See\n * {@link PibblPhysicsDistance2D} .\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsDistance2D}\n */\nexport function distanceBetweenShapes2D(\n first: PibblPhysicsShape2D,\n firstPose: PibblPhysicsPose2D,\n second: PibblPhysicsShape2D,\n secondPose: PibblPhysicsPose2D,\n): PibblPhysicsDistance2D {\n return distanceBetweenPreparedShapes2D(first, firstPose, second, secondPose);\n}\n\n/**\n * Tests whether two posed shapes overlap without creating a physics world.\n *\n * @param first - First shape. See {@link PibblPhysicsShape2D}.\n * @param firstPose - Pose of the first shape. See {@link PibblPhysicsPose2D}.\n * @param second - Second shape. See {@link PibblPhysicsShape2D}.\n * @param secondPose - Pose of the second shape. See {@link PibblPhysicsPose2D}.\n * @returns Whether the two posed shapes overlap.\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n */\nexport function overlapShapes2D(\n first: PibblPhysicsShape2D,\n firstPose: PibblPhysicsPose2D,\n second: PibblPhysicsShape2D,\n secondPose: PibblPhysicsPose2D,\n): boolean {\n return overlapPreparedShapes2D(first, firstPose, second, secondPose);\n}\n\n/**\n * Computes contact geometry for two posed shapes, or null when they do not contact.\n *\n * @param first - First shape. See {@link PibblPhysicsShape2D}.\n * @param firstPose - Pose of the first shape. See {@link PibblPhysicsPose2D}.\n * @param second - Second shape. See {@link PibblPhysicsShape2D}.\n * @param secondPose - Pose of the second shape. See {@link PibblPhysicsPose2D}.\n * @returns Contact information, or null when the shapes do not contact. See\n * {@link PibblPhysicsShapeContact2D} .\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsShapeContact2D}\n */\nexport function contactBetweenShapes2D(\n first: PibblPhysicsShape2D,\n firstPose: PibblPhysicsPose2D,\n second: PibblPhysicsShape2D,\n secondPose: PibblPhysicsPose2D,\n): PibblPhysicsShapeContact2D | null {\n return contactBetweenPreparedShapes2D(first, firstPose, second, secondPose);\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { boundsOfShape2D, massProperties2D, transformShape2D } from './lib/2d/shapes.js';\nimport type { findAabbMatch2D, raycastClosest2D } from './2d.js';\nimport type { raycastShape2D, shapeCastAgainstShape2D } from './lib/2d/collision/casts.js';\nimport type { PibblPhysicsCollisionEvent2D, PibblPhysicsQueryHit2D } from './lib/2d/types.js';\nimport type { PibblPhysicsContactInspection2D } from './lib/2d/inspection-types.js';\n/**\n * An x/y pair in the 2D physics coordinate system.\n *\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsAabb2D}\n * @see {@link PibblPhysicsRay2D}\n */\nexport type PibblPhysicsVector2 = readonly [x: number, y: number];\n\n/**\n * Position and rotation in degrees for a 2D shape or body.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsTransform2D}\n * @see {@link containsPoint2D}\n */\nexport interface PibblPhysicsPose2D {\n /** Position of the geometry, source, or selected resize handle. See {@link PibblPhysicsVector2}. */\n readonly position: PibblPhysicsVector2;\n /** Rotation in degrees. See {@link PibblPhysicsPose2D}. */\n readonly rotationDegrees: number;\n}\n\n/**\n * A rigid 2D transform expressed as position and rotation in degrees.\n *\n * @see {@link PibblPhysicsPose2D}\n * @see {@link transformShape2D}\n */\nexport type PibblPhysicsTransform2D = PibblPhysicsPose2D;\n\n/**\n * Axis-aligned bounds expressed as minimum and maximum coordinates.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link boundsOfShape2D}\n * @see {@link findAabbMatch2D}\n */\nexport interface PibblPhysicsAabb2D {\n /** Lower bound of the coordinate or sampling interval. See {@link PibblPhysicsVector2}. */\n readonly min: PibblPhysicsVector2;\n /** Upper bound of the coordinate or sampling interval. See {@link PibblPhysicsVector2}. */\n readonly max: PibblPhysicsVector2;\n}\n\n/**\n * Origin, direction, and maximum travel distance of a 2D query ray.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link raycastShape2D}\n * @see {@link raycastClosest2D}\n */\nexport interface PibblPhysicsRay2D {\n /** Origin of the transform or geometric query. See {@link PibblPhysicsVector2}. */\n readonly origin: PibblPhysicsVector2;\n /** Direction in which this operation proceeds. See {@link PibblPhysicsVector2}. */\n readonly direction: PibblPhysicsVector2;\n /** Maximum distance accepted by the query. See {@link PibblPhysicsRay2D}. */\n readonly maxDistance: number;\n}\n\ndeclare const physicsShape2DBrand: unique symbol;\n/**\n * An immutable branded shape created by the public 2D geometry constructors.\n *\n * @see {@link containsPoint2D}\n * @see {@link distanceBetweenShapes2D}\n * @see {@link overlapShapes2D}\n */\nexport interface PibblPhysicsShape2D {\n readonly [physicsShape2DBrand]: true;\n}\n\n/**\n * Area, centroid, mass, and rotational inertia derived from a shape and density.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link massProperties2D}\n */\nexport interface PibblPhysicsMassProperties2D {\n /** Area enclosed by the shape. See {@link PibblPhysicsMassProperties2D}. */\n readonly area: number;\n /** Area-weighted center of the shape. See {@link PibblPhysicsVector2}. */\n readonly centroid: PibblPhysicsVector2;\n /** Mass used by the spring or physics calculation. See {@link PibblPhysicsMassProperties2D}. */\n readonly mass: number;\n /** Moment of inertia about the shape's center of mass. See {@link PibblPhysicsMassProperties2D}. */\n readonly rotationalInertia: number;\n}\n\n/**\n * Signed separation, witness points, and normal between two posed shapes.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link distanceBetweenShapes2D}\n */\nexport interface PibblPhysicsDistance2D {\n /** Signed distance between the witness points. See {@link PibblPhysicsDistance2D}. */\n readonly separation: number;\n /** Witness point on the first shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnFirst: PibblPhysicsVector2;\n /** Witness point on the second shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnSecond: PibblPhysicsVector2;\n /** Direction from the second shape toward the first. */\n readonly normal: PibblPhysicsVector2;\n}\n\n/**\n * A pair of contact witness points and their signed separation.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsShapeContact2D}\n * @see {@link PibblPhysicsCollisionEvent2D}\n * @see {@link PibblPhysicsContactInspection2D}\n */\nexport interface PibblPhysicsContactPoint2D {\n /** Witness point on the first shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnFirst: PibblPhysicsVector2;\n /** Witness point on the second shape. See {@link PibblPhysicsVector2}. */\n readonly pointOnSecond: PibblPhysicsVector2;\n /** Signed distance between the witness points. See {@link PibblPhysicsContactPoint2D}. */\n readonly separation: number;\n}\n\n/**\n * Contact normal and witness-point pairs for two overlapping or touching shapes.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsContactPoint2D}\n * @see {@link contactBetweenShapes2D}\n */\nexport interface PibblPhysicsShapeContact2D {\n /** Direction from the second shape toward the first. */\n readonly normal: PibblPhysicsVector2;\n /**\n * Points defining the geometry or reported by the contact query. See\n * {@link PibblPhysicsContactPoint2D}.\n */\n readonly points: readonly PibblPhysicsContactPoint2D[];\n}\n\n/**\n * Point, normal, distance, and time of impact returned by a geometry cast.\n *\n * @see {@link PibblPhysicsVector2}\n * @see {@link raycastShape2D}\n * @see {@link shapeCastAgainstShape2D}\n * @see {@link PibblPhysicsQueryHit2D}\n */\nexport interface PibblPhysicsShapeHit2D {\n /** A point in the operation's coordinate system. See {@link PibblPhysicsVector2}. */\n readonly point: PibblPhysicsVector2;\n /** Contact or surface normal returned by this query. See {@link PibblPhysicsVector2}. */\n readonly normal: PibblPhysicsVector2;\n /**\n * Distance measured in this query or guide's coordinate system. See {@link PibblPhysicsShapeHit2D}\n * .\n */\n readonly distance: number;\n /** Position along the cast at which contact first occurs. See {@link PibblPhysicsShapeHit2D}. */\n readonly timeOfImpact: number;\n}\n\nexport {\n arcShape2D,\n boundsOfShape2D,\n boxShape2D,\n capsuleShape2D,\n chainShape2D,\n circleShape2D,\n ellipseShape2D,\n massProperties2D,\n polygonShape2D,\n roundedBoxShape2D,\n segmentShape2D,\n transformShape2D,\n wedgeShape2D,\n} from './lib/2d/shapes.js';\n\nimport {\n contactBetweenPreparedShapes2D,\n containsPointInShape2D,\n distanceBetweenPreparedShapes2D,\n overlapPreparedShapes2D,\n} from './lib/2d/collision/pairs.js';\nexport {\n raycastShape2D,\n shapeCastAgainstShape2D,\n} from './lib/2d/collision/casts.js';\n\n/**\n * Tests whether a point lies within a posed shape without creating a physics world.\n *\n * @param shape - Shape to test. See {@link PibblPhysicsShape2D}.\n * @param pose - Shape pose. See {@link PibblPhysicsPose2D}.\n * @param point - Point in the same coordinate space as the posed shape. See\n * {@link PibblPhysicsVector2} .\n * @returns Whether the posed shape contains the point.\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsVector2}\n */\nexport function containsPoint2D(\n shape: PibblPhysicsShape2D,\n pose: PibblPhysicsPose2D,\n point: PibblPhysicsVector2,\n): boolean {\n return containsPointInShape2D(shape, pose, point);\n}\n\n/**\n * Computes signed separation and witness geometry between two posed shapes.\n *\n * @param first - First shape. See {@link PibblPhysicsShape2D}.\n * @param firstPose - Pose of the first shape. See {@link PibblPhysicsPose2D}.\n * @param second - Second shape. See {@link PibblPhysicsShape2D}.\n * @param secondPose - Pose of the second shape. See {@link PibblPhysicsPose2D}.\n * @returns Distance and closest-point information for the two posed shapes. See\n * {@link PibblPhysicsDistance2D} .\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsDistance2D}\n */\nexport function distanceBetweenShapes2D(\n first: PibblPhysicsShape2D,\n firstPose: PibblPhysicsPose2D,\n second: PibblPhysicsShape2D,\n secondPose: PibblPhysicsPose2D,\n): PibblPhysicsDistance2D {\n return distanceBetweenPreparedShapes2D(first, firstPose, second, secondPose);\n}\n\n/**\n * Tests whether two posed shapes overlap without creating a physics world.\n *\n * @param first - First shape. See {@link PibblPhysicsShape2D}.\n * @param firstPose - Pose of the first shape. See {@link PibblPhysicsPose2D}.\n * @param second - Second shape. See {@link PibblPhysicsShape2D}.\n * @param secondPose - Pose of the second shape. See {@link PibblPhysicsPose2D}.\n * @returns Whether the two posed shapes overlap.\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n */\nexport function overlapShapes2D(\n first: PibblPhysicsShape2D,\n firstPose: PibblPhysicsPose2D,\n second: PibblPhysicsShape2D,\n secondPose: PibblPhysicsPose2D,\n): boolean {\n return overlapPreparedShapes2D(first, firstPose, second, secondPose);\n}\n\n/**\n * Computes contact geometry for two posed shapes, or null when they do not contact.\n *\n * @param first - First shape. See {@link PibblPhysicsShape2D}.\n * @param firstPose - Pose of the first shape. See {@link PibblPhysicsPose2D}.\n * @param second - Second shape. See {@link PibblPhysicsShape2D}.\n * @param secondPose - Pose of the second shape. See {@link PibblPhysicsPose2D}.\n * @returns Contact information, or null when the shapes do not contact. See\n * {@link PibblPhysicsShapeContact2D} .\n *\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsShapeContact2D}\n */\nexport function contactBetweenShapes2D(\n first: PibblPhysicsShape2D,\n firstPose: PibblPhysicsPose2D,\n second: PibblPhysicsShape2D,\n secondPose: PibblPhysicsPose2D,\n): PibblPhysicsShapeContact2D | null {\n return contactBetweenPreparedShapes2D(first, firstPose, second, secondPose);\n}\n"],
|
|
5
5
|
"mappings": "AAwKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAeA,SAAS,gBACd,OACA,MACA,OACS;AACT,SAAO,uBAAuB,OAAO,MAAM,KAAK;AAClD;AAgBO,SAAS,wBACd,OACA,WACA,QACA,YACwB;AACxB,SAAO,gCAAgC,OAAO,WAAW,QAAQ,UAAU;AAC7E;AAcO,SAAS,gBACd,OACA,WACA,QACA,YACS;AACT,SAAO,wBAAwB,OAAO,WAAW,QAAQ,UAAU;AACrE;AAgBO,SAAS,uBACd,OACA,WACA,QACA,YACmC;AACnC,SAAO,+BAA+B,OAAO,WAAW,QAAQ,UAAU;AAC5E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* host frames; a physics world may run zero, one, or several fixed ticks in a
|
|
6
6
|
* host frame according to its public fixed-step configuration.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import type { PibblNode } from "@pibbl/core";
|
|
9
9
|
/**
|
|
10
10
|
* Caller-owned canvas, root factory, and observation callback for deterministic physics testing.
|
|
11
11
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { pibblSync } from "../../sync.js";
|
|
2
2
|
import {
|
|
3
3
|
PibblInternalManualSchedulerDriver,
|
|
4
4
|
pibblInternalInstallTestSchedulerDriver,
|
|
@@ -119,7 +119,7 @@ function createPhysicsTestHarness2D(options) {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
function mountRoot(options) {
|
|
122
|
-
return
|
|
122
|
+
return pibblSync(options.canvas, options.root());
|
|
123
123
|
}
|
|
124
124
|
function requireFrameCount(count) {
|
|
125
125
|
if (!Number.isSafeInteger(count) || count < 0) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/features/physics/2d-testing.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Deterministic test support for public 2D physics compositions.\n *\n * The harness drives Pibbl's existing realm scheduler. `advanceFrames()` advances\n * host frames; a physics world may run zero, one, or several fixed ticks in a\n * host frame according to its public fixed-step configuration.\n */\nimport {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/**\n * Deterministic test support for public 2D physics compositions.\n *\n * The harness drives Pibbl's existing realm scheduler. `advanceFrames()` advances\n * host frames; a physics world may run zero, one, or several fixed ticks in a\n * host frame according to its public fixed-step configuration.\n */\nimport type { PibblController, PibblNode } from \"@pibbl/core\";\nimport { pibblSync } from \"../../sync.js\";\nimport {\n PibblInternalManualSchedulerDriver,\n pibblInternalInstallTestSchedulerDriver,\n pibblInternalSnapshotRealmScheduler,\n} from \"@pibbl/core/internal\";\n\n/**\n * Caller-owned canvas, root factory, and observation callback for deterministic physics testing.\n *\n * @see {@link PibblNode}\n * @see {@link createPhysicsTestHarness2D}\n */\nexport interface PibblPhysicsTestHarness2DOptions<Observation> {\n /** The caller owns this canvas; disposing the harness never removes it. */\n readonly canvas: HTMLCanvasElement;\n /**\n * Creates a new public Pibbl root for the initial mount and each reset.\n * @returns The Pibbl root tree mounted by the test harness. See {@link PibblNode}.\n */\n readonly root: () => PibblNode;\n /**\n * Reads application state after a frame or action.\n * @returns The semantic state to expose through the harness's observe method.\n */\n readonly observe: () => Observation;\n}\n\n/**\n * A disposable test mount with explicit host-frame advancement and public-state observations.\n *\n * @see {@link createPhysicsTestHarness2D}\n */\nexport interface PibblPhysicsTestHarness2D<Observation> {\n /** Number of host callbacks currently requested by Pibbl (zero or one). */\n readonly pendingFrames: number;\n /**\n * Delivers one already-requested host frame at the current host time.\n * @returns Whether a pending frame was flushed.\n */\n flush(): boolean;\n /**\n * Advances up to `count` requested host frames by `milliseconds` each.\n * This advances the host clock, not a guaranteed count of physics fixed ticks.\n * @param count - Number of frames to advance.\n * @param milliseconds - Duration of each frame in milliseconds.\n * @returns The number of frames advanced.\n */\n advanceFrames(count: number, milliseconds?: number): number;\n /**\n * Runs an application action and delivers one resulting frame at the current time.\n * @param callback - Action to run within the harness's deterministic scheduling context.\n * @returns The action's return value.\n */\n act<Result>(callback: () => Result): Result;\n /**\n * Reads the caller-provided public observation without scheduling work.\n * @returns The current observation from the configured observer.\n */\n observe(): Observation;\n /** Disposes the mounted root and mounts a new one without moving host time backward. */\n reset(): void;\n /** Disposes the root and restores the previous realm scheduler driver. */\n dispose(): void;\n}\n\nconst DEFAULT_FRAME_MILLISECONDS = 1000 / 60;\n\n/**\n * Creates an isolated manual-clock test mount for one Pibbl 2D physics composition.\n *\n * It refuses a realm with an existing root because a Pibbl realm deliberately has\n * one scheduler. Use ordinary browser tests when a test needs multiple roots.\n *\n * @param options - Caller-owned canvas, root factory, and semantic state observer. See\n * {@link PibblPhysicsTestHarness2DOptions} .\n * @returns A harness owning the test mount and scheduler lifetime; dispose it after use. See\n * {@link PibblPhysicsTestHarness2D} .\n *\n * @see {@link PibblPhysicsTestHarness2DOptions}\n * @see {@link PibblPhysicsTestHarness2D}\n */\nexport function createPhysicsTestHarness2D<Observation>(\n options: PibblPhysicsTestHarness2DOptions<Observation>,\n): PibblPhysicsTestHarness2D<Observation> {\n const before = pibblInternalSnapshotRealmScheduler();\n if (before.registeredRoots !== 0) {\n throw new Error(\n \"createPhysicsTestHarness2D() requires an isolated Pibbl realm; dispose existing Pibbl roots before creating the harness.\",\n );\n }\n if (before.phase !== \"idle\" || before.pendingHostFrames !== 0) {\n throw new Error(\n \"createPhysicsTestHarness2D() cannot replace the Pibbl clock while realm work is active.\",\n );\n }\n\n const driver = new PibblInternalManualSchedulerDriver();\n let restoreDriver: (() => void) | undefined;\n let controller: PibblController | undefined;\n let disposed = false;\n let hostTime = 0;\n\n try {\n restoreDriver = pibblInternalInstallTestSchedulerDriver(driver);\n controller = mountRoot(options);\n } catch (error) {\n try {\n controller?.dispose();\n } finally {\n controller = undefined;\n restoreSchedulerDriver();\n }\n throw error;\n }\n\n const requireLive = (): void => {\n if (disposed) {\n throw new Error(\"This Pibbl physics 2D test harness has been disposed.\");\n }\n };\n const flush = (): boolean => {\n requireLive();\n if (driver.pendingHostFrames === 0) return false;\n driver.flush(hostTime);\n return true;\n };\n\n return Object.freeze({\n get pendingFrames(): number {\n return driver.pendingHostFrames;\n },\n flush,\n advanceFrames(\n count: number,\n milliseconds = DEFAULT_FRAME_MILLISECONDS,\n ): number {\n requireLive();\n requireFrameCount(count);\n requireMilliseconds(milliseconds);\n let advanced = 0;\n for (let index = 0; index < count; index++) {\n if (driver.pendingHostFrames === 0) break;\n const nextHostTime = hostTime + milliseconds;\n if (!Number.isFinite(nextHostTime)) {\n throw new RangeError(\n \"advanceFrames() cannot advance the host clock beyond a finite time.\",\n );\n }\n hostTime = nextHostTime;\n driver.flush(hostTime);\n advanced++;\n }\n return advanced;\n },\n act<Result>(callback: () => Result): Result {\n requireLive();\n const result = callback();\n flush();\n return result;\n },\n observe(): Observation {\n requireLive();\n return options.observe();\n },\n reset(): void {\n requireLive();\n const previousController = controller;\n controller = undefined;\n try {\n previousController?.dispose();\n controller = mountRoot(options);\n } catch (error) {\n disposed = true;\n try {\n restoreSchedulerDriver();\n } catch (restoreError) {\n throw new AggregateError(\n [error, restoreError],\n \"Pibbl physics 2D test harness reset failed and could not restore the scheduler driver.\",\n { cause: restoreError },\n );\n }\n throw error;\n }\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n const currentController = controller;\n controller = undefined;\n try {\n currentController?.dispose();\n } finally {\n restoreSchedulerDriver();\n }\n },\n });\n\n function restoreSchedulerDriver(): void {\n const restore = restoreDriver;\n restoreDriver = undefined;\n restore?.();\n }\n}\n\nfunction mountRoot<Observation>(\n options: PibblPhysicsTestHarness2DOptions<Observation>,\n): PibblController {\n return pibblSync(options.canvas, options.root());\n}\n\nfunction requireFrameCount(count: number): void {\n if (!Number.isSafeInteger(count) || count < 0) {\n throw new RangeError(\n \"advanceFrames(count) requires a non-negative safe integer.\",\n );\n }\n}\n\nfunction requireMilliseconds(milliseconds: number): void {\n if (!Number.isFinite(milliseconds) || milliseconds < 0) {\n throw new RangeError(\n \"advanceFrames(milliseconds) requires a finite non-negative number.\",\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "AAQA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA6DP,MAAM,6BAA6B,MAAO;AAgBnC,SAAS,2BACd,SACwC;AACxC,QAAM,SAAS,oCAAoC;AACnD,MAAI,OAAO,oBAAoB,GAAG;AAChC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,UAAU,UAAU,OAAO,sBAAsB,GAAG;AAC7D,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,IAAI,mCAAmC;AACtD,MAAI;AACJ,MAAI;AACJ,MAAI,WAAW;AACf,MAAI,WAAW;AAEf,MAAI;AACF,oBAAgB,wCAAwC,MAAM;AAC9D,iBAAa,UAAU,OAAO;AAAA,EAChC,SAAS,OAAO;AACd,QAAI;AACF,kBAAY,QAAQ;AAAA,IACtB,UAAE;AACA,mBAAa;AACb,6BAAuB;AAAA,IACzB;AACA,UAAM;AAAA,EACR;AAEA,QAAM,cAAc,MAAY;AAC9B,QAAI,UAAU;AACZ,YAAM,IAAI,MAAM,uDAAuD;AAAA,IACzE;AAAA,EACF;AACA,QAAM,QAAQ,MAAe;AAC3B,gBAAY;AACZ,QAAI,OAAO,sBAAsB,EAAG,QAAO;AAC3C,WAAO,MAAM,QAAQ;AACrB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,OAAO;AAAA,IACnB,IAAI,gBAAwB;AAC1B,aAAO,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA,cACE,OACA,eAAe,4BACP;AACR,kBAAY;AACZ,wBAAkB,KAAK;AACvB,0BAAoB,YAAY;AAChC,UAAI,WAAW;AACf,eAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC1C,YAAI,OAAO,sBAAsB,EAAG;AACpC,cAAM,eAAe,WAAW;AAChC,YAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAClC,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AACA,mBAAW;AACX,eAAO,MAAM,QAAQ;AACrB;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,IAAY,UAAgC;AAC1C,kBAAY;AACZ,YAAM,SAAS,SAAS;AACxB,YAAM;AACN,aAAO;AAAA,IACT;AAAA,IACA,UAAuB;AACrB,kBAAY;AACZ,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAAA,IACA,QAAc;AACZ,kBAAY;AACZ,YAAM,qBAAqB;AAC3B,mBAAa;AACb,UAAI;AACF,4BAAoB,QAAQ;AAC5B,qBAAa,UAAU,OAAO;AAAA,MAChC,SAAS,OAAO;AACd,mBAAW;AACX,YAAI;AACF,iCAAuB;AAAA,QACzB,SAAS,cAAc;AACrB,gBAAM,IAAI;AAAA,YACR,CAAC,OAAO,YAAY;AAAA,YACpB;AAAA,YACA,EAAE,OAAO,aAAa;AAAA,UACxB;AAAA,QACF;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,UAAgB;AACd,UAAI,SAAU;AACd,iBAAW;AACX,YAAM,oBAAoB;AAC1B,mBAAa;AACb,UAAI;AACF,2BAAmB,QAAQ;AAAA,MAC7B,UAAE;AACA,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AAED,WAAS,yBAA+B;AACtC,UAAM,UAAU;AAChB,oBAAgB;AAChB,cAAU;AAAA,EACZ;AACF;AAEA,SAAS,UACP,SACiB;AACjB,SAAO,UAAU,QAAQ,QAAQ,QAAQ,KAAK,CAAC;AACjD;AAEA,SAAS,kBAAkB,OAAqB;AAC9C,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC7C,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,oBAAoB,cAA4B;AACvD,MAAI,CAAC,OAAO,SAAS,YAAY,KAAK,eAAe,GAAG;AACtD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PibblPhysicsAabb2D, PibblPhysicsPose2D, PibblPhysicsRay2D, PibblPhysicsShape2D, PibblPhysicsVector2 } from "./2d-geometry.js";
|
|
2
|
-
import type { PibblPhysicsQueryHit2D, PibblPhysicsQueryMatch2D,
|
|
2
|
+
import type { PibblPhysicsQueryHit2D, PibblPhysicsQueryMatch2D, PibblPhysicsQueryOptions2D, PibblPhysicsBodyHandle2D, PibblPhysicsWorldHandle2D } from "./lib/2d/types.js";
|
|
3
3
|
import { collider2D, dynamicBody2D, kinematicBody2D, staticBody2D } from "./lib/2d/runtime/descriptors.js";
|
|
4
4
|
import { PhysicsWorld2D, pibblPhysicsWorld2D } from "./lib/2d/runtime/world-component.js";
|
|
5
5
|
import { Capsule2D, Chain2D, PhysicsShape2D, Segment2D } from "./lib/2d/canvas/components.js";
|
|
@@ -16,96 +16,149 @@ export { pibblPhysicsBody2D };
|
|
|
16
16
|
export { pibblPhysicsWorld2D };
|
|
17
17
|
export { applyForce2D, applyImpulse2D, applyTorque2D, disableBody2D, enableBody2D, setAngularVelocity2D, setLinearVelocity2D, sleepBody2D, teleportBody2D, wakeBody2D, };
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Tests whether the committed world has any ray match, stopping at the first match.
|
|
20
20
|
*
|
|
21
21
|
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
22
22
|
* @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.
|
|
23
|
-
* @param options -
|
|
24
|
-
* @returns
|
|
25
|
-
|
|
23
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
24
|
+
* @returns Whether a matching collider exists.
|
|
25
|
+
*/
|
|
26
|
+
export declare function raycastAny2D(world: PibblPhysicsWorldHandle2D, ray: PibblPhysicsRay2D, options?: PibblPhysicsQueryOptions2D): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the first ray result ordered by time of impact, distance, then collider identity, or null.
|
|
26
29
|
*
|
|
27
|
-
* @
|
|
28
|
-
* @
|
|
29
|
-
* @
|
|
30
|
-
* @
|
|
31
|
-
* @see {@link PibblPhysicsQueryHit2D}
|
|
32
|
-
* @see {@link PibblPhysicsQueryMode}
|
|
30
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
31
|
+
* @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.
|
|
32
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
33
|
+
* @returns One result or null. See {@link PibblPhysicsQueryHit2D}.
|
|
33
34
|
*/
|
|
34
|
-
export declare function
|
|
35
|
+
export declare function raycastClosest2D(world: PibblPhysicsWorldHandle2D, ray: PibblPhysicsRay2D, options?: PibblPhysicsQueryOptions2D): PibblPhysicsQueryHit2D | null;
|
|
35
36
|
/**
|
|
36
|
-
*
|
|
37
|
+
* Returns all ray results ordered by time of impact, distance, then collider identity as a frozen array.
|
|
38
|
+
*
|
|
39
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
40
|
+
* @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.
|
|
41
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
42
|
+
* @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryHit2D}.
|
|
43
|
+
*/
|
|
44
|
+
export declare function raycastAll2D(world: PibblPhysicsWorldHandle2D, ray: PibblPhysicsRay2D, options?: PibblPhysicsQueryOptions2D): readonly PibblPhysicsQueryHit2D[];
|
|
45
|
+
/**
|
|
46
|
+
* Tests whether the committed world has any shape sweep match, stopping at the first match.
|
|
37
47
|
*
|
|
38
48
|
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
39
49
|
* @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.
|
|
40
50
|
* @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.
|
|
41
51
|
* @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.
|
|
42
|
-
* @param options -
|
|
43
|
-
* @returns
|
|
44
|
-
|
|
52
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
53
|
+
* @returns Whether a matching collider exists.
|
|
54
|
+
*/
|
|
55
|
+
export declare function shapeCastAny2D(world: PibblPhysicsWorldHandle2D, shape: PibblPhysicsShape2D, from: PibblPhysicsPose2D, translation: PibblPhysicsVector2, options?: PibblPhysicsQueryOptions2D): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Returns the first shape sweep result ordered by time of impact, distance, then collider identity, or null.
|
|
45
58
|
*
|
|
46
|
-
* @
|
|
47
|
-
* @
|
|
48
|
-
* @
|
|
49
|
-
* @
|
|
50
|
-
* @
|
|
51
|
-
* @
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
60
|
+
* @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.
|
|
61
|
+
* @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.
|
|
62
|
+
* @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.
|
|
63
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
64
|
+
* @returns One result or null. See {@link PibblPhysicsQueryHit2D}.
|
|
65
|
+
*/
|
|
66
|
+
export declare function shapeCastClosest2D(world: PibblPhysicsWorldHandle2D, shape: PibblPhysicsShape2D, from: PibblPhysicsPose2D, translation: PibblPhysicsVector2, options?: PibblPhysicsQueryOptions2D): PibblPhysicsQueryHit2D | null;
|
|
67
|
+
/**
|
|
68
|
+
* Returns all shape sweep results ordered by time of impact, distance, then collider identity as a frozen array.
|
|
69
|
+
*
|
|
70
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
71
|
+
* @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.
|
|
72
|
+
* @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.
|
|
73
|
+
* @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.
|
|
74
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
75
|
+
* @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryHit2D}.
|
|
76
|
+
*/
|
|
77
|
+
export declare function shapeCastAll2D(world: PibblPhysicsWorldHandle2D, shape: PibblPhysicsShape2D, from: PibblPhysicsPose2D, translation: PibblPhysicsVector2, options?: PibblPhysicsQueryOptions2D): readonly PibblPhysicsQueryHit2D[];
|
|
78
|
+
/**
|
|
79
|
+
* Tests whether the committed world has any shape overlap match, stopping at the first match.
|
|
80
|
+
*
|
|
81
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
82
|
+
* @param shape - Shape to test. See {@link PibblPhysicsShape2D}.
|
|
83
|
+
* @param pose - Shape pose. See {@link PibblPhysicsPose2D}.
|
|
84
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
85
|
+
* @returns Whether a matching collider exists.
|
|
54
86
|
*/
|
|
55
|
-
export declare function
|
|
87
|
+
export declare function hasShapeOverlap2D(world: PibblPhysicsWorldHandle2D, shape: PibblPhysicsShape2D, pose: PibblPhysicsPose2D, options?: PibblPhysicsQueryOptions2D): boolean;
|
|
56
88
|
/**
|
|
57
|
-
*
|
|
89
|
+
* Returns the first shape overlap result ordered by collider index, then generation, or null.
|
|
58
90
|
*
|
|
59
91
|
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
60
|
-
* @param shape - Shape to test
|
|
92
|
+
* @param shape - Shape to test. See {@link PibblPhysicsShape2D}.
|
|
61
93
|
* @param pose - Shape pose. See {@link PibblPhysicsPose2D}.
|
|
62
|
-
* @param options -
|
|
63
|
-
* @returns
|
|
64
|
-
|
|
94
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
95
|
+
* @returns One result or null. See {@link PibblPhysicsQueryMatch2D}.
|
|
96
|
+
*/
|
|
97
|
+
export declare function findShapeOverlap2D(world: PibblPhysicsWorldHandle2D, shape: PibblPhysicsShape2D, pose: PibblPhysicsPose2D, options?: PibblPhysicsQueryOptions2D): PibblPhysicsQueryMatch2D | null;
|
|
98
|
+
/**
|
|
99
|
+
* Returns all shape overlap results ordered by collider index, then generation as a frozen array.
|
|
65
100
|
*
|
|
66
|
-
* @
|
|
67
|
-
* @
|
|
68
|
-
* @
|
|
69
|
-
* @
|
|
70
|
-
* @
|
|
71
|
-
* @see {@link PibblPhysicsQueryMatch2D}
|
|
72
|
-
* @see {@link PibblPhysicsQueryMode}
|
|
101
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
102
|
+
* @param shape - Shape to test. See {@link PibblPhysicsShape2D}.
|
|
103
|
+
* @param pose - Shape pose. See {@link PibblPhysicsPose2D}.
|
|
104
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
105
|
+
* @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryMatch2D}.
|
|
73
106
|
*/
|
|
74
|
-
export declare function
|
|
107
|
+
export declare function findAllShapeOverlaps2D(world: PibblPhysicsWorldHandle2D, shape: PibblPhysicsShape2D, pose: PibblPhysicsPose2D, options?: PibblPhysicsQueryOptions2D): readonly PibblPhysicsQueryMatch2D[];
|
|
75
108
|
/**
|
|
76
|
-
*
|
|
109
|
+
* Tests whether the committed world has any bounds intersection match, stopping at the first match.
|
|
77
110
|
*
|
|
78
111
|
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
79
|
-
* @param bounds - Axis-aligned query bounds
|
|
80
|
-
* @param options -
|
|
81
|
-
* @returns
|
|
82
|
-
|
|
112
|
+
* @param bounds - Axis-aligned query bounds. See {@link PibblPhysicsAabb2D}.
|
|
113
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
114
|
+
* @returns Whether a matching collider exists.
|
|
115
|
+
*/
|
|
116
|
+
export declare function hasAabbMatch2D(world: PibblPhysicsWorldHandle2D, bounds: PibblPhysicsAabb2D, options?: PibblPhysicsQueryOptions2D): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Returns the first bounds intersection result ordered by collider index, then generation, or null.
|
|
83
119
|
*
|
|
84
|
-
* @
|
|
85
|
-
* @
|
|
86
|
-
* @
|
|
87
|
-
* @
|
|
88
|
-
* @see {@link PibblPhysicsQueryMatch2D}
|
|
89
|
-
* @see {@link PibblPhysicsQueryMode}
|
|
120
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
121
|
+
* @param bounds - Axis-aligned query bounds. See {@link PibblPhysicsAabb2D}.
|
|
122
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
123
|
+
* @returns One result or null. See {@link PibblPhysicsQueryMatch2D}.
|
|
90
124
|
*/
|
|
91
|
-
export declare function
|
|
125
|
+
export declare function findAabbMatch2D(world: PibblPhysicsWorldHandle2D, bounds: PibblPhysicsAabb2D, options?: PibblPhysicsQueryOptions2D): PibblPhysicsQueryMatch2D | null;
|
|
92
126
|
/**
|
|
93
|
-
*
|
|
127
|
+
* Returns all bounds intersection results ordered by collider index, then generation as a frozen array.
|
|
94
128
|
*
|
|
95
129
|
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
96
|
-
* @param
|
|
97
|
-
* @param options -
|
|
98
|
-
* @returns
|
|
99
|
-
|
|
130
|
+
* @param bounds - Axis-aligned query bounds. See {@link PibblPhysicsAabb2D}.
|
|
131
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
132
|
+
* @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryMatch2D}.
|
|
133
|
+
*/
|
|
134
|
+
export declare function findAllAabbMatches2D(world: PibblPhysicsWorldHandle2D, bounds: PibblPhysicsAabb2D, options?: PibblPhysicsQueryOptions2D): readonly PibblPhysicsQueryMatch2D[];
|
|
135
|
+
/**
|
|
136
|
+
* Tests whether the committed world has any point containment match, stopping at the first match.
|
|
100
137
|
*
|
|
101
|
-
* @
|
|
102
|
-
* @
|
|
103
|
-
* @
|
|
104
|
-
* @
|
|
105
|
-
|
|
106
|
-
|
|
138
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
139
|
+
* @param point - Point in simulation coordinates. See {@link PibblPhysicsVector2}.
|
|
140
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
141
|
+
* @returns Whether a matching collider exists.
|
|
142
|
+
*/
|
|
143
|
+
export declare function hasPointMatch2D(world: PibblPhysicsWorldHandle2D, point: PibblPhysicsVector2, options?: PibblPhysicsQueryOptions2D): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Returns the first point containment result ordered by collider index, then generation, or null.
|
|
146
|
+
*
|
|
147
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
148
|
+
* @param point - Point in simulation coordinates. See {@link PibblPhysicsVector2}.
|
|
149
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
150
|
+
* @returns One result or null. See {@link PibblPhysicsQueryMatch2D}.
|
|
151
|
+
*/
|
|
152
|
+
export declare function findPointMatch2D(world: PibblPhysicsWorldHandle2D, point: PibblPhysicsVector2, options?: PibblPhysicsQueryOptions2D): PibblPhysicsQueryMatch2D | null;
|
|
153
|
+
/**
|
|
154
|
+
* Returns all point containment results ordered by collider index, then generation as a frozen array.
|
|
155
|
+
*
|
|
156
|
+
* @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.
|
|
157
|
+
* @param point - Point in simulation coordinates. See {@link PibblPhysicsVector2}.
|
|
158
|
+
* @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.
|
|
159
|
+
* @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryMatch2D}.
|
|
107
160
|
*/
|
|
108
|
-
export declare function
|
|
161
|
+
export declare function findAllPointMatches2D(world: PibblPhysicsWorldHandle2D, point: PibblPhysicsVector2, options?: PibblPhysicsQueryOptions2D): readonly PibblPhysicsQueryMatch2D[];
|
|
109
162
|
/**
|
|
110
163
|
* Converts root-logical pointer coordinates to this world's simulation space.
|
|
111
164
|
*
|
|
@@ -37,29 +37,50 @@ import {
|
|
|
37
37
|
shapeCastAgainstShape2D
|
|
38
38
|
} from "./lib/2d/collision/casts.js";
|
|
39
39
|
export * from "./lib/2d/types.js";
|
|
40
|
-
function
|
|
41
|
-
return requirePhysicsWorld2DController(world).raycast(ray, options);
|
|
42
|
-
}
|
|
43
|
-
function
|
|
44
|
-
return requirePhysicsWorld2DController(world).
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
function
|
|
59
|
-
return requirePhysicsWorld2DController(world).
|
|
60
|
-
}
|
|
61
|
-
function
|
|
62
|
-
return requirePhysicsWorld2DController(world).
|
|
40
|
+
function raycastAny2D(world, ray, options) {
|
|
41
|
+
return requirePhysicsWorld2DController(world).raycast(ray, { ...options, mode: "any" });
|
|
42
|
+
}
|
|
43
|
+
function raycastClosest2D(world, ray, options) {
|
|
44
|
+
return requirePhysicsWorld2DController(world).raycast(ray, { ...options, mode: "closest" });
|
|
45
|
+
}
|
|
46
|
+
function raycastAll2D(world, ray, options) {
|
|
47
|
+
return requirePhysicsWorld2DController(world).raycast(ray, { ...options, mode: "all" });
|
|
48
|
+
}
|
|
49
|
+
function shapeCastAny2D(world, shape, from, translation, options) {
|
|
50
|
+
return requirePhysicsWorld2DController(world).shapeCast(shape, from, translation, { ...options, mode: "any" });
|
|
51
|
+
}
|
|
52
|
+
function shapeCastClosest2D(world, shape, from, translation, options) {
|
|
53
|
+
return requirePhysicsWorld2DController(world).shapeCast(shape, from, translation, { ...options, mode: "closest" });
|
|
54
|
+
}
|
|
55
|
+
function shapeCastAll2D(world, shape, from, translation, options) {
|
|
56
|
+
return requirePhysicsWorld2DController(world).shapeCast(shape, from, translation, { ...options, mode: "all" });
|
|
57
|
+
}
|
|
58
|
+
function hasShapeOverlap2D(world, shape, pose, options) {
|
|
59
|
+
return requirePhysicsWorld2DController(world).overlapShape(shape, pose, { ...options, mode: "any" });
|
|
60
|
+
}
|
|
61
|
+
function findShapeOverlap2D(world, shape, pose, options) {
|
|
62
|
+
return requirePhysicsWorld2DController(world).overlapShape(shape, pose, { ...options, mode: "closest" });
|
|
63
|
+
}
|
|
64
|
+
function findAllShapeOverlaps2D(world, shape, pose, options) {
|
|
65
|
+
return requirePhysicsWorld2DController(world).overlapShape(shape, pose, { ...options, mode: "all" });
|
|
66
|
+
}
|
|
67
|
+
function hasAabbMatch2D(world, bounds, options) {
|
|
68
|
+
return requirePhysicsWorld2DController(world).queryAabb(bounds, { ...options, mode: "any" });
|
|
69
|
+
}
|
|
70
|
+
function findAabbMatch2D(world, bounds, options) {
|
|
71
|
+
return requirePhysicsWorld2DController(world).queryAabb(bounds, { ...options, mode: "closest" });
|
|
72
|
+
}
|
|
73
|
+
function findAllAabbMatches2D(world, bounds, options) {
|
|
74
|
+
return requirePhysicsWorld2DController(world).queryAabb(bounds, { ...options, mode: "all" });
|
|
75
|
+
}
|
|
76
|
+
function hasPointMatch2D(world, point, options) {
|
|
77
|
+
return requirePhysicsWorld2DController(world).queryPoint(point, { ...options, mode: "any" });
|
|
78
|
+
}
|
|
79
|
+
function findPointMatch2D(world, point, options) {
|
|
80
|
+
return requirePhysicsWorld2DController(world).queryPoint(point, { ...options, mode: "closest" });
|
|
81
|
+
}
|
|
82
|
+
function findAllPointMatches2D(world, point, options) {
|
|
83
|
+
return requirePhysicsWorld2DController(world).queryPoint(point, { ...options, mode: "all" });
|
|
63
84
|
}
|
|
64
85
|
function toPhysicsPoint2D(world, point) {
|
|
65
86
|
return requirePhysicsWorld2DController(world).convertPoint(point, false);
|
|
@@ -94,21 +115,31 @@ export {
|
|
|
94
115
|
disableBody2D,
|
|
95
116
|
dynamicBody2D,
|
|
96
117
|
enableBody2D,
|
|
118
|
+
findAabbMatch2D,
|
|
119
|
+
findAllAabbMatches2D,
|
|
120
|
+
findAllPointMatches2D,
|
|
121
|
+
findAllShapeOverlaps2D,
|
|
122
|
+
findPointMatch2D,
|
|
123
|
+
findShapeOverlap2D,
|
|
97
124
|
fromPhysicsPoint2D,
|
|
125
|
+
hasAabbMatch2D,
|
|
126
|
+
hasPointMatch2D,
|
|
127
|
+
hasShapeOverlap2D,
|
|
98
128
|
inspectPhysics2D,
|
|
99
129
|
kinematicBody2D,
|
|
100
|
-
overlapShape2D,
|
|
101
130
|
physicsObstacles2D,
|
|
102
131
|
pibblPhysicsBody2D,
|
|
103
132
|
pibblPhysicsWorld2D,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
133
|
+
raycastAll2D,
|
|
134
|
+
raycastAny2D,
|
|
135
|
+
raycastClosest2D,
|
|
107
136
|
raycastShape2D,
|
|
108
137
|
setAngularVelocity2D,
|
|
109
138
|
setLinearVelocity2D,
|
|
110
|
-
shapeCast2D,
|
|
111
139
|
shapeCastAgainstShape2D,
|
|
140
|
+
shapeCastAll2D,
|
|
141
|
+
shapeCastAny2D,
|
|
142
|
+
shapeCastClosest2D,
|
|
112
143
|
sleepBody2D,
|
|
113
144
|
staticBody2D,
|
|
114
145
|
teleportBody2D,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/features/physics/2d.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PibblPhysicsInspection2D, PibblPhysicsBodyInspection2D } from \"./lib/2d/inspection-types.js\";\nimport type {\n PibblPhysicsAabb2D,\n PibblPhysicsPose2D,\n PibblPhysicsRay2D,\n PibblPhysicsShape2D,\n PibblPhysicsVector2,\n} from \"./2d-geometry.js\";\nimport type {\n PibblPhysicsQueryHit2D,\n PibblPhysicsQueryMatch2D,\n PibblPhysicsQueryMode,\n PibblPhysicsQueryOptions2D,\n PibblPhysicsQueryResult2D,\n PibblPhysicsBodyHandle2D,\n PibblPhysicsWorldHandle2D,\n} from \"./lib/2d/types.js\";\nimport {\n collider2D,\n dynamicBody2D,\n kinematicBody2D,\n staticBody2D,\n} from \"./lib/2d/runtime/descriptors.js\";\nimport {\n PhysicsWorld2D,\n pibblPhysicsWorld2D,\n} from \"./lib/2d/runtime/world-component.js\";\nimport {\n Capsule2D,\n Chain2D,\n PhysicsShape2D,\n Segment2D,\n} from \"./lib/2d/canvas/components.js\";\nimport { withPhysicsShape2D } from \"./lib/2d/canvas/custom.js\";\nimport {\n applyForce2D,\n applyImpulse2D,\n applyTorque2D,\n pibblPhysicsBody2D,\n disableBody2D,\n enableBody2D,\n isPhysicsBodyHandle2D,\n physicsBodyHandleBinding2D,\n setAngularVelocity2D,\n setLinearVelocity2D,\n sleepBody2D,\n teleportBody2D,\n wakeBody2D,\n} from \"./lib/2d/runtime/body-handle.js\";\nimport { requirePhysicsWorld2DController } from \"./lib/2d/runtime/controller.js\";\n\nexport * from \"./2d-geometry.js\";\nexport {\n raycastShape2D,\n shapeCastAgainstShape2D,\n} from \"./lib/2d/collision/casts.js\";\nexport * from \"./lib/2d/types.js\";\n\nexport { PhysicsWorld2D };\nexport { PhysicsShape2D, Capsule2D, Segment2D, Chain2D };\n\nexport { collider2D, dynamicBody2D, kinematicBody2D, staticBody2D };\nexport { withPhysicsShape2D };\n\nexport { pibblPhysicsBody2D };\n\nexport { pibblPhysicsWorld2D };\n\nexport {\n applyForce2D,\n applyImpulse2D,\n applyTorque2D,\n disableBody2D,\n enableBody2D,\n setAngularVelocity2D,\n setLinearVelocity2D,\n sleepBody2D,\n teleportBody2D,\n wakeBody2D,\n};\n\n/**\n * Queries the committed world with a ray using the selected result mode and filters.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.\n * @param options - Result mode and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns A boolean for any mode, one hit or null for closest mode, or ordered hits for all mode.\n * See {@link PibblPhysicsQueryResult2D} , {@link PibblPhysicsQueryHit2D} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsRay2D}\n * @see {@link PibblPhysicsQueryOptions2D}\n * @see {@link PibblPhysicsQueryResult2D}\n * @see {@link PibblPhysicsQueryHit2D}\n * @see {@link PibblPhysicsQueryMode}\n */\nexport function raycast2D<Mode extends PibblPhysicsQueryMode = \"closest\">(\n world: PibblPhysicsWorldHandle2D,\n ray: PibblPhysicsRay2D,\n options?: PibblPhysicsQueryOptions2D<Mode>,\n): PibblPhysicsQueryResult2D<Mode, PibblPhysicsQueryHit2D> {\n return requirePhysicsWorld2DController(world).raycast(ray, options);\n}\n\n/**\n * Sweeps a shape through the committed world using the selected result mode and filters.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.\n * @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.\n * @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.\n * @param options - Result mode and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns A boolean for any mode, one hit or null for closest mode, or ordered hits for all mode.\n * See {@link PibblPhysicsQueryResult2D} , {@link PibblPhysicsQueryHit2D} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsQueryOptions2D}\n * @see {@link PibblPhysicsQueryResult2D}\n * @see {@link PibblPhysicsQueryHit2D}\n * @see {@link PibblPhysicsQueryMode}\n */\nexport function shapeCast2D<Mode extends PibblPhysicsQueryMode = \"closest\">(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n from: PibblPhysicsPose2D,\n translation: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D<Mode>,\n): PibblPhysicsQueryResult2D<Mode, PibblPhysicsQueryHit2D> {\n return requirePhysicsWorld2DController(world).shapeCast(\n shape,\n from,\n translation,\n options,\n );\n}\n\n/**\n * Queries committed world colliders overlapping a posed shape.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to test for overlaps. See {@link PibblPhysicsShape2D}.\n * @param pose - Shape pose. See {@link PibblPhysicsPose2D}.\n * @param options - Result mode and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns A boolean for any mode, one match or null for closest mode, or matches for all mode.\n * See {@link PibblPhysicsQueryResult2D} , {@link PibblPhysicsQueryMatch2D} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsShape2D}\n * @see {@link PibblPhysicsPose2D}\n * @see {@link PibblPhysicsQueryOptions2D}\n * @see {@link PibblPhysicsQueryResult2D}\n * @see {@link PibblPhysicsQueryMatch2D}\n * @see {@link PibblPhysicsQueryMode}\n */\nexport function overlapShape2D<Mode extends PibblPhysicsQueryMode = \"closest\">(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n pose: PibblPhysicsPose2D,\n options?: PibblPhysicsQueryOptions2D<Mode>,\n): PibblPhysicsQueryResult2D<Mode, PibblPhysicsQueryMatch2D> {\n return requirePhysicsWorld2DController(world).overlapShape(\n shape,\n pose,\n options,\n );\n}\n\n/**\n * Queries committed world colliders intersecting an axis-aligned region.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param bounds - Axis-aligned query bounds in public coordinates. See {@link PibblPhysicsAabb2D}.\n * @param options - Result mode and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns A boolean for any mode, one match or null for closest mode, or matches for all mode.\n * See {@link PibblPhysicsQueryResult2D} , {@link PibblPhysicsQueryMatch2D} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsAabb2D}\n * @see {@link PibblPhysicsQueryOptions2D}\n * @see {@link PibblPhysicsQueryResult2D}\n * @see {@link PibblPhysicsQueryMatch2D}\n * @see {@link PibblPhysicsQueryMode}\n */\nexport function queryAabb2D<Mode extends PibblPhysicsQueryMode = \"closest\">(\n world: PibblPhysicsWorldHandle2D,\n bounds: PibblPhysicsAabb2D,\n options?: PibblPhysicsQueryOptions2D<Mode>,\n): PibblPhysicsQueryResult2D<Mode, PibblPhysicsQueryMatch2D> {\n return requirePhysicsWorld2DController(world).queryAabb(bounds, options);\n}\n\n/**\n * Queries committed world colliders containing a point.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param point - Point in public coordinates. See {@link PibblPhysicsVector2}.\n * @param options - Result mode and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns A boolean for any mode, one match or null for closest mode, or matches for all mode.\n * See {@link PibblPhysicsQueryResult2D} , {@link PibblPhysicsQueryMatch2D} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsVector2}\n * @see {@link PibblPhysicsQueryOptions2D}\n * @see {@link PibblPhysicsQueryResult2D}\n * @see {@link PibblPhysicsQueryMatch2D}\n * @see {@link PibblPhysicsQueryMode}\n */\nexport function queryPoint2D<Mode extends PibblPhysicsQueryMode = \"closest\">(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D<Mode>,\n): PibblPhysicsQueryResult2D<Mode, PibblPhysicsQueryMatch2D> {\n return requirePhysicsWorld2DController(world).queryPoint(point, options);\n}\n\n/**\n * Converts root-logical pointer coordinates to this world's simulation space.\n *\n * @param world - World providing unit and coordinate conversion. See\n * {@link PibblPhysicsWorldHandle2D} .\n * @param point - Point in public Canvas coordinates. See {@link PibblPhysicsVector2}.\n * @returns The equivalent point in this world's local simulation space. See\n * {@link PibblPhysicsVector2} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsVector2}\n */\nexport function toPhysicsPoint2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n): PibblPhysicsVector2 {\n return requirePhysicsWorld2DController(world).convertPoint(point, false);\n}\n\n/**\n * Converts a simulation-space point to root-logical Canvas coordinates.\n *\n * @param world - World providing unit and coordinate conversion. See\n * {@link PibblPhysicsWorldHandle2D} .\n * @param point - Point in this world's local simulation space. See {@link PibblPhysicsVector2}.\n * @returns The equivalent point in public Canvas coordinates. See {@link PibblPhysicsVector2}.\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsVector2}\n */\nexport function fromPhysicsPoint2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n): PibblPhysicsVector2 {\n return requirePhysicsWorld2DController(world).convertPoint(point, true);\n}\n\nexport type {\n PibblPhysicsInspection2D,\n PibblPhysicsBodyInspection2D,\n PibblPhysicsColliderInspection2D,\n PibblPhysicsContactInspection2D,\n} from \"./lib/2d/inspection-types.js\";\n\n/**\n * Returns immutable JSON-safe observations without advancing the simulation. See\n * {@link PibblPhysicsWorldHandle2D}.\n * @param world - World to inspect. See {@link PibblPhysicsWorldHandle2D}.\n * @returns Current world simulation and ownership diagnostics.\n */\nexport function inspectPhysics2D(\n world: PibblPhysicsWorldHandle2D,\n): import(\"./lib/2d/inspection-types.js\").PibblPhysicsInspection2D;\n\n/**\n * Returns the immutable observation for this currently bound body, if any. See\n * {@link PibblPhysicsBodyHandle2D}.\n * @param body - Body to inspect. See {@link PibblPhysicsBodyHandle2D}.\n * @returns Current body diagnostics, or undefined when the handle has no live body.\n */\nexport function inspectPhysics2D(\n body: PibblPhysicsBodyHandle2D,\n): import(\"./lib/2d/inspection-types.js\").PibblPhysicsBodyInspection2D | undefined;\n/**\n * Returns a diagnostic snapshot of a live world or body, or undefined when unavailable.\n *\n * @param target - World or body handle to inspect. See {@link PibblPhysicsWorldHandle2D} ,\n * {@link PibblPhysicsBodyHandle2D} .\n * @returns The corresponding diagnostics, or undefined for an unmounted body.\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsBodyHandle2D}\n * @see {@link PibblPhysicsInspection2D}\n * @see {@link PibblPhysicsBodyInspection2D}\n */\nexport function inspectPhysics2D(\n target: PibblPhysicsWorldHandle2D | PibblPhysicsBodyHandle2D,\n):\n | import(\"./lib/2d/inspection-types.js\").PibblPhysicsInspection2D\n | import(\"./lib/2d/inspection-types.js\").PibblPhysicsBodyInspection2D\n | undefined {\n if (isPhysicsBodyHandle2D(target)) {\n const binding = physicsBodyHandleBinding2D(target);\n return binding?.controller.inspectBody(binding.bodyId);\n }\n return requirePhysicsWorld2DController(target).inspect();\n}\n\nexport {\n PhysicsDebug2D,\n type PibblPhysicsDebug2DProps,\n} from \"./lib/2d/canvas/debug.js\";\n\n/**\n * A borrowed committed solid batch, structurally compatible with a flow obstacle source.\n *\n * @param world - World supplying collider geometry. See {@link PibblPhysicsWorldHandle2D}.\n * @returns An obstacle source whose read method returns the current revision and packed geometry.\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n */\nexport function physicsObstacles2D(world: PibblPhysicsWorldHandle2D): Readonly<{\n read(): Readonly<{ revision: number; boxes: Float64Array; ellipses: Float64Array; polygons: Float64Array }>;\n}> {\n return requirePhysicsWorld2DController(world).getObstacleSource();\n}\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { PibblPhysicsInspection2D, PibblPhysicsBodyInspection2D } from \"./lib/2d/inspection-types.js\";\nimport type {\n PibblPhysicsAabb2D,\n PibblPhysicsPose2D,\n PibblPhysicsRay2D,\n PibblPhysicsShape2D,\n PibblPhysicsVector2,\n} from \"./2d-geometry.js\";\nimport type {\n PibblPhysicsQueryHit2D,\n PibblPhysicsQueryMatch2D,\n PibblPhysicsQueryOptions2D,\n PibblPhysicsBodyHandle2D,\n PibblPhysicsWorldHandle2D,\n} from \"./lib/2d/types.js\";\nimport {\n collider2D,\n dynamicBody2D,\n kinematicBody2D,\n staticBody2D,\n} from \"./lib/2d/runtime/descriptors.js\";\nimport {\n PhysicsWorld2D,\n pibblPhysicsWorld2D,\n} from \"./lib/2d/runtime/world-component.js\";\nimport {\n Capsule2D,\n Chain2D,\n PhysicsShape2D,\n Segment2D,\n} from \"./lib/2d/canvas/components.js\";\nimport { withPhysicsShape2D } from \"./lib/2d/canvas/custom.js\";\nimport {\n applyForce2D,\n applyImpulse2D,\n applyTorque2D,\n pibblPhysicsBody2D,\n disableBody2D,\n enableBody2D,\n isPhysicsBodyHandle2D,\n physicsBodyHandleBinding2D,\n setAngularVelocity2D,\n setLinearVelocity2D,\n sleepBody2D,\n teleportBody2D,\n wakeBody2D,\n} from \"./lib/2d/runtime/body-handle.js\";\nimport { requirePhysicsWorld2DController } from \"./lib/2d/runtime/controller.js\";\n\nexport * from \"./2d-geometry.js\";\nexport {\n raycastShape2D,\n shapeCastAgainstShape2D,\n} from \"./lib/2d/collision/casts.js\";\nexport * from \"./lib/2d/types.js\";\n\nexport { PhysicsWorld2D };\nexport { PhysicsShape2D, Capsule2D, Segment2D, Chain2D };\n\nexport { collider2D, dynamicBody2D, kinematicBody2D, staticBody2D };\nexport { withPhysicsShape2D };\n\nexport { pibblPhysicsBody2D };\n\nexport { pibblPhysicsWorld2D };\n\nexport {\n applyForce2D,\n applyImpulse2D,\n applyTorque2D,\n disableBody2D,\n enableBody2D,\n setAngularVelocity2D,\n setLinearVelocity2D,\n sleepBody2D,\n teleportBody2D,\n wakeBody2D,\n};\n\n/**\n * Tests whether the committed world has any ray match, stopping at the first match.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Whether a matching collider exists.\n */\nexport function raycastAny2D(\n world: PibblPhysicsWorldHandle2D,\n ray: PibblPhysicsRay2D,\n options?: PibblPhysicsQueryOptions2D,\n): boolean {\n return requirePhysicsWorld2DController(world).raycast(ray, { ...options, mode: \"any\" });\n}\n\n/**\n * Returns the first ray result ordered by time of impact, distance, then collider identity, or null.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns One result or null. See {@link PibblPhysicsQueryHit2D}.\n */\nexport function raycastClosest2D(\n world: PibblPhysicsWorldHandle2D,\n ray: PibblPhysicsRay2D,\n options?: PibblPhysicsQueryOptions2D,\n): PibblPhysicsQueryHit2D | null {\n return requirePhysicsWorld2DController(world).raycast(ray, { ...options, mode: \"closest\" });\n}\n\n/**\n * Returns all ray results ordered by time of impact, distance, then collider identity as a frozen array.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param ray - Ray origin, direction, and travel limit. See {@link PibblPhysicsRay2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryHit2D}.\n */\nexport function raycastAll2D(\n world: PibblPhysicsWorldHandle2D,\n ray: PibblPhysicsRay2D,\n options?: PibblPhysicsQueryOptions2D,\n): readonly PibblPhysicsQueryHit2D[] {\n return requirePhysicsWorld2DController(world).raycast(ray, { ...options, mode: \"all\" });\n}\n\n/**\n * Tests whether the committed world has any shape sweep match, stopping at the first match.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.\n * @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.\n * @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Whether a matching collider exists.\n */\nexport function shapeCastAny2D(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n from: PibblPhysicsPose2D,\n translation: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D,\n): boolean {\n return requirePhysicsWorld2DController(world).shapeCast(shape, from, translation, { ...options, mode: \"any\" });\n}\n\n/**\n * Returns the first shape sweep result ordered by time of impact, distance, then collider identity, or null.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.\n * @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.\n * @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns One result or null. See {@link PibblPhysicsQueryHit2D}.\n */\nexport function shapeCastClosest2D(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n from: PibblPhysicsPose2D,\n translation: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D,\n): PibblPhysicsQueryHit2D | null {\n return requirePhysicsWorld2DController(world).shapeCast(shape, from, translation, { ...options, mode: \"closest\" });\n}\n\n/**\n * Returns all shape sweep results ordered by time of impact, distance, then collider identity as a frozen array.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to sweep. See {@link PibblPhysicsShape2D}.\n * @param from - Initial shape pose. See {@link PibblPhysicsPose2D}.\n * @param translation - Translation vector for the sweep. See {@link PibblPhysicsVector2}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryHit2D}.\n */\nexport function shapeCastAll2D(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n from: PibblPhysicsPose2D,\n translation: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D,\n): readonly PibblPhysicsQueryHit2D[] {\n return requirePhysicsWorld2DController(world).shapeCast(shape, from, translation, { ...options, mode: \"all\" });\n}\n\n/**\n * Tests whether the committed world has any shape overlap match, stopping at the first match.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to test. See {@link PibblPhysicsShape2D}.\n * @param pose - Shape pose. See {@link PibblPhysicsPose2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Whether a matching collider exists.\n */\nexport function hasShapeOverlap2D(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n pose: PibblPhysicsPose2D,\n options?: PibblPhysicsQueryOptions2D,\n): boolean {\n return requirePhysicsWorld2DController(world).overlapShape(shape, pose, { ...options, mode: \"any\" });\n}\n\n/**\n * Returns the first shape overlap result ordered by collider index, then generation, or null.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to test. See {@link PibblPhysicsShape2D}.\n * @param pose - Shape pose. See {@link PibblPhysicsPose2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns One result or null. See {@link PibblPhysicsQueryMatch2D}.\n */\nexport function findShapeOverlap2D(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n pose: PibblPhysicsPose2D,\n options?: PibblPhysicsQueryOptions2D,\n): PibblPhysicsQueryMatch2D | null {\n return requirePhysicsWorld2DController(world).overlapShape(shape, pose, { ...options, mode: \"closest\" });\n}\n\n/**\n * Returns all shape overlap results ordered by collider index, then generation as a frozen array.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param shape - Shape to test. See {@link PibblPhysicsShape2D}.\n * @param pose - Shape pose. See {@link PibblPhysicsPose2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryMatch2D}.\n */\nexport function findAllShapeOverlaps2D(\n world: PibblPhysicsWorldHandle2D,\n shape: PibblPhysicsShape2D,\n pose: PibblPhysicsPose2D,\n options?: PibblPhysicsQueryOptions2D,\n): readonly PibblPhysicsQueryMatch2D[] {\n return requirePhysicsWorld2DController(world).overlapShape(shape, pose, { ...options, mode: \"all\" });\n}\n\n/**\n * Tests whether the committed world has any bounds intersection match, stopping at the first match.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param bounds - Axis-aligned query bounds. See {@link PibblPhysicsAabb2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Whether a matching collider exists.\n */\nexport function hasAabbMatch2D(\n world: PibblPhysicsWorldHandle2D,\n bounds: PibblPhysicsAabb2D,\n options?: PibblPhysicsQueryOptions2D,\n): boolean {\n return requirePhysicsWorld2DController(world).queryAabb(bounds, { ...options, mode: \"any\" });\n}\n\n/**\n * Returns the first bounds intersection result ordered by collider index, then generation, or null.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param bounds - Axis-aligned query bounds. See {@link PibblPhysicsAabb2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns One result or null. See {@link PibblPhysicsQueryMatch2D}.\n */\nexport function findAabbMatch2D(\n world: PibblPhysicsWorldHandle2D,\n bounds: PibblPhysicsAabb2D,\n options?: PibblPhysicsQueryOptions2D,\n): PibblPhysicsQueryMatch2D | null {\n return requirePhysicsWorld2DController(world).queryAabb(bounds, { ...options, mode: \"closest\" });\n}\n\n/**\n * Returns all bounds intersection results ordered by collider index, then generation as a frozen array.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param bounds - Axis-aligned query bounds. See {@link PibblPhysicsAabb2D}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryMatch2D}.\n */\nexport function findAllAabbMatches2D(\n world: PibblPhysicsWorldHandle2D,\n bounds: PibblPhysicsAabb2D,\n options?: PibblPhysicsQueryOptions2D,\n): readonly PibblPhysicsQueryMatch2D[] {\n return requirePhysicsWorld2DController(world).queryAabb(bounds, { ...options, mode: \"all\" });\n}\n\n/**\n * Tests whether the committed world has any point containment match, stopping at the first match.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param point - Point in simulation coordinates. See {@link PibblPhysicsVector2}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Whether a matching collider exists.\n */\nexport function hasPointMatch2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D,\n): boolean {\n return requirePhysicsWorld2DController(world).queryPoint(point, { ...options, mode: \"any\" });\n}\n\n/**\n * Returns the first point containment result ordered by collider index, then generation, or null.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param point - Point in simulation coordinates. See {@link PibblPhysicsVector2}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns One result or null. See {@link PibblPhysicsQueryMatch2D}.\n */\nexport function findPointMatch2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D,\n): PibblPhysicsQueryMatch2D | null {\n return requirePhysicsWorld2DController(world).queryPoint(point, { ...options, mode: \"closest\" });\n}\n\n/**\n * Returns all point containment results ordered by collider index, then generation as a frozen array.\n *\n * @param world - World to query. See {@link PibblPhysicsWorldHandle2D}.\n * @param point - Point in simulation coordinates. See {@link PibblPhysicsVector2}.\n * @param options - Sensor policy and collider filtering. See {@link PibblPhysicsQueryOptions2D}.\n * @returns Frozen results, empty when no collider matches. See {@link PibblPhysicsQueryMatch2D}.\n */\nexport function findAllPointMatches2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n options?: PibblPhysicsQueryOptions2D,\n): readonly PibblPhysicsQueryMatch2D[] {\n return requirePhysicsWorld2DController(world).queryPoint(point, { ...options, mode: \"all\" });\n}\n\n/**\n * Converts root-logical pointer coordinates to this world's simulation space.\n *\n * @param world - World providing unit and coordinate conversion. See\n * {@link PibblPhysicsWorldHandle2D} .\n * @param point - Point in public Canvas coordinates. See {@link PibblPhysicsVector2}.\n * @returns The equivalent point in this world's local simulation space. See\n * {@link PibblPhysicsVector2} .\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsVector2}\n */\nexport function toPhysicsPoint2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n): PibblPhysicsVector2 {\n return requirePhysicsWorld2DController(world).convertPoint(point, false);\n}\n\n/**\n * Converts a simulation-space point to root-logical Canvas coordinates.\n *\n * @param world - World providing unit and coordinate conversion. See\n * {@link PibblPhysicsWorldHandle2D} .\n * @param point - Point in this world's local simulation space. See {@link PibblPhysicsVector2}.\n * @returns The equivalent point in public Canvas coordinates. See {@link PibblPhysicsVector2}.\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsVector2}\n */\nexport function fromPhysicsPoint2D(\n world: PibblPhysicsWorldHandle2D,\n point: PibblPhysicsVector2,\n): PibblPhysicsVector2 {\n return requirePhysicsWorld2DController(world).convertPoint(point, true);\n}\n\nexport type {\n PibblPhysicsInspection2D,\n PibblPhysicsBodyInspection2D,\n PibblPhysicsColliderInspection2D,\n PibblPhysicsContactInspection2D,\n} from \"./lib/2d/inspection-types.js\";\n\n/**\n * Returns immutable JSON-safe observations without advancing the simulation. See\n * {@link PibblPhysicsWorldHandle2D}.\n * @param world - World to inspect. See {@link PibblPhysicsWorldHandle2D}.\n * @returns Current world simulation and ownership diagnostics.\n */\nexport function inspectPhysics2D(\n world: PibblPhysicsWorldHandle2D,\n): import(\"./lib/2d/inspection-types.js\").PibblPhysicsInspection2D;\n\n/**\n * Returns the immutable observation for this currently bound body, if any. See\n * {@link PibblPhysicsBodyHandle2D}.\n * @param body - Body to inspect. See {@link PibblPhysicsBodyHandle2D}.\n * @returns Current body diagnostics, or undefined when the handle has no live body.\n */\nexport function inspectPhysics2D(\n body: PibblPhysicsBodyHandle2D,\n): import(\"./lib/2d/inspection-types.js\").PibblPhysicsBodyInspection2D | undefined;\n/**\n * Returns a diagnostic snapshot of a live world or body, or undefined when unavailable.\n *\n * @param target - World or body handle to inspect. See {@link PibblPhysicsWorldHandle2D} ,\n * {@link PibblPhysicsBodyHandle2D} .\n * @returns The corresponding diagnostics, or undefined for an unmounted body.\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n * @see {@link PibblPhysicsBodyHandle2D}\n * @see {@link PibblPhysicsInspection2D}\n * @see {@link PibblPhysicsBodyInspection2D}\n */\nexport function inspectPhysics2D(\n target: PibblPhysicsWorldHandle2D | PibblPhysicsBodyHandle2D,\n):\n | import(\"./lib/2d/inspection-types.js\").PibblPhysicsInspection2D\n | import(\"./lib/2d/inspection-types.js\").PibblPhysicsBodyInspection2D\n | undefined {\n if (isPhysicsBodyHandle2D(target)) {\n const binding = physicsBodyHandleBinding2D(target);\n return binding?.controller.inspectBody(binding.bodyId);\n }\n return requirePhysicsWorld2DController(target).inspect();\n}\n\nexport {\n PhysicsDebug2D,\n type PibblPhysicsDebug2DProps,\n} from \"./lib/2d/canvas/debug.js\";\n\n/**\n * A borrowed committed solid batch, structurally compatible with a flow obstacle source.\n *\n * @param world - World supplying collider geometry. See {@link PibblPhysicsWorldHandle2D}.\n * @returns An obstacle source whose read method returns the current revision and packed geometry.\n *\n * @see {@link PibblPhysicsWorldHandle2D}\n */\nexport function physicsObstacles2D(world: PibblPhysicsWorldHandle2D): Readonly<{\n read(): Readonly<{ revision: number; boxes: Float64Array; ellipses: Float64Array; polygons: Float64Array }>;\n}> {\n return requirePhysicsWorld2DController(world).getObstacleSource();\n}\n"],
|
|
5
|
+
"mappings": "AAeA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,uCAAuC;AAEhD,cAAc;AACd;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,cAAc;AAiCP,SAAS,aACd,OACA,KACA,SACS;AACT,SAAO,gCAAgC,KAAK,EAAE,QAAQ,KAAK,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AACxF;AAUO,SAAS,iBACd,OACA,KACA,SAC+B;AAC/B,SAAO,gCAAgC,KAAK,EAAE,QAAQ,KAAK,EAAE,GAAG,SAAS,MAAM,UAAU,CAAC;AAC5F;AAUO,SAAS,aACd,OACA,KACA,SACmC;AACnC,SAAO,gCAAgC,KAAK,EAAE,QAAQ,KAAK,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AACxF;AAYO,SAAS,eACd,OACA,OACA,MACA,aACA,SACS;AACT,SAAO,gCAAgC,KAAK,EAAE,UAAU,OAAO,MAAM,aAAa,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AAC/G;AAYO,SAAS,mBACd,OACA,OACA,MACA,aACA,SAC+B;AAC/B,SAAO,gCAAgC,KAAK,EAAE,UAAU,OAAO,MAAM,aAAa,EAAE,GAAG,SAAS,MAAM,UAAU,CAAC;AACnH;AAYO,SAAS,eACd,OACA,OACA,MACA,aACA,SACmC;AACnC,SAAO,gCAAgC,KAAK,EAAE,UAAU,OAAO,MAAM,aAAa,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AAC/G;AAWO,SAAS,kBACd,OACA,OACA,MACA,SACS;AACT,SAAO,gCAAgC,KAAK,EAAE,aAAa,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AACrG;AAWO,SAAS,mBACd,OACA,OACA,MACA,SACiC;AACjC,SAAO,gCAAgC,KAAK,EAAE,aAAa,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,UAAU,CAAC;AACzG;AAWO,SAAS,uBACd,OACA,OACA,MACA,SACqC;AACrC,SAAO,gCAAgC,KAAK,EAAE,aAAa,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AACrG;AAUO,SAAS,eACd,OACA,QACA,SACS;AACT,SAAO,gCAAgC,KAAK,EAAE,UAAU,QAAQ,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AAC7F;AAUO,SAAS,gBACd,OACA,QACA,SACiC;AACjC,SAAO,gCAAgC,KAAK,EAAE,UAAU,QAAQ,EAAE,GAAG,SAAS,MAAM,UAAU,CAAC;AACjG;AAUO,SAAS,qBACd,OACA,QACA,SACqC;AACrC,SAAO,gCAAgC,KAAK,EAAE,UAAU,QAAQ,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AAC7F;AAUO,SAAS,gBACd,OACA,OACA,SACS;AACT,SAAO,gCAAgC,KAAK,EAAE,WAAW,OAAO,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AAC7F;AAUO,SAAS,iBACd,OACA,OACA,SACiC;AACjC,SAAO,gCAAgC,KAAK,EAAE,WAAW,OAAO,EAAE,GAAG,SAAS,MAAM,UAAU,CAAC;AACjG;AAUO,SAAS,sBACd,OACA,OACA,SACqC;AACrC,SAAO,gCAAgC,KAAK,EAAE,WAAW,OAAO,EAAE,GAAG,SAAS,MAAM,MAAM,CAAC;AAC7F;AAcO,SAAS,iBACd,OACA,OACqB;AACrB,SAAO,gCAAgC,KAAK,EAAE,aAAa,OAAO,KAAK;AACzE;AAaO,SAAS,mBACd,OACA,OACqB;AACrB,SAAO,gCAAgC,KAAK,EAAE,aAAa,OAAO,IAAI;AACxE;AAwCO,SAAS,iBACd,QAIY;AACZ,MAAI,sBAAsB,MAAM,GAAG;AACjC,UAAM,UAAU,2BAA2B,MAAM;AACjD,WAAO,SAAS,WAAW,YAAY,QAAQ,MAAM;AAAA,EACvD;AACA,SAAO,gCAAgC,MAAM,EAAE,QAAQ;AACzD;AAEA;AAAA,EACE;AAAA,OAEK;AAUA,SAAS,mBAAmB,OAEhC;AACD,SAAO,gCAAgC,KAAK,EAAE,kBAAkB;AAClE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|