@twick/core 0.11.0

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 (373) hide show
  1. package/LICENSE +21 -0
  2. package/lib/app/Logger.d.ts +105 -0
  3. package/lib/app/Logger.d.ts.map +1 -0
  4. package/lib/app/Logger.js +77 -0
  5. package/lib/app/PlaybackManager.d.ts +55 -0
  6. package/lib/app/PlaybackManager.d.ts.map +1 -0
  7. package/lib/app/PlaybackManager.js +179 -0
  8. package/lib/app/PlaybackStatus.d.ts +30 -0
  9. package/lib/app/PlaybackStatus.d.ts.map +1 -0
  10. package/lib/app/PlaybackStatus.js +46 -0
  11. package/lib/app/Player.d.ts +130 -0
  12. package/lib/app/Player.d.ts.map +1 -0
  13. package/lib/app/Player.js +375 -0
  14. package/lib/app/Project.d.ts +145 -0
  15. package/lib/app/Project.d.ts.map +1 -0
  16. package/lib/app/Project.js +10 -0
  17. package/lib/app/Renderer.d.ts +90 -0
  18. package/lib/app/Renderer.d.ts.map +1 -0
  19. package/lib/app/Renderer.js +318 -0
  20. package/lib/app/SharedWebGLContext.d.ts +24 -0
  21. package/lib/app/SharedWebGLContext.d.ts.map +1 -0
  22. package/lib/app/SharedWebGLContext.js +200 -0
  23. package/lib/app/Stage.d.ts +30 -0
  24. package/lib/app/Stage.d.ts.map +1 -0
  25. package/lib/app/Stage.js +75 -0
  26. package/lib/app/TimeEstimator.d.ts +53 -0
  27. package/lib/app/TimeEstimator.d.ts.map +1 -0
  28. package/lib/app/TimeEstimator.js +70 -0
  29. package/lib/app/index.d.ts +16 -0
  30. package/lib/app/index.d.ts.map +1 -0
  31. package/lib/app/index.js +16 -0
  32. package/lib/app/makeProject.d.ts +15 -0
  33. package/lib/app/makeProject.d.ts.map +1 -0
  34. package/lib/app/makeProject.js +72 -0
  35. package/lib/app/project-settings.d.ts +8 -0
  36. package/lib/app/project-settings.d.ts.map +1 -0
  37. package/lib/app/project-settings.js +13 -0
  38. package/lib/decorators/decorate.d.ts +2 -0
  39. package/lib/decorators/decorate.d.ts.map +1 -0
  40. package/lib/decorators/decorate.js +10 -0
  41. package/lib/decorators/deprecated.d.ts +5 -0
  42. package/lib/decorators/deprecated.d.ts.map +1 -0
  43. package/lib/decorators/deprecated.js +23 -0
  44. package/lib/decorators/index.d.ts +9 -0
  45. package/lib/decorators/index.d.ts.map +1 -0
  46. package/lib/decorators/index.js +9 -0
  47. package/lib/decorators/lazy.d.ts +14 -0
  48. package/lib/decorators/lazy.d.ts.map +1 -0
  49. package/lib/decorators/lazy.js +27 -0
  50. package/lib/decorators/threadable.d.ts +2 -0
  51. package/lib/decorators/threadable.d.ts.map +1 -0
  52. package/lib/decorators/threadable.js +7 -0
  53. package/lib/events/AsyncEventDispatcher.d.ts +45 -0
  54. package/lib/events/AsyncEventDispatcher.d.ts.map +1 -0
  55. package/lib/events/AsyncEventDispatcher.js +33 -0
  56. package/lib/events/EventDispatcher.d.ts +38 -0
  57. package/lib/events/EventDispatcher.d.ts.map +1 -0
  58. package/lib/events/EventDispatcher.js +29 -0
  59. package/lib/events/EventDispatcherBase.d.ts +55 -0
  60. package/lib/events/EventDispatcherBase.d.ts.map +1 -0
  61. package/lib/events/EventDispatcherBase.js +68 -0
  62. package/lib/events/FlagDispatcher.d.ts +54 -0
  63. package/lib/events/FlagDispatcher.d.ts.map +1 -0
  64. package/lib/events/FlagDispatcher.js +63 -0
  65. package/lib/events/ValueDispatcher.d.ts +81 -0
  66. package/lib/events/ValueDispatcher.d.ts.map +1 -0
  67. package/lib/events/ValueDispatcher.js +97 -0
  68. package/lib/events/index.d.ts +11 -0
  69. package/lib/events/index.d.ts.map +1 -0
  70. package/lib/events/index.js +11 -0
  71. package/lib/exporter/Exporter.d.ts +101 -0
  72. package/lib/exporter/Exporter.d.ts.map +1 -0
  73. package/lib/exporter/Exporter.js +2 -0
  74. package/lib/exporter/FFmpegExporter.d.ts +50 -0
  75. package/lib/exporter/FFmpegExporter.d.ts.map +1 -0
  76. package/lib/exporter/FFmpegExporter.js +140 -0
  77. package/lib/exporter/ImageExporter.d.ts +34 -0
  78. package/lib/exporter/ImageExporter.d.ts.map +1 -0
  79. package/lib/exporter/ImageExporter.js +80 -0
  80. package/lib/exporter/WasmExporter.d.ts +19 -0
  81. package/lib/exporter/WasmExporter.d.ts.map +1 -0
  82. package/lib/exporter/WasmExporter.js +78 -0
  83. package/lib/exporter/download-videos.d.ts +3 -0
  84. package/lib/exporter/download-videos.d.ts.map +1 -0
  85. package/lib/exporter/download-videos.js +45 -0
  86. package/lib/exporter/index.d.ts +5 -0
  87. package/lib/exporter/index.d.ts.map +1 -0
  88. package/lib/exporter/index.js +5 -0
  89. package/lib/flow/all.d.ts +18 -0
  90. package/lib/flow/all.d.ts.map +1 -0
  91. package/lib/flow/all.js +25 -0
  92. package/lib/flow/any.d.ts +18 -0
  93. package/lib/flow/any.d.ts.map +1 -0
  94. package/lib/flow/any.js +25 -0
  95. package/lib/flow/chain.d.ts +36 -0
  96. package/lib/flow/chain.d.ts.map +1 -0
  97. package/lib/flow/chain.js +46 -0
  98. package/lib/flow/delay.d.ts +29 -0
  99. package/lib/flow/delay.d.ts.map +1 -0
  100. package/lib/flow/delay.js +39 -0
  101. package/lib/flow/every.d.ts +41 -0
  102. package/lib/flow/every.d.ts.map +1 -0
  103. package/lib/flow/every.js +61 -0
  104. package/lib/flow/index.d.ts +17 -0
  105. package/lib/flow/index.d.ts.map +1 -0
  106. package/lib/flow/index.js +17 -0
  107. package/lib/flow/join.d.ts +35 -0
  108. package/lib/flow/join.d.ts.map +1 -0
  109. package/lib/flow/join.js +33 -0
  110. package/lib/flow/loop.d.ts +58 -0
  111. package/lib/flow/loop.d.ts.map +1 -0
  112. package/lib/flow/loop.js +51 -0
  113. package/lib/flow/loopFor.d.ts +25 -0
  114. package/lib/flow/loopFor.d.ts.map +1 -0
  115. package/lib/flow/loopFor.js +42 -0
  116. package/lib/flow/names.d.ts +3 -0
  117. package/lib/flow/names.d.ts.map +1 -0
  118. package/lib/flow/names.js +11 -0
  119. package/lib/flow/run.d.ts +45 -0
  120. package/lib/flow/run.d.ts.map +1 -0
  121. package/lib/flow/run.js +14 -0
  122. package/lib/flow/scheduling.d.ts +18 -0
  123. package/lib/flow/scheduling.d.ts.map +1 -0
  124. package/lib/flow/scheduling.js +33 -0
  125. package/lib/flow/sequence.d.ts +22 -0
  126. package/lib/flow/sequence.d.ts.map +1 -0
  127. package/lib/flow/sequence.js +31 -0
  128. package/lib/index.d.ts +16 -0
  129. package/lib/index.d.ts.map +1 -0
  130. package/lib/index.js +16 -0
  131. package/lib/media/index.d.ts +7 -0
  132. package/lib/media/index.d.ts.map +1 -0
  133. package/lib/media/index.js +7 -0
  134. package/lib/media/loadImage.d.ts +8 -0
  135. package/lib/media/loadImage.d.ts.map +1 -0
  136. package/lib/media/loadImage.js +29 -0
  137. package/lib/plugin/DefaultPlugin.d.ts +10 -0
  138. package/lib/plugin/DefaultPlugin.d.ts.map +1 -0
  139. package/lib/plugin/DefaultPlugin.js +17 -0
  140. package/lib/plugin/Plugin.d.ts +53 -0
  141. package/lib/plugin/Plugin.d.ts.map +1 -0
  142. package/lib/plugin/Plugin.js +2 -0
  143. package/lib/plugin/index.d.ts +3 -0
  144. package/lib/plugin/index.d.ts.map +1 -0
  145. package/lib/plugin/index.js +3 -0
  146. package/lib/plugin/makePlugin.d.ts +15 -0
  147. package/lib/plugin/makePlugin.d.ts.map +1 -0
  148. package/lib/plugin/makePlugin.js +16 -0
  149. package/lib/scenes/GeneratorScene.d.ts +95 -0
  150. package/lib/scenes/GeneratorScene.d.ts.map +1 -0
  151. package/lib/scenes/GeneratorScene.js +273 -0
  152. package/lib/scenes/Inspectable.d.ts +71 -0
  153. package/lib/scenes/Inspectable.d.ts.map +1 -0
  154. package/lib/scenes/Inspectable.js +4 -0
  155. package/lib/scenes/LifecycleEvents.d.ts +18 -0
  156. package/lib/scenes/LifecycleEvents.d.ts.map +1 -0
  157. package/lib/scenes/LifecycleEvents.js +45 -0
  158. package/lib/scenes/Random.d.ts +66 -0
  159. package/lib/scenes/Random.d.ts.map +1 -0
  160. package/lib/scenes/Random.js +101 -0
  161. package/lib/scenes/Scene.d.ts +298 -0
  162. package/lib/scenes/Scene.d.ts.map +1 -0
  163. package/lib/scenes/Scene.js +25 -0
  164. package/lib/scenes/SceneState.d.ts +34 -0
  165. package/lib/scenes/SceneState.d.ts.map +1 -0
  166. package/lib/scenes/SceneState.js +35 -0
  167. package/lib/scenes/Shaders.d.ts +63 -0
  168. package/lib/scenes/Shaders.d.ts.map +1 -0
  169. package/lib/scenes/Shaders.js +158 -0
  170. package/lib/scenes/Slides.d.ts +33 -0
  171. package/lib/scenes/Slides.d.ts.map +1 -0
  172. package/lib/scenes/Slides.js +115 -0
  173. package/lib/scenes/Threadable.d.ts +19 -0
  174. package/lib/scenes/Threadable.d.ts.map +1 -0
  175. package/lib/scenes/Threadable.js +4 -0
  176. package/lib/scenes/Variables.d.ts +24 -0
  177. package/lib/scenes/Variables.d.ts.map +1 -0
  178. package/lib/scenes/Variables.js +39 -0
  179. package/lib/scenes/index.d.ts +16 -0
  180. package/lib/scenes/index.d.ts.map +1 -0
  181. package/lib/scenes/index.js +16 -0
  182. package/lib/signals/CompoundSignalContext.d.ts +21 -0
  183. package/lib/signals/CompoundSignalContext.d.ts.map +1 -0
  184. package/lib/signals/CompoundSignalContext.js +73 -0
  185. package/lib/signals/ComputedContext.d.ts +14 -0
  186. package/lib/signals/ComputedContext.d.ts.map +1 -0
  187. package/lib/signals/ComputedContext.js +36 -0
  188. package/lib/signals/DependencyContext.d.ts +32 -0
  189. package/lib/signals/DependencyContext.d.ts.map +1 -0
  190. package/lib/signals/DependencyContext.js +87 -0
  191. package/lib/signals/SignalContext.d.ts +120 -0
  192. package/lib/signals/SignalContext.d.ts.map +1 -0
  193. package/lib/signals/SignalContext.js +245 -0
  194. package/lib/signals/createComputed.d.ts +3 -0
  195. package/lib/signals/createComputed.d.ts.map +1 -0
  196. package/lib/signals/createComputed.js +5 -0
  197. package/lib/signals/createComputedAsync.d.ts +4 -0
  198. package/lib/signals/createComputedAsync.d.ts.map +1 -0
  199. package/lib/signals/createComputedAsync.js +15 -0
  200. package/lib/signals/createSignal.d.ts +5 -0
  201. package/lib/signals/createSignal.d.ts.map +1 -0
  202. package/lib/signals/createSignal.js +6 -0
  203. package/lib/signals/index.d.ts +16 -0
  204. package/lib/signals/index.d.ts.map +1 -0
  205. package/lib/signals/index.js +16 -0
  206. package/lib/signals/symbols.d.ts +2 -0
  207. package/lib/signals/symbols.d.ts.map +1 -0
  208. package/lib/signals/symbols.js +2 -0
  209. package/lib/signals/types.d.ts +51 -0
  210. package/lib/signals/types.d.ts.map +1 -0
  211. package/lib/signals/types.js +2 -0
  212. package/lib/signals/utils.d.ts +5 -0
  213. package/lib/signals/utils.d.ts.map +1 -0
  214. package/lib/signals/utils.js +10 -0
  215. package/lib/threading/Thread.d.ts +77 -0
  216. package/lib/threading/Thread.d.ts.map +1 -0
  217. package/lib/threading/Thread.js +169 -0
  218. package/lib/threading/ThreadGenerator.d.ts +39 -0
  219. package/lib/threading/ThreadGenerator.d.ts.map +1 -0
  220. package/lib/threading/ThreadGenerator.js +17 -0
  221. package/lib/threading/cancel.d.ts +17 -0
  222. package/lib/threading/cancel.d.ts.map +1 -0
  223. package/lib/threading/cancel.js +26 -0
  224. package/lib/threading/index.d.ts +11 -0
  225. package/lib/threading/index.d.ts.map +1 -0
  226. package/lib/threading/index.js +11 -0
  227. package/lib/threading/spawn.d.ts +28 -0
  228. package/lib/threading/spawn.d.ts.map +1 -0
  229. package/lib/threading/spawn.js +30 -0
  230. package/lib/threading/threads.d.ts +46 -0
  231. package/lib/threading/threads.d.ts.map +1 -0
  232. package/lib/threading/threads.js +89 -0
  233. package/lib/transitions/fadeTransition.d.ts +8 -0
  234. package/lib/transitions/fadeTransition.d.ts.map +1 -0
  235. package/lib/transitions/fadeTransition.js +16 -0
  236. package/lib/transitions/index.d.ts +11 -0
  237. package/lib/transitions/index.d.ts.map +1 -0
  238. package/lib/transitions/index.js +11 -0
  239. package/lib/transitions/slideTransition.d.ts +18 -0
  240. package/lib/transitions/slideTransition.d.ts.map +1 -0
  241. package/lib/transitions/slideTransition.js +14 -0
  242. package/lib/transitions/useTransition.d.ts +10 -0
  243. package/lib/transitions/useTransition.d.ts.map +1 -0
  244. package/lib/transitions/useTransition.js +27 -0
  245. package/lib/transitions/zoomInTransition.d.ts +10 -0
  246. package/lib/transitions/zoomInTransition.d.ts.map +1 -0
  247. package/lib/transitions/zoomInTransition.js +33 -0
  248. package/lib/transitions/zoomOutTransition.d.ts +10 -0
  249. package/lib/transitions/zoomOutTransition.d.ts.map +1 -0
  250. package/lib/transitions/zoomOutTransition.js +33 -0
  251. package/lib/tsconfig.build.tsbuildinfo +1 -0
  252. package/lib/tweening/helpers.d.ts +5 -0
  253. package/lib/tweening/helpers.d.ts.map +1 -0
  254. package/lib/tweening/helpers.js +16 -0
  255. package/lib/tweening/index.d.ts +11 -0
  256. package/lib/tweening/index.d.ts.map +1 -0
  257. package/lib/tweening/index.js +11 -0
  258. package/lib/tweening/interpolationFunctions.d.ts +38 -0
  259. package/lib/tweening/interpolationFunctions.d.ts.map +1 -0
  260. package/lib/tweening/interpolationFunctions.js +107 -0
  261. package/lib/tweening/spring.d.ts +20 -0
  262. package/lib/tweening/spring.d.ts.map +1 -0
  263. package/lib/tweening/spring.js +103 -0
  264. package/lib/tweening/timingFunctions.d.ts +46 -0
  265. package/lib/tweening/timingFunctions.d.ts.map +1 -0
  266. package/lib/tweening/timingFunctions.js +233 -0
  267. package/lib/tweening/tween.d.ts +3 -0
  268. package/lib/tweening/tween.d.ts.map +1 -0
  269. package/lib/tweening/tween.js +21 -0
  270. package/lib/types/BBox.d.ts +73 -0
  271. package/lib/types/BBox.d.ts.map +1 -0
  272. package/lib/types/BBox.js +249 -0
  273. package/lib/types/Canvas.d.ts +3 -0
  274. package/lib/types/Canvas.d.ts.map +1 -0
  275. package/lib/types/Canvas.js +2 -0
  276. package/lib/types/Color.d.ts +65 -0
  277. package/lib/types/Color.d.ts.map +1 -0
  278. package/lib/types/Color.js +185 -0
  279. package/lib/types/Matrix.d.ts +3 -0
  280. package/lib/types/Matrix.d.ts.map +1 -0
  281. package/lib/types/Matrix.js +10 -0
  282. package/lib/types/Matrix2D.d.ts +363 -0
  283. package/lib/types/Matrix2D.d.ts.map +1 -0
  284. package/lib/types/Matrix2D.js +554 -0
  285. package/lib/types/Origin.d.ts +17 -0
  286. package/lib/types/Origin.d.ts.map +1 -0
  287. package/lib/types/Origin.js +53 -0
  288. package/lib/types/Spacing.d.ts +36 -0
  289. package/lib/types/Spacing.d.ts.map +1 -0
  290. package/lib/types/Spacing.js +70 -0
  291. package/lib/types/Type.d.ts +9 -0
  292. package/lib/types/Type.d.ts.map +1 -0
  293. package/lib/types/Type.js +5 -0
  294. package/lib/types/Vector.d.ts +203 -0
  295. package/lib/types/Vector.d.ts.map +1 -0
  296. package/lib/types/Vector.js +355 -0
  297. package/lib/types/alignment-enums.d.ts +22 -0
  298. package/lib/types/alignment-enums.d.ts.map +1 -0
  299. package/lib/types/alignment-enums.js +25 -0
  300. package/lib/types/index.d.ts +17 -0
  301. package/lib/types/index.d.ts.map +1 -0
  302. package/lib/types/index.js +17 -0
  303. package/lib/types/vector-transformations.d.ts +20 -0
  304. package/lib/types/vector-transformations.d.ts.map +1 -0
  305. package/lib/types/vector-transformations.js +31 -0
  306. package/lib/utils/DetailedError.d.ts +24 -0
  307. package/lib/utils/DetailedError.d.ts.map +1 -0
  308. package/lib/utils/DetailedError.js +16 -0
  309. package/lib/utils/ExperimentalError.d.ts +10 -0
  310. package/lib/utils/ExperimentalError.d.ts.map +1 -0
  311. package/lib/utils/ExperimentalError.js +32 -0
  312. package/lib/utils/Semaphore.d.ts +12 -0
  313. package/lib/utils/Semaphore.d.ts.map +1 -0
  314. package/lib/utils/Semaphore.js +25 -0
  315. package/lib/utils/beginSlide.d.ts +3 -0
  316. package/lib/utils/beginSlide.d.ts.map +1 -0
  317. package/lib/utils/beginSlide.js +12 -0
  318. package/lib/utils/capitalize.d.ts +2 -0
  319. package/lib/utils/capitalize.d.ts.map +1 -0
  320. package/lib/utils/capitalize.js +4 -0
  321. package/lib/utils/createRef.d.ts +15 -0
  322. package/lib/utils/createRef.d.ts.map +1 -0
  323. package/lib/utils/createRef.js +21 -0
  324. package/lib/utils/createRefArray.d.ts +27 -0
  325. package/lib/utils/createRefArray.d.ts.map +1 -0
  326. package/lib/utils/createRefArray.js +49 -0
  327. package/lib/utils/createRefMap.d.ts +50 -0
  328. package/lib/utils/createRefMap.d.ts.map +1 -0
  329. package/lib/utils/createRefMap.js +77 -0
  330. package/lib/utils/debug.d.ts +24 -0
  331. package/lib/utils/debug.d.ts.map +1 -0
  332. package/lib/utils/debug.js +47 -0
  333. package/lib/utils/deprecate.d.ts +9 -0
  334. package/lib/utils/deprecate.d.ts.map +1 -0
  335. package/lib/utils/deprecate.js +15 -0
  336. package/lib/utils/errorToLog.d.ts +3 -0
  337. package/lib/utils/errorToLog.d.ts.map +1 -0
  338. package/lib/utils/errorToLog.js +8 -0
  339. package/lib/utils/experimentalLog.d.ts +3 -0
  340. package/lib/utils/experimentalLog.d.ts.map +1 -0
  341. package/lib/utils/experimentalLog.js +10 -0
  342. package/lib/utils/getContext.d.ts +2 -0
  343. package/lib/utils/getContext.d.ts.map +1 -0
  344. package/lib/utils/getContext.js +8 -0
  345. package/lib/utils/index.d.ts +26 -0
  346. package/lib/utils/index.d.ts.map +1 -0
  347. package/lib/utils/index.js +26 -0
  348. package/lib/utils/math.d.ts +15 -0
  349. package/lib/utils/math.d.ts.map +1 -0
  350. package/lib/utils/math.js +15 -0
  351. package/lib/utils/range.d.ts +40 -0
  352. package/lib/utils/range.d.ts.map +1 -0
  353. package/lib/utils/range.js +18 -0
  354. package/lib/utils/useContext.d.ts +13 -0
  355. package/lib/utils/useContext.d.ts.map +1 -0
  356. package/lib/utils/useContext.js +18 -0
  357. package/lib/utils/usePlayback.d.ts +8 -0
  358. package/lib/utils/usePlayback.d.ts.map +1 -0
  359. package/lib/utils/usePlayback.js +20 -0
  360. package/lib/utils/useScene.d.ts +17 -0
  361. package/lib/utils/useScene.d.ts.map +1 -0
  362. package/lib/utils/useScene.js +33 -0
  363. package/lib/utils/useThread.d.ts +8 -0
  364. package/lib/utils/useThread.d.ts.map +1 -0
  365. package/lib/utils/useThread.js +24 -0
  366. package/lib/utils/useTime.d.ts +19 -0
  367. package/lib/utils/useTime.d.ts.map +1 -0
  368. package/lib/utils/useTime.js +22 -0
  369. package/package.json +36 -0
  370. package/project.d.ts +24 -0
  371. package/shaders/common.glsl +15 -0
  372. package/shaders/fragment.glsl +8 -0
  373. package/tsconfig.project.json +14 -0
