@codexo/exojs 0.7.11 → 0.7.13

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 (492) hide show
  1. package/CHANGELOG.md +442 -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 +66 -1
  79. package/dist/esm/core/Application.js +68 -6
  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 +76 -0
  91. package/dist/esm/core/Scene.js +83 -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 +51 -2
  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 +8 -2
  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 +11 -3
  132. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  133. package/dist/esm/index.js +6 -5
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
  136. package/dist/esm/input/ArcadeStickGamepadMapping.js +25 -19
  137. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  138. package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
  139. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  140. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  141. package/dist/esm/input/Gamepad.d.ts +181 -31
  142. package/dist/esm/input/Gamepad.js +307 -108
  143. package/dist/esm/input/Gamepad.js.map +1 -1
  144. package/dist/esm/input/GamepadAxis.d.ts +120 -0
  145. package/dist/esm/input/GamepadAxis.js +106 -0
  146. package/dist/esm/input/GamepadAxis.js.map +1 -0
  147. package/dist/esm/input/GamepadButton.d.ts +110 -0
  148. package/dist/esm/input/GamepadButton.js +99 -0
  149. package/dist/esm/input/GamepadButton.js.map +1 -0
  150. package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
  151. package/dist/esm/input/GamepadDefinitions.js +44 -1
  152. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  153. package/dist/esm/input/GamepadMapping.d.ts +42 -8
  154. package/dist/esm/input/GamepadMapping.js +46 -5
  155. package/dist/esm/input/GamepadMapping.js.map +1 -1
  156. package/dist/esm/input/GamepadPromptLayouts.d.ts +35 -2
  157. package/dist/esm/input/GamepadPromptLayouts.js +43 -18
  158. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  159. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +13 -0
  160. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +62 -43
  161. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  162. package/dist/esm/input/GestureRecognizer.d.ts +11 -2
  163. package/dist/esm/input/GestureRecognizer.js +11 -2
  164. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  165. package/dist/esm/input/InputBinding.d.ts +74 -0
  166. package/dist/esm/input/InputBinding.js +100 -0
  167. package/dist/esm/input/InputBinding.js.map +1 -0
  168. package/dist/esm/input/InputManager.d.ts +100 -21
  169. package/dist/esm/input/InputManager.js +248 -90
  170. package/dist/esm/input/InputManager.js.map +1 -1
  171. package/dist/esm/input/InteractionEvent.d.ts +13 -0
  172. package/dist/esm/input/InteractionEvent.js +8 -0
  173. package/dist/esm/input/InteractionEvent.js.map +1 -1
  174. package/dist/esm/input/InteractionManager.d.ts +34 -5
  175. package/dist/esm/input/InteractionManager.js +46 -17
  176. package/dist/esm/input/InteractionManager.js.map +1 -1
  177. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +17 -3
  178. package/dist/esm/input/JoyConLeftGamepadMapping.js +42 -3
  179. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  180. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +17 -3
  181. package/dist/esm/input/JoyConRightGamepadMapping.js +38 -3
  182. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  183. package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
  184. package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
  185. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  186. package/dist/esm/input/Pointer.d.ts +106 -71
  187. package/dist/esm/input/Pointer.js +93 -71
  188. package/dist/esm/input/Pointer.js.map +1 -1
  189. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
  190. package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
  191. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  192. package/dist/esm/input/SteamDeckGamepadMapping.d.ts +18 -0
  193. package/dist/esm/input/SteamDeckGamepadMapping.js +76 -0
  194. package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -0
  195. package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
  196. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  197. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  198. package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
  199. package/dist/esm/input/XboxGamepadMapping.js +8 -0
  200. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  201. package/dist/esm/input/index.d.ts +7 -4
  202. package/dist/esm/input/types.d.ts +17 -73
  203. package/dist/esm/input/types.js +18 -77
  204. package/dist/esm/input/types.js.map +1 -1
  205. package/dist/esm/math/AbstractVector.d.ts +83 -0
  206. package/dist/esm/math/AbstractVector.js +83 -0
  207. package/dist/esm/math/AbstractVector.js.map +1 -1
  208. package/dist/esm/math/Circle.d.ts +32 -0
  209. package/dist/esm/math/Circle.js +34 -2
  210. package/dist/esm/math/Circle.js.map +1 -1
  211. package/dist/esm/math/CircleLike.d.ts +1 -0
  212. package/dist/esm/math/Collision.d.ts +39 -0
  213. package/dist/esm/math/Collision.js +5 -0
  214. package/dist/esm/math/Collision.js.map +1 -1
  215. package/dist/esm/math/Ellipse.d.ts +11 -0
  216. package/dist/esm/math/Ellipse.js +18 -2
  217. package/dist/esm/math/Ellipse.js.map +1 -1
  218. package/dist/esm/math/EllipseLike.d.ts +3 -0
  219. package/dist/esm/math/Flags.d.ts +31 -0
  220. package/dist/esm/math/Flags.js +31 -0
  221. package/dist/esm/math/Flags.js.map +1 -1
  222. package/dist/esm/math/Interval.d.ts +15 -0
  223. package/dist/esm/math/Interval.js +15 -0
  224. package/dist/esm/math/Interval.js.map +1 -1
  225. package/dist/esm/math/Line.d.ts +17 -1
  226. package/dist/esm/math/Line.js +17 -1
  227. package/dist/esm/math/Line.js.map +1 -1
  228. package/dist/esm/math/LineLike.d.ts +1 -0
  229. package/dist/esm/math/Matrix.d.ts +44 -3
  230. package/dist/esm/math/Matrix.js +44 -3
  231. package/dist/esm/math/Matrix.js.map +1 -1
  232. package/dist/esm/math/ObservableSize.d.ts +7 -0
  233. package/dist/esm/math/ObservableSize.js +7 -0
  234. package/dist/esm/math/ObservableSize.js.map +1 -1
  235. package/dist/esm/math/ObservableVector.d.ts +9 -0
  236. package/dist/esm/math/ObservableVector.js +9 -0
  237. package/dist/esm/math/ObservableVector.js.map +1 -1
  238. package/dist/esm/math/PointLike.d.ts +1 -0
  239. package/dist/esm/math/PolarVector.d.ts +15 -0
  240. package/dist/esm/math/PolarVector.js +16 -1
  241. package/dist/esm/math/PolarVector.js.map +1 -1
  242. package/dist/esm/math/Polygon.d.ts +20 -0
  243. package/dist/esm/math/Polygon.js +20 -0
  244. package/dist/esm/math/Polygon.js.map +1 -1
  245. package/dist/esm/math/PolygonLike.d.ts +4 -0
  246. package/dist/esm/math/Quadtree.d.ts +40 -3
  247. package/dist/esm/math/Quadtree.js +39 -3
  248. package/dist/esm/math/Quadtree.js.map +1 -1
  249. package/dist/esm/math/Random.d.ts +25 -0
  250. package/dist/esm/math/Random.js +25 -0
  251. package/dist/esm/math/Random.js.map +1 -1
  252. package/dist/esm/math/Rectangle.d.ts +15 -0
  253. package/dist/esm/math/Rectangle.js +17 -2
  254. package/dist/esm/math/Rectangle.js.map +1 -1
  255. package/dist/esm/math/RectangleLike.d.ts +1 -0
  256. package/dist/esm/math/Segment.d.ts +7 -0
  257. package/dist/esm/math/Segment.js +7 -0
  258. package/dist/esm/math/Segment.js.map +1 -1
  259. package/dist/esm/math/ShapeLike.d.ts +6 -0
  260. package/dist/esm/math/Size.d.ts +9 -0
  261. package/dist/esm/math/Size.js +9 -0
  262. package/dist/esm/math/Size.js.map +1 -1
  263. package/dist/esm/math/Vector.d.ts +16 -0
  264. package/dist/esm/math/Vector.js +16 -0
  265. package/dist/esm/math/Vector.js.map +1 -1
  266. package/dist/esm/math/collision-detection.d.ts +47 -1
  267. package/dist/esm/math/collision-detection.js +228 -17
  268. package/dist/esm/math/collision-detection.js.map +1 -1
  269. package/dist/esm/math/collision-primitives.d.ts +23 -0
  270. package/dist/esm/math/collision-primitives.js +23 -0
  271. package/dist/esm/math/collision-primitives.js.map +1 -1
  272. package/dist/esm/math/geometry.d.ts +42 -0
  273. package/dist/esm/math/geometry.js +37 -0
  274. package/dist/esm/math/geometry.js.map +1 -1
  275. package/dist/esm/math/utils.d.ts +41 -0
  276. package/dist/esm/math/utils.js +41 -0
  277. package/dist/esm/math/utils.js.map +1 -1
  278. package/dist/esm/particles/Particle.d.ts +37 -0
  279. package/dist/esm/particles/Particle.js +37 -0
  280. package/dist/esm/particles/Particle.js.map +1 -1
  281. package/dist/esm/particles/ParticleProperties.d.ts +15 -0
  282. package/dist/esm/particles/ParticleSystem.d.ts +69 -0
  283. package/dist/esm/particles/ParticleSystem.js +69 -0
  284. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  285. package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
  286. package/dist/esm/particles/affectors/ColorAffector.js +13 -0
  287. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
  288. package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
  289. package/dist/esm/particles/affectors/ForceAffector.js +11 -0
  290. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
  291. package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
  292. package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
  293. package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
  294. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
  295. package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
  296. package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
  297. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
  298. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
  299. package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
  300. package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
  301. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
  302. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
  303. package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
  304. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
  305. package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
  306. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  307. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  308. package/dist/esm/rendering/Container.d.ts +43 -0
  309. package/dist/esm/rendering/Container.js +43 -0
  310. package/dist/esm/rendering/Container.js.map +1 -1
  311. package/dist/esm/rendering/Drawable.d.ts +22 -0
  312. package/dist/esm/rendering/Drawable.js +22 -0
  313. package/dist/esm/rendering/Drawable.js.map +1 -1
  314. package/dist/esm/rendering/RenderBackend.d.ts +13 -0
  315. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  316. package/dist/esm/rendering/RenderBackendType.js +4 -0
  317. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  318. package/dist/esm/rendering/RenderNode.d.ts +18 -0
  319. package/dist/esm/rendering/RenderNode.js +18 -0
  320. package/dist/esm/rendering/RenderNode.js.map +1 -1
  321. package/dist/esm/rendering/RenderPass.d.ts +8 -0
  322. package/dist/esm/rendering/RenderStats.d.ts +19 -0
  323. package/dist/esm/rendering/RenderStats.js +7 -0
  324. package/dist/esm/rendering/RenderStats.js.map +1 -1
  325. package/dist/esm/rendering/RenderTarget.d.ts +17 -0
  326. package/dist/esm/rendering/RenderTarget.js +17 -0
  327. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  328. package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
  329. package/dist/esm/rendering/RenderTargetPass.js +7 -0
  330. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  331. package/dist/esm/rendering/Renderer.d.ts +15 -0
  332. package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
  333. package/dist/esm/rendering/RendererRegistry.js +7 -0
  334. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  335. package/dist/esm/rendering/View.d.ts +67 -2
  336. package/dist/esm/rendering/View.js +57 -0
  337. package/dist/esm/rendering/View.js.map +1 -1
  338. package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
  339. package/dist/esm/rendering/filters/BlurFilter.js +8 -0
  340. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  341. package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
  342. package/dist/esm/rendering/filters/ColorFilter.js +7 -0
  343. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  344. package/dist/esm/rendering/filters/Filter.d.ts +23 -0
  345. package/dist/esm/rendering/filters/Filter.js +20 -0
  346. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  347. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
  348. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
  349. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  350. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
  351. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
  352. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  353. package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
  354. package/dist/esm/rendering/mesh/Mesh.js +2 -0
  355. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  356. package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
  357. package/dist/esm/rendering/primitives/Graphics.js +34 -0
  358. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  359. package/dist/esm/rendering/shader/Shader.d.ts +36 -0
  360. package/dist/esm/rendering/shader/Shader.js +26 -0
  361. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  362. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
  363. package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
  364. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  365. package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
  366. package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
  367. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  368. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
  369. package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
  370. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  371. package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
  372. package/dist/esm/rendering/sprite/Sprite.js +56 -0
  373. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  374. package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
  375. package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
  376. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  377. package/dist/esm/rendering/text/Text.d.ts +2 -0
  378. package/dist/esm/rendering/text/Text.js +2 -0
  379. package/dist/esm/rendering/text/Text.js.map +1 -1
  380. package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
  381. package/dist/esm/rendering/text/TextStyle.js +24 -0
  382. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  383. package/dist/esm/rendering/text/types.d.ts +1 -0
  384. package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
  385. package/dist/esm/rendering/texture/RenderTexture.js +16 -0
  386. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  387. package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
  388. package/dist/esm/rendering/texture/Sampler.js +13 -0
  389. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  390. package/dist/esm/rendering/texture/Texture.d.ts +30 -0
  391. package/dist/esm/rendering/texture/Texture.js +30 -0
  392. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  393. package/dist/esm/rendering/types.d.ts +29 -0
  394. package/dist/esm/rendering/types.js +29 -0
  395. package/dist/esm/rendering/types.js.map +1 -1
  396. package/dist/esm/rendering/utils.d.ts +20 -0
  397. package/dist/esm/rendering/utils.js +10 -0
  398. package/dist/esm/rendering/utils.js.map +1 -1
  399. package/dist/esm/rendering/video/Video.d.ts +35 -1
  400. package/dist/esm/rendering/video/Video.js +36 -2
  401. package/dist/esm/rendering/video/Video.js.map +1 -1
  402. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
  403. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
  404. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  405. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
  406. package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
  407. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  408. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
  409. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
  410. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  411. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
  412. package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
  413. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  414. package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
  415. package/dist/esm/resources/AbstractAssetFactory.js +20 -0
  416. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  417. package/dist/esm/resources/AssetFactory.d.ts +26 -0
  418. package/dist/esm/resources/AssetManifest.d.ts +45 -0
  419. package/dist/esm/resources/AssetManifest.js +25 -0
  420. package/dist/esm/resources/AssetManifest.js.map +1 -1
  421. package/dist/esm/resources/CacheFirstStrategy.d.ts +15 -0
  422. package/dist/esm/resources/CacheFirstStrategy.js +19 -4
  423. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  424. package/dist/esm/resources/CacheStore.d.ts +23 -0
  425. package/dist/esm/resources/CacheStrategy.d.ts +28 -0
  426. package/dist/esm/resources/Database.d.ts +45 -0
  427. package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
  428. package/dist/esm/resources/FactoryRegistry.js +24 -0
  429. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  430. package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
  431. package/dist/esm/resources/IndexedDbDatabase.js +21 -0
  432. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  433. package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
  434. package/dist/esm/resources/IndexedDbStore.js +12 -0
  435. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  436. package/dist/esm/resources/Loader.d.ts +172 -0
  437. package/dist/esm/resources/Loader.js +129 -37
  438. package/dist/esm/resources/Loader.js.map +1 -1
  439. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +11 -0
  440. package/dist/esm/resources/NetworkOnlyStrategy.js +16 -3
  441. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  442. package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
  443. package/dist/esm/resources/factories/BinaryFactory.js +13 -0
  444. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  445. package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
  446. package/dist/esm/resources/factories/FontFactory.js +26 -0
  447. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  448. package/dist/esm/resources/factories/ImageFactory.d.ts +26 -2
  449. package/dist/esm/resources/factories/ImageFactory.js +19 -0
  450. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  451. package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
  452. package/dist/esm/resources/factories/JsonFactory.js +13 -0
  453. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  454. package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
  455. package/dist/esm/resources/factories/MusicFactory.js +44 -4
  456. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  457. package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
  458. package/dist/esm/resources/factories/SoundFactory.js +18 -0
  459. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  460. package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
  461. package/dist/esm/resources/factories/SvgFactory.js +19 -0
  462. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  463. package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
  464. package/dist/esm/resources/factories/TextFactory.js +11 -0
  465. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  466. package/dist/esm/resources/factories/TextureFactory.d.ts +27 -2
  467. package/dist/esm/resources/factories/TextureFactory.js +20 -0
  468. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  469. package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
  470. package/dist/esm/resources/factories/VideoFactory.js +48 -5
  471. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  472. package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
  473. package/dist/esm/resources/factories/VttFactory.js +104 -3
  474. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  475. package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
  476. package/dist/esm/resources/factories/WasmFactory.js +16 -0
  477. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  478. package/dist/esm/resources/utils.d.ts +10 -0
  479. package/dist/esm/resources/utils.js +10 -0
  480. package/dist/esm/resources/utils.js.map +1 -1
  481. package/dist/exo.esm.js +4673 -745
  482. package/dist/exo.esm.js.map +1 -1
  483. package/package.json +8 -8
  484. package/dist/esm/input/GamepadChannels.d.ts +0 -39
  485. package/dist/esm/input/GamepadChannels.js +0 -45
  486. package/dist/esm/input/GamepadChannels.js.map +0 -1
  487. package/dist/esm/input/GamepadControl.d.ts +0 -15
  488. package/dist/esm/input/GamepadControl.js +0 -29
  489. package/dist/esm/input/GamepadControl.js.map +0 -1
  490. package/dist/esm/input/Input.d.ts +0 -28
  491. package/dist/esm/input/Input.js +0 -68
  492. package/dist/esm/input/Input.js.map +0 -1
