@ue-too/board 0.5.1 → 0.5.2

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 (270) hide show
  1. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/boardify/index.js +475 -0
  2. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/boardify/index.js.map +1 -0
  3. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/base.js +340 -0
  4. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/base.js.map +1 -0
  5. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/animation-and-lock.js +88 -0
  6. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/animation-and-lock.js.map +1 -0
  7. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/index.js +5 -0
  8. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/index.js.map +1 -0
  9. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/pan-control-state-machine.js +157 -0
  10. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/pan-control-state-machine.js.map +1 -0
  11. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/rotation-control-state-machine.js +151 -0
  12. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/rotation-control-state-machine.js.map +1 -0
  13. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/zoom-control-state-machine.js +153 -0
  14. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/zoom-control-state-machine.js.map +1 -0
  15. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/index.js +4 -0
  16. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/index.js.map +1 -0
  17. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/interface.js +2 -0
  18. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/interface.js.map +1 -0
  19. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/relay.js +38 -0
  20. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/relay.js.map +1 -0
  21. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/camera-rig.js +454 -0
  22. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/camera-rig.js.map +1 -0
  23. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/index.js +6 -0
  24. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/index.js.map +1 -0
  25. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/pan-handler.js +124 -0
  26. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/pan-handler.js.map +1 -0
  27. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/rotation-handler.js +71 -0
  28. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/rotation-handler.js.map +1 -0
  29. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/index.js +4 -0
  30. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/index.js.map +1 -0
  31. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/position-update-batcher.js +97 -0
  32. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/position-update-batcher.js.map +1 -0
  33. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/rotation-update-batcher.js +91 -0
  34. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/rotation-update-batcher.js.map +1 -0
  35. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/zoom-udpate-batcher.js +128 -0
  36. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/zoom-udpate-batcher.js.map +1 -0
  37. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/zoom-handler.js +76 -0
  38. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/zoom-handler.js.map +1 -0
  39. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/default-camera.js +258 -0
  40. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/default-camera.js.map +1 -0
  41. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/index.js +9 -0
  42. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/index.js.map +1 -0
  43. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/interface.js +2 -0
  44. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/interface.js.map +1 -0
  45. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/update-publisher.js +74 -0
  46. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/update-publisher.js.map +1 -0
  47. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/coordinate-conversion.js +150 -0
  48. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/coordinate-conversion.js.map +1 -0
  49. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/index.js +6 -0
  50. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/index.js.map +1 -0
  51. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/matrix.js +421 -0
  52. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/matrix.js.map +1 -0
  53. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/position.js +177 -0
  54. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/position.js.map +1 -0
  55. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/rotation.js +122 -0
  56. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/rotation.js.map +1 -0
  57. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/zoom.js +46 -0
  58. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/zoom.js.map +1 -0
  59. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/index.js +6 -0
  60. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/index.js.map +1 -0
  61. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/index.js +4 -0
  62. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/index.js.map +1 -0
  63. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/index.js +5 -0
  64. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/index.js.map +1 -0
  65. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/kmt-input-context.js +191 -0
  66. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/kmt-input-context.js.map +1 -0
  67. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/kmt-input-state-machine.js +342 -0
  68. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/kmt-input-state-machine.js.map +1 -0
  69. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/touch-input-context.js +62 -0
  70. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/touch-input-context.js.map +1 -0
  71. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/touch-input-state-machine.js +173 -0
  72. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/touch-input-state-machine.js.map +1 -0
  73. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/index.js +3 -0
  74. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/index.js.map +1 -0
  75. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.js +123 -0
  76. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.js.map +1 -0
  77. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/vanilla-touch-event-parser.js +118 -0
  78. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/vanilla-touch-event-parser.js.map +1 -0
  79. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/index.js +2 -0
  80. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/index.js.map +1 -0
  81. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/raw-input-publisher.js +99 -0
  82. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/raw-input-publisher.js.map +1 -0
  83. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/canvas-position-dimension.js +184 -0
  84. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/canvas-position-dimension.js.map +1 -0
  85. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/coorindate-conversion.js +10 -0
  86. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/coorindate-conversion.js.map +1 -0
  87. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing-utils.js +450 -0
  88. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing-utils.js.map +1 -0
  89. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing.js +192 -0
  90. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing.js.map +1 -0
  91. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/handler-pipeline.js +27 -0
  92. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/handler-pipeline.js.map +1 -0
  93. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/index.js +9 -0
  94. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/index.js.map +1 -0
  95. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/observable.js +47 -0
  96. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/observable.js.map +1 -0
  97. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/ruler.js +21 -0
  98. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/ruler.js.map +1 -0
  99. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/zoomlevel-adjustment.js +102 -0
  100. package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/zoomlevel-adjustment.js.map +1 -0
  101. package/dist/board.tsbuildinfo +1 -0
  102. package/dist/boardify/index.d.ts +192 -0
  103. package/dist/camera/base.d.ts +189 -0
  104. package/dist/camera/camera-mux/animation-and-lock/animation-and-lock.d.ts +50 -0
  105. package/dist/camera/camera-mux/animation-and-lock/index.d.ts +4 -0
  106. package/dist/camera/camera-mux/animation-and-lock/pan-control-state-machine.d.ts +137 -0
  107. package/dist/camera/camera-mux/animation-and-lock/rotation-control-state-machine.d.ts +131 -0
  108. package/dist/camera/camera-mux/animation-and-lock/zoom-control-state-machine.d.ts +143 -0
  109. package/dist/camera/camera-mux/index.d.ts +3 -0
  110. package/dist/camera/camera-mux/interface.d.ts +12 -0
  111. package/dist/camera/camera-mux/relay.d.ts +27 -0
  112. package/dist/camera/camera-rig/camera-rig.d.ts +207 -0
  113. package/dist/camera/camera-rig/index.d.ts +5 -0
  114. package/dist/camera/camera-rig/pan-handler.d.ts +113 -0
  115. package/dist/camera/camera-rig/rotation-handler.d.ts +78 -0
  116. package/dist/camera/camera-rig/update-batcher/index.d.ts +3 -0
  117. package/dist/camera/camera-rig/update-batcher/position-update-batcher.d.ts +58 -0
  118. package/dist/camera/camera-rig/update-batcher/rotation-update-batcher.d.ts +54 -0
  119. package/dist/camera/camera-rig/update-batcher/zoom-udpate-batcher.d.ts +60 -0
  120. package/dist/camera/camera-rig/zoom-handler.d.ts +77 -0
  121. package/dist/camera/default-camera.d.ts +170 -0
  122. package/dist/camera/index.d.ts +8 -0
  123. package/dist/camera/interface.d.ts +59 -0
  124. package/dist/camera/update-publisher.d.ts +172 -0
  125. package/dist/camera/utils/coordinate-conversion.d.ts +75 -0
  126. package/dist/camera/utils/index.d.ts +5 -0
  127. package/dist/camera/utils/matrix.d.ts +114 -0
  128. package/dist/camera/utils/position.d.ts +71 -0
  129. package/dist/camera/utils/rotation.d.ts +64 -0
  130. package/dist/camera/utils/zoom.d.ts +25 -0
  131. package/dist/index.d.ts +5 -0
  132. package/dist/input-interpretation/index.d.ts +3 -0
  133. package/dist/input-interpretation/input-state-machine/index.d.ts +4 -0
  134. package/dist/input-interpretation/input-state-machine/kmt-input-context.d.ts +130 -0
  135. package/dist/input-interpretation/input-state-machine/kmt-input-state-machine.d.ts +194 -0
  136. package/dist/input-interpretation/input-state-machine/touch-input-context.d.ts +44 -0
  137. package/dist/input-interpretation/input-state-machine/touch-input-state-machine.d.ts +64 -0
  138. package/dist/input-interpretation/raw-input-parser/index.d.ts +2 -0
  139. package/dist/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.d.ts +87 -0
  140. package/dist/input-interpretation/raw-input-parser/vanilla-touch-event-parser.d.ts +55 -0
  141. package/dist/input-interpretation/raw-input-publisher/index.d.ts +1 -0
  142. package/dist/input-interpretation/raw-input-publisher/raw-input-publisher.d.ts +130 -0
  143. package/dist/package.json +39 -0
  144. package/dist/utils/canvas-position-dimension.d.ts +18 -0
  145. package/dist/utils/coorindate-conversion.d.ts +5 -0
  146. package/dist/utils/drawing-utils.d.ts +55 -0
  147. package/dist/utils/drawing.d.ts +30 -0
  148. package/dist/utils/handler-pipeline.d.ts +30 -0
  149. package/dist/utils/index.d.ts +8 -0
  150. package/dist/utils/observable.d.ts +9 -0
  151. package/dist/utils/ruler.d.ts +1 -0
  152. package/dist/utils/zoomlevel-adjustment.d.ts +28 -0
  153. package/jest.config.js +18 -0
  154. package/package.json +11 -10
  155. package/project.json +34 -0
  156. package/rollup.config.js +29 -0
  157. package/src/boardify/index.ts +562 -0
  158. package/src/camera/base.ts +387 -0
  159. package/src/camera/camera-mux/animation-and-lock/animation-and-lock.ts +114 -0
  160. package/src/camera/camera-mux/animation-and-lock/index.ts +4 -0
  161. package/src/camera/camera-mux/animation-and-lock/pan-control-state-machine.ts +248 -0
  162. package/src/camera/camera-mux/animation-and-lock/rotation-control-state-machine.ts +237 -0
  163. package/src/camera/camera-mux/animation-and-lock/zoom-control-state-machine.ts +263 -0
  164. package/src/camera/camera-mux/index.ts +3 -0
  165. package/src/camera/camera-mux/interface.ts +13 -0
  166. package/src/camera/camera-mux/relay.ts +50 -0
  167. package/src/camera/camera-rig/camera-rig.ts +560 -0
  168. package/src/camera/camera-rig/index.ts +5 -0
  169. package/src/camera/camera-rig/pan-handler.ts +192 -0
  170. package/src/camera/camera-rig/rotation-handler.ts +124 -0
  171. package/src/camera/camera-rig/update-batcher/index.ts +3 -0
  172. package/src/camera/camera-rig/update-batcher/position-update-batcher.ts +133 -0
  173. package/src/camera/camera-rig/update-batcher/rotation-update-batcher.ts +123 -0
  174. package/src/camera/camera-rig/update-batcher/zoom-udpate-batcher.ts +157 -0
  175. package/src/camera/camera-rig/zoom-handler.ts +123 -0
  176. package/src/camera/default-camera.ts +297 -0
  177. package/src/camera/index.ts +8 -0
  178. package/src/camera/interface.ts +45 -0
  179. package/src/camera/update-publisher.ts +222 -0
  180. package/src/camera/utils/coordinate-conversion.ts +160 -0
  181. package/src/camera/utils/index.ts +5 -0
  182. package/src/camera/utils/matrix.ts +558 -0
  183. package/src/camera/utils/position.ts +196 -0
  184. package/src/camera/utils/rotation.ts +147 -0
  185. package/src/camera/utils/zoom.ts +55 -0
  186. package/src/index.ts +5 -0
  187. package/src/input-interpretation/index.ts +3 -0
  188. package/src/input-interpretation/input-state-machine/index.ts +4 -0
  189. package/src/input-interpretation/input-state-machine/kmt-input-context.ts +283 -0
  190. package/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts +491 -0
  191. package/src/input-interpretation/input-state-machine/touch-input-context.ts +106 -0
  192. package/src/input-interpretation/input-state-machine/touch-input-state-machine.ts +215 -0
  193. package/src/input-interpretation/raw-input-parser/index.ts +2 -0
  194. package/src/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.ts +207 -0
  195. package/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts +169 -0
  196. package/src/input-interpretation/raw-input-publisher/index.ts +1 -0
  197. package/src/input-interpretation/raw-input-publisher/raw-input-publisher.ts +227 -0
  198. package/src/utils/canvas-position-dimension.ts +215 -0
  199. package/src/utils/coorindate-conversion.ts +12 -0
  200. package/src/utils/drawing-utils.ts +439 -0
  201. package/src/utils/drawing.ts +266 -0
  202. package/src/utils/handler-pipeline.ts +41 -0
  203. package/src/utils/index.ts +8 -0
  204. package/src/utils/observable.ts +63 -0
  205. package/src/utils/ruler.ts +18 -0
  206. package/src/utils/zoomlevel-adjustment.ts +108 -0
  207. package/test/board-camera/camera-rig.test.ts +78 -0
  208. package/test/board-camera/camera-utils.test.ts +263 -0
  209. package/test/board-camera/utils/coordinate-conversion.test.ts +26 -0
  210. package/test/board-camera/utils/matrix.test.ts +35 -0
  211. package/test/boardify/utils/canvas.test.ts +20 -0
  212. package/test/util/drawing.test.ts +83 -0
  213. package/test/util/handler-pipeline.test.ts +74 -0
  214. package/test/util/observable.test.ts +42 -0
  215. package/test/util/ruler.test.ts +41 -0
  216. package/tsconfig.json +23 -0
  217. package/tsconfig.spec.json +12 -0
  218. /package/{board.tsbuildinfo → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/board.tsbuildinfo} +0 -0
  219. /package/{boardify → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/boardify}/index.d.ts +0 -0
  220. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/base.d.ts +0 -0
  221. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/animation-and-lock/animation-and-lock.d.ts +0 -0
  222. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/animation-and-lock/index.d.ts +0 -0
  223. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/animation-and-lock/pan-control-state-machine.d.ts +0 -0
  224. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/animation-and-lock/rotation-control-state-machine.d.ts +0 -0
  225. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/animation-and-lock/zoom-control-state-machine.d.ts +0 -0
  226. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/index.d.ts +0 -0
  227. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/interface.d.ts +0 -0
  228. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/relay.d.ts +0 -0
  229. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/camera-rig.d.ts +0 -0
  230. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/index.d.ts +0 -0
  231. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/pan-handler.d.ts +0 -0
  232. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/rotation-handler.d.ts +0 -0
  233. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/update-batcher/index.d.ts +0 -0
  234. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/update-batcher/position-update-batcher.d.ts +0 -0
  235. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/update-batcher/rotation-update-batcher.d.ts +0 -0
  236. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/update-batcher/zoom-udpate-batcher.d.ts +0 -0
  237. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/zoom-handler.d.ts +0 -0
  238. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/default-camera.d.ts +0 -0
  239. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/index.d.ts +0 -0
  240. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/interface.d.ts +0 -0
  241. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/update-publisher.d.ts +0 -0
  242. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/coordinate-conversion.d.ts +0 -0
  243. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/index.d.ts +0 -0
  244. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/matrix.d.ts +0 -0
  245. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/position.d.ts +0 -0
  246. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/rotation.d.ts +0 -0
  247. /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/zoom.d.ts +0 -0
  248. /package/{index.d.ts → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/index.d.ts} +0 -0
  249. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/index.d.ts +0 -0
  250. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/input-state-machine/index.d.ts +0 -0
  251. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/input-state-machine/kmt-input-context.d.ts +0 -0
  252. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/input-state-machine/kmt-input-state-machine.d.ts +0 -0
  253. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/input-state-machine/touch-input-context.d.ts +0 -0
  254. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/input-state-machine/touch-input-state-machine.d.ts +0 -0
  255. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/raw-input-parser/index.d.ts +0 -0
  256. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/raw-input-parser/vanilla-kmt-event-parser.d.ts +0 -0
  257. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/raw-input-parser/vanilla-touch-event-parser.d.ts +0 -0
  258. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/raw-input-publisher/index.d.ts +0 -0
  259. /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/raw-input-publisher/raw-input-publisher.d.ts +0 -0
  260. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/canvas-position-dimension.d.ts +0 -0
  261. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/coorindate-conversion.d.ts +0 -0
  262. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/drawing-utils.d.ts +0 -0
  263. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/drawing.d.ts +0 -0
  264. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/handler-pipeline.d.ts +0 -0
  265. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/index.d.ts +0 -0
  266. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/observable.d.ts +0 -0
  267. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/ruler.d.ts +0 -0
  268. /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/zoomlevel-adjustment.d.ts +0 -0
  269. /package/{index.js → dist/index.js} +0 -0
  270. /package/{index.js.map → dist/index.js.map} +0 -0
