@pibbl/core 0.0.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/LICENSE.txt +19 -0
- package/README.md +76 -0
- package/THIRD_PARTY_NOTICES.txt +205 -0
- package/dist/features/particles/index.d.ts +7 -0
- package/dist/features/particles/index.js +26 -0
- package/dist/features/particles/index.js.map +7 -0
- package/dist/features/particles/index.mjs +1 -0
- package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
- package/dist/features/particles/lib/canvas/component.d.ts +14 -0
- package/dist/features/particles/lib/canvas/component.js +249 -0
- package/dist/features/particles/lib/canvas/component.js.map +7 -0
- package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
- package/dist/features/particles/lib/canvas/executor.js +537 -0
- package/dist/features/particles/lib/canvas/executor.js.map +7 -0
- package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
- package/dist/features/particles/lib/canvas/primitive.js +50 -0
- package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
- package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
- package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
- package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
- package/dist/features/particles/lib/color.d.ts +7 -0
- package/dist/features/particles/lib/color.js +159 -0
- package/dist/features/particles/lib/color.js.map +7 -0
- package/dist/features/particles/lib/compiler.d.ts +134 -0
- package/dist/features/particles/lib/compiler.js +443 -0
- package/dist/features/particles/lib/compiler.js.map +7 -0
- package/dist/features/particles/lib/curve.d.ts +19 -0
- package/dist/features/particles/lib/curve.js +129 -0
- package/dist/features/particles/lib/curve.js.map +7 -0
- package/dist/features/particles/lib/definition-records.d.ts +58 -0
- package/dist/features/particles/lib/definition-records.js +500 -0
- package/dist/features/particles/lib/definition-records.js.map +7 -0
- package/dist/features/particles/lib/definition.d.ts +18 -0
- package/dist/features/particles/lib/definition.js +602 -0
- package/dist/features/particles/lib/definition.js.map +7 -0
- package/dist/features/particles/lib/emission.d.ts +54 -0
- package/dist/features/particles/lib/emission.js +184 -0
- package/dist/features/particles/lib/emission.js.map +7 -0
- package/dist/features/particles/lib/flow/field.d.ts +81 -0
- package/dist/features/particles/lib/flow/field.js +585 -0
- package/dist/features/particles/lib/flow/field.js.map +7 -0
- package/dist/features/particles/lib/flow/hook.d.ts +158 -0
- package/dist/features/particles/lib/flow/hook.js +215 -0
- package/dist/features/particles/lib/flow/hook.js.map +7 -0
- package/dist/features/particles/lib/flow/population.d.ts +25 -0
- package/dist/features/particles/lib/flow/population.js +104 -0
- package/dist/features/particles/lib/flow/population.js.map +7 -0
- package/dist/features/particles/lib/particle.d.ts +113 -0
- package/dist/features/particles/lib/particle.js +192 -0
- package/dist/features/particles/lib/particle.js.map +7 -0
- package/dist/features/particles/lib/random.d.ts +16 -0
- package/dist/features/particles/lib/random.js +61 -0
- package/dist/features/particles/lib/random.js.map +7 -0
- package/dist/features/particles/lib/sample.d.ts +32 -0
- package/dist/features/particles/lib/sample.js +397 -0
- package/dist/features/particles/lib/sample.js.map +7 -0
- package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
- package/dist/features/particles/lib/signal-inputs.js +41 -0
- package/dist/features/particles/lib/signal-inputs.js.map +7 -0
- package/dist/features/particles/lib/system/binding.d.ts +59 -0
- package/dist/features/particles/lib/system/binding.js +122 -0
- package/dist/features/particles/lib/system/binding.js.map +7 -0
- package/dist/features/particles/lib/system/controller.d.ts +58 -0
- package/dist/features/particles/lib/system/controller.js +1446 -0
- package/dist/features/particles/lib/system/controller.js.map +7 -0
- package/dist/features/particles/lib/system/hook.d.ts +13 -0
- package/dist/features/particles/lib/system/hook.js +52 -0
- package/dist/features/particles/lib/system/hook.js.map +7 -0
- package/dist/features/particles/lib/system/ownership.d.ts +26 -0
- package/dist/features/particles/lib/system/ownership.js +128 -0
- package/dist/features/particles/lib/system/ownership.js.map +7 -0
- package/dist/features/particles/lib/types.d.ts +983 -0
- package/dist/features/physics/2d-geometry.d.ts +216 -0
- package/dist/features/physics/2d-geometry.js +59 -0
- package/dist/features/physics/2d-geometry.js.map +7 -0
- package/dist/features/physics/2d-geometry.mjs +1 -0
- package/dist/features/physics/2d-testing.d.ts +80 -0
- package/dist/features/physics/2d-testing.js +141 -0
- package/dist/features/physics/2d-testing.js.map +7 -0
- package/dist/features/physics/2d-testing.mjs +1 -0
- package/dist/features/physics/2d.d.ts +165 -0
- package/dist/features/physics/2d.js +119 -0
- package/dist/features/physics/2d.js.map +7 -0
- package/dist/features/physics/2d.mjs +1 -0
- package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
- package/dist/features/physics/lib/2d/canvas/components.js +212 -0
- package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
- package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
- package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
- package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
- package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
- package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
- package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
- package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
- package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
- package/dist/features/physics/lib/2d/collision/casts.js +631 -0
- package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
- package/dist/features/physics/lib/2d/collision/epa.js +102 -0
- package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
- package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
- package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
- package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
- package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
- package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
- package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
- package/dist/features/physics/lib/2d/collision/support.js +155 -0
- package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
- package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
- package/dist/features/physics/lib/2d/math.d.ts +27 -0
- package/dist/features/physics/lib/2d/math.js +314 -0
- package/dist/features/physics/lib/2d/math.js.map +7 -0
- package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
- package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
- package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
- package/dist/features/physics/lib/2d/runtime/context.js +57 -0
- package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
- package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
- package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
- package/dist/features/physics/lib/2d/runtime/events.js +153 -0
- package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
- package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
- package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
- package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
- package/dist/features/physics/lib/2d/shape-records.js +26 -0
- package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
- package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
- package/dist/features/physics/lib/2d/shapes.js +543 -0
- package/dist/features/physics/lib/2d/shapes.js.map +7 -0
- package/dist/features/physics/lib/2d/types.d.ts +713 -0
- package/dist/features/physics/lib/2d/types.js +1 -0
- package/dist/features/physics/lib/2d/types.js.map +7 -0
- package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
- package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
- package/dist/features/physics/lib/2d/world/ccd.js +265 -0
- package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
- package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
- package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
- package/dist/features/physics/lib/2d/world/integrator.js +99 -0
- package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
- package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
- package/dist/features/physics/lib/2d/world/queries.js +424 -0
- package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
- package/dist/features/physics/lib/2d/world/rapier.js +655 -0
- package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
- package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
- package/dist/features/physics/lib/2d/world/solver.js +660 -0
- package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
- package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
- package/dist/features/physics/lib/2d/world/storage.js +371 -0
- package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
- package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
- package/dist/features/physics/lib/2d/world/world.js +1713 -0
- package/dist/features/physics/lib/2d/world/world.js.map +7 -0
- package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
- package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
- package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
- package/dist/features/physics/lib/shared/validation.d.ts +5 -0
- package/dist/features/physics/lib/shared/validation.js +48 -0
- package/dist/features/physics/lib/shared/validation.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.js +23 -0
- package/dist/features/sprites/formats/aseprite.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.mjs +1 -0
- package/dist/features/sprites/formats/texture-packer.js +14 -0
- package/dist/features/sprites/formats/texture-packer.js.map +7 -0
- package/dist/features/sprites/formats/texture-packer.mjs +1 -0
- package/dist/features/sprites/index.js +9 -0
- package/dist/features/sprites/index.js.map +7 -0
- package/dist/features/sprites/index.mjs +1 -0
- package/dist/features/sprites/loader.js +63 -0
- package/dist/features/sprites/loader.js.map +7 -0
- package/dist/features/sprites/model.js +64 -0
- package/dist/features/sprites/model.js.map +7 -0
- package/dist/features/sprites/sprite.js +31 -0
- package/dist/features/sprites/sprite.js.map +7 -0
- package/dist/features/textures/index.d.ts +22 -0
- package/dist/features/textures/index.js +31 -0
- package/dist/features/textures/index.js.map +7 -0
- package/dist/features/textures/index.mjs +1 -0
- package/dist/features/textures/lib/definitions.d.ts +117 -0
- package/dist/features/textures/lib/definitions.js +179 -0
- package/dist/features/textures/lib/definitions.js.map +7 -0
- package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
- package/dist/features/textures/lib/electric-boundary.js +11 -0
- package/dist/features/textures/lib/electric-boundary.js.map +7 -0
- package/dist/features/textures/lib/electric-shared.d.ts +69 -0
- package/dist/features/textures/lib/electric-shared.js +43 -0
- package/dist/features/textures/lib/electric-shared.js.map +7 -0
- package/dist/features/textures/lib/electric-sources.d.ts +50 -0
- package/dist/features/textures/lib/electric-sources.js +43 -0
- package/dist/features/textures/lib/electric-sources.js.map +7 -0
- package/dist/features/textures/lib/lightning.d.ts +72 -0
- package/dist/features/textures/lib/lightning.js +139 -0
- package/dist/features/textures/lib/lightning.js.map +7 -0
- package/dist/features/textures/lib/material-field.d.ts +12 -0
- package/dist/features/textures/lib/material-field.js +31 -0
- package/dist/features/textures/lib/material-field.js.map +7 -0
- package/dist/features/textures/lib/palette.d.ts +45 -0
- package/dist/features/textures/lib/palette.js +52 -0
- package/dist/features/textures/lib/palette.js.map +7 -0
- package/dist/features/textures/lib/presentation.d.ts +54 -0
- package/dist/features/textures/lib/presentation.js +83 -0
- package/dist/features/textures/lib/presentation.js.map +7 -0
- package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
- package/dist/features/textures/lib/procedural-texture.js +110 -0
- package/dist/features/textures/lib/procedural-texture.js.map +7 -0
- package/dist/features/textures/lib/rain-drops.d.ts +96 -0
- package/dist/features/textures/lib/rain-drops.js +322 -0
- package/dist/features/textures/lib/rain-drops.js.map +7 -0
- package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
- package/dist/features/textures/lib/reaction-diffusion.js +210 -0
- package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
- package/dist/features/textures/lib/simulation.d.ts +16 -0
- package/dist/features/textures/lib/simulation.js +85 -0
- package/dist/features/textures/lib/simulation.js.map +7 -0
- package/dist/features/textures/lib/tendrils.d.ts +57 -0
- package/dist/features/textures/lib/tendrils.js +216 -0
- package/dist/features/textures/lib/tendrils.js.map +7 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
- package/dist/features/textures/lib/wasm/electric.js +299 -0
- package/dist/features/textures/lib/wasm/electric.js.map +7 -0
- package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
- package/dist/features/textures/lib/wasm/memory.js +103 -0
- package/dist/features/textures/lib/wasm/memory.js.map +7 -0
- package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
- package/dist/features/textures/lib/water-surface.d.ts +92 -0
- package/dist/features/textures/lib/water-surface.js +378 -0
- package/dist/features/textures/lib/water-surface.js.map +7 -0
- package/dist/features/textures/lib/water-waves.d.ts +60 -0
- package/dist/features/textures/lib/water-waves.js +154 -0
- package/dist/features/textures/lib/water-waves.js.map +7 -0
- package/dist/features/viz/index.d.ts +28 -0
- package/dist/features/viz/index.js +45 -0
- package/dist/features/viz/index.js.map +7 -0
- package/dist/features/viz/index.mjs +1 -0
- package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
- package/dist/features/viz/lib/anchored-layout.js +166 -0
- package/dist/features/viz/lib/anchored-layout.js.map +7 -0
- package/dist/features/viz/lib/axis.d.ts +10 -0
- package/dist/features/viz/lib/axis.js +116 -0
- package/dist/features/viz/lib/axis.js.map +7 -0
- package/dist/features/viz/lib/band-scale.d.ts +3 -0
- package/dist/features/viz/lib/band-scale.js +57 -0
- package/dist/features/viz/lib/band-scale.js.map +7 -0
- package/dist/features/viz/lib/bar-fill.d.ts +16 -0
- package/dist/features/viz/lib/bar-fill.js +53 -0
- package/dist/features/viz/lib/bar-fill.js.map +7 -0
- package/dist/features/viz/lib/bar-series.d.ts +150 -0
- package/dist/features/viz/lib/bar-series.js +152 -0
- package/dist/features/viz/lib/bar-series.js.map +7 -0
- package/dist/features/viz/lib/hover-card.d.ts +92 -0
- package/dist/features/viz/lib/hover-card.js +146 -0
- package/dist/features/viz/lib/hover-card.js.map +7 -0
- package/dist/features/viz/lib/hover-data.d.ts +12 -0
- package/dist/features/viz/lib/hover-data.js +50 -0
- package/dist/features/viz/lib/hover-data.js.map +7 -0
- package/dist/features/viz/lib/hover-placement.d.ts +46 -0
- package/dist/features/viz/lib/hover-placement.js +51 -0
- package/dist/features/viz/lib/hover-placement.js.map +7 -0
- package/dist/features/viz/lib/hover-queries.d.ts +60 -0
- package/dist/features/viz/lib/hover-queries.js +185 -0
- package/dist/features/viz/lib/hover-queries.js.map +7 -0
- package/dist/features/viz/lib/hover-types.d.ts +277 -0
- package/dist/features/viz/lib/layout-pie.d.ts +13 -0
- package/dist/features/viz/lib/layout-pie.js +159 -0
- package/dist/features/viz/lib/layout-pie.js.map +7 -0
- package/dist/features/viz/lib/line-series.d.ts +11 -0
- package/dist/features/viz/lib/line-series.js +89 -0
- package/dist/features/viz/lib/line-series.js.map +7 -0
- package/dist/features/viz/lib/linear-scale.d.ts +3 -0
- package/dist/features/viz/lib/linear-scale.js +70 -0
- package/dist/features/viz/lib/linear-scale.js.map +7 -0
- package/dist/features/viz/lib/nearest.d.ts +82 -0
- package/dist/features/viz/lib/nearest.js +51 -0
- package/dist/features/viz/lib/nearest.js.map +7 -0
- package/dist/features/viz/lib/paint.d.ts +2 -0
- package/dist/features/viz/lib/paint.js +17 -0
- package/dist/features/viz/lib/paint.js.map +7 -0
- package/dist/features/viz/lib/pie-layout.d.ts +31 -0
- package/dist/features/viz/lib/pie-layout.js +324 -0
- package/dist/features/viz/lib/pie-layout.js.map +7 -0
- package/dist/features/viz/lib/pie-slices.d.ts +51 -0
- package/dist/features/viz/lib/pie-slices.js +50 -0
- package/dist/features/viz/lib/pie-slices.js.map +7 -0
- package/dist/features/viz/lib/pie-types.d.ts +215 -0
- package/dist/features/viz/lib/plot-series.d.ts +13 -0
- package/dist/features/viz/lib/plot-series.js +53 -0
- package/dist/features/viz/lib/plot-series.js.map +7 -0
- package/dist/features/viz/lib/plot-types.d.ts +63 -0
- package/dist/features/viz/lib/point-data.d.ts +5 -0
- package/dist/features/viz/lib/point-data.js +17 -0
- package/dist/features/viz/lib/point-data.js.map +7 -0
- package/dist/features/viz/lib/point-geometry.d.ts +2 -0
- package/dist/features/viz/lib/point-geometry.js +24 -0
- package/dist/features/viz/lib/point-geometry.js.map +7 -0
- package/dist/features/viz/lib/point-series.d.ts +11 -0
- package/dist/features/viz/lib/point-series.js +118 -0
- package/dist/features/viz/lib/point-series.js.map +7 -0
- package/dist/features/viz/lib/point-types.d.ts +94 -0
- package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
- package/dist/features/viz/lib/scale-adjust.js +25 -0
- package/dist/features/viz/lib/scale-adjust.js.map +7 -0
- package/dist/features/viz/lib/scale-context.d.ts +8 -0
- package/dist/features/viz/lib/scale-context.js +61 -0
- package/dist/features/viz/lib/scale-context.js.map +7 -0
- package/dist/features/viz/lib/scale.d.ts +11 -0
- package/dist/features/viz/lib/scale.js +80 -0
- package/dist/features/viz/lib/scale.js.map +7 -0
- package/dist/features/viz/lib/types.d.ts +414 -0
- package/dist/features/viz/lib/use-scale.d.ts +20 -0
- package/dist/features/viz/lib/use-scale.js +10 -0
- package/dist/features/viz/lib/use-scale.js.map +7 -0
- package/dist/filters/displacement-gpu.d.ts +38 -0
- package/dist/filters/displacement-gpu.js +243 -0
- package/dist/filters/displacement-gpu.js.map +7 -0
- package/dist/filters/displacement-math.d.ts +5 -0
- package/dist/filters/displacement-math.js +22 -0
- package/dist/filters/displacement-math.js.map +7 -0
- package/dist/filters/displacement.d.ts +13 -0
- package/dist/filters/displacement.js +65 -0
- package/dist/filters/displacement.js.map +7 -0
- package/dist/filters/filter-executor.d.ts +21 -0
- package/dist/filters/filter-executor.js +120 -0
- package/dist/filters/filter-executor.js.map +7 -0
- package/dist/filters/native-canvas-filter.d.ts +4 -0
- package/dist/filters/native-canvas-filter.js +105 -0
- package/dist/filters/native-canvas-filter.js.map +7 -0
- package/dist/filters/native-color.d.ts +2 -0
- package/dist/filters/native-color.js +200 -0
- package/dist/filters/native-color.js.map +7 -0
- package/dist/filters/native-operations.d.ts +8 -0
- package/dist/filters/native-operations.js +7 -0
- package/dist/filters/native-operations.js.map +7 -0
- package/dist/filters/native.d.ts +113 -0
- package/dist/filters/native.js +115 -0
- package/dist/filters/native.js.map +7 -0
- package/dist/filters/reflected-light.d.ts +12 -0
- package/dist/filters/reflected-light.js +93 -0
- package/dist/filters/reflected-light.js.map +7 -0
- package/dist/filters/reflection-gpu.d.ts +58 -0
- package/dist/filters/reflection-gpu.js +266 -0
- package/dist/filters/reflection-gpu.js.map +7 -0
- package/dist/filters/render-displacement-boundary.d.ts +12 -0
- package/dist/filters/render-displacement-boundary.js +116 -0
- package/dist/filters/render-displacement-boundary.js.map +7 -0
- package/dist/filters/render-reflection-boundary.d.ts +15 -0
- package/dist/filters/render-reflection-boundary.js +127 -0
- package/dist/filters/render-reflection-boundary.js.map +7 -0
- package/dist/filters.d.ts +5 -0
- package/dist/filters.js +29 -0
- package/dist/filters.js.map +7 -0
- package/dist/filters.mjs +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.js +300 -0
- package/dist/index.js.map +7 -0
- package/dist/index.mjs +1 -0
- package/dist/internal.d.ts +160 -0
- package/dist/internal.js +320 -0
- package/dist/internal.js.map +7 -0
- package/dist/internal.mjs +1 -0
- package/dist/jsx-dev-runtime.d.ts +35 -0
- package/dist/jsx-dev-runtime.js +6 -0
- package/dist/jsx-dev-runtime.js.map +7 -0
- package/dist/jsx-dev-runtime.mjs +1 -0
- package/dist/jsx-runtime.d.ts +35 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.js.map +7 -0
- package/dist/jsx-runtime.mjs +1 -0
- package/dist/lib/animation/definition.d.ts +140 -0
- package/dist/lib/animation/definition.js +605 -0
- package/dist/lib/animation/definition.js.map +7 -0
- package/dist/lib/animation/easing.d.ts +55 -0
- package/dist/lib/animation/easing.js +112 -0
- package/dist/lib/animation/easing.js.map +7 -0
- package/dist/lib/animation/evaluate.d.ts +118 -0
- package/dist/lib/animation/evaluate.js +2398 -0
- package/dist/lib/animation/evaluate.js.map +7 -0
- package/dist/lib/animation/playback.d.ts +30 -0
- package/dist/lib/animation/playback.js +932 -0
- package/dist/lib/animation/playback.js.map +7 -0
- package/dist/lib/animation/program.d.ts +145 -0
- package/dist/lib/animation/program.js +741 -0
- package/dist/lib/animation/program.js.map +7 -0
- package/dist/lib/animation/spring.d.ts +30 -0
- package/dist/lib/animation/spring.js +324 -0
- package/dist/lib/animation/spring.js.map +7 -0
- package/dist/lib/animation/types.d.ts +418 -0
- package/dist/lib/animation/writer-leases.d.ts +47 -0
- package/dist/lib/animation/writer-leases.js +314 -0
- package/dist/lib/animation/writer-leases.js.map +7 -0
- package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
- package/dist/lib/backend/canvas-2d-backend.js +97 -0
- package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
- package/dist/lib/backend/types.d.ts +309 -0
- package/dist/lib/backend/types.js +26 -0
- package/dist/lib/backend/types.js.map +7 -0
- package/dist/lib/components/arc-geometry.d.ts +4 -0
- package/dist/lib/components/arc-geometry.js +46 -0
- package/dist/lib/components/arc-geometry.js.map +7 -0
- package/dist/lib/components/arc.d.ts +55 -0
- package/dist/lib/components/arc.js +91 -0
- package/dist/lib/components/arc.js.map +7 -0
- package/dist/lib/components/circle.d.ts +49 -0
- package/dist/lib/components/circle.js +46 -0
- package/dist/lib/components/circle.js.map +7 -0
- package/dist/lib/components/clip.d.ts +43 -0
- package/dist/lib/components/clip.js +24 -0
- package/dist/lib/components/clip.js.map +7 -0
- package/dist/lib/components/ellipse.d.ts +53 -0
- package/dist/lib/components/ellipse.js +59 -0
- package/dist/lib/components/ellipse.js.map +7 -0
- package/dist/lib/components/g.d.ts +56 -0
- package/dist/lib/components/g.js +24 -0
- package/dist/lib/components/g.js.map +7 -0
- package/dist/lib/components/horizontal-line.d.ts +56 -0
- package/dist/lib/components/horizontal-line.js +71 -0
- package/dist/lib/components/horizontal-line.js.map +7 -0
- package/dist/lib/components/html-box.d.ts +16 -0
- package/dist/lib/components/html-box.js +57 -0
- package/dist/lib/components/html-box.js.map +7 -0
- package/dist/lib/components/img.d.ts +24 -0
- package/dist/lib/components/img.js +150 -0
- package/dist/lib/components/img.js.map +7 -0
- package/dist/lib/components/layer-node-equality.d.ts +65 -0
- package/dist/lib/components/layer-node-equality.js +91 -0
- package/dist/lib/components/layer-node-equality.js.map +7 -0
- package/dist/lib/components/layer.d.ts +34 -0
- package/dist/lib/components/layer.js +172 -0
- package/dist/lib/components/layer.js.map +7 -0
- package/dist/lib/components/line.d.ts +51 -0
- package/dist/lib/components/line.js +76 -0
- package/dist/lib/components/line.js.map +7 -0
- package/dist/lib/components/path.d.ts +28 -0
- package/dist/lib/components/path.js +47 -0
- package/dist/lib/components/path.js.map +7 -0
- package/dist/lib/components/polygon.d.ts +45 -0
- package/dist/lib/components/polygon.js +93 -0
- package/dist/lib/components/polygon.js.map +7 -0
- package/dist/lib/components/rect.d.ts +24 -0
- package/dist/lib/components/rect.js +83 -0
- package/dist/lib/components/rect.js.map +7 -0
- package/dist/lib/components/regular-polygon.d.ts +102 -0
- package/dist/lib/components/regular-polygon.js +112 -0
- package/dist/lib/components/regular-polygon.js.map +7 -0
- package/dist/lib/components/rounded-corner-style.d.ts +7 -0
- package/dist/lib/components/rounded-corner-style.js +40 -0
- package/dist/lib/components/rounded-corner-style.js.map +7 -0
- package/dist/lib/components/shape-style.d.ts +7 -0
- package/dist/lib/components/shape-style.js +52 -0
- package/dist/lib/components/shape-style.js.map +7 -0
- package/dist/lib/components/star.d.ts +56 -0
- package/dist/lib/components/star.js +98 -0
- package/dist/lib/components/star.js.map +7 -0
- package/dist/lib/components/structural-events.d.ts +10 -0
- package/dist/lib/components/structural-events.js +8 -0
- package/dist/lib/components/structural-events.js.map +7 -0
- package/dist/lib/components/svg-path.d.ts +23 -0
- package/dist/lib/components/svg-path.js +25 -0
- package/dist/lib/components/svg-path.js.map +7 -0
- package/dist/lib/components/text-layout.d.ts +31 -0
- package/dist/lib/components/text-layout.js +139 -0
- package/dist/lib/components/text-layout.js.map +7 -0
- package/dist/lib/components/text.d.ts +29 -0
- package/dist/lib/components/text.js +174 -0
- package/dist/lib/components/text.js.map +7 -0
- package/dist/lib/components/vertical-line.d.ts +57 -0
- package/dist/lib/components/vertical-line.js +71 -0
- package/dist/lib/components/vertical-line.js.map +7 -0
- package/dist/lib/components/wedge.d.ts +55 -0
- package/dist/lib/components/wedge.js +93 -0
- package/dist/lib/components/wedge.js.map +7 -0
- package/dist/lib/define-primitive.d.ts +82 -0
- package/dist/lib/define-primitive.js +85 -0
- package/dist/lib/define-primitive.js.map +7 -0
- package/dist/lib/development.d.ts +2 -0
- package/dist/lib/development.js +5 -0
- package/dist/lib/development.js.map +7 -0
- package/dist/lib/element/children.d.ts +16 -0
- package/dist/lib/element/children.js +333 -0
- package/dist/lib/element/children.js.map +7 -0
- package/dist/lib/element/create-element.d.ts +34 -0
- package/dist/lib/element/create-element.js +75 -0
- package/dist/lib/element/create-element.js.map +7 -0
- package/dist/lib/element/fragment.d.ts +15 -0
- package/dist/lib/element/fragment.js +11 -0
- package/dist/lib/element/fragment.js.map +7 -0
- package/dist/lib/element/jsx-runtime.d.ts +48 -0
- package/dist/lib/element/jsx-runtime.js +16 -0
- package/dist/lib/element/jsx-runtime.js.map +7 -0
- package/dist/lib/element/metadata.d.ts +96 -0
- package/dist/lib/element/metadata.js +160 -0
- package/dist/lib/element/metadata.js.map +7 -0
- package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
- package/dist/lib/element/resolve-primitive-inputs.js +83 -0
- package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
- package/dist/lib/element/types.d.ts +123 -0
- package/dist/lib/element-enhancers.d.ts +134 -0
- package/dist/lib/element-enhancers.js +193 -0
- package/dist/lib/element-enhancers.js.map +7 -0
- package/dist/lib/events/adapters/clipboard.d.ts +9 -0
- package/dist/lib/events/adapters/clipboard.js +23 -0
- package/dist/lib/events/adapters/clipboard.js.map +7 -0
- package/dist/lib/events/adapters/drag.d.ts +12 -0
- package/dist/lib/events/adapters/drag.js +29 -0
- package/dist/lib/events/adapters/drag.js.map +7 -0
- package/dist/lib/events/adapters/editing.d.ts +15 -0
- package/dist/lib/events/adapters/editing.js +41 -0
- package/dist/lib/events/adapters/editing.js.map +7 -0
- package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
- package/dist/lib/events/adapters/keyboard-focus.js +36 -0
- package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
- package/dist/lib/events/adapters/mouse.d.ts +17 -0
- package/dist/lib/events/adapters/mouse.js +32 -0
- package/dist/lib/events/adapters/mouse.js.map +7 -0
- package/dist/lib/events/adapters/pointer.d.ts +19 -0
- package/dist/lib/events/adapters/pointer.js +40 -0
- package/dist/lib/events/adapters/pointer.js.map +7 -0
- package/dist/lib/events/adapters/touch.d.ts +16 -0
- package/dist/lib/events/adapters/touch.js +36 -0
- package/dist/lib/events/adapters/touch.js.map +7 -0
- package/dist/lib/events/adapters/wheel.d.ts +10 -0
- package/dist/lib/events/adapters/wheel.js +16 -0
- package/dist/lib/events/adapters/wheel.js.map +7 -0
- package/dist/lib/events/boundary-transitions.d.ts +9 -0
- package/dist/lib/events/boundary-transitions.js +16 -0
- package/dist/lib/events/boundary-transitions.js.map +7 -0
- package/dist/lib/events/dispatch.d.ts +21 -0
- package/dist/lib/events/dispatch.js +1078 -0
- package/dist/lib/events/dispatch.js.map +7 -0
- package/dist/lib/events/event-definitions.d.ts +23 -0
- package/dist/lib/events/event-definitions.js +74 -0
- package/dist/lib/events/event-definitions.js.map +7 -0
- package/dist/lib/events/event-facade.d.ts +19 -0
- package/dist/lib/events/event-facade.js +188 -0
- package/dist/lib/events/event-facade.js.map +7 -0
- package/dist/lib/events/event-path.d.ts +3 -0
- package/dist/lib/events/event-path.js +43 -0
- package/dist/lib/events/event-path.js.map +7 -0
- package/dist/lib/events/hit-test.d.ts +13 -0
- package/dist/lib/events/hit-test.js +135 -0
- package/dist/lib/events/hit-test.js.map +7 -0
- package/dist/lib/events/native-listener-hub.d.ts +10 -0
- package/dist/lib/events/native-listener-hub.js +72 -0
- package/dist/lib/events/native-listener-hub.js.map +7 -0
- package/dist/lib/events/paint-entry.d.ts +66 -0
- package/dist/lib/events/paint-entry.js +30 -0
- package/dist/lib/events/paint-entry.js.map +7 -0
- package/dist/lib/events/pointer-capture.d.ts +23 -0
- package/dist/lib/events/pointer-capture.js +339 -0
- package/dist/lib/events/pointer-capture.js.map +7 -0
- package/dist/lib/events/propagation.d.ts +7 -0
- package/dist/lib/events/propagation.js +56 -0
- package/dist/lib/events/propagation.js.map +7 -0
- package/dist/lib/events/registrations.d.ts +120 -0
- package/dist/lib/events/registrations.js +397 -0
- package/dist/lib/events/registrations.js.map +7 -0
- package/dist/lib/events/resolver-input.d.ts +25 -0
- package/dist/lib/events/resolver-input.js +62 -0
- package/dist/lib/events/resolver-input.js.map +7 -0
- package/dist/lib/events/types.d.ts +596 -0
- package/dist/lib/execute-render.d.ts +9 -0
- package/dist/lib/execute-render.js +195 -0
- package/dist/lib/execute-render.js.map +7 -0
- package/dist/lib/filter/canvas-state.d.ts +2 -0
- package/dist/lib/filter/canvas-state.js +31 -0
- package/dist/lib/filter/canvas-state.js.map +7 -0
- package/dist/lib/filter/filter-region.d.ts +33 -0
- package/dist/lib/filter/filter-region.js +291 -0
- package/dist/lib/filter/filter-region.js.map +7 -0
- package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
- package/dist/lib/filter/filter-surface-pool.js +252 -0
- package/dist/lib/filter/filter-surface-pool.js.map +7 -0
- package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
- package/dist/lib/filter/render-filter-boundary.js +211 -0
- package/dist/lib/filter/render-filter-boundary.js.map +7 -0
- package/dist/lib/focus/directional-navigation.d.ts +12 -0
- package/dist/lib/focus/directional-navigation.js +86 -0
- package/dist/lib/focus/directional-navigation.js.map +7 -0
- package/dist/lib/focus/dom-focus-host.d.ts +13 -0
- package/dist/lib/focus/dom-focus-host.js +352 -0
- package/dist/lib/focus/dom-focus-host.js.map +7 -0
- package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
- package/dist/lib/focus/dom-tab-stops.js +71 -0
- package/dist/lib/focus/dom-tab-stops.js.map +7 -0
- package/dist/lib/focus/focus-events.d.ts +4 -0
- package/dist/lib/focus/focus-events.js +78 -0
- package/dist/lib/focus/focus-events.js.map +7 -0
- package/dist/lib/focus/focus-manager.d.ts +121 -0
- package/dist/lib/focus/focus-manager.js +1131 -0
- package/dist/lib/focus/focus-manager.js.map +7 -0
- package/dist/lib/focus/geometry.d.ts +4 -0
- package/dist/lib/focus/geometry.js +64 -0
- package/dist/lib/focus/geometry.js.map +7 -0
- package/dist/lib/focus/html-focus-region.d.ts +27 -0
- package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
- package/dist/lib/focus/keyboard-defaults.js +110 -0
- package/dist/lib/focus/keyboard-defaults.js.map +7 -0
- package/dist/lib/focus/policy-components.d.ts +45 -0
- package/dist/lib/focus/policy-components.js +94 -0
- package/dist/lib/focus/policy-components.js.map +7 -0
- package/dist/lib/focus/types.d.ts +37 -0
- package/dist/lib/focus/types.js +7 -0
- package/dist/lib/focus/types.js.map +7 -0
- package/dist/lib/geometry/circle.d.ts +22 -0
- package/dist/lib/geometry/circle.js +13 -0
- package/dist/lib/geometry/circle.js.map +7 -0
- package/dist/lib/geometry/circular-sweep.d.ts +54 -0
- package/dist/lib/geometry/circular-sweep.js +95 -0
- package/dist/lib/geometry/circular-sweep.js.map +7 -0
- package/dist/lib/geometry/ellipse.d.ts +26 -0
- package/dist/lib/geometry/ellipse.js +17 -0
- package/dist/lib/geometry/ellipse.js.map +7 -0
- package/dist/lib/geometry/line.d.ts +20 -0
- package/dist/lib/geometry/line.js +15 -0
- package/dist/lib/geometry/line.js.map +7 -0
- package/dist/lib/geometry/path-arc.d.ts +25 -0
- package/dist/lib/geometry/path-arc.js +57 -0
- package/dist/lib/geometry/path-arc.js.map +7 -0
- package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
- package/dist/lib/geometry/path-bend-guide.js +282 -0
- package/dist/lib/geometry/path-bend-guide.js.map +7 -0
- package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
- package/dist/lib/geometry/path-bend-spans.js +109 -0
- package/dist/lib/geometry/path-bend-spans.js.map +7 -0
- package/dist/lib/geometry/path-bending.d.ts +90 -0
- package/dist/lib/geometry/path-bending.js +202 -0
- package/dist/lib/geometry/path-bending.js.map +7 -0
- package/dist/lib/geometry/path-conversion.d.ts +19 -0
- package/dist/lib/geometry/path-conversion.js +114 -0
- package/dist/lib/geometry/path-conversion.js.map +7 -0
- package/dist/lib/geometry/path-geometry.d.ts +218 -0
- package/dist/lib/geometry/path-geometry.js +557 -0
- package/dist/lib/geometry/path-geometry.js.map +7 -0
- package/dist/lib/geometry/path-radial.d.ts +15 -0
- package/dist/lib/geometry/path-radial.js +107 -0
- package/dist/lib/geometry/path-radial.js.map +7 -0
- package/dist/lib/geometry/path-transforms.d.ts +233 -0
- package/dist/lib/geometry/path-transforms.js +478 -0
- package/dist/lib/geometry/path-transforms.js.map +7 -0
- package/dist/lib/geometry/path-utilities.d.ts +78 -0
- package/dist/lib/geometry/path-utilities.js +341 -0
- package/dist/lib/geometry/path-utilities.js.map +7 -0
- package/dist/lib/geometry/path-wang.d.ts +18 -0
- package/dist/lib/geometry/path-wang.js +136 -0
- package/dist/lib/geometry/path-wang.js.map +7 -0
- package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
- package/dist/lib/geometry/path-warp-bezier.js +109 -0
- package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
- package/dist/lib/geometry/path-warp.d.ts +27 -0
- package/dist/lib/geometry/path-warp.js +165 -0
- package/dist/lib/geometry/path-warp.js.map +7 -0
- package/dist/lib/geometry/polygon.d.ts +21 -0
- package/dist/lib/geometry/polygon.js +12 -0
- package/dist/lib/geometry/polygon.js.map +7 -0
- package/dist/lib/geometry/rectangle.d.ts +38 -0
- package/dist/lib/geometry/rectangle.js +22 -0
- package/dist/lib/geometry/rectangle.js.map +7 -0
- package/dist/lib/geometry/regular-polygon.d.ts +88 -0
- package/dist/lib/geometry/regular-polygon.js +67 -0
- package/dist/lib/geometry/regular-polygon.js.map +7 -0
- package/dist/lib/geometry/resolve-path.d.ts +4 -0
- package/dist/lib/geometry/resolve-path.js +16 -0
- package/dist/lib/geometry/resolve-path.js.map +7 -0
- package/dist/lib/geometry/rounded-corners.d.ts +28 -0
- package/dist/lib/geometry/rounded-corners.js +118 -0
- package/dist/lib/geometry/rounded-corners.js.map +7 -0
- package/dist/lib/geometry/star.d.ts +39 -0
- package/dist/lib/geometry/star.js +90 -0
- package/dist/lib/geometry/star.js.map +7 -0
- package/dist/lib/geometry/svg-path.d.ts +21 -0
- package/dist/lib/geometry/svg-path.js +7 -0
- package/dist/lib/geometry/svg-path.js.map +7 -0
- package/dist/lib/geometry/transform-bend.d.ts +46 -0
- package/dist/lib/geometry/transform-bend.js +219 -0
- package/dist/lib/geometry/transform-bend.js.map +7 -0
- package/dist/lib/geometry/transform-guide.d.ts +57 -0
- package/dist/lib/geometry/transform-guide.js +157 -0
- package/dist/lib/geometry/transform-guide.js.map +7 -0
- package/dist/lib/geometry/transform-math.d.ts +21 -0
- package/dist/lib/geometry/transform-math.js +91 -0
- package/dist/lib/geometry/transform-math.js.map +7 -0
- package/dist/lib/geometry/transform-mesh.d.ts +39 -0
- package/dist/lib/geometry/transform-mesh.js +129 -0
- package/dist/lib/geometry/transform-mesh.js.map +7 -0
- package/dist/lib/geometry/validation.d.ts +6 -0
- package/dist/lib/geometry/validation.js +42 -0
- package/dist/lib/geometry/validation.js.map +7 -0
- package/dist/lib/global-state.d.ts +63 -0
- package/dist/lib/global-state.js +176 -0
- package/dist/lib/global-state.js.map +7 -0
- package/dist/lib/hooks/hook-slot.d.ts +30 -0
- package/dist/lib/hooks/hook-slot.js +66 -0
- package/dist/lib/hooks/hook-slot.js.map +7 -0
- package/dist/lib/hooks/use-animated-value.d.ts +24 -0
- package/dist/lib/hooks/use-animated-value.js +169 -0
- package/dist/lib/hooks/use-animated-value.js.map +7 -0
- package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
- package/dist/lib/hooks/use-canvas-context.js +13 -0
- package/dist/lib/hooks/use-canvas-context.js.map +7 -0
- package/dist/lib/hooks/use-computed.d.ts +13 -0
- package/dist/lib/hooks/use-computed.js +91 -0
- package/dist/lib/hooks/use-computed.js.map +7 -0
- package/dist/lib/hooks/use-const.d.ts +10 -0
- package/dist/lib/hooks/use-const.js +15 -0
- package/dist/lib/hooks/use-const.js.map +7 -0
- package/dist/lib/hooks/use-cursor.d.ts +16 -0
- package/dist/lib/hooks/use-cursor.js +51 -0
- package/dist/lib/hooks/use-cursor.js.map +7 -0
- package/dist/lib/hooks/use-event-listener.d.ts +10 -0
- package/dist/lib/hooks/use-event-listener.js +24 -0
- package/dist/lib/hooks/use-event-listener.js.map +7 -0
- package/dist/lib/hooks/use-event-target.d.ts +14 -0
- package/dist/lib/hooks/use-event-target.js +30 -0
- package/dist/lib/hooks/use-event-target.js.map +7 -0
- package/dist/lib/hooks/use-layout-box.d.ts +9 -0
- package/dist/lib/hooks/use-layout-box.js +8 -0
- package/dist/lib/hooks/use-layout-box.js.map +7 -0
- package/dist/lib/hooks/use-line-path.d.ts +14 -0
- package/dist/lib/hooks/use-line-path.js +13 -0
- package/dist/lib/hooks/use-line-path.js.map +7 -0
- package/dist/lib/hooks/use-paint-target.d.ts +3 -0
- package/dist/lib/hooks/use-paint-target.js +34 -0
- package/dist/lib/hooks/use-paint-target.js.map +7 -0
- package/dist/lib/hooks/use-playback.d.ts +21 -0
- package/dist/lib/hooks/use-playback.js +87 -0
- package/dist/lib/hooks/use-playback.js.map +7 -0
- package/dist/lib/hooks/use-reaction.d.ts +19 -0
- package/dist/lib/hooks/use-reaction.js +245 -0
- package/dist/lib/hooks/use-reaction.js.map +7 -0
- package/dist/lib/hooks/use-rect-path.d.ts +20 -0
- package/dist/lib/hooks/use-rect-path.js +25 -0
- package/dist/lib/hooks/use-rect-path.js.map +7 -0
- package/dist/lib/hooks/use-ref.d.ts +17 -0
- package/dist/lib/hooks/use-ref.js +8 -0
- package/dist/lib/hooks/use-ref.js.map +7 -0
- package/dist/lib/hooks/use-region.d.ts +11 -0
- package/dist/lib/hooks/use-region.js +34 -0
- package/dist/lib/hooks/use-region.js.map +7 -0
- package/dist/lib/hooks/use-signal.d.ts +12 -0
- package/dist/lib/hooks/use-signal.js +12 -0
- package/dist/lib/hooks/use-signal.js.map +7 -0
- package/dist/lib/hooks/use-svg-path.d.ts +11 -0
- package/dist/lib/hooks/use-svg-path.js +13 -0
- package/dist/lib/hooks/use-svg-path.js.map +7 -0
- package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
- package/dist/lib/hooks/use-value-memo-slot.js +45 -0
- package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
- package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
- package/dist/lib/hooks/use-visibility-transition.js +195 -0
- package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
- package/dist/lib/html/html-service.d.ts +30 -0
- package/dist/lib/html/html-service.js +281 -0
- package/dist/lib/html/html-service.js.map +7 -0
- package/dist/lib/html/overlay-config.d.ts +3 -0
- package/dist/lib/html/overlay-config.js +37 -0
- package/dist/lib/html/overlay-config.js.map +7 -0
- package/dist/lib/html/portable-clips.d.ts +4 -0
- package/dist/lib/html/portable-clips.js +20 -0
- package/dist/lib/html/portable-clips.js.map +7 -0
- package/dist/lib/html/types.d.ts +110 -0
- package/dist/lib/layout/absolute.d.ts +57 -0
- package/dist/lib/layout/absolute.js +348 -0
- package/dist/lib/layout/absolute.js.map +7 -0
- package/dist/lib/layout/box.d.ts +19 -0
- package/dist/lib/layout/box.js +209 -0
- package/dist/lib/layout/box.js.map +7 -0
- package/dist/lib/layout/context.d.ts +13 -0
- package/dist/lib/layout/context.js +42 -0
- package/dist/lib/layout/context.js.map +7 -0
- package/dist/lib/layout/diagnostics.d.ts +15 -0
- package/dist/lib/layout/diagnostics.js +30 -0
- package/dist/lib/layout/diagnostics.js.map +7 -0
- package/dist/lib/layout/flex.d.ts +64 -0
- package/dist/lib/layout/flex.js +803 -0
- package/dist/lib/layout/flex.js.map +7 -0
- package/dist/lib/layout/flow.d.ts +53 -0
- package/dist/lib/layout/flow.js +400 -0
- package/dist/lib/layout/flow.js.map +7 -0
- package/dist/lib/layout/grid.d.ts +64 -0
- package/dist/lib/layout/grid.js +597 -0
- package/dist/lib/layout/grid.js.map +7 -0
- package/dist/lib/layout/measure.d.ts +19 -0
- package/dist/lib/layout/measure.js +144 -0
- package/dist/lib/layout/measure.js.map +7 -0
- package/dist/lib/layout/overlay.d.ts +42 -0
- package/dist/lib/layout/overlay.js +151 -0
- package/dist/lib/layout/overlay.js.map +7 -0
- package/dist/lib/layout/place-child.d.ts +12 -0
- package/dist/lib/layout/place-child.js +72 -0
- package/dist/lib/layout/place-child.js.map +7 -0
- package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
- package/dist/lib/layout/positioning-diagnostics.js +15 -0
- package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
- package/dist/lib/layout/types.d.ts +78 -0
- package/dist/lib/manipulation/controller-types.d.ts +299 -0
- package/dist/lib/manipulation/controller.d.ts +57 -0
- package/dist/lib/manipulation/controller.js +464 -0
- package/dist/lib/manipulation/controller.js.map +7 -0
- package/dist/lib/manipulation/coordinates.d.ts +9 -0
- package/dist/lib/manipulation/coordinates.js +55 -0
- package/dist/lib/manipulation/coordinates.js.map +7 -0
- package/dist/lib/manipulation/degrees.d.ts +10 -0
- package/dist/lib/manipulation/degrees.js +9 -0
- package/dist/lib/manipulation/degrees.js.map +7 -0
- package/dist/lib/manipulation/frame.d.ts +24 -0
- package/dist/lib/manipulation/frame.js +101 -0
- package/dist/lib/manipulation/frame.js.map +7 -0
- package/dist/lib/manipulation/geometry.d.ts +4 -0
- package/dist/lib/manipulation/geometry.js +26 -0
- package/dist/lib/manipulation/geometry.js.map +7 -0
- package/dist/lib/manipulation/handles.d.ts +298 -0
- package/dist/lib/manipulation/handles.js +598 -0
- package/dist/lib/manipulation/handles.js.map +7 -0
- package/dist/lib/manipulation/manipulable.d.ts +65 -0
- package/dist/lib/manipulation/manipulable.js +47 -0
- package/dist/lib/manipulation/manipulable.js.map +7 -0
- package/dist/lib/manipulation/ownership.d.ts +15 -0
- package/dist/lib/manipulation/ownership.js +80 -0
- package/dist/lib/manipulation/ownership.js.map +7 -0
- package/dist/lib/manipulation/snap.d.ts +6 -0
- package/dist/lib/manipulation/snap.js +40 -0
- package/dist/lib/manipulation/snap.js.map +7 -0
- package/dist/lib/manipulation/solve.d.ts +2 -0
- package/dist/lib/manipulation/solve.js +563 -0
- package/dist/lib/manipulation/solve.js.map +7 -0
- package/dist/lib/manipulation/types.d.ts +178 -0
- package/dist/lib/mount-pibbl.d.ts +25 -0
- package/dist/lib/mount-pibbl.js +278 -0
- package/dist/lib/mount-pibbl.js.map +7 -0
- package/dist/lib/optional-services.d.ts +8 -0
- package/dist/lib/optional-services.js +11 -0
- package/dist/lib/optional-services.js.map +7 -0
- package/dist/lib/pibbl.d.ts +17 -0
- package/dist/lib/pibbl.js +21 -0
- package/dist/lib/pibbl.js.map +7 -0
- package/dist/lib/primitive-presentation.d.ts +24 -0
- package/dist/lib/primitive-presentation.js +102 -0
- package/dist/lib/primitive-presentation.js.map +7 -0
- package/dist/lib/render-layer/controller.d.ts +67 -0
- package/dist/lib/render-layer/controller.js +603 -0
- package/dist/lib/render-layer/controller.js.map +7 -0
- package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
- package/dist/lib/render-layer/define-render-layer.js +90 -0
- package/dist/lib/render-layer/define-render-layer.js.map +7 -0
- package/dist/lib/render-layer/types.d.ts +315 -0
- package/dist/lib/render-target.d.ts +27 -0
- package/dist/lib/render-target.js +118 -0
- package/dist/lib/render-target.js.map +7 -0
- package/dist/lib/render-transaction.d.ts +10 -0
- package/dist/lib/render-transaction.js +46 -0
- package/dist/lib/render-transaction.js.map +7 -0
- package/dist/lib/render.d.ts +3 -0
- package/dist/lib/render.js +385 -0
- package/dist/lib/render.js.map +7 -0
- package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
- package/dist/lib/scheduler/realm-scheduler.js +964 -0
- package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
- package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
- package/dist/lib/scheduler/renderer-participant.js +216 -0
- package/dist/lib/scheduler/renderer-participant.js.map +7 -0
- package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
- package/dist/lib/scheduler/simulation-participant.js +229 -0
- package/dist/lib/scheduler/simulation-participant.js.map +7 -0
- package/dist/lib/scheduler/testing.d.ts +56 -0
- package/dist/lib/scheduler/testing.js +71 -0
- package/dist/lib/scheduler/testing.js.map +7 -0
- package/dist/lib/scheduler/types.d.ts +103 -0
- package/dist/lib/signals/edge.d.ts +44 -0
- package/dist/lib/signals/edge.js +245 -0
- package/dist/lib/signals/edge.js.map +7 -0
- package/dist/lib/signals/graph.d.ts +220 -0
- package/dist/lib/signals/graph.js +1035 -0
- package/dist/lib/signals/graph.js.map +7 -0
- package/dist/lib/signals/input-provision.d.ts +3 -0
- package/dist/lib/signals/input-provision.js +67 -0
- package/dist/lib/signals/input-provision.js.map +7 -0
- package/dist/lib/signals/render-consumer.d.ts +21 -0
- package/dist/lib/signals/render-consumer.js +218 -0
- package/dist/lib/signals/render-consumer.js.map +7 -0
- package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
- package/dist/lib/signals/resolve-signal-value.js +17 -0
- package/dist/lib/signals/resolve-signal-value.js.map +7 -0
- package/dist/lib/signals/types.d.ts +80 -0
- package/dist/lib/style/diagnostics.d.ts +83 -0
- package/dist/lib/style/diagnostics.js +63 -0
- package/dist/lib/style/diagnostics.js.map +7 -0
- package/dist/lib/style/empty-style.d.ts +3 -0
- package/dist/lib/style/empty-style.js +5 -0
- package/dist/lib/style/empty-style.js.map +7 -0
- package/dist/lib/style/filter-types.d.ts +243 -0
- package/dist/lib/style/filter-types.js +5 -0
- package/dist/lib/style/filter-types.js.map +7 -0
- package/dist/lib/style/filter.d.ts +7 -0
- package/dist/lib/style/filter.js +50 -0
- package/dist/lib/style/filter.js.map +7 -0
- package/dist/lib/style/normalize.d.ts +18 -0
- package/dist/lib/style/normalize.js +50 -0
- package/dist/lib/style/normalize.js.map +7 -0
- package/dist/lib/style/positioning.d.ts +32 -0
- package/dist/lib/style/positioning.js +81 -0
- package/dist/lib/style/positioning.js.map +7 -0
- package/dist/lib/style/resolve-built-in.d.ts +6 -0
- package/dist/lib/style/resolve-built-in.js +58 -0
- package/dist/lib/style/resolve-built-in.js.map +7 -0
- package/dist/lib/style/resolve-dispatch.d.ts +20 -0
- package/dist/lib/style/resolve-dispatch.js +167 -0
- package/dist/lib/style/resolve-dispatch.js.map +7 -0
- package/dist/lib/style/resolve-length.d.ts +16 -0
- package/dist/lib/style/resolve-length.js +54 -0
- package/dist/lib/style/resolve-length.js.map +7 -0
- package/dist/lib/style/responsive.d.ts +31 -0
- package/dist/lib/style/responsive.js +172 -0
- package/dist/lib/style/responsive.js.map +7 -0
- package/dist/lib/style/types.d.ts +338 -0
- package/dist/lib/surface/resolve-surface.d.ts +4 -0
- package/dist/lib/surface/resolve-surface.js +184 -0
- package/dist/lib/surface/resolve-surface.js.map +7 -0
- package/dist/lib/surface/root-surface.d.ts +7 -0
- package/dist/lib/surface/root-surface.js +171 -0
- package/dist/lib/surface/root-surface.js.map +7 -0
- package/dist/lib/surface/transform.d.ts +4 -0
- package/dist/lib/surface/transform.js +16 -0
- package/dist/lib/surface/transform.js.map +7 -0
- package/dist/lib/surface/types.d.ts +132 -0
- package/dist/lib/teardowns.d.ts +14 -0
- package/dist/lib/teardowns.js +50 -0
- package/dist/lib/teardowns.js.map +7 -0
- package/dist/lib/textures/texture-protocol.d.ts +124 -0
- package/dist/lib/textures/texture-protocol.js +40 -0
- package/dist/lib/textures/texture-protocol.js.map +7 -0
- package/dist/lib/textures/texture.d.ts +170 -0
- package/dist/lib/textures/texture.js +385 -0
- package/dist/lib/textures/texture.js.map +7 -0
- package/dist/lib/transitions/bifrost.d.ts +47 -0
- package/dist/lib/transitions/bifrost.js +91 -0
- package/dist/lib/transitions/bifrost.js.map +7 -0
- package/dist/lib/transitions/binding.d.ts +14 -0
- package/dist/lib/transitions/binding.js +35 -0
- package/dist/lib/transitions/binding.js.map +7 -0
- package/dist/lib/transitions/capture.d.ts +21 -0
- package/dist/lib/transitions/capture.js +91 -0
- package/dist/lib/transitions/capture.js.map +7 -0
- package/dist/lib/transitions/common.d.ts +130 -0
- package/dist/lib/transitions/common.js +57 -0
- package/dist/lib/transitions/common.js.map +7 -0
- package/dist/lib/transitions/define-transition.d.ts +64 -0
- package/dist/lib/transitions/define-transition.js +31 -0
- package/dist/lib/transitions/define-transition.js.map +7 -0
- package/dist/lib/transitions/embers-physics.d.ts +114 -0
- package/dist/lib/transitions/embers-physics.js +161 -0
- package/dist/lib/transitions/embers-physics.js.map +7 -0
- package/dist/lib/transitions/embers.d.ts +67 -0
- package/dist/lib/transitions/embers.js +196 -0
- package/dist/lib/transitions/embers.js.map +7 -0
- package/dist/lib/transitions/fade.d.ts +41 -0
- package/dist/lib/transitions/fade.js +31 -0
- package/dist/lib/transitions/fade.js.map +7 -0
- package/dist/lib/transitions/hologram.d.ts +47 -0
- package/dist/lib/transitions/hologram.js +94 -0
- package/dist/lib/transitions/hologram.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
- package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
- package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
- package/dist/lib/transitions/wasm/kernel.js +26 -0
- package/dist/lib/transitions/wasm/kernel.js.map +7 -0
- package/dist/lib/types.d.ts +570 -0
- package/dist/lib/update.d.ts +8 -0
- package/dist/lib/update.js +20 -0
- package/dist/lib/update.js.map +7 -0
- package/dist/lib/util/get-2d-context.d.ts +2 -0
- package/dist/lib/util/get-2d-context.js +11 -0
- package/dist/lib/util/get-2d-context.js.map +7 -0
- package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
- package/dist/lib/util/get-mouse-coordinates.js +32 -0
- package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
- package/dist/lib/util/is-hit.d.ts +11 -0
- package/dist/lib/util/is-hit.js +52 -0
- package/dist/lib/util/is-hit.js.map +7 -0
- package/dist/lib/util/is-transparent.d.ts +1 -0
- package/dist/lib/util/is-transparent.js +8 -0
- package/dist/lib/util/is-transparent.js.map +7 -0
- package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
- package/dist/lib/util/pixel-grid-adjustments.js +28 -0
- package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
- package/dist/lib/util/push-clipping-path.d.ts +6 -0
- package/dist/lib/util/push-clipping-path.js +28 -0
- package/dist/lib/util/push-clipping-path.js.map +7 -0
- package/dist/lib/util/wire-common-events.d.ts +2 -0
- package/dist/lib/util/wire-common-events.js +15 -0
- package/dist/lib/util/wire-common-events.js.map +7 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +7 -0
- package/dist/types.mjs +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/features/physics/lib/2d/world/broad-phase.ts"],
|
|
4
|
+
"sourcesContent": ["import { FAT_AABB_MARGIN } from \"../numeric-policy.js\";\nimport type { PhysicsOwnershipCounters2D } from \"../runtime/ownership.js\";\n\nconst NO_INDEX = -1;\nconst FREE_HEIGHT = -1;\nconst MAX_PROXY_INDEX = 0x7fff_ffff;\nconst MAX_GENERATION = 0xffff_ffff;\n\nexport class DynamicAabbBroadPhase2D {\n proxyColliderIndices: Int32Array;\n proxyColliderGenerations: Uint32Array;\n proxyNodes: Int32Array;\n proxyGenerations: Uint32Array;\n proxyMoved: Uint8Array;\n\n nodeParents: Int32Array;\n nodeChild1: Int32Array;\n nodeChild2: Int32Array;\n nodeHeights: Int32Array;\n nodeProxyIndices: Int32Array;\n nodeMinProxyIndices: Int32Array;\n nodeMinX: Float64Array;\n nodeMinY: Float64Array;\n nodeMaxX: Float64Array;\n nodeMaxY: Float64Array;\n nodeGenerations: Uint32Array;\n nodeActive: Uint8Array;\n\n pairFirstColliderIndices: Int32Array;\n pairFirstColliderGenerations: Uint32Array;\n pairSecondColliderIndices: Int32Array;\n pairSecondColliderGenerations: Uint32Array;\n pairCount = 0;\n rootNode = NO_INDEX;\n\n private proxyActive: Uint8Array;\n private proxyNextFree: Int32Array;\n private proxyFreeHead = NO_INDEX;\n private colliderProxyIndices: Int32Array;\n private nodeNextFree: Int32Array;\n private nodeFreeHead = NO_INDEX;\n private movedBuffer: Int32Array;\n private movedCount = 0;\n private queryStack: Int32Array;\n\n constructor(\n public readonly counters: PhysicsOwnershipCounters2D,\n initialProxyCapacity = 4,\n initialNodeCapacity = 8,\n ) {\n const proxyCapacity = normalizedCapacity(initialProxyCapacity);\n const nodeCapacity = normalizedCapacity(initialNodeCapacity);\n this.proxyColliderIndices = filledInt32(proxyCapacity, NO_INDEX);\n this.proxyColliderGenerations = new Uint32Array(proxyCapacity);\n this.proxyNodes = filledInt32(proxyCapacity, NO_INDEX);\n this.proxyGenerations = new Uint32Array(proxyCapacity);\n this.proxyMoved = new Uint8Array(proxyCapacity);\n this.proxyActive = new Uint8Array(proxyCapacity);\n this.proxyNextFree = createFreeList(proxyCapacity, 0);\n this.proxyFreeHead = 0;\n this.colliderProxyIndices = filledInt32(proxyCapacity, NO_INDEX);\n\n this.nodeParents = filledInt32(nodeCapacity, NO_INDEX);\n this.nodeChild1 = filledInt32(nodeCapacity, NO_INDEX);\n this.nodeChild2 = filledInt32(nodeCapacity, NO_INDEX);\n this.nodeHeights = filledInt32(nodeCapacity, FREE_HEIGHT);\n this.nodeProxyIndices = filledInt32(nodeCapacity, NO_INDEX);\n this.nodeMinProxyIndices = filledInt32(nodeCapacity, MAX_PROXY_INDEX);\n this.nodeMinX = new Float64Array(nodeCapacity);\n this.nodeMinY = new Float64Array(nodeCapacity);\n this.nodeMaxX = new Float64Array(nodeCapacity);\n this.nodeMaxY = new Float64Array(nodeCapacity);\n this.nodeGenerations = new Uint32Array(nodeCapacity);\n this.nodeActive = new Uint8Array(nodeCapacity);\n this.nodeNextFree = createFreeList(nodeCapacity, 0);\n this.nodeFreeHead = 0;\n\n this.movedBuffer = new Int32Array(proxyCapacity);\n const pairCapacity = normalizedCapacity(proxyCapacity * 2);\n this.pairFirstColliderIndices = new Int32Array(pairCapacity);\n this.pairFirstColliderGenerations = new Uint32Array(pairCapacity);\n this.pairSecondColliderIndices = new Int32Array(pairCapacity);\n this.pairSecondColliderGenerations = new Uint32Array(pairCapacity);\n this.queryStack = new Int32Array(nodeCapacity);\n\n counters.proxyCapacity = proxyCapacity;\n counters.freeProxySlots = proxyCapacity;\n counters.colliderProxyMapCapacity = proxyCapacity;\n counters.treeNodeCapacity = nodeCapacity;\n counters.freeTreeNodeSlots = nodeCapacity;\n counters.movedBufferCapacity = proxyCapacity;\n counters.pairBufferCapacity = pairCapacity;\n counters.queryStackCapacity = nodeCapacity;\n }\n\n get proxyCapacity(): number {\n return this.proxyActive.length;\n }\n\n get nodeCapacity(): number {\n return this.nodeActive.length;\n }\n\n createProxy(\n colliderIndex: number,\n colliderGeneration: number,\n minX: number,\n minY: number,\n maxX: number,\n maxY: number,\n ): number {\n this.ensureColliderProxyCapacity(colliderIndex + 1);\n if (this.colliderProxyIndices[colliderIndex] !== NO_INDEX) {\n throw new Error(\"collider already has a live broad-phase proxy.\");\n }\n if (this.proxyFreeHead === NO_INDEX) this.growProxies();\n const proxy = this.proxyFreeHead;\n this.proxyFreeHead = this.proxyNextFree[proxy]!;\n this.proxyNextFree[proxy] = NO_INDEX;\n this.proxyActive[proxy] = 1;\n this.proxyGenerations[proxy] = nextGeneration(\n this.proxyGenerations[proxy]!,\n );\n this.proxyColliderIndices[proxy] = colliderIndex;\n this.proxyColliderGenerations[proxy] = colliderGeneration;\n this.colliderProxyIndices[colliderIndex] = proxy;\n const node = this.allocateNode();\n this.proxyNodes[proxy] = node;\n this.nodeProxyIndices[node] = proxy;\n this.nodeMinProxyIndices[node] = proxy;\n this.nodeHeights[node] = 0;\n this.setFatBounds(node, minX, minY, maxX, maxY, 0, 0);\n this.insertLeaf(node);\n this.bufferMove(proxy);\n this.counters.proxyAllocations += 1;\n this.counters.liveProxies += 1;\n this.counters.freeProxySlots -= 1;\n return proxy;\n }\n\n hasProxy(proxy: number, generation: number): boolean {\n return (\n Number.isInteger(proxy) &&\n proxy >= 0 &&\n proxy < this.proxyActive.length &&\n this.proxyActive[proxy] === 1 &&\n this.proxyGenerations[proxy] === generation\n );\n }\n\n readFatBoundsInto(\n proxy: number,\n generation: number,\n output: Float64Array,\n outputOffset: number,\n ): boolean {\n if (!this.hasProxy(proxy, generation)) return false;\n const node = this.proxyNodes[proxy]!;\n output[outputOffset] = this.nodeMinX[node]!;\n output[outputOffset + 1] = this.nodeMinY[node]!;\n output[outputOffset + 2] = this.nodeMaxX[node]!;\n output[outputOffset + 3] = this.nodeMaxY[node]!;\n return true;\n }\n\n moveProxy(\n proxy: number,\n generation: number,\n minX: number,\n minY: number,\n maxX: number,\n maxY: number,\n displacementX: number,\n displacementY: number,\n ): boolean {\n if (!this.hasProxy(proxy, generation)) return false;\n const node = this.proxyNodes[proxy]!;\n if (\n this.nodeMinX[node]! <= minX &&\n this.nodeMinY[node]! <= minY &&\n this.nodeMaxX[node]! >= maxX &&\n this.nodeMaxY[node]! >= maxY\n ) {\n return false;\n }\n this.removeLeaf(node);\n this.setFatBounds(\n node,\n minX,\n minY,\n maxX,\n maxY,\n displacementX,\n displacementY,\n );\n this.insertLeaf(node);\n this.bufferMove(proxy);\n return true;\n }\n\n destroyProxy(proxy: number, generation: number): boolean {\n if (!this.hasProxy(proxy, generation)) return false;\n if (this.proxyMoved[proxy] === 1) this.unbufferMove(proxy);\n const node = this.proxyNodes[proxy]!;\n this.removeLeaf(node);\n this.releaseNode(node);\n this.proxyActive[proxy] = 0;\n this.colliderProxyIndices[this.proxyColliderIndices[proxy]!] = NO_INDEX;\n this.proxyColliderIndices[proxy] = NO_INDEX;\n this.proxyColliderGenerations[proxy] = 0;\n this.proxyNodes[proxy] = NO_INDEX;\n this.proxyMoved[proxy] = 0;\n this.counters.proxyReleases += 1;\n this.counters.liveProxies -= 1;\n if (generation === MAX_GENERATION) {\n this.proxyNextFree[proxy] = NO_INDEX;\n this.counters.retiredProxySlots += 1;\n } else {\n this.proxyNextFree[proxy] = this.proxyFreeHead;\n this.proxyFreeHead = proxy;\n this.counters.freeProxySlots += 1;\n }\n return true;\n }\n\n publishPairs(): number {\n this.pairCount = 0;\n for (let movedIndex = 0; movedIndex < this.movedCount; movedIndex += 1) {\n const proxy = this.movedBuffer[movedIndex]!;\n if (this.proxyActive[proxy] === 1) this.appendPairsForProxy(proxy);\n }\n this.sortPairs();\n this.deduplicatePairs();\n this.counters.publishedPairs = this.pairCount;\n for (let movedIndex = 0; movedIndex < this.movedCount; movedIndex += 1) {\n this.proxyMoved[this.movedBuffer[movedIndex]!] = 0;\n }\n this.movedCount = 0;\n this.counters.movedProxies = 0;\n return this.pairCount;\n }\n\n queryAabbInto(\n minX: number,\n minY: number,\n maxX: number,\n maxY: number,\n output: Int32Array,\n outputOffset: number,\n maxCount: number,\n ): number {\n if (this.rootNode === NO_INDEX || maxCount <= 0) return 0;\n let stackCount = 0;\n this.ensureQueryStackCapacity(1);\n this.queryStack[stackCount] = this.rootNode;\n stackCount += 1;\n let count = 0;\n while (stackCount > 0) {\n stackCount -= 1;\n const node = this.queryStack[stackCount]!;\n if (!this.overlaps(node, minX, minY, maxX, maxY)) continue;\n const proxy = this.nodeProxyIndices[node]!;\n if (proxy !== NO_INDEX) {\n if (count < maxCount && outputOffset + count < output.length) {\n output[outputOffset + count] = proxy;\n count += 1;\n }\n continue;\n }\n this.ensureQueryStackCapacity(stackCount + 2);\n this.queryStack[stackCount] = this.nodeChild1[node]!;\n this.queryStack[stackCount + 1] = this.nodeChild2[node]!;\n stackCount += 2;\n }\n sortInt32Range(output, outputOffset, count);\n return count;\n }\n\n private appendPairsForProxy(proxy: number): void {\n const leaf = this.proxyNodes[proxy]!;\n const minX = this.nodeMinX[leaf]!;\n const minY = this.nodeMinY[leaf]!;\n const maxX = this.nodeMaxX[leaf]!;\n const maxY = this.nodeMaxY[leaf]!;\n let stackCount = 0;\n this.ensureQueryStackCapacity(1);\n this.queryStack[stackCount] = this.rootNode;\n stackCount += 1;\n while (stackCount > 0) {\n stackCount -= 1;\n const node = this.queryStack[stackCount]!;\n if (!this.overlaps(node, minX, minY, maxX, maxY)) continue;\n const other = this.nodeProxyIndices[node]!;\n if (other !== NO_INDEX) {\n if (other !== proxy) this.appendPair(proxy, other);\n continue;\n }\n this.ensureQueryStackCapacity(stackCount + 2);\n this.queryStack[stackCount] = this.nodeChild1[node]!;\n this.queryStack[stackCount + 1] = this.nodeChild2[node]!;\n stackCount += 2;\n }\n }\n\n private appendPair(firstProxy: number, secondProxy: number): void {\n let firstIndex = this.proxyColliderIndices[firstProxy]!;\n let firstGeneration = this.proxyColliderGenerations[firstProxy]!;\n let secondIndex = this.proxyColliderIndices[secondProxy]!;\n let secondGeneration = this.proxyColliderGenerations[secondProxy]!;\n const order = compareIdentity(\n firstIndex,\n firstGeneration,\n secondIndex,\n secondGeneration,\n );\n if (order === 0) return;\n if (order > 0) {\n const swapIndex = firstIndex;\n const swapGeneration = firstGeneration;\n firstIndex = secondIndex;\n firstGeneration = secondGeneration;\n secondIndex = swapIndex;\n secondGeneration = swapGeneration;\n }\n this.ensurePairCapacity(this.pairCount + 1);\n this.pairFirstColliderIndices[this.pairCount] = firstIndex;\n this.pairFirstColliderGenerations[this.pairCount] = firstGeneration;\n this.pairSecondColliderIndices[this.pairCount] = secondIndex;\n this.pairSecondColliderGenerations[this.pairCount] = secondGeneration;\n this.pairCount += 1;\n }\n\n private sortPairs(): void {\n for (let root = Math.floor(this.pairCount / 2) - 1; root >= 0; root -= 1) {\n this.siftPairDown(root, this.pairCount);\n }\n for (let end = this.pairCount - 1; end > 0; end -= 1) {\n this.swapPairs(0, end);\n this.siftPairDown(0, end);\n }\n }\n\n private siftPairDown(root: number, count: number): void {\n let current = root;\n while (current * 2 + 1 < count) {\n const left = current * 2 + 1;\n const right = left + 1;\n let greater = left;\n if (right < count && this.comparePairs(left, right) < 0) greater = right;\n if (this.comparePairs(current, greater) >= 0) return;\n this.swapPairs(current, greater);\n current = greater;\n }\n }\n\n private comparePairs(first: number, second: number): number {\n let comparison = compareIdentity(\n this.pairFirstColliderIndices[first]!,\n this.pairFirstColliderGenerations[first]!,\n this.pairFirstColliderIndices[second]!,\n this.pairFirstColliderGenerations[second]!,\n );\n if (comparison !== 0) return comparison;\n comparison = compareIdentity(\n this.pairSecondColliderIndices[first]!,\n this.pairSecondColliderGenerations[first]!,\n this.pairSecondColliderIndices[second]!,\n this.pairSecondColliderGenerations[second]!,\n );\n return comparison;\n }\n\n private swapPairs(first: number, second: number): void {\n let value = this.pairFirstColliderIndices[first]!;\n this.pairFirstColliderIndices[first] =\n this.pairFirstColliderIndices[second]!;\n this.pairFirstColliderIndices[second] = value;\n value = this.pairFirstColliderGenerations[first]!;\n this.pairFirstColliderGenerations[first] =\n this.pairFirstColliderGenerations[second]!;\n this.pairFirstColliderGenerations[second] = value;\n value = this.pairSecondColliderIndices[first]!;\n this.pairSecondColliderIndices[first] =\n this.pairSecondColliderIndices[second]!;\n this.pairSecondColliderIndices[second] = value;\n value = this.pairSecondColliderGenerations[first]!;\n this.pairSecondColliderGenerations[first] =\n this.pairSecondColliderGenerations[second]!;\n this.pairSecondColliderGenerations[second] = value;\n }\n\n private deduplicatePairs(): void {\n if (this.pairCount < 2) return;\n let write = 1;\n for (let read = 1; read < this.pairCount; read += 1) {\n if (this.comparePairs(read, write - 1) === 0) continue;\n if (write !== read) this.copyPair(read, write);\n write += 1;\n }\n this.pairCount = write;\n }\n\n private copyPair(source: number, target: number): void {\n this.pairFirstColliderIndices[target] =\n this.pairFirstColliderIndices[source]!;\n this.pairFirstColliderGenerations[target] =\n this.pairFirstColliderGenerations[source]!;\n this.pairSecondColliderIndices[target] =\n this.pairSecondColliderIndices[source]!;\n this.pairSecondColliderGenerations[target] =\n this.pairSecondColliderGenerations[source]!;\n }\n\n private insertLeaf(leaf: number): void {\n if (this.rootNode === NO_INDEX) {\n this.rootNode = leaf;\n this.nodeParents[leaf] = NO_INDEX;\n return;\n }\n let sibling = this.rootNode;\n while (this.nodeProxyIndices[sibling] === NO_INDEX) {\n const first = this.nodeChild1[sibling]!;\n const second = this.nodeChild2[sibling]!;\n const perimeter = this.perimeter(sibling);\n const combinedPerimeter = this.combinedPerimeter(sibling, leaf);\n const parentCost = 2 * combinedPerimeter;\n const inheritanceCost = 2 * (combinedPerimeter - perimeter);\n const firstCost = this.descendCost(first, leaf, inheritanceCost);\n const secondCost = this.descendCost(second, leaf, inheritanceCost);\n if (parentCost < firstCost && parentCost < secondCost) break;\n if (firstCost < secondCost) {\n sibling = first;\n } else if (secondCost < firstCost) {\n sibling = second;\n } else {\n sibling =\n this.nodeMinProxyIndices[first]! <= this.nodeMinProxyIndices[second]!\n ? first\n : second;\n }\n }\n\n const oldParent = this.nodeParents[sibling]!;\n const newParent = this.allocateNode();\n this.nodeParents[newParent] = oldParent;\n this.nodeChild1[newParent] = sibling;\n this.nodeChild2[newParent] = leaf;\n this.nodeProxyIndices[newParent] = NO_INDEX;\n this.nodeParents[sibling] = newParent;\n this.nodeParents[leaf] = newParent;\n this.updateNode(newParent);\n if (oldParent === NO_INDEX) {\n this.rootNode = newParent;\n } else if (this.nodeChild1[oldParent] === sibling) {\n this.nodeChild1[oldParent] = newParent;\n } else {\n this.nodeChild2[oldParent] = newParent;\n }\n\n let node = this.nodeParents[leaf]!;\n while (node !== NO_INDEX) {\n node = this.balance(node);\n this.updateNode(node);\n node = this.nodeParents[node]!;\n }\n }\n\n private removeLeaf(leaf: number): void {\n if (leaf === this.rootNode) {\n this.rootNode = NO_INDEX;\n this.nodeParents[leaf] = NO_INDEX;\n return;\n }\n const parent = this.nodeParents[leaf]!;\n const grandParent = this.nodeParents[parent]!;\n const sibling =\n this.nodeChild1[parent] === leaf\n ? this.nodeChild2[parent]!\n : this.nodeChild1[parent]!;\n if (grandParent === NO_INDEX) {\n this.rootNode = sibling;\n this.nodeParents[sibling] = NO_INDEX;\n this.releaseNode(parent);\n } else {\n if (this.nodeChild1[grandParent] === parent) {\n this.nodeChild1[grandParent] = sibling;\n } else {\n this.nodeChild2[grandParent] = sibling;\n }\n this.nodeParents[sibling] = grandParent;\n this.releaseNode(parent);\n let node = grandParent;\n while (node !== NO_INDEX) {\n node = this.balance(node);\n this.updateNode(node);\n node = this.nodeParents[node]!;\n }\n }\n this.nodeParents[leaf] = NO_INDEX;\n }\n\n private balance(node: number): number {\n if (\n this.nodeProxyIndices[node] !== NO_INDEX ||\n this.nodeHeights[node]! < 2\n ) {\n return node;\n }\n const first = this.nodeChild1[node]!;\n const second = this.nodeChild2[node]!;\n const balance = this.nodeHeights[second]! - this.nodeHeights[first]!;\n if (balance > 1) return this.rotateSecondUp(node, second);\n if (balance < -1) return this.rotateFirstUp(node, first);\n return node;\n }\n\n private rotateSecondUp(node: number, second: number): number {\n const secondFirst = this.nodeChild1[second]!;\n const secondSecond = this.nodeChild2[second]!;\n const parent = this.nodeParents[node]!;\n this.nodeParents[second] = parent;\n this.nodeChild1[second] = node;\n this.nodeParents[node] = second;\n this.replaceParentChild(parent, node, second);\n const preferred = this.preferredBalanceChild(secondFirst, secondSecond);\n const other = preferred === secondFirst ? secondSecond : secondFirst;\n this.nodeChild2[second] = preferred;\n this.nodeParents[preferred] = second;\n this.nodeChild2[node] = other;\n this.nodeParents[other] = node;\n this.updateNode(node);\n this.updateNode(second);\n return second;\n }\n\n private rotateFirstUp(node: number, first: number): number {\n const firstFirst = this.nodeChild1[first]!;\n const firstSecond = this.nodeChild2[first]!;\n const parent = this.nodeParents[node]!;\n this.nodeParents[first] = parent;\n this.nodeChild2[first] = node;\n this.nodeParents[node] = first;\n this.replaceParentChild(parent, node, first);\n const preferred = this.preferredBalanceChild(firstFirst, firstSecond);\n const other = preferred === firstFirst ? firstSecond : firstFirst;\n this.nodeChild1[first] = preferred;\n this.nodeParents[preferred] = first;\n this.nodeChild1[node] = other;\n this.nodeParents[other] = node;\n this.updateNode(node);\n this.updateNode(first);\n return first;\n }\n\n private replaceParentChild(\n parent: number,\n previous: number,\n replacement: number,\n ): void {\n if (parent === NO_INDEX) {\n this.rootNode = replacement;\n } else if (this.nodeChild1[parent] === previous) {\n this.nodeChild1[parent] = replacement;\n } else {\n this.nodeChild2[parent] = replacement;\n }\n }\n\n private preferredBalanceChild(first: number, second: number): number {\n const firstHeight = this.nodeHeights[first]!;\n const secondHeight = this.nodeHeights[second]!;\n if (firstHeight > secondHeight) return first;\n if (secondHeight > firstHeight) return second;\n return this.nodeMinProxyIndices[first]! <= this.nodeMinProxyIndices[second]!\n ? first\n : second;\n }\n\n private descendCost(\n node: number,\n leaf: number,\n inheritanceCost: number,\n ): number {\n const combinedPerimeter = this.combinedPerimeter(node, leaf);\n return this.nodeProxyIndices[node] !== NO_INDEX\n ? combinedPerimeter + inheritanceCost\n : combinedPerimeter - this.perimeter(node) + inheritanceCost;\n }\n\n private updateNode(node: number): void {\n const first = this.nodeChild1[node]!;\n const second = this.nodeChild2[node]!;\n this.nodeMinX[node] = Math.min(\n this.nodeMinX[first]!,\n this.nodeMinX[second]!,\n );\n this.nodeMinY[node] = Math.min(\n this.nodeMinY[first]!,\n this.nodeMinY[second]!,\n );\n this.nodeMaxX[node] = Math.max(\n this.nodeMaxX[first]!,\n this.nodeMaxX[second]!,\n );\n this.nodeMaxY[node] = Math.max(\n this.nodeMaxY[first]!,\n this.nodeMaxY[second]!,\n );\n this.nodeHeights[node] =\n 1 + Math.max(this.nodeHeights[first]!, this.nodeHeights[second]!);\n this.nodeMinProxyIndices[node] = Math.min(\n this.nodeMinProxyIndices[first]!,\n this.nodeMinProxyIndices[second]!,\n );\n }\n\n private setFatBounds(\n node: number,\n minX: number,\n minY: number,\n maxX: number,\n maxY: number,\n displacementX: number,\n displacementY: number,\n ): void {\n this.nodeMinX[node] = minX - FAT_AABB_MARGIN + Math.min(0, displacementX);\n this.nodeMinY[node] = minY - FAT_AABB_MARGIN + Math.min(0, displacementY);\n this.nodeMaxX[node] = maxX + FAT_AABB_MARGIN + Math.max(0, displacementX);\n this.nodeMaxY[node] = maxY + FAT_AABB_MARGIN + Math.max(0, displacementY);\n }\n\n private overlaps(\n node: number,\n minX: number,\n minY: number,\n maxX: number,\n maxY: number,\n ): boolean {\n return !(\n this.nodeMaxX[node]! < minX ||\n this.nodeMaxY[node]! < minY ||\n this.nodeMinX[node]! > maxX ||\n this.nodeMinY[node]! > maxY\n );\n }\n\n private perimeter(node: number): number {\n return (\n 2 *\n (this.nodeMaxX[node]! -\n this.nodeMinX[node]! +\n this.nodeMaxY[node]! -\n this.nodeMinY[node]!)\n );\n }\n\n private combinedPerimeter(first: number, second: number): number {\n return (\n 2 *\n (Math.max(this.nodeMaxX[first]!, this.nodeMaxX[second]!) -\n Math.min(this.nodeMinX[first]!, this.nodeMinX[second]!) +\n Math.max(this.nodeMaxY[first]!, this.nodeMaxY[second]!) -\n Math.min(this.nodeMinY[first]!, this.nodeMinY[second]!))\n );\n }\n\n private allocateNode(): number {\n if (this.nodeFreeHead === NO_INDEX) this.growNodes();\n const node = this.nodeFreeHead;\n this.nodeFreeHead = this.nodeNextFree[node]!;\n this.nodeNextFree[node] = NO_INDEX;\n this.nodeActive[node] = 1;\n this.nodeGenerations[node] = nextGeneration(this.nodeGenerations[node]!);\n this.nodeParents[node] = NO_INDEX;\n this.nodeChild1[node] = NO_INDEX;\n this.nodeChild2[node] = NO_INDEX;\n this.nodeHeights[node] = 0;\n this.nodeProxyIndices[node] = NO_INDEX;\n this.nodeMinProxyIndices[node] = MAX_PROXY_INDEX;\n this.counters.treeNodeAllocations += 1;\n this.counters.liveTreeNodes += 1;\n this.counters.freeTreeNodeSlots -= 1;\n return node;\n }\n\n private releaseNode(node: number): void {\n this.nodeActive[node] = 0;\n this.nodeParents[node] = NO_INDEX;\n this.nodeChild1[node] = NO_INDEX;\n this.nodeChild2[node] = NO_INDEX;\n this.nodeHeights[node] = FREE_HEIGHT;\n this.nodeProxyIndices[node] = NO_INDEX;\n this.nodeMinProxyIndices[node] = MAX_PROXY_INDEX;\n this.nodeMinX[node] = 0;\n this.nodeMinY[node] = 0;\n this.nodeMaxX[node] = 0;\n this.nodeMaxY[node] = 0;\n this.counters.treeNodeReleases += 1;\n this.counters.liveTreeNodes -= 1;\n if (this.nodeGenerations[node] === MAX_GENERATION) {\n this.nodeNextFree[node] = NO_INDEX;\n this.counters.retiredTreeNodeSlots += 1;\n } else {\n this.nodeNextFree[node] = this.nodeFreeHead;\n this.nodeFreeHead = node;\n this.counters.freeTreeNodeSlots += 1;\n }\n }\n\n private bufferMove(proxy: number): void {\n if (this.proxyMoved[proxy] === 1) return;\n this.ensureMovedCapacity(this.movedCount + 1);\n this.movedBuffer[this.movedCount] = proxy;\n this.movedCount += 1;\n this.proxyMoved[proxy] = 1;\n this.counters.movedProxies = this.movedCount;\n }\n\n private unbufferMove(proxy: number): void {\n for (let index = 0; index < this.movedCount; index += 1) {\n if (this.movedBuffer[index] !== proxy) continue;\n for (let shift = index + 1; shift < this.movedCount; shift += 1) {\n this.movedBuffer[shift - 1] = this.movedBuffer[shift]!;\n }\n this.movedCount -= 1;\n break;\n }\n this.proxyMoved[proxy] = 0;\n this.counters.movedProxies = this.movedCount;\n }\n\n private growProxies(): void {\n const oldCapacity = this.proxyCapacity;\n const capacity = oldCapacity * 2;\n this.proxyColliderIndices = growInt32(\n this.proxyColliderIndices,\n capacity,\n NO_INDEX,\n );\n this.proxyColliderGenerations = growUint32(\n this.proxyColliderGenerations,\n capacity,\n );\n this.proxyNodes = growInt32(this.proxyNodes, capacity, NO_INDEX);\n this.proxyGenerations = growUint32(this.proxyGenerations, capacity);\n this.proxyMoved = growUint8(this.proxyMoved, capacity);\n this.proxyActive = growUint8(this.proxyActive, capacity);\n this.proxyNextFree = growFreeList(\n this.proxyNextFree,\n capacity,\n oldCapacity,\n );\n this.proxyFreeHead = oldCapacity;\n this.counters.proxyCapacity = capacity;\n this.counters.proxyCapacityGrowths += 1;\n this.counters.freeProxySlots += capacity - oldCapacity;\n }\n\n private growNodes(): void {\n const oldCapacity = this.nodeCapacity;\n const capacity = oldCapacity * 2;\n this.nodeParents = growInt32(this.nodeParents, capacity, NO_INDEX);\n this.nodeChild1 = growInt32(this.nodeChild1, capacity, NO_INDEX);\n this.nodeChild2 = growInt32(this.nodeChild2, capacity, NO_INDEX);\n this.nodeHeights = growInt32(this.nodeHeights, capacity, FREE_HEIGHT);\n this.nodeProxyIndices = growInt32(\n this.nodeProxyIndices,\n capacity,\n NO_INDEX,\n );\n this.nodeMinProxyIndices = growInt32(\n this.nodeMinProxyIndices,\n capacity,\n MAX_PROXY_INDEX,\n );\n this.nodeMinX = growFloat64(this.nodeMinX, capacity);\n this.nodeMinY = growFloat64(this.nodeMinY, capacity);\n this.nodeMaxX = growFloat64(this.nodeMaxX, capacity);\n this.nodeMaxY = growFloat64(this.nodeMaxY, capacity);\n this.nodeGenerations = growUint32(this.nodeGenerations, capacity);\n this.nodeActive = growUint8(this.nodeActive, capacity);\n this.nodeNextFree = growFreeList(this.nodeNextFree, capacity, oldCapacity);\n this.nodeFreeHead = oldCapacity;\n this.counters.treeNodeCapacity = capacity;\n this.counters.treeNodeCapacityGrowths += 1;\n this.counters.freeTreeNodeSlots += capacity - oldCapacity;\n }\n\n private ensureMovedCapacity(required: number): void {\n if (required <= this.movedBuffer.length) return;\n let capacity = this.movedBuffer.length * 2;\n while (capacity < required) capacity *= 2;\n const moved = new Int32Array(capacity);\n moved.set(this.movedBuffer);\n this.movedBuffer = moved;\n this.counters.movedBufferCapacity = capacity;\n this.counters.movedBufferGrowths += 1;\n }\n\n private ensureColliderProxyCapacity(required: number): void {\n if (required <= this.colliderProxyIndices.length) return;\n let capacity = this.colliderProxyIndices.length * 2;\n while (capacity < required) capacity *= 2;\n this.colliderProxyIndices = growInt32(\n this.colliderProxyIndices,\n capacity,\n NO_INDEX,\n );\n this.counters.colliderProxyMapCapacity = capacity;\n this.counters.colliderProxyMapGrowths += 1;\n }\n\n private ensurePairCapacity(required: number): void {\n if (required <= this.pairFirstColliderIndices.length) return;\n let capacity = this.pairFirstColliderIndices.length * 2;\n while (capacity < required) capacity *= 2;\n this.pairFirstColliderIndices = growInt32(\n this.pairFirstColliderIndices,\n capacity,\n 0,\n );\n this.pairFirstColliderGenerations = growUint32(\n this.pairFirstColliderGenerations,\n capacity,\n );\n this.pairSecondColliderIndices = growInt32(\n this.pairSecondColliderIndices,\n capacity,\n 0,\n );\n this.pairSecondColliderGenerations = growUint32(\n this.pairSecondColliderGenerations,\n capacity,\n );\n this.counters.pairBufferCapacity = capacity;\n this.counters.pairBufferGrowths += 1;\n }\n\n private ensureQueryStackCapacity(required: number): void {\n if (required <= this.queryStack.length) return;\n let capacity = this.queryStack.length * 2;\n while (capacity < required) capacity *= 2;\n const stack = new Int32Array(capacity);\n stack.set(this.queryStack);\n this.queryStack = stack;\n this.counters.queryStackCapacity = capacity;\n this.counters.queryStackGrowths += 1;\n }\n}\n\nfunction normalizedCapacity(initialCapacity: number): number {\n if (!Number.isInteger(initialCapacity) || initialCapacity < 1) {\n throw new RangeError(\"initialCapacity must be a positive integer.\");\n }\n let capacity = 1;\n while (capacity < initialCapacity) capacity *= 2;\n return capacity;\n}\n\nfunction nextGeneration(generation: number): number {\n return generation + 1;\n}\n\nfunction compareIdentity(\n firstIndex: number,\n firstGeneration: number,\n secondIndex: number,\n secondGeneration: number,\n): number {\n if (firstIndex !== secondIndex) return firstIndex < secondIndex ? -1 : 1;\n if (firstGeneration === secondGeneration) return 0;\n return firstGeneration < secondGeneration ? -1 : 1;\n}\n\nfunction sortInt32Range(\n values: Int32Array,\n offset: number,\n count: number,\n): void {\n for (let index = 1; index < count; index += 1) {\n const value = values[offset + index]!;\n let position = index;\n while (position > 0 && values[offset + position - 1]! > value) {\n values[offset + position] = values[offset + position - 1]!;\n position -= 1;\n }\n values[offset + position] = value;\n }\n}\n\nfunction createFreeList(capacity: number, start: number): Int32Array {\n const result = filledInt32(capacity, NO_INDEX);\n for (let index = start; index + 1 < capacity; index += 1) {\n result[index] = index + 1;\n }\n return result;\n}\n\nfunction growFreeList(\n source: Int32Array,\n capacity: number,\n start: number,\n): Int32Array {\n const result = createFreeList(capacity, start);\n result.set(source);\n return result;\n}\n\nfunction filledInt32(capacity: number, value: number): Int32Array {\n const result = new Int32Array(capacity);\n result.fill(value);\n return result;\n}\n\nfunction growFloat64(source: Float64Array, capacity: number): Float64Array {\n const result = new Float64Array(capacity);\n result.set(source);\n return result;\n}\n\nfunction growUint32(source: Uint32Array, capacity: number): Uint32Array {\n const result = new Uint32Array(capacity);\n result.set(source);\n return result;\n}\n\nfunction growUint8(source: Uint8Array, capacity: number): Uint8Array {\n const result = new Uint8Array(capacity);\n result.set(source);\n return result;\n}\n\nfunction growInt32(\n source: Int32Array,\n capacity: number,\n fill: number,\n): Int32Array {\n const result = filledInt32(capacity, fill);\n result.set(source);\n return result;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DynamicAabbBroadPhase2D } from "./broad-phase.js";
|
|
2
|
+
import type { BodyStore2D, ColliderStore2D } from "./storage.js";
|
|
3
|
+
export declare const BODY_CCD_2D: number;
|
|
4
|
+
export declare class BoundedCcd2D {
|
|
5
|
+
impactCount: number;
|
|
6
|
+
capCount: number;
|
|
7
|
+
impactColliderIndices: Int32Array;
|
|
8
|
+
private candidateProxies;
|
|
9
|
+
private readonly shapeShells;
|
|
10
|
+
constructor(initialCapacity?: number);
|
|
11
|
+
resolveCandidateBodies(bodies: BodyStore2D, colliders: ColliderStore2D, broadPhase: DynamicAabbBroadPhase2D, bodyIndices: Int32Array, bodyCount: number, previousPositionX: Float64Array, previousPositionY: Float64Array, previousRotationRadians: Float64Array): void;
|
|
12
|
+
private resolveBody;
|
|
13
|
+
private findEarliestImpact;
|
|
14
|
+
private isEligibleBody;
|
|
15
|
+
private shapeShell;
|
|
16
|
+
private ensureCandidateCapacity;
|
|
17
|
+
private ensureImpactCapacity;
|
|
18
|
+
}
|
|
19
|
+
export declare function collisionFiltersAllow2D(first: unknown, second: unknown): boolean;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import {
|
|
2
|
+
boundsOfShape2D,
|
|
3
|
+
shapeCastAgainstShape2D
|
|
4
|
+
} from "../../../2d-geometry.js";
|
|
5
|
+
import { createShape2D } from "../shape-records.js";
|
|
6
|
+
import { MAX_CCD_IMPACTS_PER_TICK, RADIANS_TO_DEGREES } from "../numeric-policy.js";
|
|
7
|
+
import { COLLIDER_SENSOR_2D } from "./contact-cache.js";
|
|
8
|
+
import { BODY_TYPE_DYNAMIC_2D } from "./integrator.js";
|
|
9
|
+
import { BODY_SLEEPING_2D } from "./solver.js";
|
|
10
|
+
const BODY_CCD_2D = 1 << 5;
|
|
11
|
+
class BoundedCcd2D {
|
|
12
|
+
impactCount = 0;
|
|
13
|
+
capCount = 0;
|
|
14
|
+
impactColliderIndices;
|
|
15
|
+
candidateProxies;
|
|
16
|
+
shapeShells = /* @__PURE__ */ new WeakMap();
|
|
17
|
+
constructor(initialCapacity = 4) {
|
|
18
|
+
const capacity = normalizedCapacity(initialCapacity);
|
|
19
|
+
this.candidateProxies = new Int32Array(capacity);
|
|
20
|
+
this.impactColliderIndices = new Int32Array(capacity);
|
|
21
|
+
}
|
|
22
|
+
resolveCandidateBodies(bodies, colliders, broadPhase, bodyIndices, bodyCount, previousPositionX, previousPositionY, previousRotationRadians) {
|
|
23
|
+
this.impactCount = 0;
|
|
24
|
+
this.capCount = 0;
|
|
25
|
+
this.ensureCandidateCapacity(broadPhase.proxyCapacity);
|
|
26
|
+
this.ensureImpactCapacity(Math.max(1, bodyCount * MAX_CCD_IMPACTS_PER_TICK));
|
|
27
|
+
for (let offset = 0; offset < bodyCount; offset += 1) {
|
|
28
|
+
const body = bodyIndices[offset];
|
|
29
|
+
if (!this.isEligibleBody(bodies, body)) continue;
|
|
30
|
+
this.resolveBody(
|
|
31
|
+
bodies,
|
|
32
|
+
colliders,
|
|
33
|
+
broadPhase,
|
|
34
|
+
body,
|
|
35
|
+
previousPositionX[body],
|
|
36
|
+
previousPositionY[body],
|
|
37
|
+
previousRotationRadians[body]
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
resolveBody(bodies, colliders, broadPhase, body, fromX, fromY, fromRotation) {
|
|
42
|
+
let currentX = fromX;
|
|
43
|
+
let currentY = fromY;
|
|
44
|
+
let remainingX = bodies.positionX[body] - fromX;
|
|
45
|
+
let remainingY = bodies.positionY[body] - fromY;
|
|
46
|
+
let impacts = 0;
|
|
47
|
+
while ((remainingX !== 0 || remainingY !== 0) && impacts < MAX_CCD_IMPACTS_PER_TICK) {
|
|
48
|
+
const selected = this.findEarliestImpact(
|
|
49
|
+
bodies,
|
|
50
|
+
colliders,
|
|
51
|
+
broadPhase,
|
|
52
|
+
body,
|
|
53
|
+
currentX,
|
|
54
|
+
currentY,
|
|
55
|
+
fromRotation,
|
|
56
|
+
remainingX,
|
|
57
|
+
remainingY
|
|
58
|
+
);
|
|
59
|
+
if (selected === null) {
|
|
60
|
+
currentX += remainingX;
|
|
61
|
+
currentY += remainingY;
|
|
62
|
+
remainingX = 0;
|
|
63
|
+
remainingY = 0;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
currentX += remainingX * selected.timeOfImpact;
|
|
67
|
+
currentY += remainingY * selected.timeOfImpact;
|
|
68
|
+
const fraction = 1 - selected.timeOfImpact;
|
|
69
|
+
remainingX *= fraction;
|
|
70
|
+
remainingY *= fraction;
|
|
71
|
+
const restitution = Math.max(
|
|
72
|
+
materialRestitution(colliders.materials[selected.movingCollider]),
|
|
73
|
+
materialRestitution(colliders.materials[selected.targetCollider])
|
|
74
|
+
);
|
|
75
|
+
const remainingNormal = remainingX * selected.normalX + remainingY * selected.normalY;
|
|
76
|
+
if (remainingNormal < 0) {
|
|
77
|
+
remainingX -= (1 + restitution) * remainingNormal * selected.normalX;
|
|
78
|
+
remainingY -= (1 + restitution) * remainingNormal * selected.normalY;
|
|
79
|
+
}
|
|
80
|
+
const velocityNormal = bodies.linearVelocityX[body] * selected.normalX + bodies.linearVelocityY[body] * selected.normalY;
|
|
81
|
+
if (velocityNormal < 0) {
|
|
82
|
+
bodies.linearVelocityX[body] -= (1 + restitution) * velocityNormal * selected.normalX;
|
|
83
|
+
bodies.linearVelocityY[body] -= (1 + restitution) * velocityNormal * selected.normalY;
|
|
84
|
+
}
|
|
85
|
+
this.impactColliderIndices[this.impactCount] = selected.targetCollider;
|
|
86
|
+
this.impactCount += 1;
|
|
87
|
+
impacts += 1;
|
|
88
|
+
}
|
|
89
|
+
if (remainingX !== 0 || remainingY !== 0) {
|
|
90
|
+
currentX += remainingX;
|
|
91
|
+
currentY += remainingY;
|
|
92
|
+
if (impacts === MAX_CCD_IMPACTS_PER_TICK) this.capCount += 1;
|
|
93
|
+
}
|
|
94
|
+
bodies.positionX[body] = currentX;
|
|
95
|
+
bodies.positionY[body] = currentY;
|
|
96
|
+
}
|
|
97
|
+
findEarliestImpact(bodies, colliders, broadPhase, body, fromX, fromY, rotationRadians, translationX, translationY) {
|
|
98
|
+
let selected = null;
|
|
99
|
+
for (let movingCollider = 0; movingCollider < colliders.capacity; movingCollider += 1) {
|
|
100
|
+
const movingGeneration = colliders.generations[movingCollider];
|
|
101
|
+
if (!colliders.has(movingCollider, movingGeneration)) continue;
|
|
102
|
+
if (colliders.bodyIndices[movingCollider] !== body) continue;
|
|
103
|
+
if ((colliders.flags[movingCollider] & COLLIDER_SENSOR_2D) !== 0) continue;
|
|
104
|
+
const movingRecord = colliders.shapes[movingCollider];
|
|
105
|
+
if (movingRecord === null || !isSupportedSolid(movingRecord)) continue;
|
|
106
|
+
const movingShape = this.shapeShell(movingRecord);
|
|
107
|
+
const fromPose = publicPoseFromCenter(
|
|
108
|
+
bodies,
|
|
109
|
+
body,
|
|
110
|
+
fromX,
|
|
111
|
+
fromY,
|
|
112
|
+
rotationRadians
|
|
113
|
+
);
|
|
114
|
+
const start = boundsOfShape2D(movingShape, fromPose);
|
|
115
|
+
const end = boundsOfShape2D(
|
|
116
|
+
movingShape,
|
|
117
|
+
publicPoseFromCenter(
|
|
118
|
+
bodies,
|
|
119
|
+
body,
|
|
120
|
+
fromX + translationX,
|
|
121
|
+
fromY + translationY,
|
|
122
|
+
rotationRadians
|
|
123
|
+
)
|
|
124
|
+
);
|
|
125
|
+
const candidateCount = broadPhase.queryAabbInto(
|
|
126
|
+
Math.min(start.min[0], end.min[0]),
|
|
127
|
+
Math.min(start.min[1], end.min[1]),
|
|
128
|
+
Math.max(start.max[0], end.max[0]),
|
|
129
|
+
Math.max(start.max[1], end.max[1]),
|
|
130
|
+
this.candidateProxies,
|
|
131
|
+
0,
|
|
132
|
+
this.candidateProxies.length
|
|
133
|
+
);
|
|
134
|
+
for (let candidate = 0; candidate < candidateCount; candidate += 1) {
|
|
135
|
+
const proxy = this.candidateProxies[candidate];
|
|
136
|
+
const targetCollider = broadPhase.proxyColliderIndices[proxy];
|
|
137
|
+
const targetGeneration = broadPhase.proxyColliderGenerations[proxy];
|
|
138
|
+
if (!colliders.has(targetCollider, targetGeneration)) continue;
|
|
139
|
+
if (targetCollider === movingCollider) continue;
|
|
140
|
+
const targetBody = colliders.bodyIndices[targetCollider];
|
|
141
|
+
if (targetBody === body) continue;
|
|
142
|
+
if ((colliders.flags[targetCollider] & COLLIDER_SENSOR_2D) !== 0) continue;
|
|
143
|
+
if (!collisionFiltersAllow2D(colliders.filters[movingCollider], colliders.filters[targetCollider])) continue;
|
|
144
|
+
const targetRecord = colliders.shapes[targetCollider];
|
|
145
|
+
if (targetRecord === null || !isSupportedSolid(targetRecord)) continue;
|
|
146
|
+
const hit = shapeCastAgainstShape2D(
|
|
147
|
+
movingShape,
|
|
148
|
+
fromPose,
|
|
149
|
+
[translationX, translationY],
|
|
150
|
+
this.shapeShell(targetRecord),
|
|
151
|
+
publicPoseFromCenter(
|
|
152
|
+
bodies,
|
|
153
|
+
targetBody,
|
|
154
|
+
bodies.positionX[targetBody],
|
|
155
|
+
bodies.positionY[targetBody],
|
|
156
|
+
bodies.rotationRadians[targetBody]
|
|
157
|
+
)
|
|
158
|
+
);
|
|
159
|
+
if (hit === null) continue;
|
|
160
|
+
if (selected === null || hit.timeOfImpact < selected.timeOfImpact || hit.timeOfImpact === selected.timeOfImpact && compareColliderIdentity(
|
|
161
|
+
targetCollider,
|
|
162
|
+
targetGeneration,
|
|
163
|
+
selected.targetCollider,
|
|
164
|
+
colliders.generations[selected.targetCollider]
|
|
165
|
+
) < 0) {
|
|
166
|
+
selected = {
|
|
167
|
+
movingCollider,
|
|
168
|
+
targetCollider,
|
|
169
|
+
timeOfImpact: hit.timeOfImpact,
|
|
170
|
+
normalX: hit.normal[0],
|
|
171
|
+
normalY: hit.normal[1]
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return selected;
|
|
177
|
+
}
|
|
178
|
+
isEligibleBody(bodies, body) {
|
|
179
|
+
return body >= 0 && body < bodies.capacity && (bodies.flags[body] & BODY_TYPE_DYNAMIC_2D) !== 0 && (bodies.flags[body] & BODY_CCD_2D) !== 0 && (bodies.flags[body] & BODY_SLEEPING_2D) === 0 && bodies.inverseMass[body] > 0;
|
|
180
|
+
}
|
|
181
|
+
shapeShell(record) {
|
|
182
|
+
let shell = this.shapeShells.get(record);
|
|
183
|
+
if (shell === void 0) {
|
|
184
|
+
shell = createShape2D(record);
|
|
185
|
+
this.shapeShells.set(record, shell);
|
|
186
|
+
}
|
|
187
|
+
return shell;
|
|
188
|
+
}
|
|
189
|
+
ensureCandidateCapacity(required) {
|
|
190
|
+
if (required <= this.candidateProxies.length) return;
|
|
191
|
+
this.candidateProxies = growInt32(this.candidateProxies, normalizedCapacity(required));
|
|
192
|
+
}
|
|
193
|
+
ensureImpactCapacity(required) {
|
|
194
|
+
if (required <= this.impactColliderIndices.length) return;
|
|
195
|
+
this.impactColliderIndices = growInt32(this.impactColliderIndices, normalizedCapacity(required));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
function collisionFiltersAllow2D(first, second) {
|
|
199
|
+
const firstFilter = asFilter(first);
|
|
200
|
+
const secondFilter = asFilter(second);
|
|
201
|
+
const firstGroup = integerBits(firstFilter.group ?? 0);
|
|
202
|
+
const secondGroup = integerBits(secondFilter.group ?? 0);
|
|
203
|
+
if (firstGroup !== 0 && firstGroup === secondGroup) return firstGroup > 0;
|
|
204
|
+
const firstCategory = unsignedBits(firstFilter.category ?? 1);
|
|
205
|
+
const secondCategory = unsignedBits(secondFilter.category ?? 1);
|
|
206
|
+
const firstMask = unsignedBits(firstFilter.mask ?? 4294967295);
|
|
207
|
+
const secondMask = unsignedBits(secondFilter.mask ?? 4294967295);
|
|
208
|
+
return (firstMask & secondCategory) !== 0 && (secondMask & firstCategory) !== 0;
|
|
209
|
+
}
|
|
210
|
+
function isSupportedSolid(record) {
|
|
211
|
+
return record.leaves.length === 1 && record.leaves[0].kind !== "segment";
|
|
212
|
+
}
|
|
213
|
+
function publicPose(x, y, rotationRadians) {
|
|
214
|
+
return {
|
|
215
|
+
position: [x, y],
|
|
216
|
+
rotationDegrees: rotationRadians * RADIANS_TO_DEGREES
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function publicPoseFromCenter(bodies, index, centerX, centerY, rotationRadians) {
|
|
220
|
+
const cosine = Math.cos(rotationRadians);
|
|
221
|
+
const sine = Math.sin(rotationRadians);
|
|
222
|
+
const localCenterX = bodies.localCenterX[index];
|
|
223
|
+
const localCenterY = bodies.localCenterY[index];
|
|
224
|
+
return publicPose(
|
|
225
|
+
centerX - cosine * localCenterX + sine * localCenterY,
|
|
226
|
+
centerY - sine * localCenterX - cosine * localCenterY,
|
|
227
|
+
rotationRadians
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
function materialRestitution(material) {
|
|
231
|
+
if (typeof material !== "object" || material === null) return 0;
|
|
232
|
+
const value = material.restitution;
|
|
233
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : 0;
|
|
234
|
+
}
|
|
235
|
+
function asFilter(value) {
|
|
236
|
+
return typeof value === "object" && value !== null ? value : {};
|
|
237
|
+
}
|
|
238
|
+
function unsignedBits(value) {
|
|
239
|
+
return Number.isFinite(value) ? value >>> 0 : 0;
|
|
240
|
+
}
|
|
241
|
+
function integerBits(value) {
|
|
242
|
+
return Number.isFinite(value) ? value | 0 : 0;
|
|
243
|
+
}
|
|
244
|
+
function compareColliderIdentity(firstIndex, firstGeneration, secondIndex, secondGeneration) {
|
|
245
|
+
return firstIndex - secondIndex || firstGeneration - secondGeneration;
|
|
246
|
+
}
|
|
247
|
+
function normalizedCapacity(required) {
|
|
248
|
+
if (!Number.isInteger(required) || required < 1) {
|
|
249
|
+
throw new RangeError("capacity must be a positive integer.");
|
|
250
|
+
}
|
|
251
|
+
let capacity = 1;
|
|
252
|
+
while (capacity < required) capacity *= 2;
|
|
253
|
+
return capacity;
|
|
254
|
+
}
|
|
255
|
+
function growInt32(source, capacity) {
|
|
256
|
+
const result = new Int32Array(capacity);
|
|
257
|
+
result.set(source);
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
260
|
+
export {
|
|
261
|
+
BODY_CCD_2D,
|
|
262
|
+
BoundedCcd2D,
|
|
263
|
+
collisionFiltersAllow2D
|
|
264
|
+
};
|
|
265
|
+
//# sourceMappingURL=ccd.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/features/physics/lib/2d/world/ccd.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n boundsOfShape2D,\n shapeCastAgainstShape2D,\n type PibblPhysicsPose2D,\n type PibblPhysicsShape2D,\n} from \"../../../2d-geometry.js\";\nimport { createShape2D, type ShapeRecord2D } from \"../shape-records.js\";\nimport { MAX_CCD_IMPACTS_PER_TICK, RADIANS_TO_DEGREES } from \"../numeric-policy.js\";\nimport { DynamicAabbBroadPhase2D } from \"./broad-phase.js\";\nimport { COLLIDER_SENSOR_2D } from \"./contact-cache.js\";\nimport { BODY_TYPE_DYNAMIC_2D } from \"./integrator.js\";\nimport { BODY_SLEEPING_2D } from \"./solver.js\";\nimport type { BodyStore2D, ColliderStore2D } from \"./storage.js\";\n\nexport const BODY_CCD_2D = 1 << 5;\n\ninterface SelectedImpact2D {\n readonly movingCollider: number;\n readonly targetCollider: number;\n readonly timeOfImpact: number;\n readonly normalX: number;\n readonly normalY: number;\n}\n\ninterface CollisionFilterRecord2D {\n readonly category?: number;\n readonly mask?: number;\n readonly group?: number;\n}\n\nexport class BoundedCcd2D {\n impactCount = 0;\n capCount = 0;\n impactColliderIndices: Int32Array;\n\n private candidateProxies: Int32Array;\n private readonly shapeShells = new WeakMap<ShapeRecord2D, PibblPhysicsShape2D>();\n\n constructor(initialCapacity = 4) {\n const capacity = normalizedCapacity(initialCapacity);\n this.candidateProxies = new Int32Array(capacity);\n this.impactColliderIndices = new Int32Array(capacity);\n }\n\n resolveCandidateBodies(\n bodies: BodyStore2D,\n colliders: ColliderStore2D,\n broadPhase: DynamicAabbBroadPhase2D,\n bodyIndices: Int32Array,\n bodyCount: number,\n previousPositionX: Float64Array,\n previousPositionY: Float64Array,\n previousRotationRadians: Float64Array,\n ): void {\n this.impactCount = 0;\n this.capCount = 0;\n this.ensureCandidateCapacity(broadPhase.proxyCapacity);\n this.ensureImpactCapacity(Math.max(1, bodyCount * MAX_CCD_IMPACTS_PER_TICK));\n for (let offset = 0; offset < bodyCount; offset += 1) {\n const body = bodyIndices[offset]!;\n if (!this.isEligibleBody(bodies, body)) continue;\n this.resolveBody(\n bodies,\n colliders,\n broadPhase,\n body,\n previousPositionX[body]!,\n previousPositionY[body]!,\n previousRotationRadians[body]!,\n );\n }\n }\n\n private resolveBody(\n bodies: BodyStore2D,\n colliders: ColliderStore2D,\n broadPhase: DynamicAabbBroadPhase2D,\n body: number,\n fromX: number,\n fromY: number,\n fromRotation: number,\n ): void {\n let currentX = fromX;\n let currentY = fromY;\n let remainingX = bodies.positionX[body]! - fromX;\n let remainingY = bodies.positionY[body]! - fromY;\n let impacts = 0;\n while ((remainingX !== 0 || remainingY !== 0) && impacts < MAX_CCD_IMPACTS_PER_TICK) {\n const selected = this.findEarliestImpact(\n bodies,\n colliders,\n broadPhase,\n body,\n currentX,\n currentY,\n fromRotation,\n remainingX,\n remainingY,\n );\n if (selected === null) {\n currentX += remainingX;\n currentY += remainingY;\n remainingX = 0;\n remainingY = 0;\n break;\n }\n currentX += remainingX * selected.timeOfImpact;\n currentY += remainingY * selected.timeOfImpact;\n const fraction = 1 - selected.timeOfImpact;\n remainingX *= fraction;\n remainingY *= fraction;\n const restitution = Math.max(\n materialRestitution(colliders.materials[selected.movingCollider]),\n materialRestitution(colliders.materials[selected.targetCollider]),\n );\n const remainingNormal = remainingX * selected.normalX + remainingY * selected.normalY;\n if (remainingNormal < 0) {\n remainingX -= (1 + restitution) * remainingNormal * selected.normalX;\n remainingY -= (1 + restitution) * remainingNormal * selected.normalY;\n }\n const velocityNormal =\n bodies.linearVelocityX[body]! * selected.normalX + bodies.linearVelocityY[body]! * selected.normalY;\n if (velocityNormal < 0) {\n bodies.linearVelocityX[body] -= (1 + restitution) * velocityNormal * selected.normalX;\n bodies.linearVelocityY[body] -= (1 + restitution) * velocityNormal * selected.normalY;\n }\n this.impactColliderIndices[this.impactCount] = selected.targetCollider;\n this.impactCount += 1;\n impacts += 1;\n }\n if (remainingX !== 0 || remainingY !== 0) {\n currentX += remainingX;\n currentY += remainingY;\n if (impacts === MAX_CCD_IMPACTS_PER_TICK) this.capCount += 1;\n }\n bodies.positionX[body] = currentX;\n bodies.positionY[body] = currentY;\n }\n\n private findEarliestImpact(\n bodies: BodyStore2D,\n colliders: ColliderStore2D,\n broadPhase: DynamicAabbBroadPhase2D,\n body: number,\n fromX: number,\n fromY: number,\n rotationRadians: number,\n translationX: number,\n translationY: number,\n ): SelectedImpact2D | null {\n let selected: SelectedImpact2D | null = null;\n for (let movingCollider = 0; movingCollider < colliders.capacity; movingCollider += 1) {\n const movingGeneration = colliders.generations[movingCollider]!;\n if (!colliders.has(movingCollider, movingGeneration)) continue;\n if (colliders.bodyIndices[movingCollider] !== body) continue;\n if ((colliders.flags[movingCollider]! & COLLIDER_SENSOR_2D) !== 0) continue;\n const movingRecord = colliders.shapes[movingCollider];\n if (movingRecord === null || !isSupportedSolid(movingRecord)) continue;\n const movingShape = this.shapeShell(movingRecord);\n const fromPose = publicPoseFromCenter(\n bodies,\n body,\n fromX,\n fromY,\n rotationRadians,\n );\n const start = boundsOfShape2D(movingShape, fromPose);\n const end = boundsOfShape2D(\n movingShape,\n publicPoseFromCenter(\n bodies,\n body,\n fromX + translationX,\n fromY + translationY,\n rotationRadians,\n ),\n );\n const candidateCount = broadPhase.queryAabbInto(\n Math.min(start.min[0], end.min[0]),\n Math.min(start.min[1], end.min[1]),\n Math.max(start.max[0], end.max[0]),\n Math.max(start.max[1], end.max[1]),\n this.candidateProxies,\n 0,\n this.candidateProxies.length,\n );\n for (let candidate = 0; candidate < candidateCount; candidate += 1) {\n const proxy = this.candidateProxies[candidate]!;\n const targetCollider = broadPhase.proxyColliderIndices[proxy]!;\n const targetGeneration = broadPhase.proxyColliderGenerations[proxy]!;\n if (!colliders.has(targetCollider, targetGeneration)) continue;\n if (targetCollider === movingCollider) continue;\n const targetBody = colliders.bodyIndices[targetCollider]!;\n if (targetBody === body) continue;\n if ((colliders.flags[targetCollider]! & COLLIDER_SENSOR_2D) !== 0) continue;\n if (!collisionFiltersAllow2D(colliders.filters[movingCollider], colliders.filters[targetCollider])) continue;\n const targetRecord = colliders.shapes[targetCollider];\n if (targetRecord === null || !isSupportedSolid(targetRecord)) continue;\n const hit = shapeCastAgainstShape2D(\n movingShape,\n fromPose,\n [translationX, translationY],\n this.shapeShell(targetRecord),\n publicPoseFromCenter(\n bodies,\n targetBody,\n bodies.positionX[targetBody]!,\n bodies.positionY[targetBody]!,\n bodies.rotationRadians[targetBody]!,\n ),\n );\n if (hit === null) continue;\n if (\n selected === null ||\n hit.timeOfImpact < selected.timeOfImpact ||\n (hit.timeOfImpact === selected.timeOfImpact &&\n compareColliderIdentity(\n targetCollider,\n targetGeneration,\n selected.targetCollider,\n colliders.generations[selected.targetCollider]!,\n ) < 0)\n ) {\n selected = {\n movingCollider,\n targetCollider,\n timeOfImpact: hit.timeOfImpact,\n normalX: hit.normal[0],\n normalY: hit.normal[1],\n };\n }\n }\n }\n return selected;\n }\n\n private isEligibleBody(bodies: BodyStore2D, body: number): boolean {\n return (\n body >= 0 &&\n body < bodies.capacity &&\n (bodies.flags[body]! & BODY_TYPE_DYNAMIC_2D) !== 0 &&\n (bodies.flags[body]! & BODY_CCD_2D) !== 0 &&\n (bodies.flags[body]! & BODY_SLEEPING_2D) === 0 &&\n bodies.inverseMass[body]! > 0\n );\n }\n\n private shapeShell(record: ShapeRecord2D): PibblPhysicsShape2D {\n let shell = this.shapeShells.get(record);\n if (shell === undefined) {\n shell = createShape2D(record);\n this.shapeShells.set(record, shell);\n }\n return shell;\n }\n\n private ensureCandidateCapacity(required: number): void {\n if (required <= this.candidateProxies.length) return;\n this.candidateProxies = growInt32(this.candidateProxies, normalizedCapacity(required));\n }\n\n private ensureImpactCapacity(required: number): void {\n if (required <= this.impactColliderIndices.length) return;\n this.impactColliderIndices = growInt32(this.impactColliderIndices, normalizedCapacity(required));\n }\n}\n\nexport function collisionFiltersAllow2D(first: unknown, second: unknown): boolean {\n const firstFilter = asFilter(first);\n const secondFilter = asFilter(second);\n const firstGroup = integerBits(firstFilter.group ?? 0);\n const secondGroup = integerBits(secondFilter.group ?? 0);\n if (firstGroup !== 0 && firstGroup === secondGroup) return firstGroup > 0;\n const firstCategory = unsignedBits(firstFilter.category ?? 1);\n const secondCategory = unsignedBits(secondFilter.category ?? 1);\n const firstMask = unsignedBits(firstFilter.mask ?? 0xffff_ffff);\n const secondMask = unsignedBits(secondFilter.mask ?? 0xffff_ffff);\n return (firstMask & secondCategory) !== 0 && (secondMask & firstCategory) !== 0;\n}\n\nfunction isSupportedSolid(record: ShapeRecord2D): boolean {\n return record.leaves.length === 1 && record.leaves[0]!.kind !== \"segment\";\n}\n\nfunction publicPose(x: number, y: number, rotationRadians: number): PibblPhysicsPose2D {\n return {\n position: [x, y],\n rotationDegrees: rotationRadians * RADIANS_TO_DEGREES,\n };\n}\n\nfunction publicPoseFromCenter(\n bodies: BodyStore2D,\n index: number,\n centerX: number,\n centerY: number,\n rotationRadians: number,\n): PibblPhysicsPose2D {\n const cosine = Math.cos(rotationRadians);\n const sine = Math.sin(rotationRadians);\n const localCenterX = bodies.localCenterX[index]!;\n const localCenterY = bodies.localCenterY[index]!;\n return publicPose(\n centerX - cosine * localCenterX + sine * localCenterY,\n centerY - sine * localCenterX - cosine * localCenterY,\n rotationRadians,\n );\n}\n\nfunction materialRestitution(material: unknown): number {\n if (typeof material !== \"object\" || material === null) return 0;\n const value = (material as Readonly<{ restitution?: unknown }>).restitution;\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? value : 0;\n}\n\nfunction asFilter(value: unknown): CollisionFilterRecord2D {\n return typeof value === \"object\" && value !== null ? (value as CollisionFilterRecord2D) : {};\n}\n\nfunction unsignedBits(value: number): number {\n return Number.isFinite(value) ? value >>> 0 : 0;\n}\n\nfunction integerBits(value: number): number {\n return Number.isFinite(value) ? value | 0 : 0;\n}\n\nfunction compareColliderIdentity(\n firstIndex: number,\n firstGeneration: number,\n secondIndex: number,\n secondGeneration: number,\n): number {\n return firstIndex - secondIndex || firstGeneration - secondGeneration;\n}\n\nfunction normalizedCapacity(required: number): number {\n if (!Number.isInteger(required) || required < 1) {\n throw new RangeError(\"capacity must be a positive integer.\");\n }\n let capacity = 1;\n while (capacity < required) capacity *= 2;\n return capacity;\n}\n\nfunction growInt32(source: Int32Array, capacity: number): Int32Array {\n const result = new Int32Array(capacity);\n result.set(source);\n return result;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { PrivateManifold2D } from "../collision/manifold.js";
|
|
2
|
+
import type { ColliderStore2D } from "./storage.js";
|
|
3
|
+
export declare const COLLIDER_SENSOR_2D: number;
|
|
4
|
+
export declare const CONTACT_EVENT_BEGIN_2D = 1;
|
|
5
|
+
export declare const CONTACT_EVENT_END_2D = 2;
|
|
6
|
+
export declare const OVERLAP_EVENT_BEGIN_2D = 3;
|
|
7
|
+
export declare const OVERLAP_EVENT_END_2D = 4;
|
|
8
|
+
export interface SortedColliderPairs2D {
|
|
9
|
+
readonly pairFirstColliderIndices: Int32Array;
|
|
10
|
+
readonly pairFirstColliderGenerations: Uint32Array;
|
|
11
|
+
readonly pairSecondColliderIndices: Int32Array;
|
|
12
|
+
readonly pairSecondColliderGenerations: Uint32Array;
|
|
13
|
+
readonly pairCount: number;
|
|
14
|
+
}
|
|
15
|
+
export type PrivateManifoldProvider2D = (firstColliderIndex: number, secondColliderIndex: number) => PrivateManifold2D | null;
|
|
16
|
+
export declare class ContactCache2D {
|
|
17
|
+
contactCount: number;
|
|
18
|
+
firstColliderIndices: Int32Array;
|
|
19
|
+
firstColliderGenerations: Uint32Array;
|
|
20
|
+
secondColliderIndices: Int32Array;
|
|
21
|
+
secondColliderGenerations: Uint32Array;
|
|
22
|
+
firstBodyIndices: Int32Array;
|
|
23
|
+
firstBodyGenerations: Uint32Array;
|
|
24
|
+
secondBodyIndices: Int32Array;
|
|
25
|
+
secondBodyGenerations: Uint32Array;
|
|
26
|
+
sensorFlags: Uint8Array;
|
|
27
|
+
mixedFriction: Float64Array;
|
|
28
|
+
mixedRestitution: Float64Array;
|
|
29
|
+
normalX: Float64Array;
|
|
30
|
+
normalY: Float64Array;
|
|
31
|
+
firstLeafIndices: Int32Array;
|
|
32
|
+
secondLeafIndices: Int32Array;
|
|
33
|
+
pointCounts: Uint8Array;
|
|
34
|
+
pointFirstX: Float64Array;
|
|
35
|
+
pointFirstY: Float64Array;
|
|
36
|
+
pointSecondX: Float64Array;
|
|
37
|
+
pointSecondY: Float64Array;
|
|
38
|
+
pointSeparations: Float64Array;
|
|
39
|
+
pointFirstFeatures: Int32Array;
|
|
40
|
+
pointSecondFeatures: Int32Array;
|
|
41
|
+
pointNormalImpulses: Float64Array;
|
|
42
|
+
pointTangentImpulses: Float64Array;
|
|
43
|
+
stagingFirstColliderIndices: Int32Array;
|
|
44
|
+
stagingFirstColliderGenerations: Uint32Array;
|
|
45
|
+
stagingSecondColliderIndices: Int32Array;
|
|
46
|
+
stagingSecondColliderGenerations: Uint32Array;
|
|
47
|
+
stagingFirstBodyIndices: Int32Array;
|
|
48
|
+
stagingFirstBodyGenerations: Uint32Array;
|
|
49
|
+
stagingSecondBodyIndices: Int32Array;
|
|
50
|
+
stagingSecondBodyGenerations: Uint32Array;
|
|
51
|
+
stagingSensorFlags: Uint8Array;
|
|
52
|
+
stagingMixedFriction: Float64Array;
|
|
53
|
+
stagingMixedRestitution: Float64Array;
|
|
54
|
+
stagingNormalX: Float64Array;
|
|
55
|
+
stagingNormalY: Float64Array;
|
|
56
|
+
stagingFirstLeafIndices: Int32Array;
|
|
57
|
+
stagingSecondLeafIndices: Int32Array;
|
|
58
|
+
stagingPointCounts: Uint8Array;
|
|
59
|
+
stagingPointFirstX: Float64Array;
|
|
60
|
+
stagingPointFirstY: Float64Array;
|
|
61
|
+
stagingPointSecondX: Float64Array;
|
|
62
|
+
stagingPointSecondY: Float64Array;
|
|
63
|
+
stagingPointSeparations: Float64Array;
|
|
64
|
+
stagingPointFirstFeatures: Int32Array;
|
|
65
|
+
stagingPointSecondFeatures: Int32Array;
|
|
66
|
+
stagingPointNormalImpulses: Float64Array;
|
|
67
|
+
stagingPointTangentImpulses: Float64Array;
|
|
68
|
+
eventCount: number;
|
|
69
|
+
eventTypes: Uint8Array;
|
|
70
|
+
eventFirstColliderIndices: Int32Array;
|
|
71
|
+
eventFirstColliderGenerations: Uint32Array;
|
|
72
|
+
eventSecondColliderIndices: Int32Array;
|
|
73
|
+
eventSecondColliderGenerations: Uint32Array;
|
|
74
|
+
constructor(initialCapacity?: number);
|
|
75
|
+
ensureCapacity(required: number): void;
|
|
76
|
+
ensureEventCapacity(required: number): void;
|
|
77
|
+
swapGenerations(nextCount: number, nextEventCount: number): void;
|
|
78
|
+
writeStagingContact(target: number, firstColliderIndex: number, firstColliderGeneration: number, secondColliderIndex: number, secondColliderGeneration: number, colliders: ColliderStore2D, manifold: PrivateManifold2D, oldContact: number): void;
|
|
79
|
+
private findMatchingPoint;
|
|
80
|
+
}
|
|
81
|
+
export declare function updateSortedContactCache2D(cache: ContactCache2D, pairs: SortedColliderPairs2D, colliders: ColliderStore2D, manifoldProvider: PrivateManifoldProvider2D): void;
|