@@ -5,15 +5,30 @@ import { Sprite } from './Sprite';
5
5
  import type { Spritesheet } from './Spritesheet';
6
6
  import type { Texture } from '@/rendering/texture/Texture';
7
7
  import type { RenderTexture } from '@/rendering/texture/RenderTexture';
8
+ /** Definition for a single animation clip registered on an {@link AnimatedSprite}. */
8
9
  export interface AnimatedSpriteClipDefinition {
9
10
  readonly frames: ReadonlyArray<Rectangle>;
10
11
  readonly fps?: number;
11
12
  readonly loop?: boolean;
12
13
  }
14
+ /** Per-call options passed to {@link AnimatedSprite.play}. */
13
15
  export interface AnimatedSpritePlayOptions {
14
16
  loop?: boolean;
15
17
  restart?: boolean;
16
18
  }
19
+ /**
20
+ * A {@link Sprite} that advances through a sequence of texture-frame
21
+ * {@link Rectangle}s over time to produce frame-based animation.
22
+ *
23
+ * Multiple named clips can be registered via {@link defineClip} or the
24
+ * constructor. Call {@link play} to start a clip; call {@link update} each
25
+ * frame with the elapsed delta (seconds or a `Time` object) to advance
26
+ * playback. The `onFrame` signal fires on every frame advance and
27
+ * `onComplete` fires when a non-looping clip reaches its last frame.
28
+ *
29
+ * Use {@link AnimatedSprite.fromSpritesheet} to create an instance directly
30
+ * from a {@link Spritesheet}'s named animations.
31
+ */
17
32
  export declare class AnimatedSprite extends Sprite {
18
33
  private readonly _clips;
19
34
  private _currentClipName;
@@ -27,17 +42,40 @@ export declare class AnimatedSprite extends Sprite {
27
42
  get currentClip(): string | null;
28
43
  get currentFrame(): number;
29
44
  get playing(): boolean;
45
+ /**
46
+ * Whether the current clip loops. Returns the per-call loop override if set,
47
+ * otherwise the clip's own `loop` flag.
48
+ */
30
49
  get loop(): boolean;
31
50
  set loop(loop: boolean);
51
+ /** Replace all registered clips with the provided map. Clears any previously registered clips first. */
32
52
  setClips(clips: Readonly<Record<string, AnimatedSpriteClipDefinition>>): this;
53
+ /** Register a named clip. Frame rectangles are cloned so the caller may mutate the originals. */
33
54
  defineClip(name: string, clip: AnimatedSpriteClipDefinition): this;
55
+ /** Remove a registered clip by name. Stops playback first if the clip is currently active. */
34
56
  removeClip(name: string): this;
57
+ /**
58
+ * Start playing the named clip. By default restarts from frame 0; pass
59
+ * `{ restart: false }` to resume from the current frame if the same clip
60
+ * is already active. Optionally overrides the clip's loop setting.
61
+ */
35
62
  play(name: string, options?: AnimatedSpritePlayOptions): this;
63
+ /** Stop playback and rewind the active clip to frame 0. */
36
64
  stop(): this;
37
65
  pause(): this;
38
66
  resume(): this;
67
+ /**
68
+ * Advance playback by `delta` milliseconds (or a `Time` object). Call once
69
+ * per frame from the game loop. Dispatches `onFrame` for each frame
70
+ * boundary crossed and `onComplete` when a non-looping clip ends.
71
+ */
39
72
  update(delta: Time | number): this;
40
73
  destroy(): void;
74
+ /**
75
+ * Construct an {@link AnimatedSprite} from the named animations defined on
76
+ * a {@link Spritesheet}. Each animation becomes a looping clip whose frames
77
+ * are the spritesheet frame rectangles in declaration order.
78
+ */
41
79
  static fromSpritesheet(spritesheet: Spritesheet): AnimatedSprite;
42
80
  private _applyFrame;
43
81
  }
@@ -2,6 +2,19 @@ import { Signal } from '../../core/Signal.js';
2
2
  import { Sprite } from './Sprite.js';
3
3
 
4
4
  const defaultClipFps = 12;
5
+ /**
6
+ * A {@link Sprite} that advances through a sequence of texture-frame
7
+ * {@link Rectangle}s over time to produce frame-based animation.
8
+ *
9
+ * Multiple named clips can be registered via {@link defineClip} or the
10
+ * constructor. Call {@link play} to start a clip; call {@link update} each
11
+ * frame with the elapsed delta (seconds or a `Time` object) to advance
12
+ * playback. The `onFrame` signal fires on every frame advance and
13
+ * `onComplete` fires when a non-looping clip reaches its last frame.
14
+ *
15
+ * Use {@link AnimatedSprite.fromSpritesheet} to create an instance directly
16
+ * from a {@link Spritesheet}'s named animations.
17
+ */
5
18
  class AnimatedSprite extends Sprite {
6
19
  _clips = new Map();
7
20
  _currentClipName = null;
@@ -26,6 +39,10 @@ class AnimatedSprite extends Sprite {
26
39
  get playing() {
27
40
  return this._playing;
28
41
  }
42
+ /**
43
+ * Whether the current clip loops. Returns the per-call loop override if set,
44
+ * otherwise the clip's own `loop` flag.
45
+ */
29
46
  get loop() {
30
47
  if (this._loopOverride !== null) {
31
48
  return this._loopOverride;
@@ -38,6 +55,7 @@ class AnimatedSprite extends Sprite {
38
55
  set loop(loop) {
39
56
  this._loopOverride = loop;
40
57
  }
58
+ /** Replace all registered clips with the provided map. Clears any previously registered clips first. */
41
59
  setClips(clips) {
42
60
  this._clips.clear();
43
61
  for (const [name, clip] of Object.entries(clips)) {
@@ -45,6 +63,7 @@ class AnimatedSprite extends Sprite {
45
63
  }
46
64
  return this;
47
65
  }
66
+ /** Register a named clip. Frame rectangles are cloned so the caller may mutate the originals. */
48
67
  defineClip(name, clip) {
49
68
  if (name.trim().length === 0) {
50
69
  throw new Error('AnimatedSprite clip names must be non-empty strings.');
@@ -63,6 +82,7 @@ class AnimatedSprite extends Sprite {
63
82
  });
64
83
  return this;
65
84
  }
85
+ /** Remove a registered clip by name. Stops playback first if the clip is currently active. */
66
86
  removeClip(name) {
67
87
  if (this._currentClipName === name) {
68
88
  this.stop();
@@ -70,6 +90,11 @@ class AnimatedSprite extends Sprite {
70
90
  this._clips.delete(name);
71
91
  return this;
72
92
  }
93
+ /**
94
+ * Start playing the named clip. By default restarts from frame 0; pass
95
+ * `{ restart: false }` to resume from the current frame if the same clip
96
+ * is already active. Optionally overrides the clip's loop setting.
97
+ */
73
98
  play(name, options = {}) {
74
99
  const clip = this._clips.get(name);
75
100
  if (!clip) {
@@ -88,6 +113,7 @@ class AnimatedSprite extends Sprite {
88
113
  this._playing = true;
89
114
  return this;
90
115
  }
116
+ /** Stop playback and rewind the active clip to frame 0. */
91
117
  stop() {
92
118
  this._playing = false;
93
119
  this._elapsedFrameTimeMs = 0;
@@ -112,6 +138,11 @@ class AnimatedSprite extends Sprite {
112
138
  }
113
139
  return this;
114
140
  }
141
+ /**
142
+ * Advance playback by `delta` milliseconds (or a `Time` object). Call once
143
+ * per frame from the game loop. Dispatches `onFrame` for each frame
144
+ * boundary crossed and `onComplete` when a non-looping clip ends.
145
+ */
115
146
  update(delta) {
116
147
  if (!this._playing || this._currentClipName === null) {
117
148
  return this;
@@ -158,6 +189,11 @@ class AnimatedSprite extends Sprite {
158
189
  }
159
190
  this._clips.clear();
160
191
  }
192
+ /**
193
+ * Construct an {@link AnimatedSprite} from the named animations defined on
194
+ * a {@link Spritesheet}. Each animation becomes a looping clip whose frames
195
+ * are the spritesheet frame rectangles in declaration order.
196
+ */
161
197
  static fromSpritesheet(spritesheet) {
162
198
  const clips = {};
163
199
  for (const [clipName, frameNames] of spritesheet.animations) {
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatedSprite.js","sources":["../../../../../src/rendering/sprite/AnimatedSprite.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimatedSprite.js","sources":["../../../../../src/rendering/sprite/AnimatedSprite.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,6 +4,11 @@ import { Vector } from '@/math/Vector';
4
4
  import { Interval } from '@/math/Interval';
5
5
  import type { Texture } from '@/rendering/texture/Texture';
6
6
  import type { RenderTexture } from '@/rendering/texture/RenderTexture';
7
+ /**
8
+ * Internal dirty-flag bitmask used by {@link Sprite} to lazily recompute
9
+ * derived data (vertices, normals, texture coordinates, bounding boxes).
10
+ * @internal
11
+ */
7
12
  export declare enum SpriteFlags {
8
13
  None = 0,
9
14
  Translation = 1,
@@ -18,6 +23,21 @@ export declare enum SpriteFlags {
18
23
  Vertices = 1024,
19
24
  Normals = 2048
20
25
  }
26
+ /**
27
+ * The primary 2D drawable for textured quads and the foundation of the
28
+ * rendering hierarchy.
29
+ *
30
+ * A Sprite wraps a {@link Texture} (or {@link RenderTexture}) and exposes
31
+ * full transform control (position, rotation, scale, origin) inherited from
32
+ * {@link Drawable}. The rendered quad is derived from `textureFrame`, which
33
+ * defaults to the full texture dimensions but can be narrowed to a sub-region
34
+ * (e.g. a frame from a {@link Spritesheet}).
35
+ *
36
+ * Vertex and normal data are computed lazily and cached until the transform
37
+ * or frame changes, making repeated read access free after the first evaluation.
38
+ * Collision helpers — `contains`, `getNormals`, `project` — are overridden to
39
+ * operate on the exact rotated quad rather than the AABB.
40
+ */
21
41
  export declare class Sprite extends Drawable {
22
42
  private _texture;
23
43
  private _textureFrame;
@@ -33,16 +53,52 @@ export declare class Sprite extends Drawable {
33
53
  set width(value: number);
34
54
  get height(): number;
35
55
  set height(value: number);
56
+ /**
57
+ * World-space corner positions of the sprite quad, computed lazily from the
58
+ * current transform and texture frame. Layout: [x0,y0, x1,y1, x2,y2, x3,y3]
59
+ * (TL, TR, BR, BL). Cached until the transform is invalidated.
60
+ */
36
61
  get vertices(): Float32Array;
62
+ /**
63
+ * Packed UV coordinates for the four quad corners, encoded as two
64
+ * 16-bit fixed-point values per element (low 16 bits = U, high 16 bits = V,
65
+ * each in the range 0–65535). Accounts for `Texture.flipY`. Throws if no
66
+ * texture is assigned.
67
+ */
37
68
  get texCoords(): Uint32Array;
69
+ /** Assign a new texture, refreshing the texture frame to the full texture dimensions. */
38
70
  setTexture(texture: Texture | RenderTexture | null): this;
71
+ /** Signal the GPU backend that the underlying texture source has changed and reset the frame to full dimensions. */
39
72
  updateTexture(): this;
73
+ /**
74
+ * Set a sub-region of the texture to render.
75
+ * When `resetSize` is `true` (default) the sprite's logical size snaps to
76
+ * the new frame dimensions; pass `false` to keep the current pixel size
77
+ * (useful for animation playback where the frame changes but the display
78
+ * size should stay constant).
79
+ */
40
80
  setTextureFrame(frame: Rectangle, resetSize?: boolean): this;
81
+ /** Reset the texture frame to the full dimensions of the current texture. Throws if no texture is set. */
41
82
  resetTextureFrame(): this;
83
+ /**
84
+ * Return the four outward-facing edge normals of the rotated quad, lazily
85
+ * computed from `vertices`. Used by the SAT collision system.
86
+ */
42
87
  getNormals(): Array<Vector>;
88
+ /**
89
+ * Project all four quad vertices onto `axis` and return the resulting
90
+ * scalar interval. Used by the SAT collision system.
91
+ */
43
92
  project(axis: Vector, result?: Interval): Interval;
93
+ /**
94
+ * Return `true` if the world-space point (`x`, `y`) lies inside the quad.
95
+ * Uses a fast AABB check when the rotation is a multiple of 90°, and the
96
+ * exact dot-product test for arbitrary angles.
97
+ */
44
98
  contains(x: number, y: number): boolean;
99
+ /** @internal */
45
100
  _invalidateSubtreeTransform(): void;
101
+ /** @internal */
46
102
  _invalidateBoundsCascade(): void;
47
103
  destroy(): void;
48
104
  }
@@ -4,6 +4,11 @@ import { Vector } from '../../math/Vector.js';
4
4
  import { Interval } from '../../math/Interval.js';
5
5
  import { RenderNode } from '../RenderNode.js';
6
6
 
7
+ /**
8
+ * Internal dirty-flag bitmask used by {@link Sprite} to lazily recompute
9
+ * derived data (vertices, normals, texture coordinates, bounding boxes).
10
+ * @internal
11
+ */
7
12
  var SpriteFlags;
8
13
  (function (SpriteFlags) {
9
14
  SpriteFlags[SpriteFlags["None"] = 0] = "None";
@@ -19,6 +24,21 @@ var SpriteFlags;
19
24
  SpriteFlags[SpriteFlags["Vertices"] = 1024] = "Vertices";
20
25
  SpriteFlags[SpriteFlags["Normals"] = 2048] = "Normals";
21
26
  })(SpriteFlags || (SpriteFlags = {}));
27
+ /**
28
+ * The primary 2D drawable for textured quads and the foundation of the
29
+ * rendering hierarchy.
30
+ *
31
+ * A Sprite wraps a {@link Texture} (or {@link RenderTexture}) and exposes
32
+ * full transform control (position, rotation, scale, origin) inherited from
33
+ * {@link Drawable}. The rendered quad is derived from `textureFrame`, which
34
+ * defaults to the full texture dimensions but can be narrowed to a sub-region
35
+ * (e.g. a frame from a {@link Spritesheet}).
36
+ *
37
+ * Vertex and normal data are computed lazily and cached until the transform
38
+ * or frame changes, making repeated read access free after the first evaluation.
39
+ * Collision helpers — `contains`, `getNormals`, `project` — are overridden to
40
+ * operate on the exact rotated quad rather than the AABB.
41
+ */
22
42
  class Sprite extends Drawable {
23
43
  _texture = null;
24
44
  _textureFrame = new Rectangle();
@@ -59,6 +79,11 @@ class Sprite extends Drawable {
59
79
  set height(value) {
60
80
  this.scale.y = (value / this._textureFrame.height);
61
81
  }
82
+ /**
83
+ * World-space corner positions of the sprite quad, computed lazily from the
84
+ * current transform and texture frame. Layout: [x0,y0, x1,y1, x2,y2, x3,y3]
85
+ * (TL, TR, BR, BL). Cached until the transform is invalidated.
86
+ */
62
87
  get vertices() {
63
88
  if (this.flags.has(SpriteFlags.Vertices)) {
64
89
  const { left, top, right, bottom } = this.getLocalBounds();
@@ -75,6 +100,12 @@ class Sprite extends Drawable {
75
100
  }
76
101
  return this._vertices;
77
102
  }
103
+ /**
104
+ * Packed UV coordinates for the four quad corners, encoded as two
105
+ * 16-bit fixed-point values per element (low 16 bits = U, high 16 bits = V,
106
+ * each in the range 0–65535). Accounts for `Texture.flipY`. Throws if no
107
+ * texture is assigned.
108
+ */
78
109
  get texCoords() {
79
110
  if (this._texture === null) {
80
111
  throw new Error('texCoords can only be calculated when the sprite has a texture');
@@ -101,6 +132,7 @@ class Sprite extends Drawable {
101
132
  }
102
133
  return this._texCoords;
103
134
  }
135
+ /** Assign a new texture, refreshing the texture frame to the full texture dimensions. */
104
136
  setTexture(texture) {
105
137
  if (this._texture !== texture) {
106
138
  this._texture = texture;
@@ -109,6 +141,7 @@ class Sprite extends Drawable {
109
141
  }
110
142
  return this;
111
143
  }
144
+ /** Signal the GPU backend that the underlying texture source has changed and reset the frame to full dimensions. */
112
145
  updateTexture() {
113
146
  if (this._texture) {
114
147
  this._texture.updateSource();
@@ -117,6 +150,13 @@ class Sprite extends Drawable {
117
150
  }
118
151
  return this;
119
152
  }
153
+ /**
154
+ * Set a sub-region of the texture to render.
155
+ * When `resetSize` is `true` (default) the sprite's logical size snaps to
156
+ * the new frame dimensions; pass `false` to keep the current pixel size
157
+ * (useful for animation playback where the frame changes but the display
158
+ * size should stay constant).
159
+ */
120
160
  setTextureFrame(frame, resetSize = true) {
121
161
  const width = this.width;
122
162
  const height = this.height;
@@ -135,12 +175,17 @@ class Sprite extends Drawable {
135
175
  this.invalidateCache();
136
176
  return this;
137
177
  }
178
+ /** Reset the texture frame to the full dimensions of the current texture. Throws if no texture is set. */
138
179
  resetTextureFrame() {
139
180
  if (!this._texture) {
140
181
  throw new Error('Cannot reset texture frame when no texture was set');
141
182
  }
142
183
  return this.setTextureFrame(Rectangle.temp.set(0, 0, this._texture.width, this._texture.height));
143
184
  }
185
+ /**
186
+ * Return the four outward-facing edge normals of the rotated quad, lazily
187
+ * computed from `vertices`. Used by the SAT collision system.
188
+ */
144
189
  getNormals() {
145
190
  if (this.flags.has(SpriteFlags.Normals)) {
146
191
  const [x1, y1, x2, y2, x3, y3, x4, y4] = this.vertices;
@@ -152,6 +197,10 @@ class Sprite extends Drawable {
152
197
  }
153
198
  return this._normals;
154
199
  }
200
+ /**
201
+ * Project all four quad vertices onto `axis` and return the resulting
202
+ * scalar interval. Used by the SAT collision system.
203
+ */
155
204
  project(axis, result = new Interval()) {
156
205
  const [x1, y1, x2, y2, x3, y3, x4, y4] = this.vertices;
157
206
  const proj1 = axis.dot(x1, y1);
@@ -160,6 +209,11 @@ class Sprite extends Drawable {
160
209
  const proj4 = axis.dot(x4, y4);
161
210
  return result.set(Math.min(proj1, proj2, proj3, proj4), Math.max(proj1, proj2, proj3, proj4));
162
211
  }
212
+ /**
213
+ * Return `true` if the world-space point (`x`, `y`) lies inside the quad.
214
+ * Uses a fast AABB check when the rotation is a multiple of 90°, and the
215
+ * exact dot-product test for arbitrary angles.
216
+ */
163
217
  contains(x, y) {
164
218
  if ((this.rotation % 90 === 0)) {
165
219
  return this.getBounds().contains(x, y);
@@ -168,10 +222,12 @@ class Sprite extends Drawable {
168
222
  return (dotA > 0) && (dotA <= lenA)
169
223
  && (dotB > 0) && (dotB <= lenB);
170
224
  }
225
+ /** @internal */
171
226
  _invalidateSubtreeTransform() {
172
227
  super._invalidateSubtreeTransform();
173
228
  this.flags.push(SpriteFlags.Vertices | SpriteFlags.Normals);
174
229
  }
230
+ /** @internal */
175
231
  _invalidateBoundsCascade() {
176
232
  super._invalidateBoundsCascade();
177
233
  this.flags.push(SpriteFlags.Vertices | SpriteFlags.Normals);
@@ -1 +1 @@
1
- {"version":3,"file":"Sprite.js","sources":["../../../../../src/rendering/sprite/Sprite.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sprite.js","sources":["../../../../../src/rendering/sprite/Sprite.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Texture } from '../texture/Texture';
2
2
  import { Rectangle } from '@/math/Rectangle';
3
3
  import { Sprite } from './Sprite';
4
+ /** A single frame entry in a {@link SpritesheetData} descriptor. */
4
5
  export interface SpritesheetFrame {
5
6
  frame: {
6
7
  x: number;
@@ -9,6 +10,10 @@ export interface SpritesheetFrame {
9
10
  h: number;
10
11
  };
11
12
  }
13
+ /**
14
+ * JSON-compatible descriptor that drives {@link Spritesheet.parse}.
15
+ * Matches the Aseprite / TexturePacker output format (subset).
16
+ */
12
17
  export interface SpritesheetData {
13
18
  frames: {
14
19
  [name: string]: SpritesheetFrame;
@@ -17,18 +22,38 @@ export interface SpritesheetData {
17
22
  [name: string]: Array<string>;
18
23
  };
19
24
  }
25
+ /**
26
+ * Slices a single {@link Texture} into named frames and optional named
27
+ * animation sequences.
28
+ *
29
+ * Each frame is stored as both a {@link Rectangle} (the pixel region) and a
30
+ * pre-configured {@link Sprite} ready for direct rendering. Animations are
31
+ * ordered lists of frame names that {@link AnimatedSprite.fromSpritesheet}
32
+ * consumes to create playback clips.
33
+ */
20
34
  export declare class Spritesheet {
21
35
  readonly texture: Texture;
22
36
  readonly frames: Map<string, Rectangle>;
23
37
  readonly sprites: Map<string, Sprite>;
24
38
  readonly animations: Map<string, readonly string[]>;
25
39
  constructor(texture: Texture, data: SpritesheetData);
40
+ /**
41
+ * Parse a {@link SpritesheetData} descriptor, populating `frames`,
42
+ * `sprites`, and `animations`. When `keepFrames` is `false` (default),
43
+ * all existing frames and sprites are destroyed before parsing.
44
+ */
26
45
  parse(data: SpritesheetData, keepFrames?: boolean): void;
46
+ /** Register a single frame by name, creating its {@link Rectangle} and pre-configured {@link Sprite}. */
27
47
  addFrame(name: string, data: SpritesheetFrame): void;
48
+ /** Register an animation sequence as an ordered list of frame names. All referenced frames must already exist. */
28
49
  defineAnimation(name: string, frameNames: ReadonlyArray<string>): this;
50
+ /** Return the {@link Rectangle} for the named frame. Throws if the frame does not exist. */
29
51
  getFrame(name: string): Rectangle;
52
+ /** Return the ordered frame-name list for the named animation. Throws if the animation does not exist. */
30
53
  getAnimationFrameNames(name: string): ReadonlyArray<string>;
54
+ /** Return the pre-configured {@link Sprite} for the named frame. Throws if the frame does not exist. */
31
55
  getFrameSprite(name: string): Sprite;
56
+ /** Destroy all registered frames, sprites, and animations, resetting the spritesheet to an empty state. */
32
57
  clear(): this;
33
58
  destroy(): void;
34
59
  }
@@ -1,6 +1,15 @@
1
1
  import { Rectangle } from '../../math/Rectangle.js';
2
2
  import { Sprite } from './Sprite.js';
3
3
 
4
+ /**
5
+ * Slices a single {@link Texture} into named frames and optional named
6
+ * animation sequences.
7
+ *
8
+ * Each frame is stored as both a {@link Rectangle} (the pixel region) and a
9
+ * pre-configured {@link Sprite} ready for direct rendering. Animations are
10
+ * ordered lists of frame names that {@link AnimatedSprite.fromSpritesheet}
11
+ * consumes to create playback clips.
12
+ */
4
13
  class Spritesheet {
5
14
  texture;
6
15
  frames = new Map();
@@ -10,6 +19,11 @@ class Spritesheet {
10
19
  this.texture = texture;
11
20
  this.parse(data);
12
21
  }
22
+ /**
23
+ * Parse a {@link SpritesheetData} descriptor, populating `frames`,
24
+ * `sprites`, and `animations`. When `keepFrames` is `false` (default),
25
+ * all existing frames and sprites are destroyed before parsing.
26
+ */
13
27
  parse(data, keepFrames = false) {
14
28
  if (!keepFrames) {
15
29
  this.clear();
@@ -23,6 +37,7 @@ class Spritesheet {
23
37
  }
24
38
  }
25
39
  }
40
+ /** Register a single frame by name, creating its {@link Rectangle} and pre-configured {@link Sprite}. */
26
41
  addFrame(name, data) {
27
42
  const { x, y, w, h } = data.frame;
28
43
  const frame = new Rectangle(x, y, w, h);
@@ -31,6 +46,7 @@ class Spritesheet {
31
46
  this.frames.set(name, frame);
32
47
  this.sprites.set(name, sprite);
33
48
  }
49
+ /** Register an animation sequence as an ordered list of frame names. All referenced frames must already exist. */
34
50
  defineAnimation(name, frameNames) {
35
51
  if (name.trim().length === 0) {
36
52
  throw new Error('Spritesheet animation names must be non-empty strings.');
@@ -46,6 +62,7 @@ class Spritesheet {
46
62
  this.animations.set(name, [...frameNames]);
47
63
  return this;
48
64
  }
65
+ /** Return the {@link Rectangle} for the named frame. Throws if the frame does not exist. */
49
66
  getFrame(name) {
50
67
  const frame = this.frames.get(name);
51
68
  if (!frame) {
@@ -53,6 +70,7 @@ class Spritesheet {
53
70
  }
54
71
  return frame;
55
72
  }
73
+ /** Return the ordered frame-name list for the named animation. Throws if the animation does not exist. */
56
74
  getAnimationFrameNames(name) {
57
75
  const frames = this.animations.get(name);
58
76
  if (!frames) {
@@ -60,6 +78,7 @@ class Spritesheet {
60
78
  }
61
79
  return frames;
62
80
  }
81
+ /** Return the pre-configured {@link Sprite} for the named frame. Throws if the frame does not exist. */
63
82
  getFrameSprite(name) {
64
83
  const sprite = this.sprites.get(name);
65
84
  if (!sprite) {
@@ -67,6 +86,7 @@ class Spritesheet {
67
86
  }
68
87
  return sprite;
69
88
  }
89
+ /** Destroy all registered frames, sprites, and animations, resetting the spritesheet to an empty state. */
70
90
  clear() {
71
91
  for (const frame of this.frames.values()) {
72
92
  frame.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"Spritesheet.js","sources":["../../../../../src/rendering/sprite/Spritesheet.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Spritesheet.js","sources":["../../../../../src/rendering/sprite/Spritesheet.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -23,7 +23,9 @@ export declare class Text extends Container {
23
23
  set text(value: string);
24
24
  get style(): TextStyle;
25
25
  set style(style: TextStyle | TextStyleOptions);
26
+ /** Replace the displayed string and rebuild the glyph mesh if the value changed. */
26
27
  setText(text: string): this;
28
+ /** Replace the active style and rebuild the glyph mesh unconditionally. */
27
29
  setStyle(style: TextStyle | TextStyleOptions): this;
28
30
  destroy(): void;
29
31
  private _rebuild;
@@ -86,6 +86,7 @@ class Text extends Container {
86
86
  set style(style) {
87
87
  this.setStyle(style);
88
88
  }
89
+ /** Replace the displayed string and rebuild the glyph mesh if the value changed. */
89
90
  setText(text) {
90
91
  if (this._text !== text) {
91
92
  this._text = text;
@@ -93,6 +94,7 @@ class Text extends Container {
93
94
  }
94
95
  return this;
95
96
  }
97
+ /** Replace the active style and rebuild the glyph mesh unconditionally. */
96
98
  setStyle(style) {
97
99
  this._style = (style instanceof TextStyle) ? style : new TextStyle(style);
98
100
  this._rebuild();