@@ -0,0 +1,131 @@
1
+ import type { EventReactions, State, BaseContext } from "@ue-too/being";
2
+ import { TemplateState, TemplateStateMachine } from "@ue-too/being";
3
+ import { BoardCamera } from "../../interface";
4
+ /**
5
+ * @description The states of the pan control state machine.
6
+ *
7
+ * @category Input Flow Control
8
+ */
9
+ export type RotateControlStates = "ACCEPTING_USER_INPUT" | "TRANSITION" | "LOCKED_ON_OBJECT";
10
+ /**
11
+ * @description The payload for the rotate by input event.
12
+ *
13
+ * @category Input Flow Control
14
+ */
15
+ export type RotateByInputEventPayload = {
16
+ diff: number;
17
+ };
18
+ /**
19
+ * @description The payload for the rotate to input event.
20
+ *
21
+ * @category Input Flow Control
22
+ */
23
+ export type RotateToInputEventPayload = {
24
+ target: number;
25
+ };
26
+ type EmptyPayload = {};
27
+ /**
28
+ * @description The payload mapping for the events of the rotate control state machine.
29
+ *
30
+ * @category Input Flow Control
31
+ */
32
+ export type RotateEventPayloadMapping = {
33
+ "userRotateByInput": RotateByInputEventPayload;
34
+ "userRotateToInput": RotateToInputEventPayload;
35
+ "transitionRotateByInput": RotateByInputEventPayload;
36
+ "transitionRotateToInput": RotateToInputEventPayload;
37
+ "lockedOnObjectRotateByInput": RotateByInputEventPayload;
38
+ "lockedOnObjectRotateToInput": RotateToInputEventPayload;
39
+ "unlock": EmptyPayload;
40
+ "initateTransition": EmptyPayload;
41
+ };
42
+ /**
43
+ * @description The context for the rotate control state machine.
44
+ *
45
+ * @category Input Flow Control
46
+ */
47
+ export interface RotateContext extends BaseContext {
48
+ camera: BoardCamera;
49
+ rotateBy: (delta: number) => void;
50
+ rotateTo: (target: number) => void;
51
+ }
52
+ /**
53
+ * @description The pan control state machine.
54
+ * It's not created directly using the TemplateStateMachine class.
55
+ * A few helper functions are in place to make it easier to use. (user don't have to memorize the event names)
56
+ *
57
+ * @category Input Flow Control
58
+ */
59
+ export declare class RotateControlStateMachine extends TemplateStateMachine<RotateEventPayloadMapping, RotateContext, RotateControlStates> {
60
+ constructor(states: Record<RotateControlStates, State<RotateEventPayloadMapping, RotateContext, RotateControlStates>>, initialState: RotateControlStates, context: RotateContext);
61
+ /**
62
+ * @description Notify the pan input event.
63
+ *
64
+ * @category Input Flow Control
65
+ */
66
+ notifyRotateByInput(diff: number): void;
67
+ /**
68
+ * @description Notify the rotate to animation input event.
69
+ *
70
+ * @category Input Flow Control
71
+ */
72
+ notifyRotateToAnimationInput(target: number): void;
73
+ /**
74
+ * @description Initate the transition.
75
+ *
76
+ * @category Input Flow Control
77
+ */
78
+ initateTransition(): void;
79
+ }
80
+ /**
81
+ * @description The accepting user input state of the rotate control state machine.
82
+ *
83
+ * @category Input Flow Control
84
+ */
85
+ export declare class RotationAcceptingUserInputState extends TemplateState<RotateEventPayloadMapping, RotateContext, RotateControlStates> {
86
+ constructor();
87
+ eventReactions: EventReactions<RotateEventPayloadMapping, RotateContext, RotateControlStates>;
88
+ userRotateByInputHandler(context: RotateContext, payload: RotateByInputEventPayload): void;
89
+ userRotateToInputHandler(context: RotateContext, payload: RotateToInputEventPayload): void;
90
+ lockedOnObjectRotateByInputHandler(context: RotateContext, payload: RotateByInputEventPayload): void;
91
+ lockedOnObjectRotateToInputHandler(context: RotateContext, payload: RotateToInputEventPayload): void;
92
+ }
93
+ /**
94
+ * @description The transition state of the rotate control state machine.
95
+ *
96
+ * @category Input Flow Control
97
+ */
98
+ export declare class RotationTransitionState extends TemplateState<RotateEventPayloadMapping, RotateContext, RotateControlStates> {
99
+ constructor();
100
+ eventReactions: EventReactions<RotateEventPayloadMapping, RotateContext, RotateControlStates>;
101
+ userRotateByInputHandler(context: RotateContext, payload: RotateByInputEventPayload): RotateControlStates;
102
+ userRotateToInputHandler(context: RotateContext, payload: RotateToInputEventPayload): RotateControlStates;
103
+ transitionRotateByInputHandler(context: RotateContext, payload: RotateByInputEventPayload): RotateControlStates;
104
+ transitionRotateToInputHandler(context: RotateContext, payload: RotateToInputEventPayload): RotateControlStates;
105
+ lockedOnObjectRotateByInputHandler(context: RotateContext, payload: RotateByInputEventPayload): RotateControlStates;
106
+ lockedOnObjectRotateToInputHandler(context: RotateContext, payload: RotateToInputEventPayload): RotateControlStates;
107
+ }
108
+ /**
109
+ * @description The locked on object state of the pan control state machine.
110
+ *
111
+ * @category Input Flow Control
112
+ */
113
+ export declare class RotationLockedOnObjectState extends TemplateState<RotateEventPayloadMapping, RotateContext, RotateControlStates> {
114
+ constructor();
115
+ eventReactions: EventReactions<RotateEventPayloadMapping, RotateContext, RotateControlStates>;
116
+ lockedOnObjectRotateByInputHandler(context: RotateContext, payload: RotateByInputEventPayload): void;
117
+ lockedOnObjectRotateToInputHandler(context: RotateContext, payload: RotateToInputEventPayload): void;
118
+ }
119
+ /**
120
+ * @description Create the object containing the default pan control states.
121
+ *
122
+ * @category Input Flow Control
123
+ */
124
+ export declare function createDefaultRotateControlStates(): Record<RotateControlStates, State<RotateEventPayloadMapping, RotateContext, RotateControlStates>>;
125
+ /**
126
+ * @description Create the default rotate control state machine.
127
+ *
128
+ * @category Input Flow Control
129
+ */
130
+ export declare function createDefaultRotateControlStateMachine(context: RotateContext): RotateControlStateMachine;
131
+ export {};
@@ -0,0 +1,143 @@
1
+ import type { State, EventReactions, BaseContext } from "@ue-too/being";
2
+ import { TemplateState, TemplateStateMachine } from "@ue-too/being";
3
+ import { Point } from "@ue-too/math";
4
+ /**
5
+ * @description The possible states of the zoom control state machine.
6
+ *
7
+ * @category Input Flow Control
8
+ */
9
+ export type ZoomControlStates = "ACCEPTING_USER_INPUT" | "TRANSITION" | "LOCKED_ON_OBJECT";
10
+ /**
11
+ * @description The payload for the zoom by at input event.
12
+ *
13
+ * @category Input Flow Control
14
+ */
15
+ export type ZoomByAtInputPayload = {
16
+ deltaZoom: number;
17
+ anchorPoint: Point;
18
+ };
19
+ /**
20
+ * @description The payload for the zoom to at input event.
21
+ *
22
+ * @category Input Flow Control
23
+ */
24
+ export type ZoomToAtInputPayload = {
25
+ targetZoom: number;
26
+ anchorPoint: Point;
27
+ };
28
+ /**
29
+ * @description The payload for the zoom by payload.
30
+ *
31
+ * @category Input Flow Control
32
+ */
33
+ export type ZoomByPayload = {
34
+ deltaZoom: number;
35
+ };
36
+ /**
37
+ * @description The payload for the zoom to payload.
38
+ *
39
+ * @category Input Flow Control
40
+ */
41
+ export type ZoomToPayload = {
42
+ targetZoom: number;
43
+ };
44
+ /**
45
+ * @description The payload mapping for the events of the zoom control state machine.
46
+ *
47
+ * @category Input Flow Control
48
+ */
49
+ export type ZoomEventPayloadMapping = {
50
+ "userZoomByAtInput": ZoomByAtInputPayload;
51
+ "userZoomToAtInput": ZoomToAtInputPayload;
52
+ "transitionZoomByAtInput": ZoomByAtInputPayload;
53
+ "transitionZoomToAtInput": ZoomToAtInputPayload;
54
+ "transitionZoomByAtCenterInput": ZoomByPayload;
55
+ "transitionZoomToAtCenterInput": ZoomToAtInputPayload;
56
+ "transitionZoomToAtWorldInput": ZoomToAtInputPayload;
57
+ "lockedOnObjectZoomByAtInput": ZoomByAtInputPayload;
58
+ "lockedOnObjectZoomToAtInput": ZoomToAtInputPayload;
59
+ "unlock": {};
60
+ "initiateTransition": {};
61
+ };
62
+ /**
63
+ * @description The context for the zoom control state machine.
64
+ *
65
+ * @category Input Flow Control
66
+ */
67
+ export interface ZoomContext extends BaseContext {
68
+ zoomToAt: (targetZoom: number, at: Point) => void;
69
+ zoomByAt: (delta: number, at: Point) => void;
70
+ zoomTo: (targetZoom: number) => void;
71
+ zoomBy: (delta: number) => void;
72
+ zoomToAtWorld: (targetZoom: number, at: Point) => void;
73
+ zoomByAtWorld: (delta: number, at: Point) => void;
74
+ }
75
+ /**
76
+ * @description The accepting user input state of the zoom control state machine.
77
+ *
78
+ * @category Input Flow Control
79
+ */
80
+ export declare class ZoomAcceptingUserInputState extends TemplateState<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates> {
81
+ private _eventReactions;
82
+ get eventReactions(): EventReactions<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates>;
83
+ userZoomByAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["userZoomByAtInput"]): void;
84
+ userZoomToAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["userZoomToAtInput"]): void;
85
+ }
86
+ /**
87
+ * @description The transition state of the zoom control state machine.
88
+ *
89
+ * @category Input Flow Control
90
+ */
91
+ export declare class ZoomTransitionState extends TemplateState<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates> {
92
+ constructor();
93
+ private _eventReactions;
94
+ get eventReactions(): EventReactions<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates>;
95
+ lockedOnObjectZoomByAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["lockedOnObjectZoomByAtInput"]): void;
96
+ lockedOnObjectZoomToAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["lockedOnObjectZoomToAtInput"]): void;
97
+ userZoomByAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["userZoomByAtInput"]): void;
98
+ userZoomToAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["userZoomToAtInput"]): void;
99
+ transitionZoomByAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["transitionZoomByAtInput"]): void;
100
+ transitionZoomByAtCenterInput(context: ZoomContext, payload: ZoomEventPayloadMapping["transitionZoomByAtCenterInput"]): void;
101
+ transitionZoomToAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["transitionZoomToAtInput"]): void;
102
+ transitionZoomToAtCenterInput(context: ZoomContext, payload: ZoomEventPayloadMapping["transitionZoomToAtCenterInput"]): void;
103
+ transitionZoomToAtWorldInput(context: ZoomContext, payload: ZoomEventPayloadMapping["transitionZoomToAtWorldInput"]): void;
104
+ }
105
+ /**
106
+ * @description The locked on object state of the zoom control state machine.
107
+ *
108
+ * @category Input Flow Control
109
+ */
110
+ export declare class ZoomLockedOnObjectState extends TemplateState<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates> {
111
+ constructor();
112
+ private _eventReactions;
113
+ get eventReactions(): EventReactions<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates>;
114
+ lockedOnObjectZoomByAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["lockedOnObjectZoomByAtInput"]): void;
115
+ lockedOnObjectZoomToAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["lockedOnObjectZoomToAtInput"]): void;
116
+ userZoomByAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["userZoomByAtInput"]): void;
117
+ userZoomToAtInput(context: ZoomContext, payload: ZoomEventPayloadMapping["userZoomToAtInput"]): void;
118
+ }
119
+ /**
120
+ * @description The zoom control state machine.
121
+ *
122
+ * @category Input Flow Control
123
+ */
124
+ export declare class ZoomControlStateMachine extends TemplateStateMachine<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates> {
125
+ constructor(states: Record<ZoomControlStates, State<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates>>, initialState: ZoomControlStates, context: ZoomContext);
126
+ notifyZoomByAtInput(delta: number, at: Point): void;
127
+ notifyZoomByAtInputAnimation(delta: number, at: Point): void;
128
+ notifyZoomToAtCenterInput(targetZoom: number, at: Point): void;
129
+ notifyZoomToAtWorldInput(targetZoom: number, at: Point): void;
130
+ initateTransition(): void;
131
+ }
132
+ /**
133
+ * @description Create the object containing the default zoom control states.
134
+ *
135
+ * @category Input Flow Control
136
+ */
137
+ export declare function createDefaultZoomControlStates(): Record<ZoomControlStates, State<ZoomEventPayloadMapping, ZoomContext, ZoomControlStates>>;
138
+ /**
139
+ * @description Create the default zoom control state machine.
140
+ *
141
+ * @category Input Flow Control
142
+ */
143
+ export declare function createDefaultZoomControlStateMachine(context: ZoomContext): ZoomControlStateMachine;
@@ -0,0 +1,3 @@
1
+ export * from "./interface";
2
+ export * from "./relay";
3
+ export * from "./animation-and-lock";
@@ -0,0 +1,12 @@
1
+ import type { Point } from "@ue-too/math";
2
+ /**
3
+ * @description The interface for the input flow control.
4
+ * It should at least have user input handlers for pan, zoom and rotation.
5
+ *
6
+ * @category Input Flow Control
7
+ */
8
+ export interface CameraMux {
9
+ notifyPanInput(diff: Point): void;
10
+ notifyZoomInput(deltaZoomAmount: number, anchorPoint: Point): void;
11
+ notifyRotationInput(deltaRotation: number): void;
12
+ }
@@ -0,0 +1,27 @@
1
+ import { ObservableBoardCamera } from "../interface";
2
+ import { CameraRig } from "../camera-rig";
3
+ import { CameraMux } from "./interface";
4
+ import { Point } from "@ue-too/math";
5
+ /**
6
+ * @description The simple relay flow control.
7
+ * This would be the default flow control for {@link Board}.
8
+ *
9
+ * @category Input Flow Control
10
+ */
11
+ export declare class Relay implements CameraMux {
12
+ private _cameraRig;
13
+ constructor(cameraRig?: CameraRig);
14
+ notifyPanInput(diff: Point): void;
15
+ notifyZoomInput(deltaZoomAmount: number, anchorPoint: Point): void;
16
+ notifyRotationInput(deltaRotation: number): void;
17
+ }
18
+ /**
19
+ * @description Create a default relay control center.
20
+ *
21
+ * @category Input Flow Control
22
+ */
23
+ export declare function createDefaultCameraMux(camera: ObservableBoardCamera): CameraMux;
24
+ /**
25
+ *
26
+ */
27
+ export declare function createDefaultCameraMuxWithCameraRig(cameraRig: CameraRig): CameraMux;
@@ -0,0 +1,207 @@
1
+ import { PanHandlerConfig } from "./pan-handler";
2
+ import { ZoomHandlerConfig } from "./zoom-handler";
3
+ import type { RotationHandlerConfig } from "./rotation-handler";
4
+ import { ObservableBoardCamera } from "../interface";
5
+ import { PanContext } from "../camera-mux/animation-and-lock/pan-control-state-machine";
6
+ import { ZoomContext } from "../camera-mux/animation-and-lock/zoom-control-state-machine";
7
+ import { Point } from "@ue-too/math";
8
+ import { RotateContext } from "../camera-mux/animation-and-lock/rotation-control-state-machine";
9
+ /**
10
+ * @description The config for the camera rig.
11
+ * Camera rig combines pan, zoom and rotation handlers.
12
+ *
13
+ * @category Input Flow Control
14
+ */
15
+ export type CameraRigConfig = PanHandlerConfig & ZoomHandlerConfig & RotationHandlerConfig;
16
+ export interface CameraRig extends PanContext, ZoomContext, RotateContext {
17
+ camera: ObservableBoardCamera;
18
+ config: CameraRigConfig;
19
+ configure(config: Partial<CameraRigConfig>): void;
20
+ update(): void;
21
+ }
22
+ /**
23
+ * @description The camera rig.
24
+ *
25
+ * This is a consolidated handler function for pan, zoom and rotation.
26
+ * Essentially, it is a controller that controls the camera, so you don't have to figure out some of the math that is involved in panning, zooming and rotating the camera.
27
+ *
28
+ * @category Camera
29
+ */
30
+ export declare class CameraRigWithUpdateBatcher implements CameraRig {
31
+ private _panBy;
32
+ private _panTo;
33
+ private _zoomTo;
34
+ private _zoomBy;
35
+ private _rotateBy;
36
+ private _rotateTo;
37
+ private _config;
38
+ private _camera;
39
+ private _positionBatcher;
40
+ private _zoomBatcher;
41
+ private _rotationBatcher;
42
+ constructor(config: PanHandlerConfig & ZoomHandlerConfig, camera?: ObservableBoardCamera);
43
+ /**
44
+ * @description Zoom to a certain zoom level at a certain point. The point is in the viewport coordinate system.
45
+ */
46
+ zoomToAt(targetZoom: number, at: Point): void;
47
+ /**
48
+ * @description Zoom by a certain amount at a certain point. The point is in the viewport coordinate system.
49
+ */
50
+ zoomByAt(delta: number, at: Point): void;
51
+ /**
52
+ * @description Zoom to a certain zoom level with respect to the center of the viewport.
53
+ */
54
+ zoomTo(targetZoom: number): void;
55
+ /**
56
+ * @description Zoom by a certain amount with respect to the center of the viewport.
57
+ */
58
+ zoomBy(delta: number): void;
59
+ /**
60
+ * @description Zoom to a certain zoom level with respect to a point in the world coordinate system.
61
+ */
62
+ zoomToAtWorld(targetZoom: number, at: Point): void;
63
+ /**
64
+ * @description Zoom by a certain amount with respect to a point in the world coordinate system.
65
+ */
66
+ zoomByAtWorld(delta: number, at: Point): void;
67
+ /**
68
+ * @description Pan to a certain point. (target is in the world coordinate system)
69
+ */
70
+ private _actualPanByWorld;
71
+ /**
72
+ * @description Pan to a certain point. (target is in the world coordinate system)
73
+ */
74
+ private _actualPanToWorld;
75
+ panByWorld(delta: Point): void;
76
+ panByViewPort(delta: Point): void;
77
+ panToWorld(target: Point): void;
78
+ panToViewPort(target: Point): void;
79
+ /**
80
+ * @description Rotate by a certain amount.
81
+ */
82
+ rotateBy(delta: number): void;
83
+ /**
84
+ * @description Rotate to a certain angle.
85
+ */
86
+ rotateTo(target: number): void;
87
+ set limitEntireViewPort(limit: boolean);
88
+ /**
89
+ * @description Whether the entire view port is limited.
90
+ */
91
+ get limitEntireViewPort(): boolean;
92
+ get camera(): ObservableBoardCamera;
93
+ get config(): CameraRigConfig;
94
+ set config(config: CameraRigConfig);
95
+ updatePosition(): void;
96
+ updateZoom(): void;
97
+ updateRotation(): void;
98
+ update(): void;
99
+ private _zoomToAtViewPort;
100
+ private _zoomToAtWorld;
101
+ private _zoomByAtViewPort;
102
+ private _zoomByAtWorld;
103
+ /**
104
+ * @description Configure the camera rig.
105
+ */
106
+ configure(config: Partial<CameraRigConfig>): void;
107
+ /**
108
+ * @description Cleanup the camera rig.
109
+ */
110
+ cleanup(): void;
111
+ /**
112
+ * @description Setup the camera rig.
113
+ */
114
+ setup(): void;
115
+ }
116
+ /**
117
+ * @description Create a default camera rig with update batcher.
118
+ *
119
+ * @category Camera
120
+ */
121
+ export declare function createDefaultCameraRigWithUpdateBatcher(camera: ObservableBoardCamera): CameraRigWithUpdateBatcher;
122
+ export declare class DefaultCameraRig implements CameraRig {
123
+ private _panBy;
124
+ private _panTo;
125
+ private _zoomTo;
126
+ private _zoomBy;
127
+ private _rotateBy;
128
+ private _rotateTo;
129
+ private _config;
130
+ private _camera;
131
+ constructor(config: PanHandlerConfig & ZoomHandlerConfig, camera?: ObservableBoardCamera);
132
+ /**
133
+ * @description Zoom to a certain zoom level at a certain point. The point is in the viewport coordinate system.
134
+ */
135
+ zoomToAt(targetZoom: number, at: Point): void;
136
+ /**
137
+ * @description Zoom by a certain amount at a certain point. The point is in the viewport coordinate system.
138
+ */
139
+ zoomByAt(delta: number, at: Point): void;
140
+ /**
141
+ * @description Zoom to a certain zoom level with respect to the center of the viewport.
142
+ */
143
+ zoomTo(targetZoom: number): void;
144
+ /**
145
+ * @description Zoom by a certain amount with respect to the center of the viewport.
146
+ */
147
+ zoomBy(delta: number): void;
148
+ /**
149
+ * @description Zoom to a certain zoom level with respect to a point in the world coordinate system.
150
+ */
151
+ zoomToAtWorld(targetZoom: number, at: Point): void;
152
+ /**
153
+ * @description Zoom by a certain amount with respect to a point in the world coordinate system.
154
+ */
155
+ zoomByAtWorld(delta: number, at: Point): void;
156
+ /**
157
+ * @description Pan By a certain amount. (delta is in the viewport coordinate system)
158
+ */
159
+ panByViewPort(delta: Point): void;
160
+ /**
161
+ * @description Pan to a certain point. (target is in the world coordinate system)
162
+ */
163
+ panByWorld(delta: Point): void;
164
+ /**
165
+ * @description Pan to a certain point. (target is in the world coordinate system)
166
+ */
167
+ panToWorld(target: Point): void;
168
+ /**
169
+ * @description Pan to a certain point. (target is in the viewport coordinate system)
170
+ */
171
+ panToViewPort(target: Point): void;
172
+ /**
173
+ * @description Rotate by a certain amount.
174
+ */
175
+ rotateBy(delta: number): void;
176
+ /**
177
+ * @description Rotate to a certain angle.
178
+ */
179
+ rotateTo(target: number): void;
180
+ set limitEntireViewPort(limit: boolean);
181
+ /**
182
+ * @description Whether the entire view port is limited.
183
+ */
184
+ get limitEntireViewPort(): boolean;
185
+ get camera(): ObservableBoardCamera;
186
+ get config(): CameraRigConfig;
187
+ set config(config: CameraRigConfig);
188
+ /**
189
+ * @description Configure the camera rig.
190
+ */
191
+ configure(config: Partial<CameraRigConfig>): void;
192
+ /**
193
+ * @description Cleanup the camera rig.
194
+ */
195
+ cleanup(): void;
196
+ /**
197
+ * @description Setup the camera rig.
198
+ */
199
+ setup(): void;
200
+ update(): void;
201
+ }
202
+ /**
203
+ * @description Create a default camera rig.
204
+ *
205
+ * @category Camera
206
+ */
207
+ export declare function createDefaultCameraRig(camera: ObservableBoardCamera): CameraRig;
@@ -0,0 +1,5 @@
1
+ export * from "./zoom-handler";
2
+ export * from "./pan-handler";
3
+ export * from "./rotation-handler";
4
+ export * from "./camera-rig";
5
+ export * from "./update-batcher";
@@ -0,0 +1,113 @@
1
+ import { Point } from "@ue-too/math";
2
+ import { BoardCamera } from "../interface";
3
+ /**
4
+ * @description Configuration for the pan handler functions.
5
+ *
6
+ * @category Camera
7
+ */
8
+ export type PanHandlerConfig = PanHandlerRestrictionConfig & PanHandlerClampConfig;
9
+ export type PanHandlerClampConfig = {
10
+ /**
11
+ * @description Whether to limit the pan to the entire view port.
12
+ */
13
+ limitEntireViewPort: boolean;
14
+ /**
15
+ * @description Whether to clamp the translation.
16
+ */
17
+ clampTranslation: boolean;
18
+ };
19
+ export type PanHandlerRestrictionConfig = {
20
+ /**
21
+ * @description Whether to restrict the x translation.
22
+ */
23
+ restrictXTranslation: boolean;
24
+ /**
25
+ * @description Whether to restrict the y translation.
26
+ */
27
+ restrictYTranslation: boolean;
28
+ /**
29
+ * @description Whether to restrict the relative x translation. (because the camera can be rotated, the relative x translation is the horizontal direction of what the user sees on the screen)
30
+ */
31
+ restrictRelativeXTranslation: boolean;
32
+ /**
33
+ * @description Whether to restrict the relative y translation. (because the camera can be rotated, the relative y translation is the vertical direction of what the user sees on the screen)
34
+ */
35
+ restrictRelativeYTranslation: boolean;
36
+ };
37
+ /**
38
+ * @description Function Type that is used to define the "pan to" handler.
39
+ * The destination is in "stage/context/world" space.
40
+ * This is structured as a handler pipeline.
41
+ * @see {@link createHandlerChain}
42
+ * @category Camera
43
+ */
44
+ export type PanToHandlerFunction = (destination: Point, camera: BoardCamera, config: PanHandlerConfig) => Point;
45
+ /**
46
+ * @description Function Type that is used to define the "pan by" handler.
47
+ * The delta is in "stage/context/world" space.
48
+ * This is structured as a handler pipeline.
49
+ * @see {@link createHandlerChain}
50
+ * @category Camera
51
+ */
52
+ export type PanByHandlerFunction = (delta: Point, camera: BoardCamera, config: PanHandlerConfig) => Point;
53
+ /**
54
+ * @description Helper function that creates a default "pan to" handler.
55
+ * The default pan to handler will first restrict the pan to the view port, then clamp the pan to the boundaries, and then pan to the destination.
56
+ *
57
+ * @see {@link createHandlerChain} to create your own custom pan handler pipeline. (you can also use this function as a part of your own custom pan handler pipeline)
58
+ * @category Camera
59
+ */
60
+ export declare function createDefaultPanToHandler(): PanToHandlerFunction;
61
+ /**
62
+ * @description Helper function that creates a default "pan by" handler.
63
+ * The resulting pan by handler takes in a delta that is in "stage/context/world" space.
64
+ * The default pan by handler will first restrict the pan by the view port, then clamp the pan by the boundaries, and then pan by the delta.
65
+ *
66
+ * @see {@link createHandlerChain} to create your own custom pan handler pipeline. (you can also use this function as a part of your own custom pan handler pipeline)
67
+ * @category Camera
68
+ */
69
+ export declare function createDefaultPanByHandler(): PanByHandlerFunction;
70
+ /**
71
+ * @description Function that is part of the "pan to" handler pipeline. It restricts the "pan to" destination to within a single axis based on the config. (relative to the current camera position)
72
+ * You can use this function standalone to restrict the "pan to" destination to within a single axis based on the config.
73
+ * But it is recommended to use this kind of function as part of the pan handler pipeline. (to include this function in your own custom pan handler pipeline)
74
+ *
75
+ * @category Camera
76
+ */
77
+ export declare function restrictPanToHandler(destination: Point, camera: BoardCamera, config: PanHandlerRestrictionConfig): Point;
78
+ /**
79
+ * @description Function that is part of the "pan by" handler pipeline. It restricts the pan delta to within a single axis based on the config. (relative to the current camera position)
80
+ * You can use this function standalone to restrict the pan delta to within a single axis based on the config.
81
+ * But it is recommended to use this kind of function as part of the pan handler pipeline. (to include this function in your own custom pan handler pipeline)
82
+ *
83
+ * @category Camera
84
+ */
85
+ export declare function restrictPanByHandler(delta: Point, camera: BoardCamera, config: PanHandlerRestrictionConfig): Point;
86
+ /**
87
+ * @description Function that is part of the "pan to" handler pipeline. It clamps the pan destination within the boundaries of the view port.
88
+ * You can use this function standalone to clamp the pan destination within the boundaries of the view port.
89
+ * But it is recommended to use this kind of function as part of the pan handler pipeline. (to include this function in your own custom pan handler pipeline)
90
+ *
91
+ * @category Camera
92
+ */
93
+ export declare function clampToHandler(destination: Point, camera: BoardCamera, config: PanHandlerClampConfig): Point;
94
+ /**
95
+ * @description Function that is part of the "pan by" handler pipeline. It clamps the pan delta within the boundaries of the view port.
96
+ * You can use this function standalone to clamp the pan delta within the boundaries of the view port.
97
+ * But it is recommended to use this kind of function as part of the pan handler pipeline. (to include this function in your own custom pan handler pipeline)
98
+ *
99
+ * @category Camera
100
+ */
101
+ export declare function clampByHandler(delta: Point, camera: BoardCamera, config: PanHandlerClampConfig): Point;
102
+ /**
103
+ * @description Helper function that converts the delta to comply with the restrictions of the config.
104
+ *
105
+ * @category Camera
106
+ */
107
+ export declare function convertDeltaToComplyWithRestriction(delta: Point, camera: BoardCamera, config: PanHandlerRestrictionConfig): Point;
108
+ /**
109
+ * @description Helper function that converts the user input delta to the camera delta.
110
+ *
111
+ * @category Camera
112
+ */
113
+ export declare function convertUserInputDeltaToCameraDelta(delta: Point, camera: BoardCamera): Point;