@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.
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/boardify/index.js +475 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/boardify/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/base.js +340 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/base.js.map +1 -0
- 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
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/index.js +5 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/animation-and-lock/index.js.map +1 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/index.js +4 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/interface.js +2 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/interface.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/relay.js +38 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-mux/relay.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/camera-rig.js +454 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/camera-rig.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/index.js +6 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/pan-handler.js +124 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/pan-handler.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/rotation-handler.js +71 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/rotation-handler.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/index.js +4 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/position-update-batcher.js +97 -0
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/rotation-update-batcher.js +91 -0
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/update-batcher/zoom-udpate-batcher.js +128 -0
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/zoom-handler.js +76 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/camera-rig/zoom-handler.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/default-camera.js +258 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/default-camera.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/index.js +9 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/interface.js +2 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/interface.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/update-publisher.js +74 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/update-publisher.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/coordinate-conversion.js +150 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/coordinate-conversion.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/index.js +6 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/matrix.js +421 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/matrix.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/position.js +177 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/position.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/rotation.js +122 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/rotation.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/zoom.js +46 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera/utils/zoom.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/index.js +6 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/index.js +4 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/index.js +5 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/kmt-input-context.js +191 -0
- 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
- 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
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/input-state-machine/touch-input-context.js +62 -0
- 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
- 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
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/index.js +3 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-parser/index.js.map +1 -0
- 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
- 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
- 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
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/index.js +2 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation/raw-input-publisher/raw-input-publisher.js +99 -0
- 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
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/canvas-position-dimension.js +184 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/canvas-position-dimension.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/coorindate-conversion.js +10 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/coorindate-conversion.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing-utils.js +450 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing-utils.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing.js +192 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/drawing.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/handler-pipeline.js +27 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/handler-pipeline.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/index.js +9 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/index.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/observable.js +47 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/observable.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/ruler.js +21 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/ruler.js.map +1 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/zoomlevel-adjustment.js +102 -0
- package/.rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils/zoomlevel-adjustment.js.map +1 -0
- package/dist/board.tsbuildinfo +1 -0
- package/dist/boardify/index.d.ts +192 -0
- package/dist/camera/base.d.ts +189 -0
- package/dist/camera/camera-mux/animation-and-lock/animation-and-lock.d.ts +50 -0
- package/dist/camera/camera-mux/animation-and-lock/index.d.ts +4 -0
- package/dist/camera/camera-mux/animation-and-lock/pan-control-state-machine.d.ts +137 -0
- package/dist/camera/camera-mux/animation-and-lock/rotation-control-state-machine.d.ts +131 -0
- package/dist/camera/camera-mux/animation-and-lock/zoom-control-state-machine.d.ts +143 -0
- package/dist/camera/camera-mux/index.d.ts +3 -0
- package/dist/camera/camera-mux/interface.d.ts +12 -0
- package/dist/camera/camera-mux/relay.d.ts +27 -0
- package/dist/camera/camera-rig/camera-rig.d.ts +207 -0
- package/dist/camera/camera-rig/index.d.ts +5 -0
- package/dist/camera/camera-rig/pan-handler.d.ts +113 -0
- package/dist/camera/camera-rig/rotation-handler.d.ts +78 -0
- package/dist/camera/camera-rig/update-batcher/index.d.ts +3 -0
- package/dist/camera/camera-rig/update-batcher/position-update-batcher.d.ts +58 -0
- package/dist/camera/camera-rig/update-batcher/rotation-update-batcher.d.ts +54 -0
- package/dist/camera/camera-rig/update-batcher/zoom-udpate-batcher.d.ts +60 -0
- package/dist/camera/camera-rig/zoom-handler.d.ts +77 -0
- package/dist/camera/default-camera.d.ts +170 -0
- package/dist/camera/index.d.ts +8 -0
- package/dist/camera/interface.d.ts +59 -0
- package/dist/camera/update-publisher.d.ts +172 -0
- package/dist/camera/utils/coordinate-conversion.d.ts +75 -0
- package/dist/camera/utils/index.d.ts +5 -0
- package/dist/camera/utils/matrix.d.ts +114 -0
- package/dist/camera/utils/position.d.ts +71 -0
- package/dist/camera/utils/rotation.d.ts +64 -0
- package/dist/camera/utils/zoom.d.ts +25 -0
- package/dist/index.d.ts +5 -0
- package/dist/input-interpretation/index.d.ts +3 -0
- package/dist/input-interpretation/input-state-machine/index.d.ts +4 -0
- package/dist/input-interpretation/input-state-machine/kmt-input-context.d.ts +130 -0
- package/dist/input-interpretation/input-state-machine/kmt-input-state-machine.d.ts +194 -0
- package/dist/input-interpretation/input-state-machine/touch-input-context.d.ts +44 -0
- package/dist/input-interpretation/input-state-machine/touch-input-state-machine.d.ts +64 -0
- package/dist/input-interpretation/raw-input-parser/index.d.ts +2 -0
- package/dist/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.d.ts +87 -0
- package/dist/input-interpretation/raw-input-parser/vanilla-touch-event-parser.d.ts +55 -0
- package/dist/input-interpretation/raw-input-publisher/index.d.ts +1 -0
- package/dist/input-interpretation/raw-input-publisher/raw-input-publisher.d.ts +130 -0
- package/dist/package.json +39 -0
- package/dist/utils/canvas-position-dimension.d.ts +18 -0
- package/dist/utils/coorindate-conversion.d.ts +5 -0
- package/dist/utils/drawing-utils.d.ts +55 -0
- package/dist/utils/drawing.d.ts +30 -0
- package/dist/utils/handler-pipeline.d.ts +30 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/observable.d.ts +9 -0
- package/dist/utils/ruler.d.ts +1 -0
- package/dist/utils/zoomlevel-adjustment.d.ts +28 -0
- package/jest.config.js +18 -0
- package/package.json +11 -10
- package/project.json +34 -0
- package/rollup.config.js +29 -0
- package/src/boardify/index.ts +562 -0
- package/src/camera/base.ts +387 -0
- package/src/camera/camera-mux/animation-and-lock/animation-and-lock.ts +114 -0
- package/src/camera/camera-mux/animation-and-lock/index.ts +4 -0
- package/src/camera/camera-mux/animation-and-lock/pan-control-state-machine.ts +248 -0
- package/src/camera/camera-mux/animation-and-lock/rotation-control-state-machine.ts +237 -0
- package/src/camera/camera-mux/animation-and-lock/zoom-control-state-machine.ts +263 -0
- package/src/camera/camera-mux/index.ts +3 -0
- package/src/camera/camera-mux/interface.ts +13 -0
- package/src/camera/camera-mux/relay.ts +50 -0
- package/src/camera/camera-rig/camera-rig.ts +560 -0
- package/src/camera/camera-rig/index.ts +5 -0
- package/src/camera/camera-rig/pan-handler.ts +192 -0
- package/src/camera/camera-rig/rotation-handler.ts +124 -0
- package/src/camera/camera-rig/update-batcher/index.ts +3 -0
- package/src/camera/camera-rig/update-batcher/position-update-batcher.ts +133 -0
- package/src/camera/camera-rig/update-batcher/rotation-update-batcher.ts +123 -0
- package/src/camera/camera-rig/update-batcher/zoom-udpate-batcher.ts +157 -0
- package/src/camera/camera-rig/zoom-handler.ts +123 -0
- package/src/camera/default-camera.ts +297 -0
- package/src/camera/index.ts +8 -0
- package/src/camera/interface.ts +45 -0
- package/src/camera/update-publisher.ts +222 -0
- package/src/camera/utils/coordinate-conversion.ts +160 -0
- package/src/camera/utils/index.ts +5 -0
- package/src/camera/utils/matrix.ts +558 -0
- package/src/camera/utils/position.ts +196 -0
- package/src/camera/utils/rotation.ts +147 -0
- package/src/camera/utils/zoom.ts +55 -0
- package/src/index.ts +5 -0
- package/src/input-interpretation/index.ts +3 -0
- package/src/input-interpretation/input-state-machine/index.ts +4 -0
- package/src/input-interpretation/input-state-machine/kmt-input-context.ts +283 -0
- package/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts +491 -0
- package/src/input-interpretation/input-state-machine/touch-input-context.ts +106 -0
- package/src/input-interpretation/input-state-machine/touch-input-state-machine.ts +215 -0
- package/src/input-interpretation/raw-input-parser/index.ts +2 -0
- package/src/input-interpretation/raw-input-parser/vanilla-kmt-event-parser.ts +207 -0
- package/src/input-interpretation/raw-input-parser/vanilla-touch-event-parser.ts +169 -0
- package/src/input-interpretation/raw-input-publisher/index.ts +1 -0
- package/src/input-interpretation/raw-input-publisher/raw-input-publisher.ts +227 -0
- package/src/utils/canvas-position-dimension.ts +215 -0
- package/src/utils/coorindate-conversion.ts +12 -0
- package/src/utils/drawing-utils.ts +439 -0
- package/src/utils/drawing.ts +266 -0
- package/src/utils/handler-pipeline.ts +41 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/observable.ts +63 -0
- package/src/utils/ruler.ts +18 -0
- package/src/utils/zoomlevel-adjustment.ts +108 -0
- package/test/board-camera/camera-rig.test.ts +78 -0
- package/test/board-camera/camera-utils.test.ts +263 -0
- package/test/board-camera/utils/coordinate-conversion.test.ts +26 -0
- package/test/board-camera/utils/matrix.test.ts +35 -0
- package/test/boardify/utils/canvas.test.ts +20 -0
- package/test/util/drawing.test.ts +83 -0
- package/test/util/handler-pipeline.test.ts +74 -0
- package/test/util/observable.test.ts +42 -0
- package/test/util/ruler.test.ts +41 -0
- package/tsconfig.json +23 -0
- package/tsconfig.spec.json +12 -0
- /package/{board.tsbuildinfo → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/board.tsbuildinfo} +0 -0
- /package/{boardify → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/boardify}/index.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/base.d.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/index.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/interface.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-mux/relay.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/camera-rig.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/index.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/pan-handler.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/rotation-handler.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/update-batcher/index.d.ts +0 -0
- /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
- /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
- /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
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/camera-rig/zoom-handler.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/default-camera.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/index.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/interface.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/update-publisher.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/coordinate-conversion.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/index.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/matrix.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/position.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/rotation.d.ts +0 -0
- /package/{camera → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/camera}/utils/zoom.d.ts +0 -0
- /package/{index.d.ts → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/index.d.ts} +0 -0
- /package/{input-interpretation → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/input-interpretation}/index.d.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/canvas-position-dimension.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/coorindate-conversion.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/drawing-utils.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/drawing.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/handler-pipeline.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/index.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/observable.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/ruler.d.ts +0 -0
- /package/{utils → .rollup.cache/home/runner/work/ue-too/ue-too/packages/board/dist/utils}/zoomlevel-adjustment.d.ts +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /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,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";
|