@codexo/exojs 0.7.11 → 0.7.12

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 (478) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/dist/esm/animation/Tween.d.ts +60 -1
  3. package/dist/esm/animation/Tween.js +60 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +10 -0
  6. package/dist/esm/animation/TweenManager.js +10 -0
  7. package/dist/esm/animation/TweenManager.js.map +1 -1
  8. package/dist/esm/animation/types.d.ts +15 -0
  9. package/dist/esm/animation/types.js +6 -0
  10. package/dist/esm/animation/types.js.map +1 -1
  11. package/dist/esm/audio/AbstractMedia.d.ts +11 -0
  12. package/dist/esm/audio/AbstractMedia.js +10 -0
  13. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  14. package/dist/esm/audio/AudioAnalyser.d.ts +21 -0
  15. package/dist/esm/audio/AudioAnalyser.js +16 -0
  16. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  17. package/dist/esm/audio/AudioBus.d.ts +37 -0
  18. package/dist/esm/audio/AudioBus.js +36 -0
  19. package/dist/esm/audio/AudioBus.js.map +1 -1
  20. package/dist/esm/audio/AudioFilter.d.ts +7 -0
  21. package/dist/esm/audio/AudioFilter.js +6 -0
  22. package/dist/esm/audio/AudioFilter.js.map +1 -1
  23. package/dist/esm/audio/AudioListener.d.ts +19 -0
  24. package/dist/esm/audio/AudioListener.js +11 -0
  25. package/dist/esm/audio/AudioListener.js.map +1 -1
  26. package/dist/esm/audio/AudioManager.d.ts +37 -0
  27. package/dist/esm/audio/AudioManager.js +37 -0
  28. package/dist/esm/audio/AudioManager.js.map +1 -1
  29. package/dist/esm/audio/BeatDetector.d.ts +21 -0
  30. package/dist/esm/audio/BeatDetector.js +21 -0
  31. package/dist/esm/audio/BeatDetector.js.map +1 -1
  32. package/dist/esm/audio/Media.d.ts +11 -0
  33. package/dist/esm/audio/Music.d.ts +12 -0
  34. package/dist/esm/audio/Music.js +12 -0
  35. package/dist/esm/audio/Music.js.map +1 -1
  36. package/dist/esm/audio/Sound.d.ts +25 -0
  37. package/dist/esm/audio/Sound.js +18 -0
  38. package/dist/esm/audio/Sound.js.map +1 -1
  39. package/dist/esm/audio/audio-context.d.ts +48 -0
  40. package/dist/esm/audio/audio-context.js +48 -5
  41. package/dist/esm/audio/audio-context.js.map +1 -1
  42. package/dist/esm/audio/filters/ChorusFilter.d.ts +5 -0
  43. package/dist/esm/audio/filters/ChorusFilter.js +4 -0
  44. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
  45. package/dist/esm/audio/filters/CompressorFilter.d.ts +12 -0
  46. package/dist/esm/audio/filters/CompressorFilter.js +11 -0
  47. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
  48. package/dist/esm/audio/filters/DelayFilter.d.ts +11 -0
  49. package/dist/esm/audio/filters/DelayFilter.js +10 -0
  50. package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
  51. package/dist/esm/audio/filters/DuckingFilter.d.ts +13 -0
  52. package/dist/esm/audio/filters/DuckingFilter.js +12 -0
  53. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
  54. package/dist/esm/audio/filters/EqualizerFilter.d.ts +20 -0
  55. package/dist/esm/audio/filters/EqualizerFilter.js +40 -0
  56. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
  57. package/dist/esm/audio/filters/GranularFilter.d.ts +6 -0
  58. package/dist/esm/audio/filters/GranularFilter.js +6 -0
  59. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  60. package/dist/esm/audio/filters/HighpassFilter.d.ts +10 -0
  61. package/dist/esm/audio/filters/HighpassFilter.js +9 -0
  62. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
  63. package/dist/esm/audio/filters/LowpassFilter.d.ts +10 -0
  64. package/dist/esm/audio/filters/LowpassFilter.js +9 -0
  65. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
  66. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +2 -0
  67. package/dist/esm/audio/filters/PitchShiftFilter.js +2 -0
  68. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  69. package/dist/esm/audio/filters/ReverbFilter.d.ts +12 -0
  70. package/dist/esm/audio/filters/ReverbFilter.js +11 -0
  71. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
  72. package/dist/esm/audio/filters/VocoderFilter.d.ts +11 -0
  73. package/dist/esm/audio/filters/VocoderFilter.js +11 -0
  74. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  75. package/dist/esm/audio/filters/WorkletFilter.d.ts +6 -1
  76. package/dist/esm/audio/filters/WorkletFilter.js +6 -1
  77. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
  78. package/dist/esm/core/Application.d.ts +63 -0
  79. package/dist/esm/core/Application.js +61 -0
  80. package/dist/esm/core/Application.js.map +1 -1
  81. package/dist/esm/core/Bounds.d.ts +23 -0
  82. package/dist/esm/core/Bounds.js +23 -0
  83. package/dist/esm/core/Bounds.js.map +1 -1
  84. package/dist/esm/core/Clock.d.ts +21 -0
  85. package/dist/esm/core/Clock.js +21 -0
  86. package/dist/esm/core/Clock.js.map +1 -1
  87. package/dist/esm/core/Color.d.ts +35 -0
  88. package/dist/esm/core/Color.js +35 -0
  89. package/dist/esm/core/Color.js.map +1 -1
  90. package/dist/esm/core/Scene.d.ts +46 -0
  91. package/dist/esm/core/Scene.js +27 -0
  92. package/dist/esm/core/Scene.js.map +1 -1
  93. package/dist/esm/core/SceneManager.d.ts +62 -0
  94. package/dist/esm/core/SceneManager.js +49 -0
  95. package/dist/esm/core/SceneManager.js.map +1 -1
  96. package/dist/esm/core/SceneNode.d.ts +31 -0
  97. package/dist/esm/core/SceneNode.js +31 -0
  98. package/dist/esm/core/SceneNode.js.map +1 -1
  99. package/dist/esm/core/Signal.d.ts +44 -0
  100. package/dist/esm/core/Signal.js +39 -0
  101. package/dist/esm/core/Signal.js.map +1 -1
  102. package/dist/esm/core/Time.d.ts +21 -0
  103. package/dist/esm/core/Time.js +21 -0
  104. package/dist/esm/core/Time.js.map +1 -1
  105. package/dist/esm/core/Timer.d.ts +7 -0
  106. package/dist/esm/core/Timer.js +7 -0
  107. package/dist/esm/core/Timer.js.map +1 -1
  108. package/dist/esm/core/capabilities.d.ts +12 -0
  109. package/dist/esm/core/capabilities.js +12 -0
  110. package/dist/esm/core/capabilities.js.map +1 -1
  111. package/dist/esm/core/types.d.ts +37 -0
  112. package/dist/esm/core/utils.d.ts +48 -0
  113. package/dist/esm/core/utils.js +48 -0
  114. package/dist/esm/core/utils.js.map +1 -1
  115. package/dist/esm/debug/BoundingBoxesLayer.d.ts +8 -0
  116. package/dist/esm/debug/BoundingBoxesLayer.js +8 -0
  117. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  118. package/dist/esm/debug/DebugLayer.d.ts +16 -3
  119. package/dist/esm/debug/DebugLayer.js +11 -3
  120. package/dist/esm/debug/DebugLayer.js.map +1 -1
  121. package/dist/esm/debug/DebugOverlay.d.ts +11 -0
  122. package/dist/esm/debug/DebugOverlay.js +6 -0
  123. package/dist/esm/debug/DebugOverlay.js.map +1 -1
  124. package/dist/esm/debug/HitTestLayer.d.ts +9 -0
  125. package/dist/esm/debug/HitTestLayer.js +9 -0
  126. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  127. package/dist/esm/debug/PerformanceLayer.d.ts +17 -1
  128. package/dist/esm/debug/PerformanceLayer.js +18 -0
  129. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  130. package/dist/esm/debug/PointerStackLayer.d.ts +8 -0
  131. package/dist/esm/debug/PointerStackLayer.js +10 -2
  132. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  133. package/dist/esm/index.js +2 -2
  134. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
  135. package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
  136. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  137. package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
  138. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  139. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  140. package/dist/esm/input/Gamepad.d.ts +48 -0
  141. package/dist/esm/input/Gamepad.js +43 -0
  142. package/dist/esm/input/Gamepad.js.map +1 -1
  143. package/dist/esm/input/GamepadChannels.d.ts +8 -0
  144. package/dist/esm/input/GamepadChannels.js +8 -0
  145. package/dist/esm/input/GamepadChannels.js.map +1 -1
  146. package/dist/esm/input/GamepadControl.d.ts +18 -0
  147. package/dist/esm/input/GamepadControl.js +13 -0
  148. package/dist/esm/input/GamepadControl.js.map +1 -1
  149. package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
  150. package/dist/esm/input/GamepadDefinitions.js +40 -1
  151. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  152. package/dist/esm/input/GamepadMapping.d.ts +32 -2
  153. package/dist/esm/input/GamepadMapping.js +24 -0
  154. package/dist/esm/input/GamepadMapping.js.map +1 -1
  155. package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
  156. package/dist/esm/input/GamepadPromptLayouts.js +25 -1
  157. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  158. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
  159. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
  160. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  161. package/dist/esm/input/GestureRecognizer.d.ts +11 -2
  162. package/dist/esm/input/GestureRecognizer.js +11 -2
  163. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  164. package/dist/esm/input/Input.d.ts +24 -0
  165. package/dist/esm/input/Input.js +22 -0
  166. package/dist/esm/input/Input.js.map +1 -1
  167. package/dist/esm/input/InputManager.d.ts +33 -0
  168. package/dist/esm/input/InputManager.js +33 -0
  169. package/dist/esm/input/InputManager.js.map +1 -1
  170. package/dist/esm/input/InteractionEvent.d.ts +13 -0
  171. package/dist/esm/input/InteractionEvent.js +8 -0
  172. package/dist/esm/input/InteractionEvent.js.map +1 -1
  173. package/dist/esm/input/InteractionManager.d.ts +33 -4
  174. package/dist/esm/input/InteractionManager.js +33 -4
  175. package/dist/esm/input/InteractionManager.js.map +1 -1
  176. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
  177. package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
  178. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  179. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
  180. package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
  181. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  182. package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
  183. package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
  184. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  185. package/dist/esm/input/Pointer.d.ts +22 -0
  186. package/dist/esm/input/Pointer.js +22 -0
  187. package/dist/esm/input/Pointer.js.map +1 -1
  188. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
  189. package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
  190. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  191. package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
  192. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  193. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  194. package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
  195. package/dist/esm/input/XboxGamepadMapping.js +8 -0
  196. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  197. package/dist/esm/input/types.d.ts +20 -0
  198. package/dist/esm/input/types.js +20 -0
  199. package/dist/esm/input/types.js.map +1 -1
  200. package/dist/esm/math/AbstractVector.d.ts +83 -0
  201. package/dist/esm/math/AbstractVector.js +83 -0
  202. package/dist/esm/math/AbstractVector.js.map +1 -1
  203. package/dist/esm/math/Circle.d.ts +32 -0
  204. package/dist/esm/math/Circle.js +34 -2
  205. package/dist/esm/math/Circle.js.map +1 -1
  206. package/dist/esm/math/CircleLike.d.ts +1 -0
  207. package/dist/esm/math/Collision.d.ts +39 -0
  208. package/dist/esm/math/Collision.js +5 -0
  209. package/dist/esm/math/Collision.js.map +1 -1
  210. package/dist/esm/math/Ellipse.d.ts +11 -0
  211. package/dist/esm/math/Ellipse.js +18 -2
  212. package/dist/esm/math/Ellipse.js.map +1 -1
  213. package/dist/esm/math/EllipseLike.d.ts +3 -0
  214. package/dist/esm/math/Flags.d.ts +31 -0
  215. package/dist/esm/math/Flags.js +31 -0
  216. package/dist/esm/math/Flags.js.map +1 -1
  217. package/dist/esm/math/Interval.d.ts +15 -0
  218. package/dist/esm/math/Interval.js +15 -0
  219. package/dist/esm/math/Interval.js.map +1 -1
  220. package/dist/esm/math/Line.d.ts +17 -1
  221. package/dist/esm/math/Line.js +17 -1
  222. package/dist/esm/math/Line.js.map +1 -1
  223. package/dist/esm/math/LineLike.d.ts +1 -0
  224. package/dist/esm/math/Matrix.d.ts +44 -3
  225. package/dist/esm/math/Matrix.js +44 -3
  226. package/dist/esm/math/Matrix.js.map +1 -1
  227. package/dist/esm/math/ObservableSize.d.ts +7 -0
  228. package/dist/esm/math/ObservableSize.js +7 -0
  229. package/dist/esm/math/ObservableSize.js.map +1 -1
  230. package/dist/esm/math/ObservableVector.d.ts +9 -0
  231. package/dist/esm/math/ObservableVector.js +9 -0
  232. package/dist/esm/math/ObservableVector.js.map +1 -1
  233. package/dist/esm/math/PointLike.d.ts +1 -0
  234. package/dist/esm/math/PolarVector.d.ts +15 -0
  235. package/dist/esm/math/PolarVector.js +16 -1
  236. package/dist/esm/math/PolarVector.js.map +1 -1
  237. package/dist/esm/math/Polygon.d.ts +20 -0
  238. package/dist/esm/math/Polygon.js +20 -0
  239. package/dist/esm/math/Polygon.js.map +1 -1
  240. package/dist/esm/math/PolygonLike.d.ts +4 -0
  241. package/dist/esm/math/Quadtree.d.ts +40 -3
  242. package/dist/esm/math/Quadtree.js +39 -3
  243. package/dist/esm/math/Quadtree.js.map +1 -1
  244. package/dist/esm/math/Random.d.ts +25 -0
  245. package/dist/esm/math/Random.js +25 -0
  246. package/dist/esm/math/Random.js.map +1 -1
  247. package/dist/esm/math/Rectangle.d.ts +15 -0
  248. package/dist/esm/math/Rectangle.js +17 -2
  249. package/dist/esm/math/Rectangle.js.map +1 -1
  250. package/dist/esm/math/RectangleLike.d.ts +1 -0
  251. package/dist/esm/math/Segment.d.ts +7 -0
  252. package/dist/esm/math/Segment.js +7 -0
  253. package/dist/esm/math/Segment.js.map +1 -1
  254. package/dist/esm/math/ShapeLike.d.ts +6 -0
  255. package/dist/esm/math/Size.d.ts +9 -0
  256. package/dist/esm/math/Size.js +9 -0
  257. package/dist/esm/math/Size.js.map +1 -1
  258. package/dist/esm/math/Vector.d.ts +16 -0
  259. package/dist/esm/math/Vector.js +16 -0
  260. package/dist/esm/math/Vector.js.map +1 -1
  261. package/dist/esm/math/collision-detection.d.ts +47 -1
  262. package/dist/esm/math/collision-detection.js +228 -17
  263. package/dist/esm/math/collision-detection.js.map +1 -1
  264. package/dist/esm/math/collision-primitives.d.ts +23 -0
  265. package/dist/esm/math/collision-primitives.js +23 -0
  266. package/dist/esm/math/collision-primitives.js.map +1 -1
  267. package/dist/esm/math/geometry.d.ts +42 -0
  268. package/dist/esm/math/geometry.js +37 -0
  269. package/dist/esm/math/geometry.js.map +1 -1
  270. package/dist/esm/math/utils.d.ts +41 -0
  271. package/dist/esm/math/utils.js +41 -0
  272. package/dist/esm/math/utils.js.map +1 -1
  273. package/dist/esm/particles/Particle.d.ts +37 -0
  274. package/dist/esm/particles/Particle.js +37 -0
  275. package/dist/esm/particles/Particle.js.map +1 -1
  276. package/dist/esm/particles/ParticleProperties.d.ts +15 -0
  277. package/dist/esm/particles/ParticleSystem.d.ts +69 -0
  278. package/dist/esm/particles/ParticleSystem.js +69 -0
  279. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  280. package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
  281. package/dist/esm/particles/affectors/ColorAffector.js +13 -0
  282. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
  283. package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
  284. package/dist/esm/particles/affectors/ForceAffector.js +11 -0
  285. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
  286. package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
  287. package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
  288. package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
  289. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
  290. package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
  291. package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
  292. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
  293. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
  294. package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
  295. package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
  296. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
  297. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
  298. package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
  299. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
  300. package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
  301. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  302. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  303. package/dist/esm/rendering/Container.d.ts +43 -0
  304. package/dist/esm/rendering/Container.js +43 -0
  305. package/dist/esm/rendering/Container.js.map +1 -1
  306. package/dist/esm/rendering/Drawable.d.ts +22 -0
  307. package/dist/esm/rendering/Drawable.js +22 -0
  308. package/dist/esm/rendering/Drawable.js.map +1 -1
  309. package/dist/esm/rendering/RenderBackend.d.ts +13 -0
  310. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  311. package/dist/esm/rendering/RenderBackendType.js +4 -0
  312. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  313. package/dist/esm/rendering/RenderNode.d.ts +18 -0
  314. package/dist/esm/rendering/RenderNode.js +18 -0
  315. package/dist/esm/rendering/RenderNode.js.map +1 -1
  316. package/dist/esm/rendering/RenderPass.d.ts +8 -0
  317. package/dist/esm/rendering/RenderStats.d.ts +19 -0
  318. package/dist/esm/rendering/RenderStats.js +7 -0
  319. package/dist/esm/rendering/RenderStats.js.map +1 -1
  320. package/dist/esm/rendering/RenderTarget.d.ts +17 -0
  321. package/dist/esm/rendering/RenderTarget.js +17 -0
  322. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  323. package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
  324. package/dist/esm/rendering/RenderTargetPass.js +7 -0
  325. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  326. package/dist/esm/rendering/Renderer.d.ts +15 -0
  327. package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
  328. package/dist/esm/rendering/RendererRegistry.js +7 -0
  329. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  330. package/dist/esm/rendering/View.d.ts +67 -2
  331. package/dist/esm/rendering/View.js +57 -0
  332. package/dist/esm/rendering/View.js.map +1 -1
  333. package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
  334. package/dist/esm/rendering/filters/BlurFilter.js +8 -0
  335. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  336. package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
  337. package/dist/esm/rendering/filters/ColorFilter.js +7 -0
  338. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  339. package/dist/esm/rendering/filters/Filter.d.ts +23 -0
  340. package/dist/esm/rendering/filters/Filter.js +20 -0
  341. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  342. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
  343. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
  344. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  345. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
  346. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
  347. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  348. package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
  349. package/dist/esm/rendering/mesh/Mesh.js +2 -0
  350. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  351. package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
  352. package/dist/esm/rendering/primitives/Graphics.js +34 -0
  353. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  354. package/dist/esm/rendering/shader/Shader.d.ts +36 -0
  355. package/dist/esm/rendering/shader/Shader.js +26 -0
  356. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  357. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
  358. package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
  359. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  360. package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
  361. package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
  362. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  363. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
  364. package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
  365. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  366. package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
  367. package/dist/esm/rendering/sprite/Sprite.js +56 -0
  368. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  369. package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
  370. package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
  371. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  372. package/dist/esm/rendering/text/Text.d.ts +2 -0
  373. package/dist/esm/rendering/text/Text.js +2 -0
  374. package/dist/esm/rendering/text/Text.js.map +1 -1
  375. package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
  376. package/dist/esm/rendering/text/TextStyle.js +24 -0
  377. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  378. package/dist/esm/rendering/text/types.d.ts +1 -0
  379. package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
  380. package/dist/esm/rendering/texture/RenderTexture.js +16 -0
  381. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  382. package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
  383. package/dist/esm/rendering/texture/Sampler.js +13 -0
  384. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  385. package/dist/esm/rendering/texture/Texture.d.ts +30 -0
  386. package/dist/esm/rendering/texture/Texture.js +30 -0
  387. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  388. package/dist/esm/rendering/types.d.ts +29 -0
  389. package/dist/esm/rendering/types.js +29 -0
  390. package/dist/esm/rendering/types.js.map +1 -1
  391. package/dist/esm/rendering/utils.d.ts +20 -0
  392. package/dist/esm/rendering/utils.js +10 -0
  393. package/dist/esm/rendering/utils.js.map +1 -1
  394. package/dist/esm/rendering/video/Video.d.ts +35 -1
  395. package/dist/esm/rendering/video/Video.js +36 -2
  396. package/dist/esm/rendering/video/Video.js.map +1 -1
  397. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
  398. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
  399. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  400. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
  401. package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
  402. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  403. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
  404. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
  405. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  406. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
  407. package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
  408. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  409. package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
  410. package/dist/esm/resources/AbstractAssetFactory.js +20 -0
  411. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  412. package/dist/esm/resources/AssetFactory.d.ts +26 -0
  413. package/dist/esm/resources/AssetManifest.d.ts +45 -0
  414. package/dist/esm/resources/AssetManifest.js +25 -0
  415. package/dist/esm/resources/AssetManifest.js.map +1 -1
  416. package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
  417. package/dist/esm/resources/CacheFirstStrategy.js +12 -0
  418. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  419. package/dist/esm/resources/CacheStore.d.ts +23 -0
  420. package/dist/esm/resources/CacheStrategy.d.ts +20 -0
  421. package/dist/esm/resources/Database.d.ts +45 -0
  422. package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
  423. package/dist/esm/resources/FactoryRegistry.js +24 -0
  424. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  425. package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
  426. package/dist/esm/resources/IndexedDbDatabase.js +21 -0
  427. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  428. package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
  429. package/dist/esm/resources/IndexedDbStore.js +12 -0
  430. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  431. package/dist/esm/resources/Loader.d.ts +167 -0
  432. package/dist/esm/resources/Loader.js +110 -0
  433. package/dist/esm/resources/Loader.js.map +1 -1
  434. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
  435. package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
  436. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  437. package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
  438. package/dist/esm/resources/factories/BinaryFactory.js +13 -0
  439. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  440. package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
  441. package/dist/esm/resources/factories/FontFactory.js +26 -0
  442. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  443. package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
  444. package/dist/esm/resources/factories/ImageFactory.js +19 -0
  445. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  446. package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
  447. package/dist/esm/resources/factories/JsonFactory.js +13 -0
  448. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  449. package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
  450. package/dist/esm/resources/factories/MusicFactory.js +44 -4
  451. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  452. package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
  453. package/dist/esm/resources/factories/SoundFactory.js +18 -0
  454. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  455. package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
  456. package/dist/esm/resources/factories/SvgFactory.js +19 -0
  457. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  458. package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
  459. package/dist/esm/resources/factories/TextFactory.js +11 -0
  460. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  461. package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
  462. package/dist/esm/resources/factories/TextureFactory.js +20 -0
  463. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  464. package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
  465. package/dist/esm/resources/factories/VideoFactory.js +48 -5
  466. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  467. package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
  468. package/dist/esm/resources/factories/VttFactory.js +24 -0
  469. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  470. package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
  471. package/dist/esm/resources/factories/WasmFactory.js +16 -0
  472. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  473. package/dist/esm/resources/utils.d.ts +10 -0
  474. package/dist/esm/resources/utils.js +10 -0
  475. package/dist/esm/resources/utils.js.map +1 -1
  476. package/dist/exo.esm.js +3392 -59
  477. package/dist/exo.esm.js.map +1 -1
  478. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/input/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACnD,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAmD;AACvD,CAAC,EApEW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;IAsEd;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,QAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAgC;AAChC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,EAAA,CAAA,GAAA,IAAgC;AAChC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAA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"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/input/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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AAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAkD;AAClD,IAAA,cAAA,CAAA,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CAAA,GAAA,EAAA,CAAA,GAAA,MAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,GAAA,GAA+B;AAC/B,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAA6C;AAC7C,IAAA,QAAA,CAAA,QAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,GAAA,WAAwC;AACxC,IAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAA0C;AAC1C,IAAA,QAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAA6C;AAC7C,IAAA,QAAA,CAAA,QAAA,CAAA,eAAA,CAAA,GAAA,GAAA,CAAA,GAAA,eAA4C;AAC5C,IAAA,QAAA,CAAA,QAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAA2C;AAC3C,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,GAAA,CAAA,GAAA,IAAiC;AACjC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAA,CAAA,GAAA,KAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAA,CAAA,GAAA,KAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAA,CAAA,GAAA,KAAkC;AAClC,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,GAAA,CAAA,GAAA,SAAsC;AACtC,IAAA,QAAA,CAAA,QAAA,CAAA,YAAA,CAAA,GAAA,GAAA,CAAA,GAAA,YAAyC;AACzC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,GAAA,CAAA,GAAA,OAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,GAAA,CAAA,GAAA,OAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAA,CAAA,GAAA,MAAmC;AACnC,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAqC;AACrC,IAAA,QAAA,CAAA,QAAA,CAAA,cAAA,CAAA,GAAA,GAAA,CAAA,GAAA,cAA2C;AAC3C,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,GAAA,CAAA,GAAA,OAAoC;AACpC,IAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAA0C;AAC1C,IAAA,QAAA,CAAA,QAAA,CAAA,eAAA,CAAA,GAAA,GAAA,CAAA,GAAA,eAA4C;AAC5C,IAAA,QAAA,CAAA,QAAA,CAAA,eAAA,CAAA,GAAA,GAAA,CAAA,GAAA,eAA4C;AAC5C,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAqC;AACzC,CAAC,EApGW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -1,33 +1,116 @@
