@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.
Files changed (1069) hide show
  1. package/LICENSE.txt +19 -0
  2. package/README.md +76 -0
  3. package/THIRD_PARTY_NOTICES.txt +205 -0
  4. package/dist/features/particles/index.d.ts +7 -0
  5. package/dist/features/particles/index.js +26 -0
  6. package/dist/features/particles/index.js.map +7 -0
  7. package/dist/features/particles/index.mjs +1 -0
  8. package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
  9. package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
  10. package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
  11. package/dist/features/particles/lib/canvas/component.d.ts +14 -0
  12. package/dist/features/particles/lib/canvas/component.js +249 -0
  13. package/dist/features/particles/lib/canvas/component.js.map +7 -0
  14. package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
  15. package/dist/features/particles/lib/canvas/executor.js +537 -0
  16. package/dist/features/particles/lib/canvas/executor.js.map +7 -0
  17. package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
  18. package/dist/features/particles/lib/canvas/primitive.js +50 -0
  19. package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
  20. package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
  21. package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
  22. package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
  23. package/dist/features/particles/lib/color.d.ts +7 -0
  24. package/dist/features/particles/lib/color.js +159 -0
  25. package/dist/features/particles/lib/color.js.map +7 -0
  26. package/dist/features/particles/lib/compiler.d.ts +134 -0
  27. package/dist/features/particles/lib/compiler.js +443 -0
  28. package/dist/features/particles/lib/compiler.js.map +7 -0
  29. package/dist/features/particles/lib/curve.d.ts +19 -0
  30. package/dist/features/particles/lib/curve.js +129 -0
  31. package/dist/features/particles/lib/curve.js.map +7 -0
  32. package/dist/features/particles/lib/definition-records.d.ts +58 -0
  33. package/dist/features/particles/lib/definition-records.js +500 -0
  34. package/dist/features/particles/lib/definition-records.js.map +7 -0
  35. package/dist/features/particles/lib/definition.d.ts +18 -0
  36. package/dist/features/particles/lib/definition.js +602 -0
  37. package/dist/features/particles/lib/definition.js.map +7 -0
  38. package/dist/features/particles/lib/emission.d.ts +54 -0
  39. package/dist/features/particles/lib/emission.js +184 -0
  40. package/dist/features/particles/lib/emission.js.map +7 -0
  41. package/dist/features/particles/lib/flow/field.d.ts +81 -0
  42. package/dist/features/particles/lib/flow/field.js +585 -0
  43. package/dist/features/particles/lib/flow/field.js.map +7 -0
  44. package/dist/features/particles/lib/flow/hook.d.ts +158 -0
  45. package/dist/features/particles/lib/flow/hook.js +215 -0
  46. package/dist/features/particles/lib/flow/hook.js.map +7 -0
  47. package/dist/features/particles/lib/flow/population.d.ts +25 -0
  48. package/dist/features/particles/lib/flow/population.js +104 -0
  49. package/dist/features/particles/lib/flow/population.js.map +7 -0
  50. package/dist/features/particles/lib/particle.d.ts +113 -0
  51. package/dist/features/particles/lib/particle.js +192 -0
  52. package/dist/features/particles/lib/particle.js.map +7 -0
  53. package/dist/features/particles/lib/random.d.ts +16 -0
  54. package/dist/features/particles/lib/random.js +61 -0
  55. package/dist/features/particles/lib/random.js.map +7 -0
  56. package/dist/features/particles/lib/sample.d.ts +32 -0
  57. package/dist/features/particles/lib/sample.js +397 -0
  58. package/dist/features/particles/lib/sample.js.map +7 -0
  59. package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
  60. package/dist/features/particles/lib/signal-inputs.js +41 -0
  61. package/dist/features/particles/lib/signal-inputs.js.map +7 -0
  62. package/dist/features/particles/lib/system/binding.d.ts +59 -0
  63. package/dist/features/particles/lib/system/binding.js +122 -0
  64. package/dist/features/particles/lib/system/binding.js.map +7 -0
  65. package/dist/features/particles/lib/system/controller.d.ts +58 -0
  66. package/dist/features/particles/lib/system/controller.js +1446 -0
  67. package/dist/features/particles/lib/system/controller.js.map +7 -0
  68. package/dist/features/particles/lib/system/hook.d.ts +13 -0
  69. package/dist/features/particles/lib/system/hook.js +52 -0
  70. package/dist/features/particles/lib/system/hook.js.map +7 -0
  71. package/dist/features/particles/lib/system/ownership.d.ts +26 -0
  72. package/dist/features/particles/lib/system/ownership.js +128 -0
  73. package/dist/features/particles/lib/system/ownership.js.map +7 -0
  74. package/dist/features/particles/lib/types.d.ts +983 -0
  75. package/dist/features/physics/2d-geometry.d.ts +216 -0
  76. package/dist/features/physics/2d-geometry.js +59 -0
  77. package/dist/features/physics/2d-geometry.js.map +7 -0
  78. package/dist/features/physics/2d-geometry.mjs +1 -0
  79. package/dist/features/physics/2d-testing.d.ts +80 -0
  80. package/dist/features/physics/2d-testing.js +141 -0
  81. package/dist/features/physics/2d-testing.js.map +7 -0
  82. package/dist/features/physics/2d-testing.mjs +1 -0
  83. package/dist/features/physics/2d.d.ts +165 -0
  84. package/dist/features/physics/2d.js +119 -0
  85. package/dist/features/physics/2d.js.map +7 -0
  86. package/dist/features/physics/2d.mjs +1 -0
  87. package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
  88. package/dist/features/physics/lib/2d/canvas/components.js +212 -0
  89. package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
  90. package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
  91. package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
  92. package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
  93. package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
  94. package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
  95. package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
  96. package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
  97. package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
  98. package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
  99. package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
  100. package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
  101. package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
  102. package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
  103. package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
  104. package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
  105. package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
  106. package/dist/features/physics/lib/2d/collision/casts.js +631 -0
  107. package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
  108. package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
  109. package/dist/features/physics/lib/2d/collision/epa.js +102 -0
  110. package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
  111. package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
  112. package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
  113. package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
  114. package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
  115. package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
  116. package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
  117. package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
  118. package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
  119. package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
  120. package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
  121. package/dist/features/physics/lib/2d/collision/support.js +155 -0
  122. package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
  123. package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
  124. package/dist/features/physics/lib/2d/math.d.ts +27 -0
  125. package/dist/features/physics/lib/2d/math.js +314 -0
  126. package/dist/features/physics/lib/2d/math.js.map +7 -0
  127. package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
  128. package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
  129. package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
  130. package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
  131. package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
  132. package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
  133. package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
  134. package/dist/features/physics/lib/2d/runtime/context.js +57 -0
  135. package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
  136. package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
  137. package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
  138. package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
  139. package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
  140. package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
  141. package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
  142. package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
  143. package/dist/features/physics/lib/2d/runtime/events.js +153 -0
  144. package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
  145. package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
  146. package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
  147. package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
  148. package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
  149. package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
  150. package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
  151. package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
  152. package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
  153. package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
  154. package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
  155. package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
  156. package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
  157. package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
  158. package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
  159. package/dist/features/physics/lib/2d/shape-records.js +26 -0
  160. package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
  161. package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
  162. package/dist/features/physics/lib/2d/shapes.js +543 -0
  163. package/dist/features/physics/lib/2d/shapes.js.map +7 -0
  164. package/dist/features/physics/lib/2d/types.d.ts +713 -0
  165. package/dist/features/physics/lib/2d/types.js +1 -0
  166. package/dist/features/physics/lib/2d/types.js.map +7 -0
  167. package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
  168. package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
  169. package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
  170. package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
  171. package/dist/features/physics/lib/2d/world/ccd.js +265 -0
  172. package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
  173. package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
  174. package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
  175. package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
  176. package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
  177. package/dist/features/physics/lib/2d/world/integrator.js +99 -0
  178. package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
  179. package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
  180. package/dist/features/physics/lib/2d/world/queries.js +424 -0
  181. package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
  182. package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
  183. package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
  184. package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
  185. package/dist/features/physics/lib/2d/world/rapier.js +655 -0
  186. package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
  187. package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
  188. package/dist/features/physics/lib/2d/world/solver.js +660 -0
  189. package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
  190. package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
  191. package/dist/features/physics/lib/2d/world/storage.js +371 -0
  192. package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
  193. package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
  194. package/dist/features/physics/lib/2d/world/world.js +1713 -0
  195. package/dist/features/physics/lib/2d/world/world.js.map +7 -0
  196. package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
  197. package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
  198. package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
  199. package/dist/features/physics/lib/shared/validation.d.ts +5 -0
  200. package/dist/features/physics/lib/shared/validation.js +48 -0
  201. package/dist/features/physics/lib/shared/validation.js.map +7 -0
  202. package/dist/features/sprites/formats/aseprite.js +23 -0
  203. package/dist/features/sprites/formats/aseprite.js.map +7 -0
  204. package/dist/features/sprites/formats/aseprite.mjs +1 -0
  205. package/dist/features/sprites/formats/texture-packer.js +14 -0
  206. package/dist/features/sprites/formats/texture-packer.js.map +7 -0
  207. package/dist/features/sprites/formats/texture-packer.mjs +1 -0
  208. package/dist/features/sprites/index.js +9 -0
  209. package/dist/features/sprites/index.js.map +7 -0
  210. package/dist/features/sprites/index.mjs +1 -0
  211. package/dist/features/sprites/loader.js +63 -0
  212. package/dist/features/sprites/loader.js.map +7 -0
  213. package/dist/features/sprites/model.js +64 -0
  214. package/dist/features/sprites/model.js.map +7 -0
  215. package/dist/features/sprites/sprite.js +31 -0
  216. package/dist/features/sprites/sprite.js.map +7 -0
  217. package/dist/features/textures/index.d.ts +22 -0
  218. package/dist/features/textures/index.js +31 -0
  219. package/dist/features/textures/index.js.map +7 -0
  220. package/dist/features/textures/index.mjs +1 -0
  221. package/dist/features/textures/lib/definitions.d.ts +117 -0
  222. package/dist/features/textures/lib/definitions.js +179 -0
  223. package/dist/features/textures/lib/definitions.js.map +7 -0
  224. package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
  225. package/dist/features/textures/lib/electric-boundary.js +11 -0
  226. package/dist/features/textures/lib/electric-boundary.js.map +7 -0
  227. package/dist/features/textures/lib/electric-shared.d.ts +69 -0
  228. package/dist/features/textures/lib/electric-shared.js +43 -0
  229. package/dist/features/textures/lib/electric-shared.js.map +7 -0
  230. package/dist/features/textures/lib/electric-sources.d.ts +50 -0
  231. package/dist/features/textures/lib/electric-sources.js +43 -0
  232. package/dist/features/textures/lib/electric-sources.js.map +7 -0
  233. package/dist/features/textures/lib/lightning.d.ts +72 -0
  234. package/dist/features/textures/lib/lightning.js +139 -0
  235. package/dist/features/textures/lib/lightning.js.map +7 -0
  236. package/dist/features/textures/lib/material-field.d.ts +12 -0
  237. package/dist/features/textures/lib/material-field.js +31 -0
  238. package/dist/features/textures/lib/material-field.js.map +7 -0
  239. package/dist/features/textures/lib/palette.d.ts +45 -0
  240. package/dist/features/textures/lib/palette.js +52 -0
  241. package/dist/features/textures/lib/palette.js.map +7 -0
  242. package/dist/features/textures/lib/presentation.d.ts +54 -0
  243. package/dist/features/textures/lib/presentation.js +83 -0
  244. package/dist/features/textures/lib/presentation.js.map +7 -0
  245. package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
  246. package/dist/features/textures/lib/procedural-texture.js +110 -0
  247. package/dist/features/textures/lib/procedural-texture.js.map +7 -0
  248. package/dist/features/textures/lib/rain-drops.d.ts +96 -0
  249. package/dist/features/textures/lib/rain-drops.js +322 -0
  250. package/dist/features/textures/lib/rain-drops.js.map +7 -0
  251. package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
  252. package/dist/features/textures/lib/reaction-diffusion.js +210 -0
  253. package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
  254. package/dist/features/textures/lib/simulation.d.ts +16 -0
  255. package/dist/features/textures/lib/simulation.js +85 -0
  256. package/dist/features/textures/lib/simulation.js.map +7 -0
  257. package/dist/features/textures/lib/tendrils.d.ts +57 -0
  258. package/dist/features/textures/lib/tendrils.js +216 -0
  259. package/dist/features/textures/lib/tendrils.js.map +7 -0
  260. package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
  261. package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
  262. package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
  263. package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
  264. package/dist/features/textures/lib/wasm/electric.js +299 -0
  265. package/dist/features/textures/lib/wasm/electric.js.map +7 -0
  266. package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
  267. package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
  268. package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
  269. package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
  270. package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
  271. package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
  272. package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
  273. package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
  274. package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
  275. package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
  276. package/dist/features/textures/lib/wasm/memory.js +103 -0
  277. package/dist/features/textures/lib/wasm/memory.js.map +7 -0
  278. package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
  279. package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
  280. package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
  281. package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
  282. package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
  283. package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
  284. package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
  285. package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
  286. package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
  287. package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
  288. package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
  289. package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
  290. package/dist/features/textures/lib/water-surface.d.ts +92 -0
  291. package/dist/features/textures/lib/water-surface.js +378 -0
  292. package/dist/features/textures/lib/water-surface.js.map +7 -0
  293. package/dist/features/textures/lib/water-waves.d.ts +60 -0
  294. package/dist/features/textures/lib/water-waves.js +154 -0
  295. package/dist/features/textures/lib/water-waves.js.map +7 -0
  296. package/dist/features/viz/index.d.ts +28 -0
  297. package/dist/features/viz/index.js +45 -0
  298. package/dist/features/viz/index.js.map +7 -0
  299. package/dist/features/viz/index.mjs +1 -0
  300. package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
  301. package/dist/features/viz/lib/anchored-layout.js +166 -0
  302. package/dist/features/viz/lib/anchored-layout.js.map +7 -0
  303. package/dist/features/viz/lib/axis.d.ts +10 -0
  304. package/dist/features/viz/lib/axis.js +116 -0
  305. package/dist/features/viz/lib/axis.js.map +7 -0
  306. package/dist/features/viz/lib/band-scale.d.ts +3 -0
  307. package/dist/features/viz/lib/band-scale.js +57 -0
  308. package/dist/features/viz/lib/band-scale.js.map +7 -0
  309. package/dist/features/viz/lib/bar-fill.d.ts +16 -0
  310. package/dist/features/viz/lib/bar-fill.js +53 -0
  311. package/dist/features/viz/lib/bar-fill.js.map +7 -0
  312. package/dist/features/viz/lib/bar-series.d.ts +150 -0
  313. package/dist/features/viz/lib/bar-series.js +152 -0
  314. package/dist/features/viz/lib/bar-series.js.map +7 -0
  315. package/dist/features/viz/lib/hover-card.d.ts +92 -0
  316. package/dist/features/viz/lib/hover-card.js +146 -0
  317. package/dist/features/viz/lib/hover-card.js.map +7 -0
  318. package/dist/features/viz/lib/hover-data.d.ts +12 -0
  319. package/dist/features/viz/lib/hover-data.js +50 -0
  320. package/dist/features/viz/lib/hover-data.js.map +7 -0
  321. package/dist/features/viz/lib/hover-placement.d.ts +46 -0
  322. package/dist/features/viz/lib/hover-placement.js +51 -0
  323. package/dist/features/viz/lib/hover-placement.js.map +7 -0
  324. package/dist/features/viz/lib/hover-queries.d.ts +60 -0
  325. package/dist/features/viz/lib/hover-queries.js +185 -0
  326. package/dist/features/viz/lib/hover-queries.js.map +7 -0
  327. package/dist/features/viz/lib/hover-types.d.ts +277 -0
  328. package/dist/features/viz/lib/layout-pie.d.ts +13 -0
  329. package/dist/features/viz/lib/layout-pie.js +159 -0
  330. package/dist/features/viz/lib/layout-pie.js.map +7 -0
  331. package/dist/features/viz/lib/line-series.d.ts +11 -0
  332. package/dist/features/viz/lib/line-series.js +89 -0
  333. package/dist/features/viz/lib/line-series.js.map +7 -0
  334. package/dist/features/viz/lib/linear-scale.d.ts +3 -0
  335. package/dist/features/viz/lib/linear-scale.js +70 -0
  336. package/dist/features/viz/lib/linear-scale.js.map +7 -0
  337. package/dist/features/viz/lib/nearest.d.ts +82 -0
  338. package/dist/features/viz/lib/nearest.js +51 -0
  339. package/dist/features/viz/lib/nearest.js.map +7 -0
  340. package/dist/features/viz/lib/paint.d.ts +2 -0
  341. package/dist/features/viz/lib/paint.js +17 -0
  342. package/dist/features/viz/lib/paint.js.map +7 -0
  343. package/dist/features/viz/lib/pie-layout.d.ts +31 -0
  344. package/dist/features/viz/lib/pie-layout.js +324 -0
  345. package/dist/features/viz/lib/pie-layout.js.map +7 -0
  346. package/dist/features/viz/lib/pie-slices.d.ts +51 -0
  347. package/dist/features/viz/lib/pie-slices.js +50 -0
  348. package/dist/features/viz/lib/pie-slices.js.map +7 -0
  349. package/dist/features/viz/lib/pie-types.d.ts +215 -0
  350. package/dist/features/viz/lib/plot-series.d.ts +13 -0
  351. package/dist/features/viz/lib/plot-series.js +53 -0
  352. package/dist/features/viz/lib/plot-series.js.map +7 -0
  353. package/dist/features/viz/lib/plot-types.d.ts +63 -0
  354. package/dist/features/viz/lib/point-data.d.ts +5 -0
  355. package/dist/features/viz/lib/point-data.js +17 -0
  356. package/dist/features/viz/lib/point-data.js.map +7 -0
  357. package/dist/features/viz/lib/point-geometry.d.ts +2 -0
  358. package/dist/features/viz/lib/point-geometry.js +24 -0
  359. package/dist/features/viz/lib/point-geometry.js.map +7 -0
  360. package/dist/features/viz/lib/point-series.d.ts +11 -0
  361. package/dist/features/viz/lib/point-series.js +118 -0
  362. package/dist/features/viz/lib/point-series.js.map +7 -0
  363. package/dist/features/viz/lib/point-types.d.ts +94 -0
  364. package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
  365. package/dist/features/viz/lib/scale-adjust.js +25 -0
  366. package/dist/features/viz/lib/scale-adjust.js.map +7 -0
  367. package/dist/features/viz/lib/scale-context.d.ts +8 -0
  368. package/dist/features/viz/lib/scale-context.js +61 -0
  369. package/dist/features/viz/lib/scale-context.js.map +7 -0
  370. package/dist/features/viz/lib/scale.d.ts +11 -0
  371. package/dist/features/viz/lib/scale.js +80 -0
  372. package/dist/features/viz/lib/scale.js.map +7 -0
  373. package/dist/features/viz/lib/types.d.ts +414 -0
  374. package/dist/features/viz/lib/use-scale.d.ts +20 -0
  375. package/dist/features/viz/lib/use-scale.js +10 -0
  376. package/dist/features/viz/lib/use-scale.js.map +7 -0
  377. package/dist/filters/displacement-gpu.d.ts +38 -0
  378. package/dist/filters/displacement-gpu.js +243 -0
  379. package/dist/filters/displacement-gpu.js.map +7 -0
  380. package/dist/filters/displacement-math.d.ts +5 -0
  381. package/dist/filters/displacement-math.js +22 -0
  382. package/dist/filters/displacement-math.js.map +7 -0
  383. package/dist/filters/displacement.d.ts +13 -0
  384. package/dist/filters/displacement.js +65 -0
  385. package/dist/filters/displacement.js.map +7 -0
  386. package/dist/filters/filter-executor.d.ts +21 -0
  387. package/dist/filters/filter-executor.js +120 -0
  388. package/dist/filters/filter-executor.js.map +7 -0
  389. package/dist/filters/native-canvas-filter.d.ts +4 -0
  390. package/dist/filters/native-canvas-filter.js +105 -0
  391. package/dist/filters/native-canvas-filter.js.map +7 -0
  392. package/dist/filters/native-color.d.ts +2 -0
  393. package/dist/filters/native-color.js +200 -0
  394. package/dist/filters/native-color.js.map +7 -0
  395. package/dist/filters/native-operations.d.ts +8 -0
  396. package/dist/filters/native-operations.js +7 -0
  397. package/dist/filters/native-operations.js.map +7 -0
  398. package/dist/filters/native.d.ts +113 -0
  399. package/dist/filters/native.js +115 -0
  400. package/dist/filters/native.js.map +7 -0
  401. package/dist/filters/reflected-light.d.ts +12 -0
  402. package/dist/filters/reflected-light.js +93 -0
  403. package/dist/filters/reflected-light.js.map +7 -0
  404. package/dist/filters/reflection-gpu.d.ts +58 -0
  405. package/dist/filters/reflection-gpu.js +266 -0
  406. package/dist/filters/reflection-gpu.js.map +7 -0
  407. package/dist/filters/render-displacement-boundary.d.ts +12 -0
  408. package/dist/filters/render-displacement-boundary.js +116 -0
  409. package/dist/filters/render-displacement-boundary.js.map +7 -0
  410. package/dist/filters/render-reflection-boundary.d.ts +15 -0
  411. package/dist/filters/render-reflection-boundary.js +127 -0
  412. package/dist/filters/render-reflection-boundary.js.map +7 -0
  413. package/dist/filters.d.ts +5 -0
  414. package/dist/filters.js +29 -0
  415. package/dist/filters.js.map +7 -0
  416. package/dist/filters.mjs +1 -0
  417. package/dist/index.d.ts +111 -0
  418. package/dist/index.js +300 -0
  419. package/dist/index.js.map +7 -0
  420. package/dist/index.mjs +1 -0
  421. package/dist/internal.d.ts +160 -0
  422. package/dist/internal.js +320 -0
  423. package/dist/internal.js.map +7 -0
  424. package/dist/internal.mjs +1 -0
  425. package/dist/jsx-dev-runtime.d.ts +35 -0
  426. package/dist/jsx-dev-runtime.js +6 -0
  427. package/dist/jsx-dev-runtime.js.map +7 -0
  428. package/dist/jsx-dev-runtime.mjs +1 -0
  429. package/dist/jsx-runtime.d.ts +35 -0
  430. package/dist/jsx-runtime.js +7 -0
  431. package/dist/jsx-runtime.js.map +7 -0
  432. package/dist/jsx-runtime.mjs +1 -0
  433. package/dist/lib/animation/definition.d.ts +140 -0
  434. package/dist/lib/animation/definition.js +605 -0
  435. package/dist/lib/animation/definition.js.map +7 -0
  436. package/dist/lib/animation/easing.d.ts +55 -0
  437. package/dist/lib/animation/easing.js +112 -0
  438. package/dist/lib/animation/easing.js.map +7 -0
  439. package/dist/lib/animation/evaluate.d.ts +118 -0
  440. package/dist/lib/animation/evaluate.js +2398 -0
  441. package/dist/lib/animation/evaluate.js.map +7 -0
  442. package/dist/lib/animation/playback.d.ts +30 -0
  443. package/dist/lib/animation/playback.js +932 -0
  444. package/dist/lib/animation/playback.js.map +7 -0
  445. package/dist/lib/animation/program.d.ts +145 -0
  446. package/dist/lib/animation/program.js +741 -0
  447. package/dist/lib/animation/program.js.map +7 -0
  448. package/dist/lib/animation/spring.d.ts +30 -0
  449. package/dist/lib/animation/spring.js +324 -0
  450. package/dist/lib/animation/spring.js.map +7 -0
  451. package/dist/lib/animation/types.d.ts +418 -0
  452. package/dist/lib/animation/writer-leases.d.ts +47 -0
  453. package/dist/lib/animation/writer-leases.js +314 -0
  454. package/dist/lib/animation/writer-leases.js.map +7 -0
  455. package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
  456. package/dist/lib/backend/canvas-2d-backend.js +97 -0
  457. package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
  458. package/dist/lib/backend/types.d.ts +309 -0
  459. package/dist/lib/backend/types.js +26 -0
  460. package/dist/lib/backend/types.js.map +7 -0
  461. package/dist/lib/components/arc-geometry.d.ts +4 -0
  462. package/dist/lib/components/arc-geometry.js +46 -0
  463. package/dist/lib/components/arc-geometry.js.map +7 -0
  464. package/dist/lib/components/arc.d.ts +55 -0
  465. package/dist/lib/components/arc.js +91 -0
  466. package/dist/lib/components/arc.js.map +7 -0
  467. package/dist/lib/components/circle.d.ts +49 -0
  468. package/dist/lib/components/circle.js +46 -0
  469. package/dist/lib/components/circle.js.map +7 -0
  470. package/dist/lib/components/clip.d.ts +43 -0
  471. package/dist/lib/components/clip.js +24 -0
  472. package/dist/lib/components/clip.js.map +7 -0
  473. package/dist/lib/components/ellipse.d.ts +53 -0
  474. package/dist/lib/components/ellipse.js +59 -0
  475. package/dist/lib/components/ellipse.js.map +7 -0
  476. package/dist/lib/components/g.d.ts +56 -0
  477. package/dist/lib/components/g.js +24 -0
  478. package/dist/lib/components/g.js.map +7 -0
  479. package/dist/lib/components/horizontal-line.d.ts +56 -0
  480. package/dist/lib/components/horizontal-line.js +71 -0
  481. package/dist/lib/components/horizontal-line.js.map +7 -0
  482. package/dist/lib/components/html-box.d.ts +16 -0
  483. package/dist/lib/components/html-box.js +57 -0
  484. package/dist/lib/components/html-box.js.map +7 -0
  485. package/dist/lib/components/img.d.ts +24 -0
  486. package/dist/lib/components/img.js +150 -0
  487. package/dist/lib/components/img.js.map +7 -0
  488. package/dist/lib/components/layer-node-equality.d.ts +65 -0
  489. package/dist/lib/components/layer-node-equality.js +91 -0
  490. package/dist/lib/components/layer-node-equality.js.map +7 -0
  491. package/dist/lib/components/layer.d.ts +34 -0
  492. package/dist/lib/components/layer.js +172 -0
  493. package/dist/lib/components/layer.js.map +7 -0
  494. package/dist/lib/components/line.d.ts +51 -0
  495. package/dist/lib/components/line.js +76 -0
  496. package/dist/lib/components/line.js.map +7 -0
  497. package/dist/lib/components/path.d.ts +28 -0
  498. package/dist/lib/components/path.js +47 -0
  499. package/dist/lib/components/path.js.map +7 -0
  500. package/dist/lib/components/polygon.d.ts +45 -0
  501. package/dist/lib/components/polygon.js +93 -0
  502. package/dist/lib/components/polygon.js.map +7 -0
  503. package/dist/lib/components/rect.d.ts +24 -0
  504. package/dist/lib/components/rect.js +83 -0
  505. package/dist/lib/components/rect.js.map +7 -0
  506. package/dist/lib/components/regular-polygon.d.ts +102 -0
  507. package/dist/lib/components/regular-polygon.js +112 -0
  508. package/dist/lib/components/regular-polygon.js.map +7 -0
  509. package/dist/lib/components/rounded-corner-style.d.ts +7 -0
  510. package/dist/lib/components/rounded-corner-style.js +40 -0
  511. package/dist/lib/components/rounded-corner-style.js.map +7 -0
  512. package/dist/lib/components/shape-style.d.ts +7 -0
  513. package/dist/lib/components/shape-style.js +52 -0
  514. package/dist/lib/components/shape-style.js.map +7 -0
  515. package/dist/lib/components/star.d.ts +56 -0
  516. package/dist/lib/components/star.js +98 -0
  517. package/dist/lib/components/star.js.map +7 -0
  518. package/dist/lib/components/structural-events.d.ts +10 -0
  519. package/dist/lib/components/structural-events.js +8 -0
  520. package/dist/lib/components/structural-events.js.map +7 -0
  521. package/dist/lib/components/svg-path.d.ts +23 -0
  522. package/dist/lib/components/svg-path.js +25 -0
  523. package/dist/lib/components/svg-path.js.map +7 -0
  524. package/dist/lib/components/text-layout.d.ts +31 -0
  525. package/dist/lib/components/text-layout.js +139 -0
  526. package/dist/lib/components/text-layout.js.map +7 -0
  527. package/dist/lib/components/text.d.ts +29 -0
  528. package/dist/lib/components/text.js +174 -0
  529. package/dist/lib/components/text.js.map +7 -0
  530. package/dist/lib/components/vertical-line.d.ts +57 -0
  531. package/dist/lib/components/vertical-line.js +71 -0
  532. package/dist/lib/components/vertical-line.js.map +7 -0
  533. package/dist/lib/components/wedge.d.ts +55 -0
  534. package/dist/lib/components/wedge.js +93 -0
  535. package/dist/lib/components/wedge.js.map +7 -0
  536. package/dist/lib/define-primitive.d.ts +82 -0
  537. package/dist/lib/define-primitive.js +85 -0
  538. package/dist/lib/define-primitive.js.map +7 -0
  539. package/dist/lib/development.d.ts +2 -0
  540. package/dist/lib/development.js +5 -0
  541. package/dist/lib/development.js.map +7 -0
  542. package/dist/lib/element/children.d.ts +16 -0
  543. package/dist/lib/element/children.js +333 -0
  544. package/dist/lib/element/children.js.map +7 -0
  545. package/dist/lib/element/create-element.d.ts +34 -0
  546. package/dist/lib/element/create-element.js +75 -0
  547. package/dist/lib/element/create-element.js.map +7 -0
  548. package/dist/lib/element/fragment.d.ts +15 -0
  549. package/dist/lib/element/fragment.js +11 -0
  550. package/dist/lib/element/fragment.js.map +7 -0
  551. package/dist/lib/element/jsx-runtime.d.ts +48 -0
  552. package/dist/lib/element/jsx-runtime.js +16 -0
  553. package/dist/lib/element/jsx-runtime.js.map +7 -0
  554. package/dist/lib/element/metadata.d.ts +96 -0
  555. package/dist/lib/element/metadata.js +160 -0
  556. package/dist/lib/element/metadata.js.map +7 -0
  557. package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
  558. package/dist/lib/element/resolve-primitive-inputs.js +83 -0
  559. package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
  560. package/dist/lib/element/types.d.ts +123 -0
  561. package/dist/lib/element-enhancers.d.ts +134 -0
  562. package/dist/lib/element-enhancers.js +193 -0
  563. package/dist/lib/element-enhancers.js.map +7 -0
  564. package/dist/lib/events/adapters/clipboard.d.ts +9 -0
  565. package/dist/lib/events/adapters/clipboard.js +23 -0
  566. package/dist/lib/events/adapters/clipboard.js.map +7 -0
  567. package/dist/lib/events/adapters/drag.d.ts +12 -0
  568. package/dist/lib/events/adapters/drag.js +29 -0
  569. package/dist/lib/events/adapters/drag.js.map +7 -0
  570. package/dist/lib/events/adapters/editing.d.ts +15 -0
  571. package/dist/lib/events/adapters/editing.js +41 -0
  572. package/dist/lib/events/adapters/editing.js.map +7 -0
  573. package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
  574. package/dist/lib/events/adapters/keyboard-focus.js +36 -0
  575. package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
  576. package/dist/lib/events/adapters/mouse.d.ts +17 -0
  577. package/dist/lib/events/adapters/mouse.js +32 -0
  578. package/dist/lib/events/adapters/mouse.js.map +7 -0
  579. package/dist/lib/events/adapters/pointer.d.ts +19 -0
  580. package/dist/lib/events/adapters/pointer.js +40 -0
  581. package/dist/lib/events/adapters/pointer.js.map +7 -0
  582. package/dist/lib/events/adapters/touch.d.ts +16 -0
  583. package/dist/lib/events/adapters/touch.js +36 -0
  584. package/dist/lib/events/adapters/touch.js.map +7 -0
  585. package/dist/lib/events/adapters/wheel.d.ts +10 -0
  586. package/dist/lib/events/adapters/wheel.js +16 -0
  587. package/dist/lib/events/adapters/wheel.js.map +7 -0
  588. package/dist/lib/events/boundary-transitions.d.ts +9 -0
  589. package/dist/lib/events/boundary-transitions.js +16 -0
  590. package/dist/lib/events/boundary-transitions.js.map +7 -0
  591. package/dist/lib/events/dispatch.d.ts +21 -0
  592. package/dist/lib/events/dispatch.js +1078 -0
  593. package/dist/lib/events/dispatch.js.map +7 -0
  594. package/dist/lib/events/event-definitions.d.ts +23 -0
  595. package/dist/lib/events/event-definitions.js +74 -0
  596. package/dist/lib/events/event-definitions.js.map +7 -0
  597. package/dist/lib/events/event-facade.d.ts +19 -0
  598. package/dist/lib/events/event-facade.js +188 -0
  599. package/dist/lib/events/event-facade.js.map +7 -0
  600. package/dist/lib/events/event-path.d.ts +3 -0
  601. package/dist/lib/events/event-path.js +43 -0
  602. package/dist/lib/events/event-path.js.map +7 -0
  603. package/dist/lib/events/hit-test.d.ts +13 -0
  604. package/dist/lib/events/hit-test.js +135 -0
  605. package/dist/lib/events/hit-test.js.map +7 -0
  606. package/dist/lib/events/native-listener-hub.d.ts +10 -0
  607. package/dist/lib/events/native-listener-hub.js +72 -0
  608. package/dist/lib/events/native-listener-hub.js.map +7 -0
  609. package/dist/lib/events/paint-entry.d.ts +66 -0
  610. package/dist/lib/events/paint-entry.js +30 -0
  611. package/dist/lib/events/paint-entry.js.map +7 -0
  612. package/dist/lib/events/pointer-capture.d.ts +23 -0
  613. package/dist/lib/events/pointer-capture.js +339 -0
  614. package/dist/lib/events/pointer-capture.js.map +7 -0
  615. package/dist/lib/events/propagation.d.ts +7 -0
  616. package/dist/lib/events/propagation.js +56 -0
  617. package/dist/lib/events/propagation.js.map +7 -0
  618. package/dist/lib/events/registrations.d.ts +120 -0
  619. package/dist/lib/events/registrations.js +397 -0
  620. package/dist/lib/events/registrations.js.map +7 -0
  621. package/dist/lib/events/resolver-input.d.ts +25 -0
  622. package/dist/lib/events/resolver-input.js +62 -0
  623. package/dist/lib/events/resolver-input.js.map +7 -0
  624. package/dist/lib/events/types.d.ts +596 -0
  625. package/dist/lib/execute-render.d.ts +9 -0
  626. package/dist/lib/execute-render.js +195 -0
  627. package/dist/lib/execute-render.js.map +7 -0
  628. package/dist/lib/filter/canvas-state.d.ts +2 -0
  629. package/dist/lib/filter/canvas-state.js +31 -0
  630. package/dist/lib/filter/canvas-state.js.map +7 -0
  631. package/dist/lib/filter/filter-region.d.ts +33 -0
  632. package/dist/lib/filter/filter-region.js +291 -0
  633. package/dist/lib/filter/filter-region.js.map +7 -0
  634. package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
  635. package/dist/lib/filter/filter-surface-pool.js +252 -0
  636. package/dist/lib/filter/filter-surface-pool.js.map +7 -0
  637. package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
  638. package/dist/lib/filter/render-filter-boundary.js +211 -0
  639. package/dist/lib/filter/render-filter-boundary.js.map +7 -0
  640. package/dist/lib/focus/directional-navigation.d.ts +12 -0
  641. package/dist/lib/focus/directional-navigation.js +86 -0
  642. package/dist/lib/focus/directional-navigation.js.map +7 -0
  643. package/dist/lib/focus/dom-focus-host.d.ts +13 -0
  644. package/dist/lib/focus/dom-focus-host.js +352 -0
  645. package/dist/lib/focus/dom-focus-host.js.map +7 -0
  646. package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
  647. package/dist/lib/focus/dom-tab-stops.js +71 -0
  648. package/dist/lib/focus/dom-tab-stops.js.map +7 -0
  649. package/dist/lib/focus/focus-events.d.ts +4 -0
  650. package/dist/lib/focus/focus-events.js +78 -0
  651. package/dist/lib/focus/focus-events.js.map +7 -0
  652. package/dist/lib/focus/focus-manager.d.ts +121 -0
  653. package/dist/lib/focus/focus-manager.js +1131 -0
  654. package/dist/lib/focus/focus-manager.js.map +7 -0
  655. package/dist/lib/focus/geometry.d.ts +4 -0
  656. package/dist/lib/focus/geometry.js +64 -0
  657. package/dist/lib/focus/geometry.js.map +7 -0
  658. package/dist/lib/focus/html-focus-region.d.ts +27 -0
  659. package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
  660. package/dist/lib/focus/keyboard-defaults.js +110 -0
  661. package/dist/lib/focus/keyboard-defaults.js.map +7 -0
  662. package/dist/lib/focus/policy-components.d.ts +45 -0
  663. package/dist/lib/focus/policy-components.js +94 -0
  664. package/dist/lib/focus/policy-components.js.map +7 -0
  665. package/dist/lib/focus/types.d.ts +37 -0
  666. package/dist/lib/focus/types.js +7 -0
  667. package/dist/lib/focus/types.js.map +7 -0
  668. package/dist/lib/geometry/circle.d.ts +22 -0
  669. package/dist/lib/geometry/circle.js +13 -0
  670. package/dist/lib/geometry/circle.js.map +7 -0
  671. package/dist/lib/geometry/circular-sweep.d.ts +54 -0
  672. package/dist/lib/geometry/circular-sweep.js +95 -0
  673. package/dist/lib/geometry/circular-sweep.js.map +7 -0
  674. package/dist/lib/geometry/ellipse.d.ts +26 -0
  675. package/dist/lib/geometry/ellipse.js +17 -0
  676. package/dist/lib/geometry/ellipse.js.map +7 -0
  677. package/dist/lib/geometry/line.d.ts +20 -0
  678. package/dist/lib/geometry/line.js +15 -0
  679. package/dist/lib/geometry/line.js.map +7 -0
  680. package/dist/lib/geometry/path-arc.d.ts +25 -0
  681. package/dist/lib/geometry/path-arc.js +57 -0
  682. package/dist/lib/geometry/path-arc.js.map +7 -0
  683. package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
  684. package/dist/lib/geometry/path-bend-guide.js +282 -0
  685. package/dist/lib/geometry/path-bend-guide.js.map +7 -0
  686. package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
  687. package/dist/lib/geometry/path-bend-spans.js +109 -0
  688. package/dist/lib/geometry/path-bend-spans.js.map +7 -0
  689. package/dist/lib/geometry/path-bending.d.ts +90 -0
  690. package/dist/lib/geometry/path-bending.js +202 -0
  691. package/dist/lib/geometry/path-bending.js.map +7 -0
  692. package/dist/lib/geometry/path-conversion.d.ts +19 -0
  693. package/dist/lib/geometry/path-conversion.js +114 -0
  694. package/dist/lib/geometry/path-conversion.js.map +7 -0
  695. package/dist/lib/geometry/path-geometry.d.ts +218 -0
  696. package/dist/lib/geometry/path-geometry.js +557 -0
  697. package/dist/lib/geometry/path-geometry.js.map +7 -0
  698. package/dist/lib/geometry/path-radial.d.ts +15 -0
  699. package/dist/lib/geometry/path-radial.js +107 -0
  700. package/dist/lib/geometry/path-radial.js.map +7 -0
  701. package/dist/lib/geometry/path-transforms.d.ts +233 -0
  702. package/dist/lib/geometry/path-transforms.js +478 -0
  703. package/dist/lib/geometry/path-transforms.js.map +7 -0
  704. package/dist/lib/geometry/path-utilities.d.ts +78 -0
  705. package/dist/lib/geometry/path-utilities.js +341 -0
  706. package/dist/lib/geometry/path-utilities.js.map +7 -0
  707. package/dist/lib/geometry/path-wang.d.ts +18 -0
  708. package/dist/lib/geometry/path-wang.js +136 -0
  709. package/dist/lib/geometry/path-wang.js.map +7 -0
  710. package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
  711. package/dist/lib/geometry/path-warp-bezier.js +109 -0
  712. package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
  713. package/dist/lib/geometry/path-warp.d.ts +27 -0
  714. package/dist/lib/geometry/path-warp.js +165 -0
  715. package/dist/lib/geometry/path-warp.js.map +7 -0
  716. package/dist/lib/geometry/polygon.d.ts +21 -0
  717. package/dist/lib/geometry/polygon.js +12 -0
  718. package/dist/lib/geometry/polygon.js.map +7 -0
  719. package/dist/lib/geometry/rectangle.d.ts +38 -0
  720. package/dist/lib/geometry/rectangle.js +22 -0
  721. package/dist/lib/geometry/rectangle.js.map +7 -0
  722. package/dist/lib/geometry/regular-polygon.d.ts +88 -0
  723. package/dist/lib/geometry/regular-polygon.js +67 -0
  724. package/dist/lib/geometry/regular-polygon.js.map +7 -0
  725. package/dist/lib/geometry/resolve-path.d.ts +4 -0
  726. package/dist/lib/geometry/resolve-path.js +16 -0
  727. package/dist/lib/geometry/resolve-path.js.map +7 -0
  728. package/dist/lib/geometry/rounded-corners.d.ts +28 -0
  729. package/dist/lib/geometry/rounded-corners.js +118 -0
  730. package/dist/lib/geometry/rounded-corners.js.map +7 -0
  731. package/dist/lib/geometry/star.d.ts +39 -0
  732. package/dist/lib/geometry/star.js +90 -0
  733. package/dist/lib/geometry/star.js.map +7 -0
  734. package/dist/lib/geometry/svg-path.d.ts +21 -0
  735. package/dist/lib/geometry/svg-path.js +7 -0
  736. package/dist/lib/geometry/svg-path.js.map +7 -0
  737. package/dist/lib/geometry/transform-bend.d.ts +46 -0
  738. package/dist/lib/geometry/transform-bend.js +219 -0
  739. package/dist/lib/geometry/transform-bend.js.map +7 -0
  740. package/dist/lib/geometry/transform-guide.d.ts +57 -0
  741. package/dist/lib/geometry/transform-guide.js +157 -0
  742. package/dist/lib/geometry/transform-guide.js.map +7 -0
  743. package/dist/lib/geometry/transform-math.d.ts +21 -0
  744. package/dist/lib/geometry/transform-math.js +91 -0
  745. package/dist/lib/geometry/transform-math.js.map +7 -0
  746. package/dist/lib/geometry/transform-mesh.d.ts +39 -0
  747. package/dist/lib/geometry/transform-mesh.js +129 -0
  748. package/dist/lib/geometry/transform-mesh.js.map +7 -0
  749. package/dist/lib/geometry/validation.d.ts +6 -0
  750. package/dist/lib/geometry/validation.js +42 -0
  751. package/dist/lib/geometry/validation.js.map +7 -0
  752. package/dist/lib/global-state.d.ts +63 -0
  753. package/dist/lib/global-state.js +176 -0
  754. package/dist/lib/global-state.js.map +7 -0
  755. package/dist/lib/hooks/hook-slot.d.ts +30 -0
  756. package/dist/lib/hooks/hook-slot.js +66 -0
  757. package/dist/lib/hooks/hook-slot.js.map +7 -0
  758. package/dist/lib/hooks/use-animated-value.d.ts +24 -0
  759. package/dist/lib/hooks/use-animated-value.js +169 -0
  760. package/dist/lib/hooks/use-animated-value.js.map +7 -0
  761. package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
  762. package/dist/lib/hooks/use-canvas-context.js +13 -0
  763. package/dist/lib/hooks/use-canvas-context.js.map +7 -0
  764. package/dist/lib/hooks/use-computed.d.ts +13 -0
  765. package/dist/lib/hooks/use-computed.js +91 -0
  766. package/dist/lib/hooks/use-computed.js.map +7 -0
  767. package/dist/lib/hooks/use-const.d.ts +10 -0
  768. package/dist/lib/hooks/use-const.js +15 -0
  769. package/dist/lib/hooks/use-const.js.map +7 -0
  770. package/dist/lib/hooks/use-cursor.d.ts +16 -0
  771. package/dist/lib/hooks/use-cursor.js +51 -0
  772. package/dist/lib/hooks/use-cursor.js.map +7 -0
  773. package/dist/lib/hooks/use-event-listener.d.ts +10 -0
  774. package/dist/lib/hooks/use-event-listener.js +24 -0
  775. package/dist/lib/hooks/use-event-listener.js.map +7 -0
  776. package/dist/lib/hooks/use-event-target.d.ts +14 -0
  777. package/dist/lib/hooks/use-event-target.js +30 -0
  778. package/dist/lib/hooks/use-event-target.js.map +7 -0
  779. package/dist/lib/hooks/use-layout-box.d.ts +9 -0
  780. package/dist/lib/hooks/use-layout-box.js +8 -0
  781. package/dist/lib/hooks/use-layout-box.js.map +7 -0
  782. package/dist/lib/hooks/use-line-path.d.ts +14 -0
  783. package/dist/lib/hooks/use-line-path.js +13 -0
  784. package/dist/lib/hooks/use-line-path.js.map +7 -0
  785. package/dist/lib/hooks/use-paint-target.d.ts +3 -0
  786. package/dist/lib/hooks/use-paint-target.js +34 -0
  787. package/dist/lib/hooks/use-paint-target.js.map +7 -0
  788. package/dist/lib/hooks/use-playback.d.ts +21 -0
  789. package/dist/lib/hooks/use-playback.js +87 -0
  790. package/dist/lib/hooks/use-playback.js.map +7 -0
  791. package/dist/lib/hooks/use-reaction.d.ts +19 -0
  792. package/dist/lib/hooks/use-reaction.js +245 -0
  793. package/dist/lib/hooks/use-reaction.js.map +7 -0
  794. package/dist/lib/hooks/use-rect-path.d.ts +20 -0
  795. package/dist/lib/hooks/use-rect-path.js +25 -0
  796. package/dist/lib/hooks/use-rect-path.js.map +7 -0
  797. package/dist/lib/hooks/use-ref.d.ts +17 -0
  798. package/dist/lib/hooks/use-ref.js +8 -0
  799. package/dist/lib/hooks/use-ref.js.map +7 -0
  800. package/dist/lib/hooks/use-region.d.ts +11 -0
  801. package/dist/lib/hooks/use-region.js +34 -0
  802. package/dist/lib/hooks/use-region.js.map +7 -0
  803. package/dist/lib/hooks/use-signal.d.ts +12 -0
  804. package/dist/lib/hooks/use-signal.js +12 -0
  805. package/dist/lib/hooks/use-signal.js.map +7 -0
  806. package/dist/lib/hooks/use-svg-path.d.ts +11 -0
  807. package/dist/lib/hooks/use-svg-path.js +13 -0
  808. package/dist/lib/hooks/use-svg-path.js.map +7 -0
  809. package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
  810. package/dist/lib/hooks/use-value-memo-slot.js +45 -0
  811. package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
  812. package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
  813. package/dist/lib/hooks/use-visibility-transition.js +195 -0
  814. package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
  815. package/dist/lib/html/html-service.d.ts +30 -0
  816. package/dist/lib/html/html-service.js +281 -0
  817. package/dist/lib/html/html-service.js.map +7 -0
  818. package/dist/lib/html/overlay-config.d.ts +3 -0
  819. package/dist/lib/html/overlay-config.js +37 -0
  820. package/dist/lib/html/overlay-config.js.map +7 -0
  821. package/dist/lib/html/portable-clips.d.ts +4 -0
  822. package/dist/lib/html/portable-clips.js +20 -0
  823. package/dist/lib/html/portable-clips.js.map +7 -0
  824. package/dist/lib/html/types.d.ts +110 -0
  825. package/dist/lib/layout/absolute.d.ts +57 -0
  826. package/dist/lib/layout/absolute.js +348 -0
  827. package/dist/lib/layout/absolute.js.map +7 -0
  828. package/dist/lib/layout/box.d.ts +19 -0
  829. package/dist/lib/layout/box.js +209 -0
  830. package/dist/lib/layout/box.js.map +7 -0
  831. package/dist/lib/layout/context.d.ts +13 -0
  832. package/dist/lib/layout/context.js +42 -0
  833. package/dist/lib/layout/context.js.map +7 -0
  834. package/dist/lib/layout/diagnostics.d.ts +15 -0
  835. package/dist/lib/layout/diagnostics.js +30 -0
  836. package/dist/lib/layout/diagnostics.js.map +7 -0
  837. package/dist/lib/layout/flex.d.ts +64 -0
  838. package/dist/lib/layout/flex.js +803 -0
  839. package/dist/lib/layout/flex.js.map +7 -0
  840. package/dist/lib/layout/flow.d.ts +53 -0
  841. package/dist/lib/layout/flow.js +400 -0
  842. package/dist/lib/layout/flow.js.map +7 -0
  843. package/dist/lib/layout/grid.d.ts +64 -0
  844. package/dist/lib/layout/grid.js +597 -0
  845. package/dist/lib/layout/grid.js.map +7 -0
  846. package/dist/lib/layout/measure.d.ts +19 -0
  847. package/dist/lib/layout/measure.js +144 -0
  848. package/dist/lib/layout/measure.js.map +7 -0
  849. package/dist/lib/layout/overlay.d.ts +42 -0
  850. package/dist/lib/layout/overlay.js +151 -0
  851. package/dist/lib/layout/overlay.js.map +7 -0
  852. package/dist/lib/layout/place-child.d.ts +12 -0
  853. package/dist/lib/layout/place-child.js +72 -0
  854. package/dist/lib/layout/place-child.js.map +7 -0
  855. package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
  856. package/dist/lib/layout/positioning-diagnostics.js +15 -0
  857. package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
  858. package/dist/lib/layout/types.d.ts +78 -0
  859. package/dist/lib/manipulation/controller-types.d.ts +299 -0
  860. package/dist/lib/manipulation/controller.d.ts +57 -0
  861. package/dist/lib/manipulation/controller.js +464 -0
  862. package/dist/lib/manipulation/controller.js.map +7 -0
  863. package/dist/lib/manipulation/coordinates.d.ts +9 -0
  864. package/dist/lib/manipulation/coordinates.js +55 -0
  865. package/dist/lib/manipulation/coordinates.js.map +7 -0
  866. package/dist/lib/manipulation/degrees.d.ts +10 -0
  867. package/dist/lib/manipulation/degrees.js +9 -0
  868. package/dist/lib/manipulation/degrees.js.map +7 -0
  869. package/dist/lib/manipulation/frame.d.ts +24 -0
  870. package/dist/lib/manipulation/frame.js +101 -0
  871. package/dist/lib/manipulation/frame.js.map +7 -0
  872. package/dist/lib/manipulation/geometry.d.ts +4 -0
  873. package/dist/lib/manipulation/geometry.js +26 -0
  874. package/dist/lib/manipulation/geometry.js.map +7 -0
  875. package/dist/lib/manipulation/handles.d.ts +298 -0
  876. package/dist/lib/manipulation/handles.js +598 -0
  877. package/dist/lib/manipulation/handles.js.map +7 -0
  878. package/dist/lib/manipulation/manipulable.d.ts +65 -0
  879. package/dist/lib/manipulation/manipulable.js +47 -0
  880. package/dist/lib/manipulation/manipulable.js.map +7 -0
  881. package/dist/lib/manipulation/ownership.d.ts +15 -0
  882. package/dist/lib/manipulation/ownership.js +80 -0
  883. package/dist/lib/manipulation/ownership.js.map +7 -0
  884. package/dist/lib/manipulation/snap.d.ts +6 -0
  885. package/dist/lib/manipulation/snap.js +40 -0
  886. package/dist/lib/manipulation/snap.js.map +7 -0
  887. package/dist/lib/manipulation/solve.d.ts +2 -0
  888. package/dist/lib/manipulation/solve.js +563 -0
  889. package/dist/lib/manipulation/solve.js.map +7 -0
  890. package/dist/lib/manipulation/types.d.ts +178 -0
  891. package/dist/lib/mount-pibbl.d.ts +25 -0
  892. package/dist/lib/mount-pibbl.js +278 -0
  893. package/dist/lib/mount-pibbl.js.map +7 -0
  894. package/dist/lib/optional-services.d.ts +8 -0
  895. package/dist/lib/optional-services.js +11 -0
  896. package/dist/lib/optional-services.js.map +7 -0
  897. package/dist/lib/pibbl.d.ts +17 -0
  898. package/dist/lib/pibbl.js +21 -0
  899. package/dist/lib/pibbl.js.map +7 -0
  900. package/dist/lib/primitive-presentation.d.ts +24 -0
  901. package/dist/lib/primitive-presentation.js +102 -0
  902. package/dist/lib/primitive-presentation.js.map +7 -0
  903. package/dist/lib/render-layer/controller.d.ts +67 -0
  904. package/dist/lib/render-layer/controller.js +603 -0
  905. package/dist/lib/render-layer/controller.js.map +7 -0
  906. package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
  907. package/dist/lib/render-layer/define-render-layer.js +90 -0
  908. package/dist/lib/render-layer/define-render-layer.js.map +7 -0
  909. package/dist/lib/render-layer/types.d.ts +315 -0
  910. package/dist/lib/render-target.d.ts +27 -0
  911. package/dist/lib/render-target.js +118 -0
  912. package/dist/lib/render-target.js.map +7 -0
  913. package/dist/lib/render-transaction.d.ts +10 -0
  914. package/dist/lib/render-transaction.js +46 -0
  915. package/dist/lib/render-transaction.js.map +7 -0
  916. package/dist/lib/render.d.ts +3 -0
  917. package/dist/lib/render.js +385 -0
  918. package/dist/lib/render.js.map +7 -0
  919. package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
  920. package/dist/lib/scheduler/realm-scheduler.js +964 -0
  921. package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
  922. package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
  923. package/dist/lib/scheduler/renderer-participant.js +216 -0
  924. package/dist/lib/scheduler/renderer-participant.js.map +7 -0
  925. package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
  926. package/dist/lib/scheduler/simulation-participant.js +229 -0
  927. package/dist/lib/scheduler/simulation-participant.js.map +7 -0
  928. package/dist/lib/scheduler/testing.d.ts +56 -0
  929. package/dist/lib/scheduler/testing.js +71 -0
  930. package/dist/lib/scheduler/testing.js.map +7 -0
  931. package/dist/lib/scheduler/types.d.ts +103 -0
  932. package/dist/lib/signals/edge.d.ts +44 -0
  933. package/dist/lib/signals/edge.js +245 -0
  934. package/dist/lib/signals/edge.js.map +7 -0
  935. package/dist/lib/signals/graph.d.ts +220 -0
  936. package/dist/lib/signals/graph.js +1035 -0
  937. package/dist/lib/signals/graph.js.map +7 -0
  938. package/dist/lib/signals/input-provision.d.ts +3 -0
  939. package/dist/lib/signals/input-provision.js +67 -0
  940. package/dist/lib/signals/input-provision.js.map +7 -0
  941. package/dist/lib/signals/render-consumer.d.ts +21 -0
  942. package/dist/lib/signals/render-consumer.js +218 -0
  943. package/dist/lib/signals/render-consumer.js.map +7 -0
  944. package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
  945. package/dist/lib/signals/resolve-signal-value.js +17 -0
  946. package/dist/lib/signals/resolve-signal-value.js.map +7 -0
  947. package/dist/lib/signals/types.d.ts +80 -0
  948. package/dist/lib/style/diagnostics.d.ts +83 -0
  949. package/dist/lib/style/diagnostics.js +63 -0
  950. package/dist/lib/style/diagnostics.js.map +7 -0
  951. package/dist/lib/style/empty-style.d.ts +3 -0
  952. package/dist/lib/style/empty-style.js +5 -0
  953. package/dist/lib/style/empty-style.js.map +7 -0
  954. package/dist/lib/style/filter-types.d.ts +243 -0
  955. package/dist/lib/style/filter-types.js +5 -0
  956. package/dist/lib/style/filter-types.js.map +7 -0
  957. package/dist/lib/style/filter.d.ts +7 -0
  958. package/dist/lib/style/filter.js +50 -0
  959. package/dist/lib/style/filter.js.map +7 -0
  960. package/dist/lib/style/normalize.d.ts +18 -0
  961. package/dist/lib/style/normalize.js +50 -0
  962. package/dist/lib/style/normalize.js.map +7 -0
  963. package/dist/lib/style/positioning.d.ts +32 -0
  964. package/dist/lib/style/positioning.js +81 -0
  965. package/dist/lib/style/positioning.js.map +7 -0
  966. package/dist/lib/style/resolve-built-in.d.ts +6 -0
  967. package/dist/lib/style/resolve-built-in.js +58 -0
  968. package/dist/lib/style/resolve-built-in.js.map +7 -0
  969. package/dist/lib/style/resolve-dispatch.d.ts +20 -0
  970. package/dist/lib/style/resolve-dispatch.js +167 -0
  971. package/dist/lib/style/resolve-dispatch.js.map +7 -0
  972. package/dist/lib/style/resolve-length.d.ts +16 -0
  973. package/dist/lib/style/resolve-length.js +54 -0
  974. package/dist/lib/style/resolve-length.js.map +7 -0
  975. package/dist/lib/style/responsive.d.ts +31 -0
  976. package/dist/lib/style/responsive.js +172 -0
  977. package/dist/lib/style/responsive.js.map +7 -0
  978. package/dist/lib/style/types.d.ts +338 -0
  979. package/dist/lib/surface/resolve-surface.d.ts +4 -0
  980. package/dist/lib/surface/resolve-surface.js +184 -0
  981. package/dist/lib/surface/resolve-surface.js.map +7 -0
  982. package/dist/lib/surface/root-surface.d.ts +7 -0
  983. package/dist/lib/surface/root-surface.js +171 -0
  984. package/dist/lib/surface/root-surface.js.map +7 -0
  985. package/dist/lib/surface/transform.d.ts +4 -0
  986. package/dist/lib/surface/transform.js +16 -0
  987. package/dist/lib/surface/transform.js.map +7 -0
  988. package/dist/lib/surface/types.d.ts +132 -0
  989. package/dist/lib/teardowns.d.ts +14 -0
  990. package/dist/lib/teardowns.js +50 -0
  991. package/dist/lib/teardowns.js.map +7 -0
  992. package/dist/lib/textures/texture-protocol.d.ts +124 -0
  993. package/dist/lib/textures/texture-protocol.js +40 -0
  994. package/dist/lib/textures/texture-protocol.js.map +7 -0
  995. package/dist/lib/textures/texture.d.ts +170 -0
  996. package/dist/lib/textures/texture.js +385 -0
  997. package/dist/lib/textures/texture.js.map +7 -0
  998. package/dist/lib/transitions/bifrost.d.ts +47 -0
  999. package/dist/lib/transitions/bifrost.js +91 -0
  1000. package/dist/lib/transitions/bifrost.js.map +7 -0
  1001. package/dist/lib/transitions/binding.d.ts +14 -0
  1002. package/dist/lib/transitions/binding.js +35 -0
  1003. package/dist/lib/transitions/binding.js.map +7 -0
  1004. package/dist/lib/transitions/capture.d.ts +21 -0
  1005. package/dist/lib/transitions/capture.js +91 -0
  1006. package/dist/lib/transitions/capture.js.map +7 -0
  1007. package/dist/lib/transitions/common.d.ts +130 -0
  1008. package/dist/lib/transitions/common.js +57 -0
  1009. package/dist/lib/transitions/common.js.map +7 -0
  1010. package/dist/lib/transitions/define-transition.d.ts +64 -0
  1011. package/dist/lib/transitions/define-transition.js +31 -0
  1012. package/dist/lib/transitions/define-transition.js.map +7 -0
  1013. package/dist/lib/transitions/embers-physics.d.ts +114 -0
  1014. package/dist/lib/transitions/embers-physics.js +161 -0
  1015. package/dist/lib/transitions/embers-physics.js.map +7 -0
  1016. package/dist/lib/transitions/embers.d.ts +67 -0
  1017. package/dist/lib/transitions/embers.js +196 -0
  1018. package/dist/lib/transitions/embers.js.map +7 -0
  1019. package/dist/lib/transitions/fade.d.ts +41 -0
  1020. package/dist/lib/transitions/fade.js +31 -0
  1021. package/dist/lib/transitions/fade.js.map +7 -0
  1022. package/dist/lib/transitions/hologram.d.ts +47 -0
  1023. package/dist/lib/transitions/hologram.js +94 -0
  1024. package/dist/lib/transitions/hologram.js.map +7 -0
  1025. package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
  1026. package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
  1027. package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
  1028. package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
  1029. package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
  1030. package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
  1031. package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
  1032. package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
  1033. package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
  1034. package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
  1035. package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
  1036. package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
  1037. package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
  1038. package/dist/lib/transitions/wasm/kernel.js +26 -0
  1039. package/dist/lib/transitions/wasm/kernel.js.map +7 -0
  1040. package/dist/lib/types.d.ts +570 -0
  1041. package/dist/lib/update.d.ts +8 -0
  1042. package/dist/lib/update.js +20 -0
  1043. package/dist/lib/update.js.map +7 -0
  1044. package/dist/lib/util/get-2d-context.d.ts +2 -0
  1045. package/dist/lib/util/get-2d-context.js +11 -0
  1046. package/dist/lib/util/get-2d-context.js.map +7 -0
  1047. package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
  1048. package/dist/lib/util/get-mouse-coordinates.js +32 -0
  1049. package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
  1050. package/dist/lib/util/is-hit.d.ts +11 -0
  1051. package/dist/lib/util/is-hit.js +52 -0
  1052. package/dist/lib/util/is-hit.js.map +7 -0
  1053. package/dist/lib/util/is-transparent.d.ts +1 -0
  1054. package/dist/lib/util/is-transparent.js +8 -0
  1055. package/dist/lib/util/is-transparent.js.map +7 -0
  1056. package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
  1057. package/dist/lib/util/pixel-grid-adjustments.js +28 -0
  1058. package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
  1059. package/dist/lib/util/push-clipping-path.d.ts +6 -0
  1060. package/dist/lib/util/push-clipping-path.js +28 -0
  1061. package/dist/lib/util/push-clipping-path.js.map +7 -0
  1062. package/dist/lib/util/wire-common-events.d.ts +2 -0
  1063. package/dist/lib/util/wire-common-events.js +15 -0
  1064. package/dist/lib/util/wire-common-events.js.map +7 -0
  1065. package/dist/types.d.ts +1 -0
  1066. package/dist/types.js +1 -0
  1067. package/dist/types.js.map +7 -0
  1068. package/dist/types.mjs +1 -0
  1069. 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;