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