1
1
  import type { Matrix } from '@/math/Matrix';
2
+ /**
3
+ * Base class for all 2D vector types in ExoJS. Provides the full arithmetic,
4
+ * geometric, and transformation API shared by {@link Vector},
5
+ * {@link ObservableVector}, and {@link PolarVector}-derived types.
6
+ *
7
+ * All mutating methods return `this` for chaining. Subclasses must implement
8
+ * `x`, `y`, and `destroy()`.
9
+ */
2
10
  export declare abstract class AbstractVector {
3
11
  abstract x: number;
4
12
  abstract y: number;
13
+ /**
14
+ * Angle of this vector in radians, measured from the positive Y-axis
15
+ * (clockwise). Setting this rotates the vector to the new angle while
16
+ * preserving its {@link length}. Mutates in place.
17
+ */
5
18
  get direction(): number;
6
19
  set direction(angle: number);
20
+ /** Alias for {@link direction}. */
7
21
  get angle(): number;
8
22
  set angle(angle: number);
23
+ /**
24
+ * Euclidean magnitude of this vector. Setting rescales the vector to
25
+ * `magnitude` while preserving its {@link direction}. Mutates in place.
26
+ */
9
27
  get length(): number;
10
28
  set length(magnitude: number);
29
+ /**
30
+ * Squared Euclidean magnitude. Avoids the `sqrt` — prefer this over
31
+ * {@link length} when only relative comparisons are needed.
32
+ */
11
33
  get lengthSq(): number;
12
34
  set lengthSq(lengthSquared: number);
35
+ /** Alias for {@link length}. */
13
36
  get magnitude(): number;
14
37
  set magnitude(magnitude: number);
38
+ /**
39
+ * Set both components. When `y` is omitted it defaults to `x` (uniform
40
+ * assignment). Mutates in place and returns `this` for chaining.
41
+ */
15
42
  set(x: number, y?: number): this;
43
+ /**
44
+ * Return `true` when this vector matches all supplied components. Omitting
45
+ * a component skips that comparison, so `v.equals({ x: 0 })` checks only
46
+ * the X component.
47
+ */
16
48
  equals<T extends AbstractVector>({ x, y }?: Partial<T>): boolean;
49
+ /**
50
+ * Add `(x, y)` to this vector. When `y` is omitted it defaults to `x`.
51
+ * Mutates in place and returns `this` for chaining.
52
+ */
17
53
  add(x: number, y?: number): this;
54
+ /**
55
+ * Subtract `(x, y)` from this vector. When `y` is omitted it defaults to
56
+ * `x`. Mutates in place and returns `this` for chaining.
57
+ */
18
58
  subtract(x: number, y?: number): this;
59
+ /**
60
+ * Multiply components by `(x, y)`. When `y` is omitted it defaults to `x`
61
+ * (uniform scale). Mutates in place and returns `this` for chaining.
62
+ */
19
63
  multiply(x: number, y?: number): this;
64
+ /**
65
+ * Divide components by `(x, y)`. Division is skipped silently when either
66
+ * divisor is zero to avoid NaN. Mutates in place and returns `this` for
67
+ * chaining.
68
+ */
20
69
  divide(x: number, y?: number): this;
70
+ /**
71
+ * Scale this vector to unit length. No-op when the vector is zero.
72
+ * Mutates in place and returns `this` for chaining.
73
+ */
21
74
  normalize(): this;
75
+ /**
76
+ * Negate both components. Mutates in place and returns `this` for
77
+ * chaining.
78
+ */
22
79
  invert(): this;
80
+ /**
81
+ * Apply a 3×3 affine `matrix` to this vector (translation + linear
82
+ * transform). Mutates in place and returns `this` for chaining.
83
+ */
23
84
  transform(matrix: Matrix): this;
85
+ /**
86
+ * Apply the inverse of `matrix` to this vector. Useful for converting
87
+ * a world-space point into the local space defined by `matrix`. Mutates
88
+ * in place and returns `this` for chaining.
89
+ */
24
90
  transformInverse(matrix: Matrix): this;
91
+ /**
92
+ * Rotate this vector 90° counter-clockwise (left perpendicular):
93
+ * `(-y, x)`. Mutates in place and returns `this` for chaining.
94
+ */
25
95
  perp(): this;
96
+ /**
97
+ * Rotate this vector 90° clockwise (right perpendicular): `(y, -x)`.
98
+ * Mutates in place and returns `this` for chaining.
99
+ */
26
100
  rperp(): this;
101
+ /** Return the smaller of the two components. */
27
102
  min(): number;
103
+ /** Return the larger of the two components. */
28
104
  max(): number;
105
+ /** Dot product of this vector with `(x, y)`. */
29
106
  dot(x: number, y: number): number;
107
+ /**
108
+ * 2D cross product (scalar z-component of the 3D cross product) of this
109
+ * vector with `vector`. A positive value means `vector` is to the left of
110
+ * this vector.
111
+ */
30
112
  cross<T extends AbstractVector>(vector: T): number;
113
+ /** Euclidean distance from this vector's tip to `vector`'s tip. */
31
114
  distanceTo<T extends AbstractVector>(vector: T): number;
32
115
  abstract destroy(): void;
33
116
  }
