@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,215 @@
1
+ import { PointCal } from "@ue-too/math";
2
+ import { EventReactions, EventGuards, Guard, TemplateState, TemplateStateMachine } from "@ue-too/being";
3
+ import { TouchContext, TouchPoints } from "./touch-input-context";
4
+
5
+ export type TouchStates = "IDLE" | "PENDING" | "IN_PROGRESS";
6
+
7
+ /**
8
+ * @description The touch event payload.
9
+ *
10
+ * @category Input State Machine
11
+ */
12
+ export type TouchEventPayload = {
13
+ points: TouchPoints[];
14
+ };
15
+
16
+ /**
17
+ * @description The touch event mapping.
18
+ *
19
+ * @category Input State Machine
20
+ */
21
+ export type TouchEventMapping = {
22
+ touchstart: TouchEventPayload;
23
+ touchmove: TouchEventPayload;
24
+ touchend: TouchEventPayload;
25
+ }
26
+
27
+ /**
28
+ * @description The idle state of the touch input state machine.
29
+ *
30
+ * @category Input State Machine
31
+ */
32
+ export class IdleState extends TemplateState<TouchEventMapping, TouchContext, TouchStates> {
33
+
34
+ private _eventReactions: EventReactions<TouchEventMapping, TouchContext, TouchStates> = {
35
+ touchstart: {
36
+ action: this.touchstart,
37
+ defaultTargetState: "IDLE",
38
+ },
39
+ touchend: {
40
+ action: this.touchend,
41
+ defaultTargetState: "IDLE",
42
+ },
43
+ };
44
+
45
+ protected _guards: Guard<TouchContext, "touchPointsCount"> = {
46
+ touchPointsCount: ((context: TouchContext) => {
47
+ return context.getCurrentTouchPointsCount() === 2;
48
+ }).bind(this)
49
+ };
50
+
51
+ protected _eventGuards: Partial<EventGuards<TouchEventMapping, TouchStates, TouchContext, typeof this._guards>> = {
52
+ touchstart: [{
53
+ guard: "touchPointsCount",
54
+ target: "PENDING",
55
+ }],
56
+ touchend: [{
57
+ guard: "touchPointsCount",
58
+ target: "PENDING",
59
+ }],
60
+ };
61
+
62
+ get eventReactions(): EventReactions<TouchEventMapping, TouchContext, TouchStates> {
63
+ return this._eventReactions;
64
+ }
65
+
66
+ touchstart(context: TouchContext, payload: TouchEventPayload): void {
67
+ context.addTouchPoints(payload.points);
68
+ }
69
+
70
+ touchend(context: TouchContext, payload: TouchEventPayload): void {
71
+ context.removeTouchPoints(payload.points.map(p => p.ident));
72
+ }
73
+ }
74
+
75
+ /**
76
+ * @description The pending state of the touch input state machine.
77
+ *
78
+ * @category Input State Machine
79
+ */
80
+ export class PendingState extends TemplateState<TouchEventMapping, TouchContext, TouchStates> {
81
+
82
+ private _eventReactions: EventReactions<TouchEventMapping, TouchContext, TouchStates> = {
83
+ touchstart: {
84
+ action: this.touchstart,
85
+ defaultTargetState: "IDLE",
86
+ },
87
+ touchend: {
88
+ action: this.touchend,
89
+ defaultTargetState: "IDLE",
90
+ },
91
+ touchmove: {
92
+ action: this.touchmove,
93
+ defaultTargetState: "IN_PROGRESS",
94
+ },
95
+ };
96
+
97
+ get eventReactions(): EventReactions<TouchEventMapping, TouchContext, TouchStates> {
98
+ return this._eventReactions;
99
+ }
100
+
101
+ touchstart(context: TouchContext, payload: TouchEventPayload): void {
102
+ context.addTouchPoints(payload.points);
103
+ }
104
+
105
+ touchend(context: TouchContext, payload: TouchEventPayload): void {
106
+ context.removeTouchPoints(payload.points.map(p => p.ident));
107
+ }
108
+
109
+ touchmove(context: TouchContext, payload: TouchEventPayload): void {
110
+ const idents = payload.points.map(p => p.ident);
111
+ const initialPositions = context.getInitialTouchPointsPositions(idents);
112
+ const currentPositions = payload.points;
113
+ const initialStartAndEndDistance = PointCal.distanceBetweenPoints(initialPositions[0], initialPositions[1]);
114
+ const currentStartAndEndDistance = PointCal.distanceBetweenPoints(currentPositions[0], currentPositions[1]);
115
+ const midPoint = PointCal.linearInterpolation(initialPositions[0], initialPositions[1], 0.5);
116
+ const currentMidPoint = PointCal.linearInterpolation(currentPositions[0], currentPositions[1], 0.5);
117
+ const midPointDelta = PointCal.subVector(midPoint, currentMidPoint);
118
+ const cameraCenterInWindow = {x: context.canvas.position.x + context.canvas.width / 2, y: context.canvas.position.y + context.canvas.height / 2};
119
+ const midPointInViewPort = PointCal.subVector(midPoint, cameraCenterInWindow);
120
+ let panZoom = Math.abs(currentStartAndEndDistance - initialStartAndEndDistance) > PointCal.distanceBetweenPoints(midPoint, currentMidPoint) ? "ZOOMING" : "PANNING";
121
+
122
+ context.updateTouchPoints(currentPositions);
123
+ switch(panZoom){
124
+ case "ZOOMING":
125
+ context.notifyOnZoom((currentStartAndEndDistance - initialStartAndEndDistance) * 0.005, midPointInViewPort);
126
+ break;
127
+ case "PANNING":
128
+ context.notifyOnPan(midPointDelta);
129
+ break;
130
+ default:
131
+ console.warn("Unknown panZoom state", panZoom);
132
+ break;
133
+ }
134
+ }
135
+ }
136
+
137
+ /**
138
+ * @description The in progress state of the touch input state machine.
139
+ *
140
+ * @category Input State Machine
141
+ */
142
+ export class InProgressState extends TemplateState<TouchEventMapping, TouchContext, TouchStates> {
143
+
144
+ private _eventReactions: EventReactions<TouchEventMapping, TouchContext, TouchStates> = {
145
+ touchmove: {
146
+ action: this.touchmove,
147
+ defaultTargetState: "IN_PROGRESS",
148
+ },
149
+ touchend: {
150
+ action: this.touchend,
151
+ defaultTargetState: "IDLE",
152
+ },
153
+ touchstart: {
154
+ action: ()=> "IDLE",
155
+ defaultTargetState: "IDLE",
156
+ },
157
+ };
158
+
159
+ get eventReactions(): EventReactions<TouchEventMapping, TouchContext, TouchStates> {
160
+ return this._eventReactions;
161
+ }
162
+
163
+ touchmove(context: TouchContext, payload: TouchEventPayload): void {
164
+ const idents = payload.points.map(p => p.ident);
165
+ const initialPositions = context.getInitialTouchPointsPositions(idents);
166
+ const currentPositions = payload.points;
167
+ const initialStartAndEndDistance = PointCal.distanceBetweenPoints(initialPositions[0], initialPositions[1]);
168
+ const currentStartAndEndDistance = PointCal.distanceBetweenPoints(currentPositions[0], currentPositions[1]);
169
+ const midPoint = PointCal.linearInterpolation(initialPositions[0], initialPositions[1], 0.5);
170
+ const currentMidPoint = PointCal.linearInterpolation(currentPositions[0], currentPositions[1], 0.5);
171
+ const midPointDelta = PointCal.subVector(midPoint, currentMidPoint);
172
+ const cameraCenterInWindow = {x: context.canvas.position.x + context.canvas.width / 2, y: context.canvas.position.y + context.canvas.height / 2};
173
+ const midPointInViewPort = PointCal.subVector(midPoint, cameraCenterInWindow);
174
+ let panZoom = Math.abs(currentStartAndEndDistance - initialStartAndEndDistance) > PointCal.distanceBetweenPoints(midPoint, currentMidPoint) ? "ZOOMING" : "PANNING";
175
+
176
+ context.updateTouchPoints(currentPositions);
177
+ switch(panZoom){
178
+ case "ZOOMING":
179
+ if(!context.alignCoordinateSystem){
180
+ midPointInViewPort.y = -midPointInViewPort.y;
181
+ }
182
+ context.notifyOnZoom(-(initialStartAndEndDistance - currentStartAndEndDistance) * 0.005, midPointInViewPort);
183
+ break;
184
+ case "PANNING":
185
+ if(!context.alignCoordinateSystem){
186
+ midPointDelta.y = -midPointDelta.y;
187
+ }
188
+ context.notifyOnPan(midPointDelta);
189
+ break;
190
+ default:
191
+ console.warn("Unknown panZoom state", panZoom);
192
+ break;
193
+ }
194
+ }
195
+
196
+ touchend(context: TouchContext, payload: TouchEventPayload): void {
197
+ context.removeTouchPoints(payload.points.map(p => p.ident));
198
+ }
199
+ }
200
+
201
+ /**
202
+ * @description The touch input state machine.
203
+ *
204
+ * @category Input State Machine
205
+ */
206
+ export type TouchInputStateMachine = TemplateStateMachine<TouchEventMapping, TouchContext, TouchStates>;
207
+
208
+ export function createTouchInputStateMachine(context: TouchContext): TouchInputStateMachine {
209
+ return new TemplateStateMachine<TouchEventMapping, TouchContext, TouchStates>(
210
+ {
211
+ IDLE: new IdleState(),
212
+ PENDING: new PendingState(),
213
+ IN_PROGRESS: new InProgressState(),
214
+ }, "IDLE", context);
215
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./vanilla-kmt-event-parser";
2
+ export * from "./vanilla-touch-event-parser";
@@ -0,0 +1,207 @@
1
+ import type { KmtInputStateMachine } from "../../input-interpretation/input-state-machine";
2
+
3
+ /**
4
+ * @category Event Parser
5
+ */
6
+
7
+ export interface KMTEventParser {
8
+ disabled: boolean;
9
+ setUp(): void;
10
+ tearDown(): void;
11
+ attach(canvas: HTMLCanvasElement): void;
12
+ }
13
+
14
+ /**
15
+ * @description The minimum pointer event.
16
+ * This is for the interoperability between the vanilla javascript and the pixijs event system.
17
+ *
18
+ * @category Event Parser
19
+ */
20
+ export type MinimumPointerEvent = {
21
+ button: number;
22
+ pointerType: string;
23
+ clientX: number;
24
+ clientY: number;
25
+ buttons: number;
26
+ }
27
+
28
+ /**
29
+ * @description The minimum wheel event.
30
+ * This is for the interoperability between the vanilla javascript and the pixijs event system.
31
+ *
32
+ * @category Event Parser
33
+ */
34
+ export type MinimumWheelEvent = {
35
+ preventDefault: () => void;
36
+ deltaX: number;
37
+ deltaY: number;
38
+ ctrlKey: boolean;
39
+ clientX: number;
40
+ clientY: number;
41
+ }
42
+
43
+ /**
44
+ * @description The minimum keyboard event.
45
+ * This is for the interoperability between the vanilla javascript and the pixijs event system.
46
+ *
47
+ * @category Event Parser
48
+ */
49
+ export type MinimumKeyboardEvent = {
50
+ preventDefault: () => void;
51
+ key: string;
52
+ };
53
+
54
+ /**
55
+ * @description The event target with pointer events.
56
+ * This is for the interoperability between the vanilla javascript and the pixijs event system.
57
+ *
58
+ * @category Event Parser
59
+ */
60
+ export type EventTargetWithPointerEvents = {
61
+ addEventListener: (type: string, listener: (event: any) => void, options?: {passive: boolean}) => void;
62
+ removeEventListener: (type: string, listener: (event: any) => void) => void;
63
+ };
64
+
65
+
66
+ /**
67
+ * @description The vanilla keyboard mouse and trackpad(KMT) event parser.
68
+ * This parser converts the raw events to events that can be used by the input state machine.
69
+ *
70
+ * @category Event Parser
71
+ */
72
+ export class VanillaKMTEventParser implements KMTEventParser {
73
+
74
+ private _disabled: boolean;
75
+ private _stateMachine: KmtInputStateMachine;
76
+ private _keyfirstPressed: Map<string, boolean>;
77
+ private _abortController: AbortController;
78
+ private _canvas: HTMLCanvasElement;
79
+
80
+
81
+ constructor(canvas: HTMLCanvasElement, kmtInputStateMachine: KmtInputStateMachine){
82
+ this._canvas = canvas;
83
+ this.bindFunctions();
84
+ this._abortController = new AbortController();
85
+ this._stateMachine = kmtInputStateMachine;
86
+ this._keyfirstPressed = new Map();
87
+ }
88
+
89
+ get disabled(): boolean {
90
+ return this._disabled;
91
+ }
92
+
93
+ set disabled(value: boolean){
94
+ this._disabled = value;
95
+ }
96
+
97
+ get stateMachine(): KmtInputStateMachine {
98
+ return this._stateMachine;
99
+ }
100
+
101
+ addEventListeners(signal: AbortSignal){
102
+ this._canvas.addEventListener('pointerdown', this.pointerDownHandler, {signal});
103
+ this._canvas.addEventListener('pointerup', this.pointerUpHandler, {signal});
104
+ this._canvas.addEventListener('pointermove', this.pointerMoveHandler, {signal});
105
+ this._canvas.addEventListener('wheel', this.scrollHandler, {signal});
106
+ window.addEventListener('keydown', this.keypressHandler, {signal});
107
+ window.addEventListener('keyup', this.keyupHandler, {signal});
108
+ }
109
+
110
+ setUp(): void {
111
+ this.addEventListeners(this._abortController.signal);
112
+ }
113
+
114
+ tearDown(): void {
115
+ this._abortController.abort();
116
+ this._abortController = new AbortController();
117
+ }
118
+
119
+ bindFunctions(): void {
120
+ this.pointerDownHandler = this.pointerDownHandler.bind(this);
121
+ this.pointerUpHandler = this.pointerUpHandler.bind(this);
122
+ this.pointerMoveHandler = this.pointerMoveHandler.bind(this);
123
+ this.scrollHandler = this.scrollHandler.bind(this);
124
+ this.keypressHandler = this.keypressHandler.bind(this);
125
+ this.keyupHandler = this.keyupHandler.bind(this);
126
+ }
127
+
128
+ pointerDownHandler(e: MinimumPointerEvent){
129
+ if(this._disabled){
130
+ return;
131
+ }
132
+ if(e.button === 0 && e.pointerType === "mouse"){
133
+ this.stateMachine.happens("leftPointerDown", {x: e.clientX, y: e.clientY});
134
+ return;
135
+ }
136
+ if(e.button === 1 && e.pointerType === "mouse"){
137
+ this.stateMachine.happens("middlePointerDown", {x: e.clientX, y: e.clientY});
138
+ return;
139
+ }
140
+ }
141
+
142
+ pointerUpHandler(e: MinimumPointerEvent){
143
+ if(this._disabled){
144
+ return;
145
+ }
146
+ if(e.button === 0 && e.pointerType === "mouse"){
147
+ this.stateMachine.happens("leftPointerUp", {x: e.clientX, y: e.clientY});
148
+ return;
149
+ }
150
+ if(e.button === 1 && e.pointerType === "mouse"){
151
+ this.stateMachine.happens("middlePointerUp", {x: e.clientX, y: e.clientY});
152
+ return;
153
+ }
154
+ }
155
+
156
+ pointerMoveHandler(e: MinimumPointerEvent){
157
+ if(this._disabled){
158
+ return;
159
+ }
160
+ if((e.buttons === 1) && e.pointerType === "mouse"){
161
+ this.stateMachine.happens("leftPointerMove", {x: e.clientX, y: e.clientY});
162
+ return;
163
+ }
164
+ if((e.buttons === 4) && e.pointerType === "mouse"){
165
+ this.stateMachine.happens("middlePointerMove", {x: e.clientX, y: e.clientY});
166
+ return;
167
+ }
168
+ }
169
+
170
+ scrollHandler(e: MinimumWheelEvent){
171
+ if(this._disabled) return;
172
+ e.preventDefault();
173
+ if(e.ctrlKey){
174
+ this.stateMachine.happens("scrollWithCtrl", {x: e.clientX, y: e.clientY, deltaX: e.deltaX, deltaY: e.deltaY});
175
+ } else {
176
+ this.stateMachine.happens("scroll", {deltaX: e.deltaX, deltaY: e.deltaY});
177
+ }
178
+ }
179
+
180
+ keypressHandler(e: KeyboardEvent){
181
+ if(e.target !== document.body){
182
+ return;
183
+ }
184
+ if(this._keyfirstPressed.has(e.key)){
185
+ return;
186
+ }
187
+ this._keyfirstPressed.set(e.key, true);
188
+ if(e.key === " "){
189
+ this.stateMachine.happens("spacebarDown", {});
190
+ }
191
+ }
192
+
193
+ keyupHandler(e: KeyboardEvent){
194
+ if(this._keyfirstPressed.has(e.key)){
195
+ this._keyfirstPressed.delete(e.key);
196
+ }
197
+ if(e.key === " "){
198
+ this.stateMachine.happens("spacebarUp", {});
199
+ }
200
+ }
201
+
202
+ attach(canvas: HTMLCanvasElement){
203
+ this.tearDown();
204
+ this._canvas = canvas;
205
+ this.setUp();
206
+ }
207
+ }
@@ -0,0 +1,169 @@
1
+ import { TouchInputStateMachine } from "../../input-interpretation/input-state-machine/touch-input-state-machine";
2
+ import { TouchInputTracker, TouchPoints } from "../../input-interpretation/input-state-machine/touch-input-context";
3
+
4
+ /**
5
+ * @description The touch event parser.
6
+ * This is for the interoperability between the vanilla javascript and the pixijs event system.
7
+ *
8
+ * @category Event Parser
9
+ */
10
+ export interface TouchEventParser {
11
+ disabled: boolean;
12
+ panDisabled: boolean;
13
+ zoomDisabled: boolean;
14
+ rotateDisabled: boolean;
15
+ enableStrategy(): void;
16
+ disableStrategy(): void;
17
+ setUp(): void;
18
+ tearDown(): void;
19
+ attach(canvas: HTMLCanvasElement): void;
20
+ }
21
+
22
+ /**
23
+ * @description The vanilla touch event parser.
24
+ * This parser converts the raw events to events that can be used by the input state machine.
25
+ *
26
+ * @category Event Parser
27
+ */
28
+ export class VanillaTouchEventParser implements TouchEventParser {
29
+
30
+ private _canvas: HTMLCanvasElement;
31
+ private _touchInputTracker: TouchInputTracker;
32
+ private _disabled: boolean;
33
+ private _panDisabled: boolean = false;
34
+ private _zoomDisabled: boolean = false;
35
+ private _rotateDisabled: boolean = false;
36
+
37
+ private touchSM: TouchInputStateMachine;
38
+
39
+ private _abortController: AbortController;
40
+
41
+ constructor(canvas: HTMLCanvasElement, touchInputStateMachine: TouchInputStateMachine){
42
+ this._canvas = canvas;
43
+ this._disabled = false;
44
+ this.touchSM = touchInputStateMachine;
45
+ this._abortController = new AbortController();
46
+
47
+ this.bindListeners();
48
+ }
49
+
50
+ get touchStateMachine(): TouchInputStateMachine {
51
+ return this.touchSM;
52
+ }
53
+
54
+ bindListeners(): void{
55
+ this.touchstartHandler = this.touchstartHandler.bind(this);
56
+ this.touchendHandler = this.touchendHandler.bind(this);
57
+ this.touchcancelHandler = this.touchcancelHandler.bind(this);
58
+ this.touchmoveHandler = this.touchmoveHandler.bind(this);
59
+ }
60
+
61
+ enableStrategy(): void {
62
+ this._disabled = false;
63
+ }
64
+
65
+ disableStrategy(): void {
66
+ this._disabled = true;
67
+ }
68
+
69
+ setUp(): void {
70
+ this._canvas.addEventListener('touchstart', this.touchstartHandler, {signal: this._abortController.signal});
71
+ this._canvas.addEventListener('touchend', this.touchendHandler, {signal: this._abortController.signal});
72
+ this._canvas.addEventListener('touchcancel', this.touchcancelHandler, {signal: this._abortController.signal});
73
+ this._canvas.addEventListener('touchmove', this.touchmoveHandler, {signal: this._abortController.signal});
74
+ }
75
+
76
+ tearDown(): void {
77
+ this._abortController.abort();
78
+ this._abortController = new AbortController();
79
+ }
80
+
81
+ get disabled(): boolean {
82
+ return this._disabled;
83
+ }
84
+
85
+ get alignCoordinateSystem(): boolean {
86
+ return this._touchInputTracker.alignCoordinateSystem;
87
+ }
88
+
89
+ set alignCoordinateSystem(alignCoordinateSystem: boolean){
90
+ this._touchInputTracker.alignCoordinateSystem = alignCoordinateSystem;
91
+ }
92
+
93
+ get panDisabled(): boolean {
94
+ return this._panDisabled;
95
+ }
96
+
97
+ set panDisabled(panDisabled: boolean){
98
+ this._panDisabled = panDisabled;
99
+ }
100
+
101
+ get zoomDisabled(): boolean {
102
+ return this._zoomDisabled;
103
+ }
104
+
105
+ set zoomDisabled(zoomDisabled: boolean){
106
+ this._zoomDisabled = zoomDisabled;
107
+ }
108
+
109
+ get rotateDisabled(): boolean {
110
+ return this._rotateDisabled;
111
+ }
112
+
113
+ set rotateDisabled(rotateDisabled: boolean){
114
+ this._rotateDisabled = rotateDisabled;
115
+ }
116
+
117
+ touchstartHandler(e: TouchEvent){
118
+ if(this._disabled) {
119
+ return;
120
+ }
121
+
122
+ const pointsAdded: TouchPoints[] = [];
123
+ for (let i = 0; i < e.changedTouches.length; i++) {
124
+ pointsAdded.push({ident: e.changedTouches[i].identifier, x: e.changedTouches[i].clientX, y: e.changedTouches[i].clientY});
125
+ }
126
+ this.touchSM.happens("touchstart", {points: pointsAdded});
127
+ e.preventDefault();
128
+ }
129
+
130
+ touchcancelHandler(e: TouchEvent){
131
+ if(this._disabled) {
132
+ return;
133
+ }
134
+ const pointsRemoved: TouchPoints[] = [];
135
+ for (let i = 0; i < e.changedTouches.length; i++) {
136
+ pointsRemoved.push({ident: e.changedTouches[i].identifier, x: e.changedTouches[i].clientX, y: e.changedTouches[i].clientY});
137
+ }
138
+ this.touchSM.happens("touchend", {points: pointsRemoved});
139
+ }
140
+
141
+ touchendHandler(e: TouchEvent){
142
+ if(this._disabled) {
143
+ return;
144
+ }
145
+ const pointsRemoved: TouchPoints[] = [];
146
+ for (let i = 0; i < e.changedTouches.length; i++) {
147
+ pointsRemoved.push({ident: e.changedTouches[i].identifier, x: e.changedTouches[i].clientX, y: e.changedTouches[i].clientY});
148
+ }
149
+ this.touchSM.happens("touchend", {points: pointsRemoved});
150
+ }
151
+
152
+ touchmoveHandler(e: TouchEvent){
153
+ if(this._disabled) {
154
+ return;
155
+ }
156
+ e.preventDefault();
157
+ const pointsMoved: TouchPoints[] = [];
158
+ for (let i = 0; i < e.targetTouches.length; i++) {
159
+ pointsMoved.push({ident: e.targetTouches[i].identifier, x: e.targetTouches[i].clientX, y: e.targetTouches[i].clientY});
160
+ }
161
+ this.touchSM.happens("touchmove", {points: pointsMoved});
162
+ }
163
+
164
+ attach(canvas: HTMLCanvasElement){
165
+ this.tearDown();
166
+ this._canvas = canvas;
167
+ this.setUp();
168
+ }
169
+ }
@@ -0,0 +1 @@
1
+ export * from "./raw-input-publisher";