@@ -0,0 +1,355 @@
1
+ import { CompoundSignalContext } from '../signals';
2
+ import { arcLerp, clamp, map } from '../tweening';
3
+ import { DEG2RAD, RAD2DEG } from '../utils';
4
+ import { Direction, Origin } from './alignment-enums';
5
+ import { EPSILON } from './Type';
6
+ /**
7
+ * Represents a two-dimensional vector.
8
+ */
9
+ export class Vector2 {
10
+ static createSignal(initial, interpolation = Vector2.lerp, owner) {
11
+ return new CompoundSignalContext(['x', 'y'], (value) => new Vector2(value), initial, interpolation, owner).toSignal();
12
+ }
13
+ static lerp(from, to, value) {
14
+ let valueX;
15
+ let valueY;
16
+ if (typeof value === 'number') {
17
+ valueX = valueY = value;
18
+ }
19
+ else {
20
+ valueX = value.x;
21
+ valueY = value.y;
22
+ }
23
+ return new Vector2(map(from.x, to.x, valueX), map(from.y, to.y, valueY));
24
+ }
25
+ static arcLerp(from, to, value, reverse = false, ratio) {
26
+ ratio ?? (ratio = from.sub(to).ctg);
27
+ return Vector2.lerp(from, to, new Vector2(arcLerp(value, reverse, ratio)));
28
+ }
29
+ static createArcLerp(reverse, ratio) {
30
+ return (from, to, value) => Vector2.arcLerp(from, to, value, reverse, ratio);
31
+ }
32
+ /**
33
+ * Interpolates between two vectors on the polar plane by interpolating
34
+ * the angles and magnitudes of the vectors individually.
35
+ *
36
+ * @param from - The starting vector.
37
+ * @param to - The target vector.
38
+ * @param value - The t-value of the interpolation.
39
+ * @param counterclockwise - Whether the vector should get rotated
40
+ * counterclockwise. Defaults to `false`.
41
+ * @param origin - The center of rotation. Defaults to the origin.
42
+ *
43
+ * @remarks
44
+ * This function is useful when used in conjunction with {@link rotate} to
45
+ * animate an object's position on a circular arc (see examples).
46
+ *
47
+ * @example
48
+ * Animating an object in a circle around the origin
49
+ * ```tsx
50
+ * circle().position(
51
+ * circle().position().rotate(180),
52
+ * 1,
53
+ * easeInOutCubic,
54
+ * Vector2.polarLerp
55
+ * );
56
+ * ```
57
+ * @example
58
+ * Rotating an object around the point `[-200, 100]`
59
+ * ```ts
60
+ * circle().position(
61
+ * circle().position().rotate(180, [-200, 100]),
62
+ * 1,
63
+ * easeInOutCubic,
64
+ * Vector2.createPolarLerp(false, [-200, 100]),
65
+ * );
66
+ * ```
67
+ * @example
68
+ * Rotating an object counterclockwise around the origin
69
+ * ```ts
70
+ * circle().position(
71
+ * circle().position().rotate(180),
72
+ * 1,
73
+ * easeInOutCubic,
74
+ * Vector2.createPolarLerp(true),
75
+ * );
76
+ * ```
77
+ */
78
+ static polarLerp(from, to, value, counterclockwise = false, origin = Vector2.zero) {
79
+ from = from.sub(origin);
80
+ to = to.sub(origin);
81
+ const fromAngle = from.degrees;
82
+ let toAngle = to.degrees;
83
+ const isCounterclockwise = fromAngle > toAngle;
84
+ if (isCounterclockwise !== counterclockwise) {
85
+ toAngle = toAngle + (counterclockwise ? -360 : 360);
86
+ }
87
+ const angle = map(fromAngle, toAngle, value) * DEG2RAD;
88
+ const magnitude = map(from.magnitude, to.magnitude, value);
89
+ return new Vector2(magnitude * Math.cos(angle) + origin.x, magnitude * Math.sin(angle) + origin.y);
90
+ }
91
+ /**
92
+ * Helper function to create a {@link Vector2.polarLerp} interpolation
93
+ * function with additional parameters.
94
+ *
95
+ * @param counterclockwise - Whether the point should get rotated
96
+ * counterclockwise.
97
+ * @param center - The center of rotation. Defaults to the origin.
98
+ */
99
+ static createPolarLerp(counterclockwise = false, center = Vector2.zero) {
100
+ return (from, to, value) => Vector2.polarLerp(from, to, value, counterclockwise, new Vector2(center));
101
+ }
102
+ static fromOrigin(origin) {
103
+ const position = new Vector2();
104
+ if (origin === Origin.Middle) {
105
+ return position;
106
+ }
107
+ if (origin & Direction.Left) {
108
+ position.x = -1;
109
+ }
110
+ else if (origin & Direction.Right) {
111
+ position.x = 1;
112
+ }
113
+ if (origin & Direction.Top) {
114
+ position.y = -1;
115
+ }
116
+ else if (origin & Direction.Bottom) {
117
+ position.y = 1;
118
+ }
119
+ return position;
120
+ }
121
+ static fromScalar(value) {
122
+ return new Vector2(value, value);
123
+ }
124
+ static fromRadians(radians) {
125
+ return new Vector2(Math.cos(radians), Math.sin(radians));
126
+ }
127
+ static fromDegrees(degrees) {
128
+ return Vector2.fromRadians(degrees * DEG2RAD);
129
+ }
130
+ /**
131
+ * Return the angle in radians between the vector described by x and y and the
132
+ * positive x-axis.
133
+ *
134
+ * @param x - The x component of the vector.
135
+ * @param y - The y component of the vector.
136
+ */
137
+ static radians(x, y) {
138
+ return Math.atan2(y, x);
139
+ }
140
+ /**
141
+ * Return the angle in degrees between the vector described by x and y and the
142
+ * positive x-axis.
143
+ *
144
+ * @param x - The x component of the vector.
145
+ * @param y - The y component of the vector.
146
+ *
147
+ * @remarks
148
+ * The returned angle will be between -180 and 180 degrees.
149
+ */
150
+ static degrees(x, y) {
151
+ return Vector2.radians(x, y) * RAD2DEG;
152
+ }
153
+ static magnitude(x, y) {
154
+ return Math.sqrt(x * x + y * y);
155
+ }
156
+ static squaredMagnitude(x, y) {
157
+ return x * x + y * y;
158
+ }
159
+ static angleBetween(u, v) {
160
+ return (Math.acos(clamp(-1, 1, u.dot(v) / (u.magnitude * v.magnitude))) *
161
+ (u.cross(v) >= 0 ? 1 : -1));
162
+ }
163
+ get width() {
164
+ return this.x;
165
+ }
166
+ set width(value) {
167
+ this.x = value;
168
+ }
169
+ get height() {
170
+ return this.y;
171
+ }
172
+ set height(value) {
173
+ this.y = value;
174
+ }
175
+ get magnitude() {
176
+ return Vector2.magnitude(this.x, this.y);
177
+ }
178
+ get squaredMagnitude() {
179
+ return Vector2.squaredMagnitude(this.x, this.y);
180
+ }
181
+ get normalized() {
182
+ return this.scale(1 / Vector2.magnitude(this.x, this.y));
183
+ }
184
+ get safe() {
185
+ return new Vector2(isNaN(this.x) ? 0 : this.x, isNaN(this.y) ? 0 : this.y);
186
+ }
187
+ get flipped() {
188
+ return new Vector2(-this.x, -this.y);
189
+ }
190
+ get floored() {
191
+ return new Vector2(Math.floor(this.x), Math.floor(this.y));
192
+ }
193
+ get perpendicular() {
194
+ return new Vector2(this.y, -this.x);
195
+ }
196
+ /**
197
+ * Return the angle in radians between the vector and the positive x-axis.
198
+ */
199
+ get radians() {
200
+ return Vector2.radians(this.x, this.y);
201
+ }
202
+ /**
203
+ * Return the angle in degrees between the vector and the positive x-axis.
204
+ *
205
+ * @remarks
206
+ * The returned angle will be between -180 and 180 degrees.
207
+ */
208
+ get degrees() {
209
+ return Vector2.degrees(this.x, this.y);
210
+ }
211
+ get ctg() {
212
+ return this.x / this.y;
213
+ }
214
+ constructor(one, two) {
215
+ this.x = 0;
216
+ this.y = 0;
217
+ if (one === undefined || one === null) {
218
+ return;
219
+ }
220
+ if (typeof one !== 'object') {
221
+ this.x = one;
222
+ this.y = two ?? one;
223
+ return;
224
+ }
225
+ if (Array.isArray(one)) {
226
+ this.x = one[0];
227
+ this.y = one[1];
228
+ return;
229
+ }
230
+ if ('width' in one) {
231
+ this.x = one.width;
232
+ this.y = one.height;
233
+ return;
234
+ }
235
+ this.x = one.x;
236
+ this.y = one.y;
237
+ }
238
+ lerp(to, value) {
239
+ return Vector2.lerp(this, to, value);
240
+ }
241
+ getOriginOffset(origin) {
242
+ const offset = Vector2.fromOrigin(origin);
243
+ offset.x *= this.x / 2;
244
+ offset.y *= this.y / 2;
245
+ return offset;
246
+ }
247
+ scale(value) {
248
+ return new Vector2(this.x * value, this.y * value);
249
+ }
250
+ mul(possibleVector) {
251
+ const vector = new Vector2(possibleVector);
252
+ return new Vector2(this.x * vector.x, this.y * vector.y);
253
+ }
254
+ div(possibleVector) {
255
+ const vector = new Vector2(possibleVector);
256
+ return new Vector2(this.x / vector.x, this.y / vector.y);
257
+ }
258
+ add(possibleVector) {
259
+ const vector = new Vector2(possibleVector);
260
+ return new Vector2(this.x + vector.x, this.y + vector.y);
261
+ }
262
+ sub(possibleVector) {
263
+ const vector = new Vector2(possibleVector);
264
+ return new Vector2(this.x - vector.x, this.y - vector.y);
265
+ }
266
+ dot(possibleVector) {
267
+ const vector = new Vector2(possibleVector);
268
+ return this.x * vector.x + this.y * vector.y;
269
+ }
270
+ cross(possibleVector) {
271
+ const vector = new Vector2(possibleVector);
272
+ return this.x * vector.y - this.y * vector.x;
273
+ }
274
+ mod(possibleVector) {
275
+ const vector = new Vector2(possibleVector);
276
+ return new Vector2(this.x % vector.x, this.y % vector.y);
277
+ }
278
+ addX(value) {
279
+ return new Vector2(this.x + value, this.y);
280
+ }
281
+ addY(value) {
282
+ return new Vector2(this.x, this.y + value);
283
+ }
284
+ toSymbol() {
285
+ return Vector2.symbol;
286
+ }
287
+ toString() {
288
+ return `Vector2(${this.x}, ${this.y})`;
289
+ }
290
+ toUniform(gl, location) {
291
+ gl.uniform2f(location, this.x, this.y);
292
+ }
293
+ serialize() {
294
+ return { x: this.x, y: this.y };
295
+ }
296
+ /**
297
+ * Check if two vectors are exactly equal to each other.
298
+ *
299
+ * @remarks
300
+ * If you need to compensate for floating point inaccuracies, use the
301
+ * {@link equals} method, instead.
302
+ *
303
+ * @param other - The vector to compare.
304
+ */
305
+ exactlyEquals(other) {
306
+ return this.x === other.x && this.y === other.y;
307
+ }
308
+ /**
309
+ * Check if two vectors are equal to each other.
310
+ *
311
+ * @remarks
312
+ * This method allows passing an allowed error margin when comparing vectors
313
+ * to compensate for floating point inaccuracies. To check if two vectors are
314
+ * exactly equal, use the {@link exactlyEquals} method, instead.
315
+ *
316
+ * @param other - The vector to compare.
317
+ * @param threshold - The allowed error threshold when comparing the vectors.
318
+ */
319
+ equals(other, threshold = EPSILON) {
320
+ return (Math.abs(this.x - other.x) <= threshold + Number.EPSILON &&
321
+ Math.abs(this.y - other.y) <= threshold + Number.EPSILON);
322
+ }
323
+ }
324
+ Vector2.symbol = Symbol.for('@twick/core/types/Vector2');
325
+ Vector2.zero = new Vector2();
326
+ Vector2.one = new Vector2(1, 1);
327
+ Vector2.right = new Vector2(1, 0);
328
+ Vector2.left = new Vector2(-1, 0);
329
+ Vector2.up = new Vector2(0, 1);
330
+ Vector2.down = new Vector2(0, -1);
331
+ /**
332
+ * A constant equal to `Vector2(0, -1)`
333
+ */
334
+ Vector2.top = new Vector2(0, -1);
335
+ /**
336
+ * A constant equal to `Vector2(0, 1)`
337
+ */
338
+ Vector2.bottom = new Vector2(0, 1);
339
+ /**
340
+ * A constant equal to `Vector2(-1, -1)`
341
+ */
342
+ Vector2.topLeft = new Vector2(-1, -1);
343
+ /**
344
+ * A constant equal to `Vector2(1, -1)`
345
+ */
346
+ Vector2.topRight = new Vector2(1, -1);
347
+ /**
348
+ * A constant equal to `Vector2(-1, 1)`
349
+ */
350
+ Vector2.bottomLeft = new Vector2(-1, 1);
351
+ /**
352
+ * A constant equal to `Vector2(1, 1)`
353
+ */
354
+ Vector2.bottomRight = new Vector2(1, 1);
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1ZlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFakQsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQXVCL0I7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQXNDWCxNQUFNLENBQUMsWUFBWSxDQUN4QixPQUFzQyxFQUN0QyxnQkFBZ0QsT0FBTyxDQUFDLElBQUksRUFDNUQsS0FBVztRQUVYLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQ1YsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDOUMsT0FBTyxFQUNQLGFBQWEsRUFDYixLQUFLLENBQ04sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQWEsRUFBRSxFQUFXLEVBQUUsS0FBdUI7UUFDcEUsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLE1BQU0sQ0FBQztRQUVYLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztR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
@@ -0,0 +1,22 @@
1
+ export declare enum Direction {
2
+ Top = 4,
3
+ Bottom = 8,
4
+ Left = 16,
5
+ Right = 32
6
+ }
7
+ export declare enum Center {
8
+ Vertical = 1,
9
+ Horizontal = 2
10
+ }
11
+ export declare enum Origin {
12
+ Middle = 3,
13
+ Top = 5,
14
+ Bottom = 9,
15
+ Left = 18,
16
+ Right = 34,
17
+ TopLeft = 20,
18
+ TopRight = 36,
19
+ BottomLeft = 24,
20
+ BottomRight = 40
21
+ }
22
+ //# sourceMappingURL=alignment-enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment-enums.d.ts","sourceRoot":"","sources":["../../src/types/alignment-enums.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,GAAG,IAAI;IACP,MAAM,IAAI;IACV,IAAI,KAAK;IACT,KAAK,KAAK;CACX;AAED,oBAAY,MAAM;IAChB,QAAQ,IAAI;IACZ,UAAU,IAAI;CACf;AAED,oBAAY,MAAM;IAChB,MAAM,IAAI;IACV,GAAG,IAAI;IACP,MAAM,IAAI;IACV,IAAI,KAAK;IACT,KAAK,KAAK;IACV,OAAO,KAAK;IACZ,QAAQ,KAAK;IACb,UAAU,KAAK;IACf,WAAW,KAAK;CACjB"}
@@ -0,0 +1,25 @@
1
+ export var Direction;
2
+ (function (Direction) {
3
+ Direction[Direction["Top"] = 4] = "Top";
4
+ Direction[Direction["Bottom"] = 8] = "Bottom";
5
+ Direction[Direction["Left"] = 16] = "Left";
6
+ Direction[Direction["Right"] = 32] = "Right";
7
+ })(Direction || (Direction = {}));
8
+ export var Center;
9
+ (function (Center) {
10
+ Center[Center["Vertical"] = 1] = "Vertical";
11
+ Center[Center["Horizontal"] = 2] = "Horizontal";
12
+ })(Center || (Center = {}));
13
+ export var Origin;
14
+ (function (Origin) {
15
+ Origin[Origin["Middle"] = 3] = "Middle";
16
+ Origin[Origin["Top"] = 5] = "Top";
17
+ Origin[Origin["Bottom"] = 9] = "Bottom";
18
+ Origin[Origin["Left"] = 18] = "Left";
19
+ Origin[Origin["Right"] = 34] = "Right";
20
+ Origin[Origin["TopLeft"] = 20] = "TopLeft";
21
+ Origin[Origin["TopRight"] = 36] = "TopRight";
22
+ Origin[Origin["BottomLeft"] = 24] = "BottomLeft";
23
+ Origin[Origin["BottomRight"] = 40] = "BottomRight";
24
+ })(Origin || (Origin = {}));
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpZ25tZW50LWVudW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2FsaWdubWVudC1lbnVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLHVDQUFPLENBQUE7SUFDUCw2Q0FBVSxDQUFBO0lBQ1YsMENBQVMsQ0FBQTtJQUNULDRDQUFVLENBQUE7QUFDWixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUdYO0FBSEQsV0FBWSxNQUFNO0lBQ2hCLDJDQUFZLENBQUE7SUFDWiwrQ0FBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxNQUFNLEtBQU4sTUFBTSxRQUdqQjtBQUVELE1BQU0sQ0FBTixJQUFZLE1BVVg7QUFWRCxXQUFZLE1BQU07SUFDaEIsdUNBQVUsQ0FBQTtJQUNWLGlDQUFPLENBQUE7SUFDUCx1Q0FBVSxDQUFBO0lBQ1Ysb0NBQVMsQ0FBQTtJQUNULHNDQUFVLENBQUE7SUFDViwwQ0FBWSxDQUFBO0lBQ1osNENBQWEsQ0FBQTtJQUNiLGdEQUFlLENBQUE7SUFDZixrREFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBVlcsTUFBTSxLQUFOLE1BQU0sUUFVakIifQ==
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Complex types used in animations.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export * from './alignment-enums';
7
+ export * from './BBox';
8
+ export * from './Canvas';
9
+ export * from './Color';
10
+ export * from './Matrix';
11
+ export * from './Matrix2D';
12
+ export * from './Origin';
13
+ export * from './Spacing';
14
+ export * from './Type';
15
+ export * from './Vector';
16
+ export * from './vector-transformations';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Complex types used in animations.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export * from './alignment-enums';
7
+ export * from './BBox';
8
+ export * from './Canvas';
9
+ export * from './Color';
10
+ export * from './Matrix';
11
+ export * from './Matrix2D';
12
+ export * from './Origin';
13
+ export * from './Spacing';
14
+ export * from './Type';
15
+ export * from './Vector';
16
+ export * from './vector-transformations';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywwQkFBMEIsQ0FBQyJ9
@@ -0,0 +1,20 @@
1
+ /**
2
+ * These are the functions that can be used to apply transformations to a vector.
3
+ *
4
+ * These can't be methods of the vector class because they depend on Matrix2D which
5
+ * would create a circular dependency.
6
+ */
7
+ import type { PossibleMatrix2D } from './Matrix2D';
8
+ import type { PossibleVector2 } from './Vector';
9
+ import { Vector2 } from './Vector';
10
+ export declare function transformVectorAsPoint(vector: Vector2, matrix: PossibleMatrix2D): Vector2;
11
+ export declare function transformVector(vector: Vector2, matrix: PossibleMatrix2D): Vector2;
12
+ /**
13
+ * Rotates the vector around a point by the provided angle.
14
+ *
15
+ * @param vector - The vector to rotate.
16
+ * @param angle - The angle by which to rotate in degrees.
17
+ * @param center - The center of rotation. Defaults to the origin.
18
+ */
19
+ export declare function rotateVector(vector: Vector2, angle: number, center?: PossibleVector2): Vector2;
20
+ //# sourceMappingURL=vector-transformations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-transformations.d.ts","sourceRoot":"","sources":["../../src/types/vector-transformations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAEjD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAEjC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,gBAAgB,WAQzB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,WAOxE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,eAA8B,GACrC,OAAO,CAQT"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * These are the functions that can be used to apply transformations to a vector.
3
+ *
4
+ * These can't be methods of the vector class because they depend on Matrix2D which
5
+ * would create a circular dependency.
6
+ */
7
+ import { Matrix2D } from './Matrix2D';
8
+ import { Vector2 } from './Vector';
9
+ export function transformVectorAsPoint(vector, matrix) {
10
+ const m = new Matrix2D(matrix);
11
+ return new Vector2(vector.x * m.scaleX + vector.y * m.skewY + m.translateX, vector.x * m.skewX + vector.y * m.scaleY + m.translateY);
12
+ }
13
+ export function transformVector(vector, matrix) {
14
+ const m = new Matrix2D(matrix);
15
+ return new Vector2(vector.x * m.scaleX + vector.y * m.skewY, vector.x * m.skewX + vector.y * m.scaleY);
16
+ }
17
+ /**
18
+ * Rotates the vector around a point by the provided angle.
19
+ *
20
+ * @param vector - The vector to rotate.
21
+ * @param angle - The angle by which to rotate in degrees.
22
+ * @param center - The center of rotation. Defaults to the origin.
23
+ */
24
+ export function rotateVector(vector, angle, center = Vector2.zero) {
25
+ const originVector = new Vector2(center);
26
+ const matrix = Matrix2D.fromTranslation(originVector)
27
+ .rotate(angle)
28
+ .translate(originVector.flipped);
29
+ return transformVectorAsPoint(vector, matrix);
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLXRyYW5zZm9ybWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy92ZWN0b3ItdHJhbnNmb3JtYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBR0gsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRWpDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsTUFBZSxFQUNmLE1BQXdCO0lBRXhCLE1BQU0sQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9CLE9BQU8sSUFBSSxPQUFPLENBQ2hCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFDdkQsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUN4RCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBZSxFQUFFLE1BQXdCO0lBQ3ZFLE1BQU0sQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9CLE9BQU8sSUFBSSxPQUFPLENBQ2hCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ3hDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQ3pDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsTUFBZSxFQUNmLEtBQWEsRUFDYixTQUEwQixPQUFPLENBQUMsSUFBSTtJQUV0QyxNQUFNLFlBQVksR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztTQUNsRCxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2IsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuQyxPQUFPLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRCxDQUFDIn0=
@@ -0,0 +1,24 @@
1
+ import type { LogPayload } from '../app';
2
+ type DetailedErrorProps = Pick<LogPayload, 'message' | 'remarks' | 'object' | 'durationMs' | 'inspect'>;
3
+ export declare class DetailedError extends Error {
4
+ /**
5
+ * {@inheritDoc app.LogPayload.message}
6
+ */
7
+ readonly remarks?: string;
8
+ /**
9
+ * {@inheritDoc app.LogPayload.object}
10
+ */
11
+ readonly object?: any;
12
+ /**
13
+ * {@inheritDoc app.LogPayload.durationMs}
14
+ */
15
+ readonly durationMs?: number;
16
+ /**
17
+ * {@inheritDoc app.LogPayload.inspect}
18
+ */
19
+ readonly inspect?: string;
20
+ constructor(message: string, remarks?: string);
21
+ constructor(props: DetailedErrorProps);
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=DetailedError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailedError.d.ts","sourceRoot":"","sources":["../../src/utils/DetailedError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAEvC,KAAK,kBAAkB,GAAG,IAAI,CAC5B,UAAU,EACV,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAC5D,CAAC;AAEF,qBAAa,aAAc,SAAQ,KAAK;IACtC;;OAEG;IACH,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC;;OAEG;IACH,SAAgB,MAAM,CAAC,EAAE,GAAG,CAAC;IAC7B;;OAEG;IACH,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC;;OAEG;IACH,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;gBACjC,KAAK,EAAE,kBAAkB;CAa7C"}
@@ -0,0 +1,16 @@
1
+ export class DetailedError extends Error {
2
+ constructor(props, remarks) {
3
+ if (typeof props === 'string') {
4
+ super(props);
5
+ this.remarks = remarks;
6
+ }
7
+ else {
8
+ super(props.message);
9
+ this.remarks = props.remarks;
10
+ this.object = props.object;
11
+ this.durationMs = props.durationMs;
12
+ this.inspect = props.inspect;
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGV0YWlsZWRFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9EZXRhaWxlZEVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxhQUFjLFNBQVEsS0FBSztJQW9CdEMsWUFBbUIsS0FBa0MsRUFBRSxPQUFnQjtRQUNyRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
@@ -0,0 +1,10 @@
1
+ import type { LogPayload } from '../app';
2
+ import { DetailedError } from './DetailedError';
3
+ export declare const experimentalFeatures = "\nThis feature requires enabling the `experimentalFeatures` flag in your project\nconfiguration:\n\n```ts\nexport default makeProject({\n experimentalFeatures: true,\n // ...\n});\n```\n\n[Learn more](https://motioncanvas.io/docs/experimental) about experimental\nfeatures.\n";
4
+ type ExperimentalErrorProps = Pick<LogPayload, 'message' | 'remarks' | 'object' | 'durationMs' | 'inspect'>;
5
+ export declare class ExperimentalError extends DetailedError {
6
+ constructor(message: string, remarks?: string);
7
+ constructor(props: ExperimentalErrorProps);
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=ExperimentalError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExperimentalError.d.ts","sourceRoot":"","sources":["../../src/utils/ExperimentalError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,oBAAoB,0RAahC,CAAC;AAEF,KAAK,sBAAsB,GAAG,IAAI,CAChC,UAAU,EACV,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAC5D,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,aAAa;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;gBACjC,KAAK,EAAE,sBAAsB;CAcjD"}
@@ -0,0 +1,32 @@
1
+ import { DetailedError } from './DetailedError';
2
+ export const experimentalFeatures = `
3
+ This feature requires enabling the \`experimentalFeatures\` flag in your project
4
+ configuration:
5
+
6
+ \`\`\`ts
7
+ export default makeProject({
8
+ experimentalFeatures: true,
9
+ // ...
10
+ });
11
+ \`\`\`
12
+
13
+ [Learn more](https://motioncanvas.io/docs/experimental) about experimental
14
+ features.
15
+ `;
16
+ export class ExperimentalError extends DetailedError {
17
+ constructor(props, remarks) {
18
+ if (typeof props === 'string') {
19
+ super({
20
+ message: props,
21
+ remarks: (remarks ?? '') + experimentalFeatures,
22
+ });
23
+ }
24
+ else {
25
+ super({
26
+ ...props,
27
+ remarks: (props.remarks ?? '') + experimentalFeatures,
28
+ });
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwZXJpbWVudGFsRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvRXhwZXJpbWVudGFsRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHOzs7Ozs7Ozs7Ozs7O0NBYW5DLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQUdsRCxZQUFtQixLQUFzQyxFQUFFLE9BQWdCO1FBQ3pFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDO2dCQUNKLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsR0FBRyxvQkFBb0I7YUFDaEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUM7Z0JBQ0osR0FBRyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEdBQUcsb0JBQW9CO2FBQ3RELENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A simple semaphore implementation with a capacity of 1.
3
+ *
4
+ * @internal
5
+ */
6
+ export declare class Semaphore {
7
+ private resolveCurrent;
8
+ private current;
9
+ acquire(): Promise<void>;
10
+ release(): void;
11
+ }
12
+ //# sourceMappingURL=Semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/utils/Semaphore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,OAAO,CAA8B;IAEhC,OAAO;IASb,OAAO;CAKf"}