@@ -1,6 +1,19 @@
1
1
  import { getDistance } from './utils.js';
2
2
 
3
+ /**
4
+ * Base class for all 2D vector types in ExoJS. Provides the full arithmetic,
5
+ * geometric, and transformation API shared by {@link Vector},
6
+ * {@link ObservableVector}, and {@link PolarVector}-derived types.
7
+ *
8
+ * All mutating methods return `this` for chaining. Subclasses must implement
9
+ * `x`, `y`, and `destroy()`.
10
+ */
3
11
  class AbstractVector {
12
+ /**
13
+ * Angle of this vector in radians, measured from the positive Y-axis
14
+ * (clockwise). Setting this rotates the vector to the new angle while
15
+ * preserving its {@link length}. Mutates in place.
16
+ */
4
17
  get direction() {
5
18
  return Math.atan2(this.x, this.y);
6
19
  }
@@ -9,12 +22,17 @@ class AbstractVector {
9
22
  this.x = Math.cos(angle) * length;
10
23
  this.y = Math.sin(angle) * length;
11
24
  }
25
+ /** Alias for {@link direction}. */
12
26
  get angle() {
13
27
  return this.direction;
14
28
  }
15
29
  set angle(angle) {
16
30
  this.direction = angle;
17
31
  }
32
+ /**
33
+ * Euclidean magnitude of this vector. Setting rescales the vector to
34
+ * `magnitude` while preserving its {@link direction}. Mutates in place.
35
+ */
18
36
  get length() {
19
37
  return Math.sqrt((this.x * this.x) + (this.y * this.y));
20
38
  }
@@ -23,42 +41,73 @@ class AbstractVector {
23
41
  this.x = Math.cos(direction) * magnitude;
24
42
  this.y = Math.sin(direction) * magnitude;
25
43
  }
44
+ /**
45
+ * Squared Euclidean magnitude. Avoids the `sqrt` — prefer this over
46
+ * {@link length} when only relative comparisons are needed.
47
+ */
26
48
  get lengthSq() {
27
49
  return (this.x * this.x) + (this.y * this.y);
28
50
  }
29
51
  set lengthSq(lengthSquared) {
30
52
  this.length = Math.sqrt(lengthSquared);
31
53
  }
54
+ /** Alias for {@link length}. */
32
55
  get magnitude() {
33
56
  return this.length;
34
57
  }
35
58
  set magnitude(magnitude) {
36
59
  this.length = magnitude;
37
60
  }
61
+ /**
62
+ * Set both components. When `y` is omitted it defaults to `x` (uniform
63
+ * assignment). Mutates in place and returns `this` for chaining.
64
+ */
38
65
  set(x, y = x) {
39
66
  this.x = x;
40
67
  this.y = y;
41
68
  return this;
42
69
  }
70
+ /**
71
+ * Return `true` when this vector matches all supplied components. Omitting
72
+ * a component skips that comparison, so `v.equals({ x: 0 })` checks only
73
+ * the X component.
74
+ */
43
75
  equals({ x, y } = {}) {
44
76
  return (x === undefined || this.x === x)
45
77
  && (y === undefined || this.y === y);
46
78
  }
79
+ /**
80
+ * Add `(x, y)` to this vector. When `y` is omitted it defaults to `x`.
81
+ * Mutates in place and returns `this` for chaining.
82
+ */
47
83
  add(x, y = x) {
48
84
  this.x += x;
49
85
  this.y += y;
50
86
  return this;
51
87
  }
88
+ /**
89
+ * Subtract `(x, y)` from this vector. When `y` is omitted it defaults to
90
+ * `x`. Mutates in place and returns `this` for chaining.
91
+ */
52
92
  subtract(x, y = x) {
53
93
  this.x -= x;
54
94
  this.y -= y;
55
95
  return this;
56
96
  }
97
+ /**
98
+ * Multiply components by `(x, y)`. When `y` is omitted it defaults to `x`
99
+ * (uniform scale). Mutates in place and returns `this` for chaining.
100
+ */
57
101
  multiply(x, y = x) {
58
102
  this.x *= x;
59
103
  this.y *= y;
60
104
  return this;
61
105
  }
106
+ /**
107
+ * Divide components by `(x, y)`. Division is skipped silently when either
108
+ * divisor is zero to avoid NaN. Mutates in place and returns `this` for
109
+ * chaining.
110
+ */
62
111
  divide(x, y = x) {
63
112
  if (x !== 0 && y !== 0) {
64
113
  this.x /= x;
@@ -66,37 +115,71 @@ class AbstractVector {
66
115
  }
67
116
  return this;
68
117
  }
118
+ /**
119
+ * Scale this vector to unit length. No-op when the vector is zero.
120
+ * Mutates in place and returns `this` for chaining.
121
+ */
69
122
  normalize() {
70
123
  return this.divide(this.length);
71
124
  }
125
+ /**
126
+ * Negate both components. Mutates in place and returns `this` for
127
+ * chaining.
128
+ */
72
129
  invert() {
73
130
  return this.multiply(-1, -1);
74
131
  }
132
+ /**
133
+ * Apply a 3×3 affine `matrix` to this vector (translation + linear
134
+ * transform). Mutates in place and returns `this` for chaining.
135
+ */
75
136
  transform(matrix) {
76
137
  return this.set((this.x * matrix.a) + (this.y * matrix.b) + matrix.x, (this.x * matrix.c) + (this.y * matrix.d) + matrix.y);
77
138
  }
139
+ /**
140
+ * Apply the inverse of `matrix` to this vector. Useful for converting
141
+ * a world-space point into the local space defined by `matrix`. Mutates
142
+ * in place and returns `this` for chaining.
143
+ */
78
144
  transformInverse(matrix) {
79
145
  const id = 1 / ((matrix.a * matrix.d) + (matrix.c * -matrix.b));
80
146
  return this.set((this.x * matrix.d * id) + (this.y * -matrix.c * id) + (((matrix.y * matrix.c) - (matrix.x * matrix.d)) * id), (this.y * matrix.a * id) + (this.x * -matrix.b * id) + (((-matrix.y * matrix.a) + (matrix.x * matrix.b)) * id));
81
147
  }
148
+ /**
149
+ * Rotate this vector 90° counter-clockwise (left perpendicular):
150
+ * `(-y, x)`. Mutates in place and returns `this` for chaining.
151
+ */
82
152
  perp() {
83
153
  return this.set(-this.y, this.x);
84
154
  }
155
+ /**
156
+ * Rotate this vector 90° clockwise (right perpendicular): `(y, -x)`.
157
+ * Mutates in place and returns `this` for chaining.
158
+ */
85
159
  rperp() {
86
160
  return this.set(this.y, -this.x);
87
161
  }
162
+ /** Return the smaller of the two components. */
88
163
  min() {
89
164
  return Math.min(this.x, this.y);
90
165
  }
166
+ /** Return the larger of the two components. */
91
167
  max() {
92
168
  return Math.max(this.x, this.y);
93
169
  }
170
+ /** Dot product of this vector with `(x, y)`. */
94
171
  dot(x, y) {
95
172
  return (this.x * x) + (this.y * y);
96
173
  }
174
+ /**
175
+ * 2D cross product (scalar z-component of the 3D cross product) of this
176
+ * vector with `vector`. A positive value means `vector` is to the left of
177
+ * this vector.
178
+ */
97
179
  cross(vector) {
98
180
  return (this.x * vector.y) - (this.y * vector.x);
99
181
  }
182
+ /** Euclidean distance from this vector's tip to `vector`'s tip. */
100
183
  distanceTo(vector) {
101
184
  return getDistance(this.x, this.y, vector.x, vector.y);
102
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractVector.js","sources":["../../../../src/math/AbstractVector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractVector.js","sources":["../../../../src/math/AbstractVector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,7 +4,22 @@ import { Interval } from '@/math/Interval';
4
4
  import type { ShapeLike } from '@/math/ShapeLike';
5
5
  import type { Collidable, CollisionResponse } from '@/math/Collision';
6
6
  import { CollisionType } from '@/math/Collision';
7
+ /**
8
+ * Mutable circle shape defined by a centre position and radius. Implements
9
+ * {@link ShapeLike} for use in the collision pipeline.
10
+ *
11
+ * For SAT-based collision the circle is approximated as a regular polygon with
12
+ * {@link Circle.collisionSegments} sides; normals and vertices are cached and
13
+ * regenerated lazily when the shape mutates.
14
+ *
15
+ * `Circle.temp` is a shared scratch instance for intermediate calculations.
16
+ */
7
17
  export declare class Circle implements ShapeLike {
18
+ /**
19
+ * Number of polygon segments used to approximate the circle boundary for
20
+ * SAT collision tests. Increasing this improves accuracy at the cost of
21
+ * more normal comparisons. Default: `32`.
22
+ */
8
23
  static collisionSegments: number;
9
24
  readonly collisionType: CollisionType;
10
25
  private readonly _position;
@@ -22,7 +37,15 @@ export declare class Circle implements ShapeLike {
22
37
  set y(y: number);
23
38
  get radius(): number;
24
39
  set radius(radius: number);
40
+ /**
41
+ * Set the circle's centre to `(x, y)`. Invalidates the normal and vertex
42
+ * caches. Returns `this` for chaining.
43
+ */
25
44
  setPosition(x: number, y: number): this;
45
+ /**
46
+ * Set the circle's radius. No-op when the value has not changed. Invalidates
47
+ * the normal and vertex caches. Returns `this` for chaining.
48
+ */
26
49
  setRadius(radius: number): this;
27
50
  set(x: number, y: number, radius: number): this;
28
51
  copy(circle: Circle): this;
@@ -41,11 +64,20 @@ export declare class Circle implements ShapeLike {
41
64
  * circle.
42
65
  */
43
66
  getNormals(): Array<Vector>;
67
+ /**
68
+ * Project this circle onto `axis` and write the scalar interval into
69
+ * `result`. The projection accounts for both the centre and the radius.
70
+ */
44
71
  project(axis: Vector, result?: Interval): Interval;
45
72
  contains(x: number, y: number): boolean;
46
73
  intersectsWith(target: Collidable): boolean;
47
74
  collidesWith(target: Collidable): CollisionResponse | null;
48
75
  destroy(): void;
49
76
  private getCollisionVertices;
77
+ /**
78
+ * Shared scratch `Circle` instance for intermediate calculations. Never
79
+ * retain the reference across frames or async boundaries.
80
+ * @internal
81
+ */
50
82
  static get temp(): Circle;
51
83
  }
@@ -2,10 +2,25 @@ import { Vector } from './Vector.js';
2
2
  import { Rectangle } from './Rectangle.js';
3
3
  import { Interval } from './Interval.js';
4
4
  import { CollisionType } from './Collision.js';
5
- import { intersectionPointCircle, intersectionLineCircle, intersectionCircleEllipse, intersectionCircleCircle, intersectionCirclePoly, intersectionRectCircle, getCollisionCircleCircle, getCollisionPolygonCircle, getCollisionCircleRectangle } from './collision-detection.js';
5
+ import { intersectionPointCircle, intersectionLineCircle, intersectionCircleEllipse, intersectionCircleCircle, intersectionCirclePoly, intersectionRectCircle, getCollisionEllipseCircle, getCollisionCircleCircle, getCollisionPolygonCircle, getCollisionCircleRectangle } from './collision-detection.js';
6
6
 
7
7
  let temp = null;
8
+ /**
9
+ * Mutable circle shape defined by a centre position and radius. Implements
10
+ * {@link ShapeLike} for use in the collision pipeline.
11
+ *
12
+ * For SAT-based collision the circle is approximated as a regular polygon with
13
+ * {@link Circle.collisionSegments} sides; normals and vertices are cached and
14
+ * regenerated lazily when the shape mutates.
15
+ *
16
+ * `Circle.temp` is a shared scratch instance for intermediate calculations.
17
+ */
8
18
  class Circle {
19
+ /**
20
+ * Number of polygon segments used to approximate the circle boundary for
21
+ * SAT collision tests. Increasing this improves accuracy at the cost of
22
+ * more normal comparisons. Default: `32`.
23
+ */
9
24
  static collisionSegments = 32;
10
25
  collisionType = CollisionType.Circle;
11
26
  _position;
@@ -59,12 +74,20 @@ class Circle {
59
74
  this._verticesDirty = true;
60
75
  this._normalsDirty = true;
61
76
  }
77
+ /**
78
+ * Set the circle's centre to `(x, y)`. Invalidates the normal and vertex
79
+ * caches. Returns `this` for chaining.
80
+ */
62
81
  setPosition(x, y) {
63
82
  this._position.set(x, y);
64
83
  this._verticesDirty = true;
65
84
  this._normalsDirty = true;
66
85
  return this;
67
86
  }
87
+ /**
88
+ * Set the circle's radius. No-op when the value has not changed. Invalidates
89
+ * the normal and vertex caches. Returns `this` for chaining.
90
+ */
68
91
  setRadius(radius) {
69
92
  if (this._radius !== radius) {
70
93
  this._radius = radius;
@@ -127,6 +150,10 @@ class Circle {
127
150
  }
128
151
  return this._normals;
129
152
  }
153
+ /**
154
+ * Project this circle onto `axis` and write the scalar interval into
155
+ * `result`. The projection accounts for both the centre and the radius.
156
+ */
130
157
  project(axis, result = new Interval()) {
131
158
  const center = axis.dot(this.x, this.y);
132
159
  const radius = this.radius * axis.length;
@@ -153,7 +180,7 @@ class Circle {
153
180
  case CollisionType.Rectangle: return getCollisionCircleRectangle(this, target);
154
181
  case CollisionType.Polygon: return getCollisionPolygonCircle(target, this, true);
155
182
  case CollisionType.Circle: return getCollisionCircleCircle(this, target);
156
- // case CollisionType.Ellipse: return intersectionCircleEllipse(this, target as Ellipse);
183
+ case CollisionType.Ellipse: return getCollisionEllipseCircle(target, this, true);
157
184
  // case CollisionType.Line: return intersectionLineCircle(target as Line, this);
158
185
  // case CollisionType.Point: return intersectionPointCircle(target as Vector, this);
159
186
  default: return null;
@@ -193,6 +220,11 @@ class Circle {
193
220
  }
194
221
  return this._collisionVertices;
195
222
  }
223
+ /**
224
+ * Shared scratch `Circle` instance for intermediate calculations. Never
225
+ * retain the reference across frames or async boundaries.
226
+ * @internal
227
+ */
196
228
  static get temp() {
197
229
  if (temp === null) {
198
230
  temp = new Circle();
@@ -1 +1 @@
1
- {"version":3,"file":"Circle.js","sources":["../../../../src/math/Circle.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAsBA,IAAI,IAAI,GAAkB,IAAI;MAEjB,MAAM,CAAA;AAER,IAAA,OAAO,iBAAiB,GAAG,EAAE;AAEpB,IAAA,aAAa,GAAkB,aAAa,CAAC,MAAM;AAElD,IAAA,SAAS;IAClB,kBAAkB,GAAyB,IAAI;IAC/C,cAAc,GAAY,IAAI;IAC9B,QAAQ,GAAyB,IAAI;IACrC,aAAa,GAAY,IAAI;AAC7B,IAAA,OAAO;IAEf,WAAA,CAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAA;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;IACzB;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;AAEA,IAAA,IAAW,CAAC,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B;IAEA,IAAW,CAAC,CAAC,CAAS,EAAA;QAClB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;YACxB;QACJ;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;AAEA,IAAA,IAAW,CAAC,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B;IAEA,IAAW,CAAC,CAAC,CAAS,EAAA;QAClB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE;YACxB;QACJ;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;AAEA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YACzB;QACJ;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;IAEO,WAAW,CAAC,CAAS,EAAE,CAAS,EAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,SAAS,CAAC,MAAc,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC7B;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAA;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,IAAI,CAAC,MAAc,EAAA;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,OAAO,IAAI;IACf;IAEO,KAAK,GAAA;AACR,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAS;IAC1D;IAEO,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAsB,EAAE,EAAA;QAChD,OAAO,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;gBAC/B,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;gBAC/B,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;IAC3D;IAEO,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,SAAS,CAChB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EACpB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EACpB,IAAI,CAAC,MAAM,GAAG,CAAC,EACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAClB;IACL;AAEA;;;;;;;;;;AAUG;IACI,UAAU,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAE1C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACxB,gBAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAClD;AAEA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,gBAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;AAE5C,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC;AACV,qBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,qBAAA,KAAK;AACL,qBAAA,SAAS,EAAE;YACpB;AAEA,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC9B;QAEA,OAAO,IAAI,CAAC,QAAS;IACzB;AAEO,IAAA,OAAO,CAAC,IAAY,EAAE,MAAA,GAAmB,IAAI,QAAQ,EAAE,EAAA;AAC1D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAExC,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACvD;IAEO,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAA;AAChC,QAAA,OAAO,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;IAC/D;AAEO,IAAA,cAAc,CAAC,MAAkB,EAAA;AACpC,QAAA,QAAQ,MAAM,CAAC,aAAa;AACxB,YAAA,KAAK,aAAa,CAAC,SAAS,EAAE,OAAO,sBAAsB,CAAE,MAAoB,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC;AACpG,YAAA,KAAK,aAAa,CAAC,SAAS,EAAE,OAAO,sBAAsB,CAAC,MAAmB,EAAE,IAAI,CAAC;AACtF,YAAA,KAAK,aAAa,CAAC,OAAO,EAAE,OAAO,sBAAsB,CAAC,IAAI,EAAE,MAAiB,CAAC;AAClF,YAAA,KAAK,aAAa,CAAC,MAAM,EAAE,OAAO,wBAAwB,CAAC,IAAI,EAAE,MAAgB,CAAC;AAClF,YAAA,KAAK,aAAa,CAAC,OAAO,EAAE,OAAO,yBAAyB,CAAC,IAAI,EAAE,MAAiB,CAAC;AACrF,YAAA,KAAK,aAAa,CAAC,IAAI,EAAE,OAAO,sBAAsB,CAAC,MAAc,EAAE,IAAI,CAAC;AAC5E,YAAA,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,uBAAuB,CAAC,MAAgB,EAAE,IAAI,CAAC;AAChF,YAAA,SAAS,OAAO,KAAK;;IAE7B;AAEO,IAAA,YAAY,CAAC,MAAkB,EAAA;AAClC,QAAA,QAAQ,MAAM,CAAC,aAAa;AACxB,YAAA,KAAK,aAAa,CAAC,SAAS,EAAE,OAAO,2BAA2B,CAAC,IAAI,EAAG,MAAoB,CAAC,SAAS,EAAE,CAAC;AACzG,YAAA,KAAK,aAAa,CAAC,SAAS,EAAE,OAAO,2BAA2B,CAAC,IAAI,EAAE,MAAmB,CAAC;AAC3F,YAAA,KAAK,aAAa,CAAC,OAAO,EAAE,OAAO,yBAAyB,CAAC,MAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3F,YAAA,KAAK,aAAa,CAAC,MAAM,EAAE,OAAO,wBAAwB,CAAC,IAAI,EAAE,MAAgB,CAAC;;;;AAIlF,YAAA,SAAS,OAAO,IAAI;;IAE5B;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAExB,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;AAClC,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACrC,CAAC,CAAC,OAAO,EAAE;YACf;AAEA,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAClC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACxB,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC3B,CAAC,CAAC,OAAO,EAAE;YACf;AAEA,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACxB;IACJ;IAEQ,oBAAoB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB;AAEzC,YAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;gBAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC;AAE7C,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;oBAC/B,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,EAAE;gBAC7C;YACJ;AAEA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC/B,gBAAA,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACtD,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO;AACxC,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO;gBAExC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACtE;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;QAC/B;QAEA,OAAO,IAAI,CAAC,kBAAmB;IACnC;AAEO,IAAA,WAAW,IAAI,GAAA;AAClB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,YAAA,IAAI,GAAG,IAAI,MAAM,EAAE;QACvB;AAEA,QAAA,OAAO,IAAI;IACf;;;;;"}
1
+ {"version":3,"file":"Circle.js","sources":["../../../../src/math/Circle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /** Structural type for any object that describes a circle via a centre point and radius. */
1
2
  export interface CircleLike {
2
3
  x: number;
3
4
  y: number;
@@ -1,5 +1,10 @@
1
1
  import type { Vector } from '@/math/Vector';
2
2
  import type { Interval } from '@/math/Interval';
3
+ /**
4
+ * Discriminant tag carried by every {@link Collidable} so that intersection
5
+ * and collision routines can dispatch to the correct algorithm without
6
+ * `instanceof` checks.
7
+ */
3
8
  export declare const enum CollisionType {
4
9
  Point = 0,
5
10
  Line = 1,
@@ -9,20 +14,54 @@ export declare const enum CollisionType {
9
14
  Polygon = 5,
10
15
  SceneNode = 6
11
16
  }
17
+ /**
18
+ * Contract for objects that participate in collision detection. Implemented by
19
+ * all concrete shape classes as well as `SceneNode`.
20
+ */
12
21
  export interface Collidable {
13
22
  readonly collisionType: CollisionType;
23
+ /**
24
+ * Test whether this shape overlaps `target` using a fast boolean algorithm
25
+ * (no penetration depth or normal computed). Prefer this over
26
+ * {@link collidesWith} when only the yes/no result is needed.
27
+ */
14
28
  intersectsWith(target: Collidable): boolean;
29
+ /**
30
+ * Compute a full {@link CollisionResponse} between this shape and `target`,
31
+ * or `null` when they do not overlap. Returns `null` for shape-pair
32
+ * combinations not yet implemented.
33
+ */
15
34
  collidesWith(target: Collidable): CollisionResponse | null;
35
+ /** Returns `true` if the point `(x, y)` is inside this shape. */
16
36
  contains(x: number, y: number): boolean;
37
+ /**
38
+ * Return the outward-facing edge normals used by the SAT solver. The array
39
+ * should be cached and reused across calls.
40
+ */
17
41
  getNormals(): Array<Vector>;
42
+ /**
43
+ * Project this shape onto `axis` and write the scalar min/max into
44
+ * `interval`. Used internally by the SAT solver.
45
+ */
18
46
  project(axis: Vector, interval?: Interval): Interval;
19
47
  }
48
+ /**
49
+ * Result of a successful {@link Collidable.collidesWith} call. Contains
50
+ * the two participating shapes, the penetration depth, containment flags,
51
+ * and the minimum-translation vectors (normal + vector) needed to separate
52
+ * them.
53
+ */
20
54
  export interface CollisionResponse {
21
55
  readonly shapeA: Collidable;
22
56
  readonly shapeB: Collidable;
57
+ /** Penetration depth — the minimum distance to move the shapes apart. */
23
58
  readonly overlap: number;
59
+ /** `true` when `shapeA` is fully contained within `shapeB`. */
24
60
  readonly shapeAinB: boolean;
61
+ /** `true` when `shapeB` is fully contained within `shapeA`. */
25
62
  readonly shapeBinA: boolean;
63
+ /** Unit normal of the minimum-translation axis. */
26
64
  readonly projectionN: Vector;
65
+ /** Minimum-translation vector: `projectionN` scaled by `overlap`. */
27
66
  readonly projectionV: Vector;
28
67
  }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Discriminant tag carried by every {@link Collidable} so that intersection
3
+ * and collision routines can dispatch to the correct algorithm without
4
+ * `instanceof` checks.
5
+ */
1
6
  var CollisionType;
2
7
  (function (CollisionType) {
3
8
  CollisionType[CollisionType["Point"] = 0] = "Point";
@@ -1 +1 @@
1
- {"version":3,"file":"Collision.js","sources":["../../../../src/math/Collision.ts"],"sourcesContent":[null],"names":[],"mappings":"IAGkB;AAAlB,CAAA,UAAkB,aAAa,EAAA;AAC3B,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACb,CAAC,EARiB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"Collision.js","sources":["../../../../src/math/Collision.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;AAIG;IACe;AAAlB,CAAA,UAAkB,aAAa,EAAA;AAC3B,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACb,CAAC,EARiB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -4,6 +4,17 @@ import type { ShapeLike } from '@/math/ShapeLike';
4
4
  import { Interval } from '@/math/Interval';
5
5
  import type { Collidable, CollisionResponse } from '@/math/Collision';
6
6
  import { CollisionType } from '@/math/Collision';
7
+ /**
8
+ * Mutable axis-aligned ellipse shape defined by a centre position and
9
+ * separate horizontal (`rx`) and vertical (`ry`) half-radii. Implements
10
+ * {@link ShapeLike} for use in the intersection pipeline.
11
+ *
12
+ * `collidesWith` returns a {@link CollisionResponse} for ellipse-vs-rectangle
13
+ * (axis-aligned), ellipse-vs-circle, and ellipse-vs-{@link SceneNode} (which
14
+ * collides against the node's AABB). Other targets — ellipse-vs-ellipse,
15
+ * ellipse-vs-polygon, and ellipse-vs-line — return `null`; use
16
+ * {@link Ellipse.intersectsWith} for boolean tests against those.
17
+ */
7
18
  export declare class Ellipse implements ShapeLike {
8
19
  readonly collisionType: CollisionType;
9
20
  private readonly _position;