@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
@@ -33,6 +33,7 @@ export declare abstract class WorkletFilter extends AudioFilter {
33
33
  * that depend on the worklet node.
34
34
  */
35
35
  get ready(): Promise<void>;
36
+ /** Disconnects all nodes, cancels any pending worklet load, and releases resources. */
36
37
  destroy(): void;
37
38
  /**
38
39
  * Subclass hook — called once when the worklet has loaded and the
@@ -40,7 +41,11 @@ export declare abstract class WorkletFilter extends AudioFilter {
40
41
  * wiring (e.g., connecting a sidechain input).
41
42
  */
42
43
  protected _onWorkletReady?(audioContext: AudioContext): void;
43
- /** Helper for subclasses: ramp an AudioParam smoothly. */
44
+ /**
45
+ * Ramps an `AudioParam` on the underlying `AudioWorkletNode` to `value`
46
+ * using a short exponential ramp. No-ops if the worklet is not yet loaded.
47
+ * @internal
48
+ */
44
49
  protected _setAudioParam(name: string, value: number): void;
45
50
  private _setup;
46
51
  }
@@ -54,6 +54,7 @@ class WorkletFilter extends AudioFilter {
54
54
  get ready() {
55
55
  return this._ready ?? Promise.resolve();
56
56
  }
57
+ /** Disconnects all nodes, cancels any pending worklet load, and releases resources. */
57
58
  destroy() {
58
59
  onAudioContextReady.clearByContext(this);
59
60
  this._workletNode?.disconnect();
@@ -64,7 +65,11 @@ class WorkletFilter extends AudioFilter {
64
65
  this._outputGain = null;
65
66
  this._ready = null;
66
67
  }
67
- /** Helper for subclasses: ramp an AudioParam smoothly. */
68
+ /**
69
+ * Ramps an `AudioParam` on the underlying `AudioWorkletNode` to `value`
70
+ * using a short exponential ramp. No-ops if the worklet is not yet loaded.
71
+ * @internal
72
+ */
68
73
  _setAudioParam(name, value) {
69
74
  if (!this._workletNode)
70
75
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkletFilter.js","sources":["../../../../../src/audio/filters/WorkletFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkletFilter.js","sources":["../../../../../src/audio/filters/WorkletFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -44,7 +44,35 @@ export interface WebGpuBackendConfig {
44
44
  export interface AutoBackendConfig {
45
45
  type: 'auto';
46
46
  }
47
+ /**
48
+ * Discriminated union of backend selection options. `'auto'` picks WebGPU
49
+ * when available, falling back to WebGL2 if adapter acquisition fails;
50
+ * the explicit values pin the choice and skip the fallback path.
51
+ */
47
52
  export type BackendConfig = AutoBackendConfig | WebGl2BackendConfig | WebGpuBackendConfig;
53
+ /**
54
+ * Top-level engine instance. Owns the canvas, render backend, scene-stack
55
+ * controller, input + interaction managers, asset loader, tween manager,
56
+ * shared audio singleton, and the per-frame loop.
57
+ *
58
+ * Lifecycle: construct with options → `await app.start(scene)` → engine
59
+ * runs the request-animation-frame loop until `app.stop()` or
60
+ * `app.destroy()`. The render backend is chosen and initialized during
61
+ * `start()`; query {@link Application.backend} or
62
+ * {@link Application.capabilities} after start has resolved.
63
+ *
64
+ * The class exposes Signals for the major state-change points
65
+ * ({@link Application.onResize}, {@link Application.onFrame},
66
+ * {@link Application.onCanvasFocusChange},
67
+ * {@link Application.onVisibilityChange},
68
+ * {@link Application.onBackendLost}, {@link Application.onBackendRestored})
69
+ * so subscribers can react without subclassing.
70
+ *
71
+ * `pauseOnHidden = true` short-circuits the per-frame work while
72
+ * `document.hidden` is true (still consumes RAF callbacks but skips
73
+ * scene update + render). Useful for games; leave off for tools and
74
+ * background-active simulations.
75
+ */
48
76
  export declare class Application {
49
77
  readonly options: ApplicationOptions;
50
78
  readonly canvas: HTMLCanvasElement;
@@ -58,6 +86,7 @@ export declare class Application {
58
86
  readonly onCanvasFocusChange: Signal<[focused: boolean]>;
59
87
  readonly onVisibilityChange: Signal<[visible: boolean]>;
60
88
  readonly onBackendLost: Signal<[]>;
89
+ readonly onBackendRestored: Signal<[]>;
61
90
  pauseOnHidden: boolean;
62
91
  private readonly _updateHandler;
63
92
  private readonly _startupClock;
@@ -90,11 +119,45 @@ export declare class Application {
90
119
  get cursor(): string;
91
120
  set cursor(cursor: string);
92
121
  get audio(): AudioManager;
122
+ /**
123
+ * Initialize the render backend, await capability detection, set the
124
+ * initial scene, and start the per-frame loop. Idempotent — if the
125
+ * application is already running the call is a no-op. On error the
126
+ * status returns to `Stopped` and the error propagates.
127
+ */
93
128
  start(scene: Scene): Promise<this>;
129
+ /**
130
+ * One iteration of the per-frame loop. Invoked by `requestAnimationFrame`.
131
+ * Skips the body when the document is hidden and `pauseOnHidden` is
132
+ * `true`. Order: reset render stats → input + interaction update →
133
+ * audio update → tween update → optional view runtime update →
134
+ * scene-graph update → onFrame dispatch → backend flush → reschedule.
135
+ */
94
136
  update(): this;
137
+ /**
138
+ * Halt the per-frame loop, unload the active scene, and stop the active
139
+ * + frame clocks. Leaves backend, input, audio, etc. intact — call
140
+ * {@link Application.destroy} to release everything.
141
+ */
95
142
  stop(): this;
143
+ /**
144
+ * Resize the canvas and the active backend's root render target.
145
+ * Dispatches {@link Application.onResize} after the backend has been
146
+ * notified.
147
+ */
96
148
  resize(width: number, height: number): this;
149
+ /**
150
+ * Set the canvas cursor. Strings are passed through to `canvas.style.cursor`
151
+ * verbatim (CSS values like `'pointer'`, `'crosshair'`, or `url(...)`).
152
+ * Image-based sources are rasterized to a `data:` URL via the shared
153
+ * scratch canvas and used as the cursor image.
154
+ */
97
155
  setCursor(cursor: string | Texture | HTMLImageElement | HTMLCanvasElement): this;
156
+ /**
157
+ * Tear down every owned subsystem (loader, interaction, input, tweens,
158
+ * backend, scene manager, all clocks, all signals) and release event
159
+ * listeners. The application instance is unusable after this call.
160
+ */
98
161
  destroy(): void;
99
162
  private _onDocumentVisibilityChange;
100
163
  private resolveInitialBackendType;
@@ -48,6 +48,29 @@ const defaultAppSettings = {
48
48
  cache: undefined,
49
49
  backend: defaultBackendConfig,
50
50
  };
51
+ /**
52
+ * Top-level engine instance. Owns the canvas, render backend, scene-stack
53
+ * controller, input + interaction managers, asset loader, tween manager,
54
+ * shared audio singleton, and the per-frame loop.
55
+ *
56
+ * Lifecycle: construct with options → `await app.start(scene)` → engine
57
+ * runs the request-animation-frame loop until `app.stop()` or
58
+ * `app.destroy()`. The render backend is chosen and initialized during
59
+ * `start()`; query {@link Application.backend} or
60
+ * {@link Application.capabilities} after start has resolved.
61
+ *
62
+ * The class exposes Signals for the major state-change points
63
+ * ({@link Application.onResize}, {@link Application.onFrame},
64
+ * {@link Application.onCanvasFocusChange},
65
+ * {@link Application.onVisibilityChange},
66
+ * {@link Application.onBackendLost}, {@link Application.onBackendRestored})
67
+ * so subscribers can react without subclassing.
68
+ *
69
+ * `pauseOnHidden = true` short-circuits the per-frame work while
70
+ * `document.hidden` is true (still consumes RAF callbacks but skips
71
+ * scene update + render). Useful for games; leave off for tools and
72
+ * background-active simulations.
73
+ */
51
74
  class Application {
52
75
  options;
53
76
  canvas;
@@ -61,6 +84,7 @@ class Application {
61
84
  onCanvasFocusChange = new Signal();
62
85
  onVisibilityChange = new Signal();
63
86
  onBackendLost = new Signal();
87
+ onBackendRestored = new Signal();
64
88
  pauseOnHidden = false;
65
89
  _updateHandler;
66
90
  _startupClock = new Clock();
@@ -153,6 +177,12 @@ class Application {
153
177
  get audio() {
154
178
  return getAudioManager();
155
179
  }
180
+ /**
181
+ * Initialize the render backend, await capability detection, set the
182
+ * initial scene, and start the per-frame loop. Idempotent — if the
183
+ * application is already running the call is a no-op. On error the
184
+ * status returns to `Stopped` and the error propagates.
185
+ */
156
186
  async start(scene) {
157
187
  if (this._status === ApplicationStatus.Stopped) {
158
188
  this._status = ApplicationStatus.Loading;
@@ -175,6 +205,13 @@ class Application {
175
205
  }
176
206
  return this;
177
207
  }
208
+ /**
209
+ * One iteration of the per-frame loop. Invoked by `requestAnimationFrame`.
210
+ * Skips the body when the document is hidden and `pauseOnHidden` is
211
+ * `true`. Order: reset render stats → input + interaction update →
212
+ * audio update → tween update → optional view runtime update →
213
+ * scene-graph update → onFrame dispatch → backend flush → reschedule.
214
+ */
178
215
  update() {
179
216
  if (this._status === ApplicationStatus.Running) {
180
217
  if (this.pauseOnHidden && !this._documentVisible) {
@@ -202,6 +239,11 @@ class Application {
202
239
  }
203
240
  return this;
204
241
  }
242
+ /**
243
+ * Halt the per-frame loop, unload the active scene, and stop the active
244
+ * + frame clocks. Leaves backend, input, audio, etc. intact — call
245
+ * {@link Application.destroy} to release everything.
246
+ */
205
247
  stop() {
206
248
  if (this._status === ApplicationStatus.Running) {
207
249
  this._status = ApplicationStatus.Halting;
@@ -215,11 +257,22 @@ class Application {
215
257
  }
216
258
  return this;
217
259
  }
260
+ /**
261
+ * Resize the canvas and the active backend's root render target.
262
+ * Dispatches {@link Application.onResize} after the backend has been
263
+ * notified.
264
+ */
218
265
  resize(width, height) {
219
266
  this.backend.resize(width, height);
220
267
  this.onResize.dispatch(width, height, this);
221
268
  return this;
222
269
  }
270
+ /**
271
+ * Set the canvas cursor. Strings are passed through to `canvas.style.cursor`
272
+ * verbatim (CSS values like `'pointer'`, `'crosshair'`, or `url(...)`).
273
+ * Image-based sources are rasterized to a `data:` URL via the shared
274
+ * scratch canvas and used as the cursor image.
275
+ */
223
276
  setCursor(cursor) {
224
277
  const source = (cursor instanceof Texture) ? cursor.source : cursor;
225
278
  if (source === null) {
@@ -229,6 +282,11 @@ class Application {
229
282
  this.canvas.style.cursor = this._cursor;
230
283
  return this;
231
284
  }
285
+ /**
286
+ * Tear down every owned subsystem (loader, interaction, input, tweens,
287
+ * backend, scene manager, all clocks, all signals) and release event
288
+ * listeners. The application instance is unusable after this call.
289
+ */
232
290
  destroy() {
233
291
  if (typeof document !== 'undefined') {
234
292
  document.removeEventListener('visibilitychange', this._visibilityChangeHandler);
@@ -248,6 +306,7 @@ class Application {
248
306
  this.onCanvasFocusChange.destroy();
249
307
  this.onVisibilityChange.destroy();
250
308
  this.onBackendLost.destroy();
309
+ this.onBackendRestored.destroy();
251
310
  }
252
311
  _onDocumentVisibilityChange() {
253
312
  const visible = document.visibilityState === 'visible';
@@ -270,10 +329,12 @@ class Application {
270
329
  if (backendType === 'webgpu') {
271
330
  const backend = new WebGpuBackend(this);
272
331
  backend.onDeviceLost.add(() => { this.onBackendLost.dispatch(); });
332
+ backend.onDeviceRestored.add(() => { this.onBackendRestored.dispatch(); });
273
333
  return backend;
274
334
  }
275
335
  const backend = new WebGl2Backend(this);
276
336
  backend.onContextLost.add(() => { this.onBackendLost.dispatch(); });
337
+ backend.onContextRestored.add(() => { this.onBackendRestored.dispatch(); });
277
338
  return backend;
278
339
  }
279
340
  async initializeRenderManager() {
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import { Rectangle } from '@/math/Rectangle';
2
2
  import type { Matrix } from '@/math/Matrix';
3
+ /**
4
+ * Mutable axis-aligned bounding box accumulator. Starts as the empty bounds
5
+ * (`-Infinity..Infinity` reversed) and grows monotonically as points or
6
+ * rectangles are merged in via {@link Bounds.addCoords} and
7
+ * {@link Bounds.addRect}. Used during scene-graph traversal to accumulate a
8
+ * subtree's combined extent for culling and hit-testing.
9
+ *
10
+ * The {@link Bounds.getRect} accessor lazily folds the current min/max into
11
+ * a shared {@link Rectangle} — copy the result if you need to retain it
12
+ * across further accumulation.
13
+ */
3
14
  export declare class Bounds {
4
15
  private _minX;
5
16
  private _minY;
@@ -11,9 +22,21 @@ export declare class Bounds {
11
22
  get minY(): number;
12
23
  get maxX(): number;
13
24
  get maxY(): number;
25
+ /** Expand the bounds to include `(x, y)`. */
14
26
  addCoords(x: number, y: number): this;
27
+ /**
28
+ * Expand the bounds to include `rectangle`. When `transform` is provided
29
+ * the rectangle's corners are transformed into the bounds' coordinate
30
+ * space first (via `Rectangle.temp` — does not mutate `rectangle`).
31
+ */
15
32
  addRect(rectangle: Rectangle, transform?: Matrix): this;
33
+ /**
34
+ * Materialize the accumulated min/max as a {@link Rectangle}. Returns
35
+ * the same instance across calls — copy if you need to retain it past
36
+ * the next mutation.
37
+ */
16
38
  getRect(): Rectangle;
39
+ /** Restore the empty-bounds state for reuse across frames. */
17
40
  reset(): this;
18
41
  destroy(): void;
19
42
  }
@@ -1,5 +1,16 @@
1
1
  import { Rectangle } from '../math/Rectangle.js';
2
2
 
3
+ /**
4
+ * Mutable axis-aligned bounding box accumulator. Starts as the empty bounds
5
+ * (`-Infinity..Infinity` reversed) and grows monotonically as points or
6
+ * rectangles are merged in via {@link Bounds.addCoords} and
7
+ * {@link Bounds.addRect}. Used during scene-graph traversal to accumulate a
8
+ * subtree's combined extent for culling and hit-testing.
9
+ *
10
+ * The {@link Bounds.getRect} accessor lazily folds the current min/max into
11
+ * a shared {@link Rectangle} — copy the result if you need to retain it
12
+ * across further accumulation.
13
+ */
3
14
  class Bounds {
4
15
  _minX = Infinity;
5
16
  _minY = Infinity;
@@ -19,6 +30,7 @@ class Bounds {
19
30
  get maxY() {
20
31
  return this._maxY;
21
32
  }
33
+ /** Expand the bounds to include `(x, y)`. */
22
34
  addCoords(x, y) {
23
35
  this._minX = Math.min(this._minX, x);
24
36
  this._minY = Math.min(this._minY, y);
@@ -27,6 +39,11 @@ class Bounds {
27
39
  this._dirty = true;
28
40
  return this;
29
41
  }
42
+ /**
43
+ * Expand the bounds to include `rectangle`. When `transform` is provided
44
+ * the rectangle's corners are transformed into the bounds' coordinate
45
+ * space first (via `Rectangle.temp` — does not mutate `rectangle`).
46
+ */
30
47
  addRect(rectangle, transform) {
31
48
  if (transform) {
32
49
  rectangle = rectangle.transform(transform, Rectangle.temp);
@@ -35,6 +52,11 @@ class Bounds {
35
52
  .addCoords(rectangle.left, rectangle.top)
36
53
  .addCoords(rectangle.right, rectangle.bottom);
37
54
  }
55
+ /**
56
+ * Materialize the accumulated min/max as a {@link Rectangle}. Returns
57
+ * the same instance across calls — copy if you need to retain it past
58
+ * the next mutation.
59
+ */
38
60
  getRect() {
39
61
  if (this._dirty) {
40
62
  this._rect.set(this._minX, this._minY, this._maxX - this._minX, this._maxY - this._minY);
@@ -42,6 +64,7 @@ class Bounds {
42
64
  }
43
65
  return this._rect;
44
66
  }
67
+ /** Restore the empty-bounds state for reuse across frames. */
45
68
  reset() {
46
69
  this._minX = Infinity;
47
70
  this._minY = Infinity;
@@ -1 +1 @@
1
- {"version":3,"file":"Bounds.js","sources":["../../../../src/core/Bounds.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAGa,MAAM,CAAA;IAEP,KAAK,GAAG,QAAQ;IAChB,KAAK,GAAG,QAAQ;IAChB,KAAK,GAAG,CAAC,QAAQ;IACjB,KAAK,GAAG,CAAC,QAAQ;IACjB,MAAM,GAAG,IAAI;AACb,IAAA,KAAK,GAAc,IAAI,SAAS,EAAE;AAE1C,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEO,SAAS,CAAC,CAAS,EAAE,CAAS,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAEpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAElB,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,CAAC,SAAoB,EAAE,SAAkB,EAAA;QACnD,IAAI,SAAS,EAAE;YACX,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC;QAC9D;AAEA,QAAA,OAAO;aACF,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG;aACvC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;IACrD;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAC1B;AAED,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACvB;QAEA,OAAO,IAAI,CAAC,KAAK;IACrB;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ;AAEtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAElB,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
1
+ {"version":3,"file":"Bounds.js","sources":["../../../../src/core/Bounds.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;AAUG;MACU,MAAM,CAAA;IAEP,KAAK,GAAG,QAAQ;IAChB,KAAK,GAAG,QAAQ;IAChB,KAAK,GAAG,CAAC,QAAQ;IACjB,KAAK,GAAG,CAAC,QAAQ;IACjB,MAAM,GAAG,IAAI;AACb,IAAA,KAAK,GAAc,IAAI,SAAS,EAAE;AAE1C,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;;IAGO,SAAS,CAAC,CAAS,EAAE,CAAS,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAEpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAElB,QAAA,OAAO,IAAI;IACf;AAEA;;;;AAIG;IACI,OAAO,CAAC,SAAoB,EAAE,SAAkB,EAAA;QACnD,IAAI,SAAS,EAAE;YACX,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC;QAC9D;AAEA,QAAA,OAAO;aACF,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG;aACvC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;IACrD;AAEA;;;;AAIG;IACI,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAC1B;AAED,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACvB;QAEA,OAAO,IAAI,CAAC,KAAK;IACrB;;IAGO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ;AAEtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAElB,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
@@ -1,18 +1,39 @@
1
1
  import { Time } from './Time';
2
+ /**
3
+ * High-precision wall-clock that accumulates elapsed time while running.
4
+ * Reads from {@link performance.now} via `getPreciseTime`. Use
5
+ * {@link Clock.start}, {@link Clock.stop}, {@link Clock.reset}, and
6
+ * {@link Clock.restart} to control the running state; read elapsed time via
7
+ * {@link Clock.elapsedTime} (the {@link Time} instance is shared — copy it
8
+ * if you need to keep a snapshot).
9
+ *
10
+ * Use {@link Timer} for a clock with a fixed limit and `expired` flag.
11
+ */
2
12
  export declare class Clock {
3
13
  private _startTime;
4
14
  private _elapsedTime;
5
15
  private _running;
6
16
  constructor(startTime?: Time, autoStart?: boolean);
7
17
  get running(): boolean;
18
+ /**
19
+ * Total accumulated time since the last {@link Clock.reset}. While the
20
+ * clock is running, the value advances on every read by folding in the
21
+ * delta since the previous read; while stopped, the value is fixed at
22
+ * the stop point. Returns the same {@link Time} instance — read the
23
+ * scalar fields if you need an unchanging snapshot.
24
+ */
8
25
  get elapsedTime(): Time;
9
26
  get elapsedMilliseconds(): number;
10
27
  get elapsedSeconds(): number;
11
28
  get elapsedMinutes(): number;
12
29
  get elapsedHours(): number;
30
+ /** Begin accumulating time. No-op when already running. */
13
31
  start(): this;
32
+ /** Halt accumulation. Elapsed time stays at the moment of stopping. */
14
33
  stop(): this;
34
+ /** Halt and zero the accumulated time. The clock is left stopped. */
15
35
  reset(): this;
36
+ /** Reset accumulated time to zero, then immediately start. Common per-frame pattern. */
16
37
  restart(): this;
17
38
  destroy(): void;
18
39
  }
@@ -1,6 +1,16 @@
1
1
  import { Time } from './Time.js';
2
2
  import { getPreciseTime } from './utils.js';
3
3
 
4
+ /**
5
+ * High-precision wall-clock that accumulates elapsed time while running.
6
+ * Reads from {@link performance.now} via `getPreciseTime`. Use
7
+ * {@link Clock.start}, {@link Clock.stop}, {@link Clock.reset}, and
8
+ * {@link Clock.restart} to control the running state; read elapsed time via
9
+ * {@link Clock.elapsedTime} (the {@link Time} instance is shared — copy it
10
+ * if you need to keep a snapshot).
11
+ *
12
+ * Use {@link Timer} for a clock with a fixed limit and `expired` flag.
13
+ */
4
14
  class Clock {
5
15
  _startTime;
6
16
  _elapsedTime = new Time(0);
@@ -14,6 +24,13 @@ class Clock {
14
24
  get running() {
15
25
  return this._running;
16
26
  }
27
+ /**
28
+ * Total accumulated time since the last {@link Clock.reset}. While the
29
+ * clock is running, the value advances on every read by folding in the
30
+ * delta since the previous read; while stopped, the value is fixed at
31
+ * the stop point. Returns the same {@link Time} instance — read the
32
+ * scalar fields if you need an unchanging snapshot.
33
+ */
17
34
  get elapsedTime() {
18
35
  if (this._running) {
19
36
  const now = getPreciseTime();
@@ -34,6 +51,7 @@ class Clock {
34
51
  get elapsedHours() {
35
52
  return this.elapsedTime.hours;
36
53
  }
54
+ /** Begin accumulating time. No-op when already running. */
37
55
  start() {
38
56
  if (!this._running) {
39
57
  this._running = true;
@@ -41,6 +59,7 @@ class Clock {
41
59
  }
42
60
  return this;
43
61
  }
62
+ /** Halt accumulation. Elapsed time stays at the moment of stopping. */
44
63
  stop() {
45
64
  if (this._running) {
46
65
  this._running = false;
@@ -48,11 +67,13 @@ class Clock {
48
67
  }
49
68
  return this;
50
69
  }
70
+ /** Halt and zero the accumulated time. The clock is left stopped. */
51
71
  reset() {
52
72
  this._running = false;
53
73
  this._elapsedTime.setMilliseconds(0);
54
74
  return this;
55
75
  }
76
+ /** Reset accumulated time to zero, then immediately start. Common per-frame pattern. */
56
77
  restart() {
57
78
  this.reset();
58
79
  this.start();
@@ -1 +1 @@
1
- {"version":3,"file":"Clock.js","sources":["../../../../src/core/Clock.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAGa,KAAK,CAAA;AAEN,IAAA,UAAU;AACV,IAAA,YAAY,GAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAChC,QAAQ,GAAG,KAAK;AAExB,IAAA,WAAA,CAAmB,YAAkB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAA;AAC7D,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE;QAEnC,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,MAAM,GAAG,GAAG,cAAc,EAAE;AAE5B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AACzD,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG;QACtC;QAEA,OAAO,IAAI,CAAC,YAAY;IAC5B;AAEA,IAAA,IAAW,mBAAmB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;IACxC;AAEA,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;IACnC;AAEA,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;IACnC;AAEA,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;IACjC;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,cAAc,EAAE;QACnD;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1E;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;AAEpC,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,KAAK,EAAE;AAEZ,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IAC/B;AACH;;;;"}
1
+ {"version":3,"file":"Clock.js","sources":["../../../../src/core/Clock.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;;;AASG;MACU,KAAK,CAAA;AAEN,IAAA,UAAU;AACV,IAAA,YAAY,GAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IAChC,QAAQ,GAAG,KAAK;AAExB,IAAA,WAAA,CAAmB,YAAkB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAA;AAC7D,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE;QAEnC,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;AAEA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,MAAM,GAAG,GAAG,cAAc,EAAE;AAE5B,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AACzD,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG;QACtC;QAEA,OAAO,IAAI,CAAC,YAAY;IAC5B;AAEA,IAAA,IAAW,mBAAmB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;IACxC;AAEA,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;IACnC;AAEA,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;IACnC;AAEA,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;IACjC;;IAGO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,cAAc,EAAE;QACnD;AAEA,QAAA,OAAO,IAAI;IACf;;IAGO,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1E;AAEA,QAAA,OAAO,IAAI;IACf;;IAGO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;AAEpC,QAAA,OAAO,IAAI;IACf;;IAGO,OAAO,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,KAAK,EAAE;AAEZ,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IAC/B;AACH;;;;"}
@@ -1,4 +1,18 @@
1
1
  import type { Cloneable } from '@/core/types';
2
+ /**
3
+ * 32-bit RGBA color value with channel-wise accessors. Red, green, and blue
4
+ * are integers in 0..255; alpha is a float in 0..1. Out-of-range values are
5
+ * clipped on assignment (RGB via bitwise mask, alpha via `clamp`).
6
+ *
7
+ * The class predefines every CSS named color as a static readonly instance
8
+ * (`Color.aliceBlue`, `Color.cornflowerBlue`, …). These shared instances are
9
+ * intentionally shared — do not mutate them; clone first if you need to
10
+ * customize a starting color.
11
+ *
12
+ * Internally caches the packed RGBA32 representation and a normalized
13
+ * `Float32Array` for upload to GPU buffers; both are invalidated on
14
+ * channel writes and rebuilt lazily.
15
+ */
2
16
  export declare class Color implements Cloneable {
3
17
  private _r;
4
18
  private _g;
@@ -23,12 +37,33 @@ export declare class Color implements Cloneable {
23
37
  set blue(blue: number);
24
38
  get alpha(): number;
25
39
  set alpha(alpha: number);
40
+ /**
41
+ * Set any subset of channels. Omitted parameters default to the current
42
+ * channel value (use this for "set red, leave the rest"). RGB are masked
43
+ * to 0..255; alpha is clamped to 0..1.
44
+ */
26
45
  set(r?: number, g?: number, b?: number, a?: number): this;
27
46
  copy(color: Color): this;
28
47
  clone(): this;
29
48
  equals({ r, g, b, a }?: Partial<Color>): boolean;
49
+ /**
50
+ * Return an RGBA `Float32Array` view backed by an internal cache. Pass
51
+ * `normalized = true` to map RGB into 0..1 (typical for shader uploads);
52
+ * default returns 0..255 RGB and 0..1 alpha. The returned array is the
53
+ * same instance across calls — copy it if you need a stable snapshot.
54
+ */
30
55
  toArray(normalized?: boolean): Float32Array;
56
+ /**
57
+ * Return the RGB channels as a 6-digit hex string. Pass `prefixed = false`
58
+ * to omit the leading `#`. Alpha is not included — use {@link Color.toRgba}
59
+ * for the full RGBA32 packed form.
60
+ */
31
61
  toString(prefixed?: boolean): string;
62
+ /**
63
+ * Return the color packed into a single 32-bit RGBA value (R in low byte,
64
+ * A in high byte). Cached after first call until any channel is written.
65
+ * Returns `0` when alpha is zero.
66
+ */
32
67
  toRgba(): number;
33
68
  destroy(): void;
34
69
  static readonly aliceBlue: Color;
@@ -1,5 +1,19 @@
1
1
  import { clamp } from '../math/utils.js';
2
2
 
3
+ /**
4
+ * 32-bit RGBA color value with channel-wise accessors. Red, green, and blue
5
+ * are integers in 0..255; alpha is a float in 0..1. Out-of-range values are
6
+ * clipped on assignment (RGB via bitwise mask, alpha via `clamp`).
7
+ *
8
+ * The class predefines every CSS named color as a static readonly instance
9
+ * (`Color.aliceBlue`, `Color.cornflowerBlue`, …). These shared instances are
10
+ * intentionally shared — do not mutate them; clone first if you need to
11
+ * customize a starting color.
12
+ *
13
+ * Internally caches the packed RGBA32 representation and a normalized
14
+ * `Float32Array` for upload to GPU buffers; both are invalidated on
15
+ * channel writes and rebuilt lazily.
16
+ */
3
17
  class Color {
4
18
  _r;
5
19
  _g;
@@ -65,6 +79,11 @@ class Color {
65
79
  set alpha(alpha) {
66
80
  this.a = alpha;
67
81
  }
82
+ /**
83
+ * Set any subset of channels. Omitted parameters default to the current
84
+ * channel value (use this for "set red, leave the rest"). RGB are masked
85
+ * to 0..255; alpha is clamped to 0..1.
86
+ */
68
87
  set(r = this._r, g = this._g, b = this._b, a = this._a) {
69
88
  this._r = r & 255;
70
89
  this._g = g & 255;
@@ -85,6 +104,12 @@ class Color {
85
104
  && (b === undefined || this.b === b)
86
105
  && (a === undefined || this.a === a);
87
106
  }
107
+ /**
108
+ * Return an RGBA `Float32Array` view backed by an internal cache. Pass
109
+ * `normalized = true` to map RGB into 0..1 (typical for shader uploads);
110
+ * default returns 0..255 RGB and 0..1 alpha. The returned array is the
111
+ * same instance across calls — copy it if you need a stable snapshot.
112
+ */
88
113
  toArray(normalized = false) {
89
114
  if (!this._array) {
90
115
  this._array = new Float32Array(4);
@@ -103,9 +128,19 @@ class Color {
103
128
  }
104
129
  return this._array;
105
130
  }
131
+ /**
132
+ * Return the RGB channels as a 6-digit hex string. Pass `prefixed = false`
133
+ * to omit the leading `#`. Alpha is not included — use {@link Color.toRgba}
134
+ * for the full RGBA32 packed form.
135
+ */
106
136
  toString(prefixed = true) {
107
137
  return `${prefixed ? '#' : ''}${((1 << 24) + (this._r << 16) + (this._g << 8) + this._b).toString(16).substr(1)}`;
108
138
  }
139
+ /**
140
+ * Return the color packed into a single 32-bit RGBA value (R in low byte,
141
+ * A in high byte). Cached after first call until any channel is written.
142
+ * Returns `0` when alpha is zero.
143
+ */
109
144
  toRgba() {
110
145
  if (this._rgba === null) {
111
146
  this._rgba = this._a && (((this._a * 255 | 0) << 24) + (this._b << 16) + (this._g << 8) + this._r) >>> 0;