@vived/app 5.1.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js +3 -0
  2. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  3. package/dist/cjs/HoverLabel/Controllers/HoverLabelMouse.js.map +1 -1
  4. package/dist/cjs/HoverLabel/Controllers/HoverLabelTouch.js.map +1 -1
  5. package/dist/cjs/LabelDrop/Controller/MouseLabelDropAuthor.js.map +1 -1
  6. package/dist/cjs/LabelDrop/Controller/TouchLabelDropAuthor.js.map +1 -1
  7. package/dist/cjs/Landmarks/Controller/MouseLandmark.js.map +1 -1
  8. package/dist/cjs/Landmarks/Controller/TouchLandmark.js.map +1 -1
  9. package/dist/cjs/MouseInput/Entities/MouseInput.js.map +1 -1
  10. package/dist/cjs/MouseInput/Mocks/MockMouseInput.js +4 -5
  11. package/dist/cjs/MouseInput/Mocks/MockMouseInput.js.map +1 -1
  12. package/dist/cjs/MouseInput/Mocks/index.js +18 -0
  13. package/dist/cjs/MouseInput/Mocks/index.js.map +1 -0
  14. package/dist/cjs/MouseInput/index.js +1 -0
  15. package/dist/cjs/MouseInput/index.js.map +1 -1
  16. package/dist/cjs/ObjectPick/Controllers/MouseObjectPickMC.js.map +1 -1
  17. package/dist/cjs/ObjectPick/Controllers/StylusObjectPickSC.js.map +1 -1
  18. package/dist/cjs/ObjectPick/Controllers/TouchObjectPickTC.js.map +1 -1
  19. package/dist/cjs/SceneRoot/Controllers/DoubleTapToFocus.js.map +1 -1
  20. package/dist/cjs/SceneRoot/Controllers/MouseClickToFocus.js.map +1 -1
  21. package/dist/cjs/SceneRoot/Controllers/MouseOrbit.js.map +1 -1
  22. package/dist/cjs/SceneRoot/Controllers/MouseRoll.js.map +1 -1
  23. package/dist/cjs/SceneRoot/Controllers/MouseScale.js.map +1 -1
  24. package/dist/cjs/SceneRoot/Controllers/ScaleSceneRootSC.js.map +1 -1
  25. package/dist/cjs/SceneRoot/Controllers/SceneRootMoveSC.js.map +1 -1
  26. package/dist/cjs/SceneRoot/Controllers/TouchOrbit.js.map +1 -1
  27. package/dist/cjs/SceneRoot/Controllers/TouchPan.js.map +1 -1
  28. package/dist/cjs/SceneRoot/Controllers/TouchPinch.js.map +1 -1
  29. package/dist/cjs/SceneRoot/Controllers/TouchScale.js.map +1 -1
  30. package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.js.map +1 -1
  31. package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js +1 -0
  32. package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
  33. package/dist/cjs/Selection/Controller/MousePressOnAppObject.js.map +1 -1
  34. package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js +1 -0
  35. package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
  36. package/dist/cjs/Selection/Controller/MouseSelectAppObject.js.map +1 -1
  37. package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js +1 -0
  38. package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
  39. package/dist/cjs/Selection/Controller/StylusHoverOnAppObjectSC.js.map +1 -1
  40. package/dist/cjs/Selection/Controller/StylusPressOnAppObjectSC.js.map +1 -1
  41. package/dist/cjs/Selection/Controller/StylusSelectAppObjectSC.js.map +1 -1
  42. package/dist/cjs/Selection/Controller/TapToSelectAppObject.js.map +1 -1
  43. package/dist/cjs/Selection/Controller/TouchPressOnAppObject.js.map +1 -1
  44. package/dist/cjs/Stick/Controllers/DoubleClickToStickMC.js.map +1 -1
  45. package/dist/cjs/Stick/Controllers/DoubleTapToStickTC.js.map +1 -1
  46. package/dist/cjs/Stylus/Entity/StylusEntity.js.map +1 -1
  47. package/dist/cjs/Stylus/Entity/StylusEntity.test.js.map +1 -1
  48. package/dist/cjs/TouchController/Entities/TouchInput.js.map +1 -1
  49. package/dist/cjs/Transform3D/Controllers/Mouse/DragScaleTransformMC.js.map +1 -1
  50. package/dist/cjs/Transform3D/Controllers/Mouse/MousePanTransformMC.js.map +1 -1
  51. package/dist/cjs/Transform3D/Controllers/Mouse/PanTransformMC.js.map +1 -1
  52. package/dist/cjs/Transform3D/Controllers/Mouse/RollScaleTransformMC.js.map +1 -1
  53. package/dist/cjs/Transform3D/Controllers/Stylus/MoveTransformSC.js.map +1 -1
  54. package/dist/cjs/Transform3D/Controllers/Stylus/PanScaleTransformSC.js.map +1 -1
  55. package/dist/cjs/Transform3D/Controllers/Touch/DragScaleTransformTC.js.map +1 -1
  56. package/dist/cjs/Transform3D/Controllers/Touch/PanTransformTC.js.map +1 -1
  57. package/dist/cjs/Transform3D/Controllers/Touch/PinchTransformTC.js.map +1 -1
  58. package/dist/cjs/Transform3D/Controllers/Touch/TouchPanTransformTC.js.map +1 -1
  59. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js +3 -0
  60. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  61. package/dist/esm/HoverLabel/Controllers/HoverLabelMouse.js.map +1 -1
  62. package/dist/esm/HoverLabel/Controllers/HoverLabelTouch.js.map +1 -1
  63. package/dist/esm/LabelDrop/Controller/MouseLabelDropAuthor.js.map +1 -1
  64. package/dist/esm/LabelDrop/Controller/TouchLabelDropAuthor.js.map +1 -1
  65. package/dist/esm/Landmarks/Controller/MouseLandmark.js.map +1 -1
  66. package/dist/esm/Landmarks/Controller/TouchLandmark.js.map +1 -1
  67. package/dist/esm/MouseInput/Entities/MouseInput.js.map +1 -1
  68. package/dist/esm/MouseInput/Mocks/MockMouseInput.js +4 -5
  69. package/dist/esm/MouseInput/Mocks/MockMouseInput.js.map +1 -1
  70. package/dist/esm/MouseInput/Mocks/index.js +2 -0
  71. package/dist/esm/MouseInput/Mocks/index.js.map +1 -0
  72. package/dist/esm/MouseInput/index.js +1 -0
  73. package/dist/esm/MouseInput/index.js.map +1 -1
  74. package/dist/esm/ObjectPick/Controllers/MouseObjectPickMC.js.map +1 -1
  75. package/dist/esm/ObjectPick/Controllers/StylusObjectPickSC.js.map +1 -1
  76. package/dist/esm/ObjectPick/Controllers/TouchObjectPickTC.js.map +1 -1
  77. package/dist/esm/SceneRoot/Controllers/DoubleTapToFocus.js.map +1 -1
  78. package/dist/esm/SceneRoot/Controllers/MouseClickToFocus.js.map +1 -1
  79. package/dist/esm/SceneRoot/Controllers/MouseOrbit.js.map +1 -1
  80. package/dist/esm/SceneRoot/Controllers/MouseRoll.js.map +1 -1
  81. package/dist/esm/SceneRoot/Controllers/MouseScale.js.map +1 -1
  82. package/dist/esm/SceneRoot/Controllers/ScaleSceneRootSC.js.map +1 -1
  83. package/dist/esm/SceneRoot/Controllers/SceneRootMoveSC.js.map +1 -1
  84. package/dist/esm/SceneRoot/Controllers/TouchOrbit.js.map +1 -1
  85. package/dist/esm/SceneRoot/Controllers/TouchPan.js.map +1 -1
  86. package/dist/esm/SceneRoot/Controllers/TouchPinch.js.map +1 -1
  87. package/dist/esm/SceneRoot/Controllers/TouchScale.js.map +1 -1
  88. package/dist/esm/Selection/Controller/MouseHoverOnAppObject.js.map +1 -1
  89. package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js +1 -0
  90. package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
  91. package/dist/esm/Selection/Controller/MousePressOnAppObject.js.map +1 -1
  92. package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js +1 -0
  93. package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
  94. package/dist/esm/Selection/Controller/MouseSelectAppObject.js.map +1 -1
  95. package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js +1 -0
  96. package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
  97. package/dist/esm/Selection/Controller/StylusHoverOnAppObjectSC.js.map +1 -1
  98. package/dist/esm/Selection/Controller/StylusPressOnAppObjectSC.js.map +1 -1
  99. package/dist/esm/Selection/Controller/StylusSelectAppObjectSC.js.map +1 -1
  100. package/dist/esm/Selection/Controller/TapToSelectAppObject.js.map +1 -1
  101. package/dist/esm/Selection/Controller/TouchPressOnAppObject.js.map +1 -1
  102. package/dist/esm/Stick/Controllers/DoubleClickToStickMC.js.map +1 -1
  103. package/dist/esm/Stick/Controllers/DoubleTapToStickTC.js.map +1 -1
  104. package/dist/esm/Stylus/Entity/StylusEntity.js.map +1 -1
  105. package/dist/esm/Stylus/Entity/StylusEntity.test.js.map +1 -1
  106. package/dist/esm/TouchController/Entities/TouchInput.js.map +1 -1
  107. package/dist/esm/Transform3D/Controllers/Mouse/DragScaleTransformMC.js.map +1 -1
  108. package/dist/esm/Transform3D/Controllers/Mouse/MousePanTransformMC.js.map +1 -1
  109. package/dist/esm/Transform3D/Controllers/Mouse/PanTransformMC.js.map +1 -1
  110. package/dist/esm/Transform3D/Controllers/Mouse/RollScaleTransformMC.js.map +1 -1
  111. package/dist/esm/Transform3D/Controllers/Stylus/MoveTransformSC.js.map +1 -1
  112. package/dist/esm/Transform3D/Controllers/Stylus/PanScaleTransformSC.js.map +1 -1
  113. package/dist/esm/Transform3D/Controllers/Touch/DragScaleTransformTC.js.map +1 -1
  114. package/dist/esm/Transform3D/Controllers/Touch/PanTransformTC.js.map +1 -1
  115. package/dist/esm/Transform3D/Controllers/Touch/PinchTransformTC.js.map +1 -1
  116. package/dist/esm/Transform3D/Controllers/Touch/TouchPanTransformTC.js.map +1 -1
  117. package/dist/types/MouseInput/Mocks/MockMouseInput.d.ts +5 -6
  118. package/dist/types/MouseInput/Mocks/MockMouseInput.d.ts.map +1 -1
  119. package/dist/types/MouseInput/Mocks/index.d.ts +2 -0
  120. package/dist/types/MouseInput/Mocks/index.d.ts.map +1 -0
  121. package/dist/types/MouseInput/index.d.ts +1 -0
  122. package/dist/types/MouseInput/index.d.ts.map +1 -1
  123. package/package.json +1 -1
@@ -14,6 +14,9 @@ function makeTestRig() {
14
14
  const mockBabylon = (0, Babylon_1.makeMockBabylonRenderingUC)(appObjects);
15
15
  const mockMouse = new MockMouseInput_1.MockMouseInput(app);
16
16
  const mockTouch = new MockTouchInput_1.MockTouchInputEntity(app);
17
+ // Convert mouse input methods to jest mocks
18
+ mockMouse.setEventElement = jest.fn();
19
+ mockMouse.clearInputElement = jest.fn();
17
20
  const mockWarn = jest.fn();
18
21
  appObjects.submitWarning = mockWarn;
19
22
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"RenderCanvasUC.test.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeRenderCanvasUC, RenderCanvasUC } from \"./RenderCanvasUC\";\nimport { MockKeyboardInput } from \"../../KeyboardInput/Mocks/MockKeyboardInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { MockTouchInputEntity } from \"../../TouchController/Mock/MockTouchInput\";\nimport { makeMockBabylonRenderingUC } from \"../../Babylon\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const app = appObjects.getOrCreate(\"App\");\n const renderUC = makeRenderCanvasUC(app);\n const mockKeybaord = new MockKeyboardInput(app);\n const mockBabylon = makeMockBabylonRenderingUC(appObjects);\n const mockMouse = new MockMouseInput(app);\n const mockTouch = new MockTouchInputEntity(app);\n\n const mockWarn = jest.fn();\n appObjects.submitWarning = mockWarn;\n\n return {\n appObjects,\n renderUC,\n mockBabylon,\n mockKeybaord,\n mockWarn,\n mockTouch,\n mockMouse,\n };\n}\n\ndescribe(\"Render Canvas UC\", () => {\n it(\"Submits the canvas to the keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockKeybaord.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockKeybaord.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockMouse.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockMouse.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockTouch.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the touch input when a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockTouch.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the touch input when a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockBabylon.submitRenderCanvas).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is submitted\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockBabylon.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockBabylon.clearRenderCanvas).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is cleared\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n\n mockBabylon.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { renderUC, appObjects } = makeTestRig();\n\n expect(RenderCanvasUC.get(appObjects)).toEqual(renderUC);\n });\n\n it(\"Warns and returns undefined if there is no UC\", () => {\n const { renderUC, appObjects, mockWarn } = makeTestRig();\n renderUC.dispose();\n\n expect(RenderCanvasUC.get(appObjects)).toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Warns if there are more than two UCs found\", () => {\n const { appObjects, mockWarn } = makeTestRig();\n const newAO = appObjects.getOrCreate(\"newAO\");\n\n makeRenderCanvasUC(newAO);\n\n expect(RenderCanvasUC.get(appObjects)).not.toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"RenderCanvasUC.test.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeRenderCanvasUC, RenderCanvasUC } from \"./RenderCanvasUC\";\nimport { MockKeyboardInput } from \"../../KeyboardInput/Mocks/MockKeyboardInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { MockTouchInputEntity } from \"../../TouchController/Mock/MockTouchInput\";\nimport { makeMockBabylonRenderingUC } from \"../../Babylon\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const app = appObjects.getOrCreate(\"App\");\n const renderUC = makeRenderCanvasUC(app);\n const mockKeybaord = new MockKeyboardInput(app);\n const mockBabylon = makeMockBabylonRenderingUC(appObjects);\n const mockMouse = new MockMouseInput(app);\n const mockTouch = new MockTouchInputEntity(app);\n\n // Convert mouse input methods to jest mocks\n mockMouse.setEventElement = jest.fn();\n mockMouse.clearInputElement = jest.fn();\n\n const mockWarn = jest.fn();\n appObjects.submitWarning = mockWarn;\n\n return {\n appObjects,\n renderUC,\n mockBabylon,\n mockKeybaord,\n mockWarn,\n mockTouch,\n mockMouse,\n };\n}\n\ndescribe(\"Render Canvas UC\", () => {\n it(\"Submits the canvas to the keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockKeybaord.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockKeybaord.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the keyboard input when a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockMouse.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockMouse.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the mouse input when a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockTouch.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the touch input when a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockTouch.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the touch input when a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockBabylon.submitRenderCanvas).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is submitted\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockBabylon.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockBabylon.clearRenderCanvas).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is cleared\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n\n mockBabylon.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { renderUC, appObjects } = makeTestRig();\n\n expect(RenderCanvasUC.get(appObjects)).toEqual(renderUC);\n });\n\n it(\"Warns and returns undefined if there is no UC\", () => {\n const { renderUC, appObjects, mockWarn } = makeTestRig();\n renderUC.dispose();\n\n expect(RenderCanvasUC.get(appObjects)).toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Warns if there are more than two UCs found\", () => {\n const { appObjects, mockWarn } = makeTestRig();\n const newAO = appObjects.getOrCreate(\"newAO\");\n\n makeRenderCanvasUC(newAO);\n\n expect(RenderCanvasUC.get(appObjects)).not.toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HoverLabelMouse.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelMouse.ts"],"names":[],"mappings":";;;AAoBA,kDAEC;AAtBD,qEAAkE;AAClE,mEAAgE;AAChE,sCAA6D;AAC7D,iDAI0B;AAE1B,MAAsB,eACpB,SAAQ,0BAAmB;;AAD7B,0CASC;AALQ,oBAAI,GAAG,6BAA6B,CAAC;AAO9C,SAAgB,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IA6B9C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA7BhC,oBAAe,GAAG,GAAG,CAAC;QAO/B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YAEpC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,CAAC,CAAC;QAKA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CACjD,mCAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CACP,wGAAwG,CACzG,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,qCAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF","sourcesContent":["import { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\n\nexport abstract class HoverLabelMouse\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_HoverLabel_Controller\";\n\n abstract readonly hoverLabelDelay: number;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeHoverLabelMouse(appObject: AppObject): HoverLabelMouse {\n return new HoverLabelMouseImp(appObject);\n}\n\nclass HoverLabelMouseImp extends HoverLabelMouse {\n readonly hoverLabelDelay = 500;\n\n private currentTimeout: NodeJS.Timeout | undefined;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n if (!this.tryShowHoverLabel) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n\n if (this.currentTimeout) {\n clearTimeout(this.currentTimeout);\n }\n\n this.currentTimeout = setTimeout(() => {\n this.tryShowHoverLabel?.tryShowScreenHoverLabel(e.position);\n this.currentTimeout = undefined;\n }, this.hoverLabelDelay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelMouse.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\"\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"HoverLabelMouse.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelMouse.ts"],"names":[],"mappings":";;;AAoBA,kDAEC;AAtBD,qEAAkE;AAClE,mEAAgE;AAChE,sCAA6D;AAC7D,iDAI0B;AAE1B,MAAsB,eACpB,SAAQ,0BAAmB;;AAD7B,0CASC;AALQ,oBAAI,GAAG,6BAA6B,CAAC;AAO9C,SAAgB,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IA6B9C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA7BhC,oBAAe,GAAG,GAAG,CAAC;QAO/B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YAEpC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,CAAC,CAAC;QAKA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CACjD,mCAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CACP,wGAAwG,CACzG,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,qCAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF","sourcesContent":["import { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\n\nexport abstract class HoverLabelMouse\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_HoverLabel_Controller\";\n\n abstract readonly hoverLabelDelay: number;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeHoverLabelMouse(appObject: AppObject): HoverLabelMouse {\n return new HoverLabelMouseImp(appObject);\n}\n\nclass HoverLabelMouseImp extends HoverLabelMouse {\n readonly hoverLabelDelay = 500;\n\n private currentTimeout: NodeJS.Timeout | undefined;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n if (!this.tryShowHoverLabel) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n\n if (this.currentTimeout) {\n clearTimeout(this.currentTimeout);\n }\n\n this.currentTimeout = setTimeout(() => {\n this.tryShowHoverLabel?.tryShowScreenHoverLabel(e.position);\n this.currentTimeout = undefined;\n }, this.hoverLabelDelay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelMouse.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type,\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\",\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HoverLabelTouch.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelTouch.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\n\nexport abstract class HoverLabelTouch\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"Touch_Hoverlabel_Controller\";\n\n abstract readonly touchLabelDragThreshold: number;\n abstract allow: (e: TouchInputEvent) => boolean;\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(): void;\n}\n\nexport function makeHoverLabelTouch(appObject: AppObject): HoverLabelTouch {\n return new HoverLabelTouchImp(appObject);\n}\n\nclass HoverLabelTouchImp extends HoverLabelTouch {\n readonly touchLabelDragThreshold = 15;\n\n private lastPosition: Vector2 = Vector2.Zero();\n private startPosition: Vector2 = Vector2.Zero();\n private touchStarted = false;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n this.touchStarted = false;\n\n if (e.touchCount !== 1) return;\n\n this.startPosition = e.touches[0].position;\n this.lastPosition = e.touches[0].position;\n this.touchStarted = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.touchStarted) return;\n\n this.lastPosition = e.touches[0].position;\n };\n\n onTouchEnd = () => {\n if (!this.touchStarted) return;\n if (!this.tryShowHoverLabel) return;\n\n const xDiff = this.lastPosition.x - this.startPosition.x;\n const yDiff = this.lastPosition.y - this.startPosition.y;\n const dist = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n\n if (dist < this.touchLabelDragThreshold) {\n this.tryShowHoverLabel.tryShowScreenHoverLabel(this.lastPosition);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelTouch.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\"\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"HoverLabelTouch.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelTouch.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\n\nexport abstract class HoverLabelTouch\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"Touch_Hoverlabel_Controller\";\n\n abstract readonly touchLabelDragThreshold: number;\n abstract allow: (e: TouchInputEvent) => boolean;\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(): void;\n}\n\nexport function makeHoverLabelTouch(appObject: AppObject): HoverLabelTouch {\n return new HoverLabelTouchImp(appObject);\n}\n\nclass HoverLabelTouchImp extends HoverLabelTouch {\n readonly touchLabelDragThreshold = 15;\n\n private lastPosition: Vector2 = Vector2.Zero();\n private startPosition: Vector2 = Vector2.Zero();\n private touchStarted = false;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n this.touchStarted = false;\n\n if (e.touchCount !== 1) return;\n\n this.startPosition = e.touches[0].position;\n this.lastPosition = e.touches[0].position;\n this.touchStarted = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.touchStarted) return;\n\n this.lastPosition = e.touches[0].position;\n };\n\n onTouchEnd = () => {\n if (!this.touchStarted) return;\n if (!this.tryShowHoverLabel) return;\n\n const xDiff = this.lastPosition.x - this.startPosition.x;\n const yDiff = this.lastPosition.y - this.startPosition.y;\n const dist = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n\n if (dist < this.touchLabelDragThreshold) {\n this.tryShowHoverLabel.tryShowScreenHoverLabel(this.lastPosition);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelTouch.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type,\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\",\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/MouseLabelDropAuthor.ts"],"names":[],"mappings":";;;AAgBA,4DAIC;AApBD,sCAA6D;AAC7D,qEAI8C;AAC9C,iFAA8E;AAE9E,MAAsB,oBACpB,SAAQ,0BAAmB;;AAD7B,oDAMC;AAFQ,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iDAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAKD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput/Entities/MouseInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class MouseLabelDropAuthor\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"MouseLabelDropAuthor\";\n abstract onClick: (e: MouseInputEvent) => void;\n}\n\nexport function makeMouseLabelDropAuthor(\n appObject: AppObject\n): MouseLabelDropAuthor {\n return new MouseLabelDropAuthorImp(appObject);\n}\n\nclass MouseLabelDropAuthorImp extends MouseLabelDropAuthor {\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type\n );\n }\n onClick = (e: MouseInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLabelDropAuthor.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"MouseLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/MouseLabelDropAuthor.ts"],"names":[],"mappings":";;;AAgBA,4DAIC;AApBD,sCAA6D;AAC7D,qEAI8C;AAC9C,iFAA8E;AAE9E,MAAsB,oBACpB,SAAQ,0BAAmB;;AAD7B,oDAMC;AAFQ,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iDAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAKD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput/Entities/MouseInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class MouseLabelDropAuthor\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"MouseLabelDropAuthor\";\n abstract onClick: (e: MouseInputEvent) => void;\n}\n\nexport function makeMouseLabelDropAuthor(\n appObject: AppObject,\n): MouseLabelDropAuthor {\n return new MouseLabelDropAuthorImp(appObject);\n}\n\nclass MouseLabelDropAuthorImp extends MouseLabelDropAuthor {\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type,\n );\n }\n onClick = (e: MouseInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLabelDropAuthor.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/TouchLabelDropAuthor.ts"],"names":[],"mappings":";;;AAgBA,4DAIC;AApBD,sCAA6D;AAC7D,0EAImD;AACnD,iFAA8E;AAE9E,MAAsB,oBACpB,SAAQ,0BAAmB;;AAD7B,oDAMC;AAFQ,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iDAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController/Entities/TouchInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class TouchLabelDropAuthor\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TouchLabelDropAuthor\";\n abstract onTap: (e: TouchInputEvent) => void;\n}\n\nexport function makeTouchLabelDropAuthor(\n appObject: AppObject\n): TouchLabelDropAuthor {\n return new TouchLabelDropAuthorImp(appObject);\n}\n\nclass TouchLabelDropAuthorImp extends TouchLabelDropAuthor {\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type\n );\n }\n\n private get touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n onTap = (e: TouchInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.touchCenter);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLabelDropAuthor.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"TouchLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/TouchLabelDropAuthor.ts"],"names":[],"mappings":";;;AAgBA,4DAIC;AApBD,sCAA6D;AAC7D,0EAImD;AACnD,iFAA8E;AAE9E,MAAsB,oBACpB,SAAQ,0BAAmB;;AAD7B,oDAMC;AAFQ,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,iDAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController/Entities/TouchInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class TouchLabelDropAuthor\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TouchLabelDropAuthor\";\n abstract onTap: (e: TouchInputEvent) => void;\n}\n\nexport function makeTouchLabelDropAuthor(\n appObject: AppObject,\n): TouchLabelDropAuthor {\n return new TouchLabelDropAuthorImp(appObject);\n}\n\nclass TouchLabelDropAuthorImp extends TouchLabelDropAuthor {\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type,\n );\n }\n\n private get touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n onTap = (e: TouchInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.touchCenter);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLabelDropAuthor.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/MouseLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class MouseLandmark\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_Landmark_Controller\";\n\n addingLandmark: boolean = false;\n pressed = false;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract onDown: (e: MouseInputEvent) => void;\n abstract onUp: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeMouseLandmark(appObject: AppObject): MouseLandmark {\n return new MouseLandmarkImp(appObject);\n}\n\nclass MouseLandmarkImp extends MouseLandmark {\n addingLandmark: boolean = false;\n pressed = false;\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type\n );\n }\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, this.pressed);\n };\n\n onDown = (e: MouseInputEvent) => {\n this.addingLandmark = false;\n\n if (e.button !== 0) return;\n\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n const pressed = true;\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, pressed);\n this.addingLandmark = true;\n this.pressed = true;\n };\n\n onUp = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.addingLandmark) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n\n this.tryPreviewLandmarkUc.hidePreview();\n this.addingLandmark = false;\n this.pressed = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLandmark.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"MouseLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/MouseLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class MouseLandmark\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_Landmark_Controller\";\n\n addingLandmark: boolean = false;\n pressed = false;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract onDown: (e: MouseInputEvent) => void;\n abstract onUp: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeMouseLandmark(appObject: AppObject): MouseLandmark {\n return new MouseLandmarkImp(appObject);\n}\n\nclass MouseLandmarkImp extends MouseLandmark {\n addingLandmark: boolean = false;\n pressed = false;\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type,\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type,\n );\n }\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, this.pressed);\n };\n\n onDown = (e: MouseInputEvent) => {\n this.addingLandmark = false;\n\n if (e.button !== 0) return;\n\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n const pressed = true;\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, pressed);\n this.addingLandmark = true;\n this.pressed = true;\n };\n\n onUp = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.addingLandmark) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n\n this.tryPreviewLandmarkUc.hidePreview();\n this.addingLandmark = false;\n this.pressed = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLandmark.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/TouchLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { LandmarkGlobals } from \"../Entities/LandmarkGlobals\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class TouchLandmark\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TOUCH_LANDMARK_CONTROLLER\";\n\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(e: TouchInputEvent): void;\n abstract allow: (e: TouchInputEvent) => boolean;\n}\n\nexport function makeTouchLandmark(appObject: AppObject): TouchLandmark {\n return new TouchLandmarkImp(appObject);\n}\n\nclass TouchLandmarkImp extends TouchLandmark {\n private lastTouch: Vector2 = Vector2.Zero();\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type\n );\n }\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length === 1) {\n return true;\n }\n\n return false;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(this.lastTouch, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n this.tryPreviewLandmarkUc.hidePreview();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLandmark.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"TouchLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/TouchLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { LandmarkGlobals } from \"../Entities/LandmarkGlobals\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class TouchLandmark\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TOUCH_LANDMARK_CONTROLLER\";\n\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(e: TouchInputEvent): void;\n abstract allow: (e: TouchInputEvent) => boolean;\n}\n\nexport function makeTouchLandmark(appObject: AppObject): TouchLandmark {\n return new TouchLandmarkImp(appObject);\n}\n\nclass TouchLandmarkImp extends TouchLandmark {\n private lastTouch: Vector2 = Vector2.Zero();\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type,\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type,\n );\n }\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length === 1) {\n return true;\n }\n\n return false;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(this.lastTouch, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n this.tryPreviewLandmarkUc.hidePreview();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLandmark.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Entities/MouseInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectEntity, getSingletonComponent } from \"@vived/core\";\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface MouseInputEvent {\n position: Vector2;\n button: number;\n event: MouseEvent;\n}\n\nexport interface MouseWheelEvent {\n position: Vector2;\n event: WheelEvent;\n}\n\nexport interface MouseEventHandler {\n onClick?: (e: MouseInputEvent) => void;\n onDoubleClick?: (e: MouseInputEvent) => void;\n onDown?: (e: MouseInputEvent) => void;\n onUp?: (e: MouseInputEvent) => void;\n onMove?: (e: MouseInputEvent) => void;\n onWheel?: (e: MouseWheelEvent) => void;\n}\n\n/**\n * @deprecated Use MouseEventHandler instead. MouseController will be removed in a future version.\n */\nexport type MouseController = MouseEventHandler;\n\nexport abstract class MouseInputEntity extends AppObjectEntity {\n static readonly type = \"MouseInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n\n abstract setEventElement(eventElement: HTMLElement): void;\n abstract clearInputElement(): void;\n\n abstract registerController(controller: MouseEventHandler): void;\n abstract removeController(controller: MouseEventHandler): void;\n\n static get = (appObjects: AppObjectRepo): MouseInputEntity | undefined =>\n getSingletonComponent(MouseInputEntity.type, appObjects);\n}\n\nexport function makeMouseInput(appObject: AppObject): MouseInputEntity {\n return new MouseInputEntityImp(appObject);\n}\n\nclass MouseInputEntityImp extends MouseInputEntity {\n private controllers: MouseEventHandler[] = [];\n\n private maxClickMovement = 5; // pixels\n private pressEvent?: MouseEvent;\n private isPressed = false;\n\n private initialClickTime: number = 0;\n private initialClickPos: Vector2 = Vector2.Zero();\n private clickCount = 0;\n private maxDoubleClickTimeMS = 300;\n private maxDoubleClickDistancePx = 5;\n\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"mousedown\", this.onMouseDown, false);\n eventElement.addEventListener(\"mouseup\", this.onMouseUp, false);\n eventElement.addEventListener(\"mousemove\", this.onMouseMove, false);\n eventElement.addEventListener(\"mouseout\", this.onMouseOut, false);\n eventElement.addEventListener(\"wheel\", this.onWheel, false);\n\n this._eventElement = eventElement;\n };\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"mousedown\", this.onMouseDown);\n this._eventElement.removeEventListener(\"mouseup\", this.onMouseUp);\n this._eventElement.removeEventListener(\"mousemove\", this.onMouseMove);\n this._eventElement.removeEventListener(\"mouseout\", this.onMouseOut);\n this._eventElement.removeEventListener(\"wheel\", this.onWheel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: MouseEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: MouseEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private onMouseDown = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onDown) {\n c.onDown(inputEvt);\n }\n });\n\n this.isPressed = true;\n this.pressEvent = e;\n\n if (this.clickCount === 0) return;\n\n const movement = Vector2.Subtract(\n this.initialClickPos,\n inputEvt.position\n ).magnitued;\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime > this.maxDoubleClickTimeMS ||\n movement > this.maxDoubleClickDistancePx\n ) {\n this.clickCount = 0;\n }\n };\n\n private onMouseUp = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.isPressed = false;\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued < this.maxClickMovement) {\n this.controllers.forEach((c) => {\n if (c.onClick) {\n c.onClick(inputEvt);\n }\n });\n this.clickCount += 1;\n } else {\n this.cancelDoubleClick();\n return;\n }\n\n if (this.clickCount === 1) {\n this.initialClickTime = Date.now();\n this.initialClickPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY\n );\n } else if (this.clickCount === 2) {\n const currentPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY\n );\n let movement = Vector2.Subtract(\n this.initialClickPos,\n currentPos\n ).magnitued;\n if (isNaN(movement)) {\n movement = 0;\n }\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime <= this.maxDoubleClickTimeMS &&\n movement <= this.maxDoubleClickDistancePx\n ) {\n this.controllers.forEach((c) => {\n if (c.onDoubleClick) {\n c.onDoubleClick(inputEvt);\n }\n });\n\n this.cancelDoubleClick();\n }\n }\n\n this.pressEvent = undefined;\n };\n\n private cancelDoubleClick = () => {\n this.initialClickPos = Vector2.Zero();\n this.initialClickTime = 0;\n this.clickCount = 0;\n };\n\n private onMouseMove = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onMove) {\n c.onMove(inputEvt);\n }\n });\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued > this.maxClickMovement) {\n this.pressEvent = undefined;\n }\n };\n\n private onMouseOut = (e: MouseEvent) => {\n this.cancelDoubleClick();\n\n if (!this.isPressed) return;\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.pressEvent = undefined;\n this.isPressed = false;\n };\n\n private onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const px = e.offsetX;\n const py = e.offsetY;\n const button = e.button;\n\n const inputEvt: MouseWheelEvent = {\n position: new Vector2(px, py),\n event: e,\n };\n\n this.controllers.forEach((c) => {\n if (c.onWheel) {\n c.onWheel(inputEvt);\n }\n });\n };\n\n private makeMouseInputEvent(event: MouseEvent): MouseInputEvent {\n const px = event.offsetX;\n const py = event.offsetY;\n const button = event.button;\n\n return {\n position: new Vector2(px, py),\n button,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
1
+ {"version":3,"file":"MouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Entities/MouseInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectEntity, getSingletonComponent } from \"@vived/core\";\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface MouseInputEvent {\n position: Vector2;\n button: number;\n event: MouseEvent;\n}\n\nexport interface MouseWheelEvent {\n position: Vector2;\n event: WheelEvent;\n}\n\nexport interface MouseEventHandler {\n onClick?: (e: MouseInputEvent) => void;\n onDoubleClick?: (e: MouseInputEvent) => void;\n onDown?: (e: MouseInputEvent) => void;\n onUp?: (e: MouseInputEvent) => void;\n onMove?: (e: MouseInputEvent) => void;\n onWheel?: (e: MouseWheelEvent) => void;\n}\n\n/**\n * @deprecated Use MouseEventHandler instead. MouseController will be removed in a future version.\n */\nexport type MouseController = MouseEventHandler;\n\nexport abstract class MouseInputEntity extends AppObjectEntity {\n static readonly type = \"MouseInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n\n abstract setEventElement(eventElement: HTMLElement): void;\n abstract clearInputElement(): void;\n\n abstract registerController(controller: MouseEventHandler): void;\n abstract removeController(controller: MouseEventHandler): void;\n\n static get = (appObjects: AppObjectRepo): MouseInputEntity | undefined =>\n getSingletonComponent(MouseInputEntity.type, appObjects);\n}\n\nexport function makeMouseInput(appObject: AppObject): MouseInputEntity {\n return new MouseInputEntityImp(appObject);\n}\n\nclass MouseInputEntityImp extends MouseInputEntity {\n private controllers: MouseEventHandler[] = [];\n\n private maxClickMovement = 5; // pixels\n private pressEvent?: MouseEvent;\n private isPressed = false;\n\n private initialClickTime: number = 0;\n private initialClickPos: Vector2 = Vector2.Zero();\n private clickCount = 0;\n private maxDoubleClickTimeMS = 300;\n private maxDoubleClickDistancePx = 5;\n\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"mousedown\", this.onMouseDown, false);\n eventElement.addEventListener(\"mouseup\", this.onMouseUp, false);\n eventElement.addEventListener(\"mousemove\", this.onMouseMove, false);\n eventElement.addEventListener(\"mouseout\", this.onMouseOut, false);\n eventElement.addEventListener(\"wheel\", this.onWheel, false);\n\n this._eventElement = eventElement;\n };\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"mousedown\", this.onMouseDown);\n this._eventElement.removeEventListener(\"mouseup\", this.onMouseUp);\n this._eventElement.removeEventListener(\"mousemove\", this.onMouseMove);\n this._eventElement.removeEventListener(\"mouseout\", this.onMouseOut);\n this._eventElement.removeEventListener(\"wheel\", this.onWheel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: MouseEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: MouseEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private onMouseDown = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onDown) {\n c.onDown(inputEvt);\n }\n });\n\n this.isPressed = true;\n this.pressEvent = e;\n\n if (this.clickCount === 0) return;\n\n const movement = Vector2.Subtract(\n this.initialClickPos,\n inputEvt.position,\n ).magnitued;\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime > this.maxDoubleClickTimeMS ||\n movement > this.maxDoubleClickDistancePx\n ) {\n this.clickCount = 0;\n }\n };\n\n private onMouseUp = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.isPressed = false;\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued < this.maxClickMovement) {\n this.controllers.forEach((c) => {\n if (c.onClick) {\n c.onClick(inputEvt);\n }\n });\n this.clickCount += 1;\n } else {\n this.cancelDoubleClick();\n return;\n }\n\n if (this.clickCount === 1) {\n this.initialClickTime = Date.now();\n this.initialClickPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY,\n );\n } else if (this.clickCount === 2) {\n const currentPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY,\n );\n let movement = Vector2.Subtract(\n this.initialClickPos,\n currentPos,\n ).magnitued;\n if (isNaN(movement)) {\n movement = 0;\n }\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime <= this.maxDoubleClickTimeMS &&\n movement <= this.maxDoubleClickDistancePx\n ) {\n this.controllers.forEach((c) => {\n if (c.onDoubleClick) {\n c.onDoubleClick(inputEvt);\n }\n });\n\n this.cancelDoubleClick();\n }\n }\n\n this.pressEvent = undefined;\n };\n\n private cancelDoubleClick = () => {\n this.initialClickPos = Vector2.Zero();\n this.initialClickTime = 0;\n this.clickCount = 0;\n };\n\n private onMouseMove = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onMove) {\n c.onMove(inputEvt);\n }\n });\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued > this.maxClickMovement) {\n this.pressEvent = undefined;\n }\n };\n\n private onMouseOut = (e: MouseEvent) => {\n this.cancelDoubleClick();\n\n if (!this.isPressed) return;\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.pressEvent = undefined;\n this.isPressed = false;\n };\n\n private onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const px = e.offsetX;\n const py = e.offsetY;\n const button = e.button;\n\n const inputEvt: MouseWheelEvent = {\n position: new Vector2(px, py),\n event: e,\n };\n\n this.controllers.forEach((c) => {\n if (c.onWheel) {\n c.onWheel(inputEvt);\n }\n });\n };\n\n private makeMouseInputEvent(event: MouseEvent): MouseInputEvent {\n const px = event.offsetX;\n const py = event.offsetY;\n const button = event.button;\n\n return {\n position: new Vector2(px, py),\n button,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
@@ -8,11 +8,10 @@ class MockMouseInput extends MouseInput_1.MouseInputEntity {
8
8
  }
9
9
  constructor(appObject) {
10
10
  super(appObject, MouseInput_1.MouseInputEntity.type);
11
- this.setEventElement = jest.fn();
12
- this.clearInputElement = jest.fn();
13
- this.registerController = jest.fn();
14
- this.removeController = jest.fn();
15
- this.isKeyPressed = jest.fn();
11
+ this.setEventElement = (_eventElement) => { };
12
+ this.clearInputElement = () => { };
13
+ this.registerController = (_controller) => { };
14
+ this.removeController = (_controller) => { };
16
15
  }
17
16
  }
18
17
  exports.MockMouseInput = MockMouseInput;
@@ -1 +1 @@
1
- {"version":3,"file":"MockMouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/MockMouseInput.ts"],"names":[],"mappings":";;;AACA,uDAA0D;AAE1D,MAAa,cAAe,SAAQ,6BAAgB;IAClD,IAAI,YAAY;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6BAAgB,CAAC,IAAI,CAAC,CAAC;QAP1C,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,sBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,uBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,qBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,iBAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIzB,CAAC;CACF;AAbD,wCAaC","sourcesContent":["import { AppObject } from \"@vived/core\";\nimport { MouseInputEntity } from \"../Entities/MouseInput\";\n\nexport class MockMouseInput extends MouseInputEntity {\n get eventElement(): HTMLElement | undefined {\n throw new Error(\"Method not implemented.\");\n }\n setEventElement = jest.fn();\n clearInputElement = jest.fn();\n registerController = jest.fn();\n removeController = jest.fn();\n isKeyPressed = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
1
+ {"version":3,"file":"MockMouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/MockMouseInput.ts"],"names":[],"mappings":";;;AACA,uDAA6E;AAE7E,MAAa,cAAe,SAAQ,6BAAgB;IAClD,IAAI,YAAY;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,6BAAgB,CAAC,IAAI,CAAC,CAAC;QAN1C,oBAAe,GAAG,CAAC,aAA0B,EAAQ,EAAE,GAAE,CAAC,CAAC;QAC3D,sBAAiB,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;QACnC,uBAAkB,GAAG,CAAC,WAA8B,EAAQ,EAAE,GAAE,CAAC,CAAC;QAClE,qBAAgB,GAAG,CAAC,WAA8B,EAAQ,EAAE,GAAE,CAAC,CAAC;IAIhE,CAAC;CACF;AAZD,wCAYC","sourcesContent":["import { AppObject } from \"@vived/core\";\nimport { MouseInputEntity, MouseEventHandler } from \"../Entities/MouseInput\";\n\nexport class MockMouseInput extends MouseInputEntity {\n get eventElement(): HTMLElement | undefined {\n throw new Error(\"Method not implemented.\");\n }\n setEventElement = (_eventElement: HTMLElement): void => {};\n clearInputElement = (): void => {};\n registerController = (_controller: MouseEventHandler): void => {};\n removeController = (_controller: MouseEventHandler): void => {};\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MockMouseInput"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC","sourcesContent":["export * from \"./MockMouseInput\";\n"]}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Entities"), exports);
18
18
  __exportStar(require("./Factories"), exports);
19
+ __exportStar(require("./Mocks"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MouseInput/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B","sourcesContent":["export * from \"./Entities\";\nexport * from \"./Factories\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MouseInput/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B;AAC5B,0CAAwB","sourcesContent":["export * from \"./Entities\";\nexport * from \"./Factories\";\nexport * from \"./Mocks\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseObjectPickMC.js","sourceRoot":"","sources":["../../../../src/ObjectPick/Controllers/MouseObjectPickMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oEAAiE;AACjE,qEAI8C;AAC9C,6EAA0E;AAC1E,6EAA0E;AAE1E,MAAa,iBACX,SAAQ,0BAAmB;IAK3B,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAe,2BAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAf3C,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE,OAAO;YAEnE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AA3CH,8CA4CC;AAxCQ,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput/Entities/MouseInput\";\nimport { TrySelectObjectPickUC } from \"../UseCases/TrySelectObjectPickUC\";\nimport { TrySubmitObjectPickUC } from \"../UseCases/TrySubmitObjectPickUC\";\n\nexport class MouseObjectPickMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"MouseObjectPickMC\";\n\n private get baseApp() {\n return this.getCachedSingleton<BaseAppState>(BaseAppState.type);\n }\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get trySelectObjectPick() {\n return this.getCachedSingleton<TrySelectObjectPickUC>(\n TrySelectObjectPickUC.type\n )?.tryWithPixel;\n }\n\n private get trySubmitObjectPick() {\n return this.getCachedSingleton<TrySubmitObjectPickUC>(\n TrySubmitObjectPickUC.type\n )?.tryWithPixel;\n }\n\n onClick = (e: MouseInputEvent) => {\n if (!this.trySelectObjectPick || !this.trySubmitObjectPick) return;\n\n if (e.button !== 0) {\n return;\n }\n\n if (this.baseApp?.isAuthoring) {\n this.trySelectObjectPick(e.position);\n } else {\n this.trySubmitObjectPick(e.position);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseObjectPickMC.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"MouseObjectPickMC.js","sourceRoot":"","sources":["../../../../src/ObjectPick/Controllers/MouseObjectPickMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oEAAiE;AACjE,qEAI8C;AAC9C,6EAA0E;AAC1E,6EAA0E;AAE1E,MAAa,iBACX,SAAQ,0BAAmB;IAK3B,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAe,2BAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAf3C,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE,OAAO;YAEnE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AA3CH,8CA4CC;AAxCQ,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput/Entities/MouseInput\";\nimport { TrySelectObjectPickUC } from \"../UseCases/TrySelectObjectPickUC\";\nimport { TrySubmitObjectPickUC } from \"../UseCases/TrySubmitObjectPickUC\";\n\nexport class MouseObjectPickMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"MouseObjectPickMC\";\n\n private get baseApp() {\n return this.getCachedSingleton<BaseAppState>(BaseAppState.type);\n }\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get trySelectObjectPick() {\n return this.getCachedSingleton<TrySelectObjectPickUC>(\n TrySelectObjectPickUC.type,\n )?.tryWithPixel;\n }\n\n private get trySubmitObjectPick() {\n return this.getCachedSingleton<TrySubmitObjectPickUC>(\n TrySubmitObjectPickUC.type,\n )?.tryWithPixel;\n }\n\n onClick = (e: MouseInputEvent) => {\n if (!this.trySelectObjectPick || !this.trySubmitObjectPick) return;\n\n if (e.button !== 0) {\n return;\n }\n\n if (this.baseApp?.isAuthoring) {\n this.trySelectObjectPick(e.position);\n } else {\n this.trySubmitObjectPick(e.position);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseObjectPickMC.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StylusObjectPickSC.js","sourceRoot":"","sources":["../../../../src/ObjectPick/Controllers/StylusObjectPickSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,mEAG0C;AAC1C,6EAA0E;AAE1E,MAAa,kBACX,SAAQ,0BAAmB;IAI3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,2BAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,UAAU,CAAC;IAChB,CAAC;IAUD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAT5C,kBAAa,GAAG,CAAC,MAAc,EAAE,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE,OAAO;YACtD,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AA1BH,gDA2BC;AAvBiB,uBAAI,GAAG,oBAAoB,AAAvB,CAAwB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n StylusEventHandler,\n StylusEntity,\n} from \"../../Stylus/Entity/StylusEntity\";\nimport { TrySubmitObjectPickUC } from \"../UseCases/TrySubmitObjectPickUC\";\n\nexport class StylusObjectPickSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"StylusObjectPickSC\";\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get trySubmitObjectPick() {\n return this.getCachedSingleton<TrySubmitObjectPickUC>(\n TrySubmitObjectPickUC.type\n )?.tryWithRay;\n }\n\n onButtonClick = (button: number) => {\n if (!this.stylus || !this.trySubmitObjectPick) return;\n if (button !== 0) return;\n\n const pointerRay = this.stylus.pickRay;\n this.trySubmitObjectPick(pointerRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StylusObjectPickSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"StylusObjectPickSC.js","sourceRoot":"","sources":["../../../../src/ObjectPick/Controllers/StylusObjectPickSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,mEAG0C;AAC1C,6EAA0E;AAE1E,MAAa,kBACX,SAAQ,0BAAmB;IAI3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,2BAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,UAAU,CAAC;IAChB,CAAC;IAUD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAT5C,kBAAa,GAAG,CAAC,MAAc,EAAE,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE,OAAO;YACtD,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AA1BH,gDA2BC;AAvBiB,uBAAI,GAAG,oBAAoB,AAAvB,CAAwB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n StylusEventHandler,\n StylusEntity,\n} from \"../../Stylus/Entity/StylusEntity\";\nimport { TrySubmitObjectPickUC } from \"../UseCases/TrySubmitObjectPickUC\";\n\nexport class StylusObjectPickSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"StylusObjectPickSC\";\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get trySubmitObjectPick() {\n return this.getCachedSingleton<TrySubmitObjectPickUC>(\n TrySubmitObjectPickUC.type,\n )?.tryWithRay;\n }\n\n onButtonClick = (button: number) => {\n if (!this.stylus || !this.trySubmitObjectPick) return;\n if (button !== 0) return;\n\n const pointerRay = this.stylus.pickRay;\n this.trySubmitObjectPick(pointerRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StylusObjectPickSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchObjectPickTC.js","sourceRoot":"","sources":["../../../../src/ObjectPick/Controllers/TouchObjectPickTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oEAAiE;AACjE,0EAImD;AACnD,6EAA0E;AAC1E,6EAA0E;AAE1E,MAAa,iBACX,SAAQ,0BAAmB;IAK3B,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAe,2BAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAYD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAX3C,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE,OAAO;YAEnE,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAvCH,8CAwCC;AApCQ,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController/Entities/TouchInput\";\nimport { TrySelectObjectPickUC } from \"../UseCases/TrySelectObjectPickUC\";\nimport { TrySubmitObjectPickUC } from \"../UseCases/TrySubmitObjectPickUC\";\n\nexport class TouchObjectPickTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TouchObjectPickTC\";\n\n private get baseApp() {\n return this.getCachedSingleton<BaseAppState>(BaseAppState.type);\n }\n\n private get touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n private get trySelectObjectPick() {\n return this.getCachedSingleton<TrySelectObjectPickUC>(\n TrySelectObjectPickUC.type\n )?.tryWithPixel;\n }\n\n private get trySubmitObjectPick() {\n return this.getCachedSingleton<TrySubmitObjectPickUC>(\n TrySubmitObjectPickUC.type\n )?.tryWithPixel;\n }\n\n onTap = (e: TouchInputEvent) => {\n if (!this.trySelectObjectPick || !this.trySubmitObjectPick) return;\n\n if (this.baseApp?.isAuthoring) {\n this.trySelectObjectPick(e.touchCenter);\n } else {\n this.trySubmitObjectPick(e.touchCenter);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchObjectPickTC.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"TouchObjectPickTC.js","sourceRoot":"","sources":["../../../../src/ObjectPick/Controllers/TouchObjectPickTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oEAAiE;AACjE,0EAImD;AACnD,6EAA0E;AAC1E,6EAA0E;AAE1E,MAAa,iBACX,SAAQ,0BAAmB;IAK3B,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAe,2BAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,6CAAqB,CAAC,IAAI,CAC3B,EAAE,YAAY,CAAC;IAClB,CAAC;IAYD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAX3C,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE,OAAO;YAEnE,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAvCH,8CAwCC;AApCQ,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController/Entities/TouchInput\";\nimport { TrySelectObjectPickUC } from \"../UseCases/TrySelectObjectPickUC\";\nimport { TrySubmitObjectPickUC } from \"../UseCases/TrySubmitObjectPickUC\";\n\nexport class TouchObjectPickTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TouchObjectPickTC\";\n\n private get baseApp() {\n return this.getCachedSingleton<BaseAppState>(BaseAppState.type);\n }\n\n private get touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n private get trySelectObjectPick() {\n return this.getCachedSingleton<TrySelectObjectPickUC>(\n TrySelectObjectPickUC.type,\n )?.tryWithPixel;\n }\n\n private get trySubmitObjectPick() {\n return this.getCachedSingleton<TrySubmitObjectPickUC>(\n TrySubmitObjectPickUC.type,\n )?.tryWithPixel;\n }\n\n onTap = (e: TouchInputEvent) => {\n if (!this.trySelectObjectPick || !this.trySubmitObjectPick) return;\n\n if (this.baseApp?.isAuthoring) {\n this.trySelectObjectPick(e.touchCenter);\n } else {\n this.trySubmitObjectPick(e.touchCenter);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchObjectPickTC.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DoubleTapToFocus.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/DoubleTapToFocus.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { FocusOnPixelUC } from \"../UC/FocusOnPixel\";\n\nexport class DoubleTapToFocus\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"DoubleTapToFocus\";\n\n readonly focusDurationMS = 500;\n readonly tapTimeMS = 300;\n readonly maxTapDistancePx = 30;\n\n private initialTouchPos: Vector2 = Vector2.Zero();\n private initialTouchTime: number = 0;\n private tapCount = 0;\n\n private get focusOnPixelUC() {\n return this.getCachedLocalComponent<FocusOnPixelUC>(FocusOnPixelUC.type);\n }\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.cancelDoubleTap();\n return;\n }\n\n if (e.touchCount !== 1) {\n this.cancelDoubleTap();\n return;\n }\n\n this.tapCount = this.tapCount + 1;\n\n if (this.tapCount === 1) {\n this.initialTouchPos = e.touchCenter;\n this.initialTouchTime = Date.now();\n } else if (this.tapCount === 2) {\n this.checkForMovement(e.touchCenter);\n }\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (this.tapCount !== 1) return;\n if (e.touchCount !== 1) {\n this.cancelDoubleTap();\n return;\n }\n\n this.checkForMovement(e.touchCenter);\n };\n\n onTouchEnd = () => {\n if (this.tapCount === 2) {\n const passedTime = Date.now() - this.initialTouchTime;\n\n if (passedTime > this.tapTimeMS) {\n this.cancelDoubleTap();\n return;\n }\n this.focusOnPixelUC?.centerOnPixel(this.initialTouchPos);\n this.tapCount = 0;\n this.initialTouchTime = 0;\n }\n };\n\n private cancelDoubleTap = () => {\n this.initialTouchTime = 0;\n this.tapCount = 0;\n };\n\n private checkForMovement(currentPixelPos: Vector2) {\n const movement = Vector2.Subtract(\n this.initialTouchPos,\n currentPixelPos\n ).magnitued;\n\n if (movement > this.maxTapDistancePx) {\n this.cancelDoubleTap();\n return;\n }\n }\n\n constructor(appObject: AppObject) {\n super(appObject, DoubleTapToFocus.type);\n const appObjects = appObject.appObjectRepo;\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"DoubleTapToFocus.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/DoubleTapToFocus.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { FocusOnPixelUC } from \"../UC/FocusOnPixel\";\n\nexport class DoubleTapToFocus\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"DoubleTapToFocus\";\n\n readonly focusDurationMS = 500;\n readonly tapTimeMS = 300;\n readonly maxTapDistancePx = 30;\n\n private initialTouchPos: Vector2 = Vector2.Zero();\n private initialTouchTime: number = 0;\n private tapCount = 0;\n\n private get focusOnPixelUC() {\n return this.getCachedLocalComponent<FocusOnPixelUC>(FocusOnPixelUC.type);\n }\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.cancelDoubleTap();\n return;\n }\n\n if (e.touchCount !== 1) {\n this.cancelDoubleTap();\n return;\n }\n\n this.tapCount = this.tapCount + 1;\n\n if (this.tapCount === 1) {\n this.initialTouchPos = e.touchCenter;\n this.initialTouchTime = Date.now();\n } else if (this.tapCount === 2) {\n this.checkForMovement(e.touchCenter);\n }\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (this.tapCount !== 1) return;\n if (e.touchCount !== 1) {\n this.cancelDoubleTap();\n return;\n }\n\n this.checkForMovement(e.touchCenter);\n };\n\n onTouchEnd = () => {\n if (this.tapCount === 2) {\n const passedTime = Date.now() - this.initialTouchTime;\n\n if (passedTime > this.tapTimeMS) {\n this.cancelDoubleTap();\n return;\n }\n this.focusOnPixelUC?.centerOnPixel(this.initialTouchPos);\n this.tapCount = 0;\n this.initialTouchTime = 0;\n }\n };\n\n private cancelDoubleTap = () => {\n this.initialTouchTime = 0;\n this.tapCount = 0;\n };\n\n private checkForMovement(currentPixelPos: Vector2) {\n const movement = Vector2.Subtract(\n this.initialTouchPos,\n currentPixelPos,\n ).magnitued;\n\n if (movement > this.maxTapDistancePx) {\n this.cancelDoubleTap();\n return;\n }\n }\n\n constructor(appObject: AppObject) {\n super(appObject, DoubleTapToFocus.type);\n const appObjects = appObject.appObjectRepo;\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseClickToFocus.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseClickToFocus.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,iFAAgF;AAEhF,MAAa,iBACX,SAAQ,0BAAmB;IAK3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,yDAA4B,CAAC,IAAI,CAClC,CAAC;IACJ,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAf3C,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAnCH,8CAoCC;AAhCiB,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { CenterSceneRootOnPixelPickUC } from \"../UC/CenterSceneRootOnPixelPick\";\n\nexport class MouseClickToFocus\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseClickToFocus\";\n\n private get centerOnPixelUI() {\n return this.getCachedLocalComponent<CenterSceneRootOnPixelPickUC>(\n CenterSceneRootOnPixelPickUC.type\n );\n }\n\n allow = (e: MouseInputEvent): boolean => {\n if (e.button === 0) {\n return false;\n }\n\n return true;\n };\n\n onClick = (e: MouseInputEvent) => {\n if (this.allow(e)) {\n this.centerOnPixelUI?.centerOnPixel(e.position);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseClickToFocus.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"MouseClickToFocus.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseClickToFocus.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,iFAAgF;AAEhF,MAAa,iBACX,SAAQ,0BAAmB;IAK3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,yDAA4B,CAAC,IAAI,CAClC,CAAC;IACJ,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAf3C,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAnCH,8CAoCC;AAhCiB,sBAAI,GAAG,mBAAmB,AAAtB,CAAuB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { CenterSceneRootOnPixelPickUC } from \"../UC/CenterSceneRootOnPixelPick\";\n\nexport class MouseClickToFocus\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseClickToFocus\";\n\n private get centerOnPixelUI() {\n return this.getCachedLocalComponent<CenterSceneRootOnPixelPickUC>(\n CenterSceneRootOnPixelPickUC.type,\n );\n }\n\n allow = (e: MouseInputEvent): boolean => {\n if (e.button === 0) {\n return false;\n }\n\n return true;\n };\n\n onClick = (e: MouseInputEvent) => {\n if (this.allow(e)) {\n this.centerOnPixelUI?.centerOnPixel(e.position);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseClickToFocus.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseOrbit.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseOrbit.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,uCAAwD;AACxD,yDAAwD;AAExD,MAAa,UACX,SAAQ,0BAAmB;IAM3B,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iCAAgB,CAAC,IAAI,CACtB,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,sBAAc,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IA0CD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QArD5B,eAAU,GAAG,KAAK,CAAC;QAY3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,KAAK,iBAAS,CAAC,MAAM,CAAC;YAC/D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YAEjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YACjC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YACjC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAlEH,gCAmEC;AA/DiB,eAAI,GAAG,YAAY,AAAf,CAAgB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { ToolRepository, ToolState } from \"../../Tools\";\nimport { OrbitSceneRootUC } from \"../UC/OrbitSceneRoot\";\n\nexport class MouseOrbit\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseOrbit\";\n private isOrbiting = false;\n\n private get orbitSceneRoot() {\n return this.getCachedLocalComponent<OrbitSceneRootUC>(\n OrbitSceneRootUC.type\n );\n }\n\n private get toolRepo() {\n return this.getCachedSingleton<ToolRepository>(ToolRepository.type);\n }\n\n allow = (e: MouseInputEvent): boolean => {\n const orbitTool = this.toolRepo?.getTool(\"ORBIT\");\n if (!orbitTool) return false;\n\n const orbitToolIsActive = orbitTool.state === ToolState.ACTIVE;\n if (e.button === 0 && orbitToolIsActive) {\n return true;\n } else if (e.button === 2) {\n return true;\n }\n\n return false;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isOrbiting = false;\n if (!this.orbitSceneRoot) return;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.orbitSceneRoot.initializeOrbit(pixelPosition);\n\n this.isOrbiting = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.orbitSceneRoot) return;\n if (!this.isOrbiting) return;\n\n const currentPixelPos = e.position;\n this.orbitSceneRoot.doOrbit(currentPixelPos);\n };\n\n onUp = () => {\n if (!this.orbitSceneRoot) return;\n this.orbitSceneRoot.finishOrbit();\n this.isOrbiting = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseOrbit.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"MouseOrbit.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseOrbit.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,uCAAwD;AACxD,yDAAwD;AAExD,MAAa,UACX,SAAQ,0BAAmB;IAM3B,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iCAAgB,CAAC,IAAI,CACtB,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,sBAAc,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IA0CD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QArD5B,eAAU,GAAG,KAAK,CAAC;QAY3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,KAAK,iBAAS,CAAC,MAAM,CAAC;YAC/D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YAEjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YACjC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YACjC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAlEH,gCAmEC;AA/DiB,eAAI,GAAG,YAAY,AAAf,CAAgB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { ToolRepository, ToolState } from \"../../Tools\";\nimport { OrbitSceneRootUC } from \"../UC/OrbitSceneRoot\";\n\nexport class MouseOrbit\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseOrbit\";\n private isOrbiting = false;\n\n private get orbitSceneRoot() {\n return this.getCachedLocalComponent<OrbitSceneRootUC>(\n OrbitSceneRootUC.type,\n );\n }\n\n private get toolRepo() {\n return this.getCachedSingleton<ToolRepository>(ToolRepository.type);\n }\n\n allow = (e: MouseInputEvent): boolean => {\n const orbitTool = this.toolRepo?.getTool(\"ORBIT\");\n if (!orbitTool) return false;\n\n const orbitToolIsActive = orbitTool.state === ToolState.ACTIVE;\n if (e.button === 0 && orbitToolIsActive) {\n return true;\n } else if (e.button === 2) {\n return true;\n }\n\n return false;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isOrbiting = false;\n if (!this.orbitSceneRoot) return;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.orbitSceneRoot.initializeOrbit(pixelPosition);\n\n this.isOrbiting = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.orbitSceneRoot) return;\n if (!this.isOrbiting) return;\n\n const currentPixelPos = e.position;\n this.orbitSceneRoot.doOrbit(currentPixelPos);\n };\n\n onUp = () => {\n if (!this.orbitSceneRoot) return;\n this.orbitSceneRoot.finishOrbit();\n this.isOrbiting = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseOrbit.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseRoll.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseRoll.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,+FAA8F;AAE9F,MAAa,SACX,SAAQ,0BAAmB;IAK3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,uEAAmC,CAAC,IAAI,CACzC,CAAC;IACJ,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAfnC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3E,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAnCH,8BAoCC;AAhCiB,cAAI,GAAG,WAAW,AAAd,CAAe","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseWheelEvent,\n} from \"../../MouseInput\";\nimport { BumpSceneRootScaleAboutPixelPointUC } from \"../UC/BumpSceneRootScaleAboutPixelPoint\";\n\nexport class MouseRoll\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseRoll\";\n\n private get bumpRootScaleUC() {\n return this.getCachedLocalComponent<BumpSceneRootScaleAboutPixelPointUC>(\n BumpSceneRootScaleAboutPixelPointUC.type\n );\n }\n\n allow = (e: MouseWheelEvent): boolean => {\n return true;\n };\n\n onWheel = (e: MouseWheelEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.bumpRootScaleUC) {\n return;\n }\n\n this.bumpRootScaleUC.bump(e.event.deltaY > 0 ? \"OUT\" : \"IN\", e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseRoll.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"MouseRoll.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseRoll.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,+FAA8F;AAE9F,MAAa,SACX,SAAQ,0BAAmB;IAK3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,uEAAmC,CAAC,IAAI,CACzC,CAAC;IACJ,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAfnC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3E,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAnCH,8BAoCC;AAhCiB,cAAI,GAAG,WAAW,AAAd,CAAe","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseWheelEvent,\n} from \"../../MouseInput\";\nimport { BumpSceneRootScaleAboutPixelPointUC } from \"../UC/BumpSceneRootScaleAboutPixelPoint\";\n\nexport class MouseRoll\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseRoll\";\n\n private get bumpRootScaleUC() {\n return this.getCachedLocalComponent<BumpSceneRootScaleAboutPixelPointUC>(\n BumpSceneRootScaleAboutPixelPointUC.type,\n );\n }\n\n allow = (e: MouseWheelEvent): boolean => {\n return true;\n };\n\n onWheel = (e: MouseWheelEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.bumpRootScaleUC) {\n return;\n }\n\n this.bumpRootScaleUC.bump(e.event.deltaY > 0 ? \"OUT\" : \"IN\", e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseRoll.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseScale.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseScale.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,uCAAwD;AACxD,iEAAgE;AAEhE,MAAa,UACX,SAAQ,0BAAmB;IAM3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,yCAAoB,CAAC,IAAI,CAC1B,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,sBAAc,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAoCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QA/C5B,eAAU,GAAG,KAAK,CAAC;QAY3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,KAAK,iBAAS,CAAC,MAAM,CAAC;YAE7D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAErD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;QACxC,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AA5DH,gCA6DC;AAzDiB,eAAI,GAAG,YAAY,AAAf,CAAgB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { ToolRepository, ToolState } from \"../../Tools\";\nimport { DragScaleSceneRootUC } from \"../UC/DragScaleSceneRoot\";\n\nexport class MouseScale\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseScale\";\n private isDollying = false;\n\n private get dragScaleRootUC() {\n return this.getCachedLocalComponent<DragScaleSceneRootUC>(\n DragScaleSceneRootUC.type\n );\n }\n\n private get toolRepo() {\n return this.getCachedSingleton<ToolRepository>(ToolRepository.type);\n }\n\n allow = (e: MouseInputEvent): boolean => {\n const zoomTool = this.toolRepo?.getTool(\"ZOOM\");\n if (!zoomTool) return false;\n\n const zoomToolIsActive = zoomTool.state === ToolState.ACTIVE;\n\n if (e.button === 0 && zoomToolIsActive) {\n return true;\n }\n\n return false;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isDollying = false;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.dragScaleRootUC?.initializeScale(pixelPosition);\n\n this.isDollying = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDollying) return;\n this.dragScaleRootUC?.doScale(e.position);\n };\n\n onUp = () => {\n this.isDollying = false;\n this.dragScaleRootUC?.finishScaling();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseScale.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"MouseScale.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/MouseScale.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,iDAI0B;AAC1B,uCAAwD;AACxD,iEAAgE;AAEhE,MAAa,UACX,SAAQ,0BAAmB;IAM3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,yCAAoB,CAAC,IAAI,CAC1B,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,sBAAc,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAoCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QA/C5B,eAAU,GAAG,KAAK,CAAC;QAY3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAE5B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,KAAK,iBAAS,CAAC,MAAM,CAAC;YAE7D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAErD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;QACxC,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AA5DH,gCA6DC;AAzDiB,eAAI,GAAG,YAAY,AAAf,CAAgB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { ToolRepository, ToolState } from \"../../Tools\";\nimport { DragScaleSceneRootUC } from \"../UC/DragScaleSceneRoot\";\n\nexport class MouseScale\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MouseScale\";\n private isDollying = false;\n\n private get dragScaleRootUC() {\n return this.getCachedLocalComponent<DragScaleSceneRootUC>(\n DragScaleSceneRootUC.type,\n );\n }\n\n private get toolRepo() {\n return this.getCachedSingleton<ToolRepository>(ToolRepository.type);\n }\n\n allow = (e: MouseInputEvent): boolean => {\n const zoomTool = this.toolRepo?.getTool(\"ZOOM\");\n if (!zoomTool) return false;\n\n const zoomToolIsActive = zoomTool.state === ToolState.ACTIVE;\n\n if (e.button === 0 && zoomToolIsActive) {\n return true;\n }\n\n return false;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isDollying = false;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.dragScaleRootUC?.initializeScale(pixelPosition);\n\n this.isDollying = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDollying) return;\n this.dragScaleRootUC?.doScale(e.position);\n };\n\n onUp = () => {\n this.isDollying = false;\n this.dragScaleRootUC?.finishScaling();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseScale.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ScaleSceneRootSC.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/ScaleSceneRootSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,yCAAgE;AAChE,uEAAoE;AAEpE,MAAa,gBACX,SAAQ,0BAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,qBAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,qBAAqB;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CACjC,6CAAqB,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IAmCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAlClC,cAAS,GAAG,KAAK,CAAC;QAE1B,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YAErD,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YAErD,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AApDH,4CAqDC;AAjDiB,qBAAI,GAAG,kBAAkB,AAArB,CAAsB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../Stylus\";\nimport { ScaleSceneRootWithRay } from \"../UC/ScaleSceneRootWithRay\";\n\nexport class ScaleSceneRootSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"ScaleSceneRootSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get scaleSceneRootWithRay() {\n return this.getCachedLocalComponent<ScaleSceneRootWithRay>(\n ScaleSceneRootWithRay.type\n );\n }\n\n private isScaling = false;\n\n allow = (button: number): boolean => {\n if (button === 1) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.isScaling = false;\n if (!this.stylus) return;\n if (!this.allow(button)) return;\n\n const pointerRay = this.stylus.pickRay;\n const rayStart = this.stylus.transform.localPosition;\n\n this.scaleSceneRootWithRay?.initializeScale(pointerRay, rayStart);\n this.isScaling = true;\n };\n\n onStylusMove = () => {\n if (!this.stylus) return;\n if (!this.isScaling) return;\n\n const pointerRay = this.stylus.pickRay;\n const rayStart = this.stylus.transform.localPosition;\n\n this.scaleSceneRootWithRay?.doScale(pointerRay, rayStart);\n };\n\n onButtonUp = () => {\n this.isScaling = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ScaleSceneRootSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"ScaleSceneRootSC.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/ScaleSceneRootSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,yCAAgE;AAChE,uEAAoE;AAEpE,MAAa,gBACX,SAAQ,0BAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,qBAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,qBAAqB;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CACjC,6CAAqB,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IAmCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAlClC,cAAS,GAAG,KAAK,CAAC;QAE1B,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YAErD,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YAErD,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AApDH,4CAqDC;AAjDiB,qBAAI,GAAG,kBAAkB,AAArB,CAAsB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../Stylus\";\nimport { ScaleSceneRootWithRay } from \"../UC/ScaleSceneRootWithRay\";\n\nexport class ScaleSceneRootSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"ScaleSceneRootSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get scaleSceneRootWithRay() {\n return this.getCachedLocalComponent<ScaleSceneRootWithRay>(\n ScaleSceneRootWithRay.type,\n );\n }\n\n private isScaling = false;\n\n allow = (button: number): boolean => {\n if (button === 1) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.isScaling = false;\n if (!this.stylus) return;\n if (!this.allow(button)) return;\n\n const pointerRay = this.stylus.pickRay;\n const rayStart = this.stylus.transform.localPosition;\n\n this.scaleSceneRootWithRay?.initializeScale(pointerRay, rayStart);\n this.isScaling = true;\n };\n\n onStylusMove = () => {\n if (!this.stylus) return;\n if (!this.isScaling) return;\n\n const pointerRay = this.stylus.pickRay;\n const rayStart = this.stylus.transform.localPosition;\n\n this.scaleSceneRootWithRay?.doScale(pointerRay, rayStart);\n };\n\n onButtonUp = () => {\n this.isScaling = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ScaleSceneRootSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SceneRootMoveSC.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/SceneRootMoveSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,yCAAgE;AAChE,sFAAmF;AAEnF,MAAa,eACX,SAAQ,0BAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,qBAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,oBAAoB;QAC9B,OAAO,IAAI,CAAC,uBAAuB,CACjC,6CAAqB,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IA+BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA9BjC,aAAQ,GAAG,KAAK,CAAC;QAEzB,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,oBAAoB,EAAE,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEzB,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3C,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AAhDH,0CAiDC;AA7CiB,oBAAI,GAAG,iBAAiB,AAApB,CAAqB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../Stylus\";\nimport { StylusMoveTransformUC } from \"../../Transform3D/UC/StylusMoveTransformUC\";\n\nexport class SceneRootMoveSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"SceneRootMoveSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get stylusRootMovementUC() {\n return this.getCachedLocalComponent<StylusMoveTransformUC>(\n StylusMoveTransformUC.type\n );\n }\n\n private isMoving = false;\n\n allow = (button: number): boolean => {\n if (button === 2) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.isMoving = false;\n if (!this.stylus) return;\n if (!this.allow(button)) return;\n\n this.stylusRootMovementUC?.initialize();\n this.isMoving = true;\n };\n\n onButtonUp = () => {\n this.isMoving = true;\n\n if (!this.stylus) return;\n\n this.stylusRootMovementUC?.stop();\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.isMoving) return;\n this.stylusRootMovementUC?.move();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, SceneRootMoveSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"SceneRootMoveSC.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/SceneRootMoveSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,yCAAgE;AAChE,sFAAmF;AAEnF,MAAa,eACX,SAAQ,0BAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,qBAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,oBAAoB;QAC9B,OAAO,IAAI,CAAC,uBAAuB,CACjC,6CAAqB,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IA+BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA9BjC,aAAQ,GAAG,KAAK,CAAC;QAEzB,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,oBAAoB,EAAE,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEzB,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3C,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AAhDH,0CAiDC;AA7CiB,oBAAI,GAAG,iBAAiB,AAApB,CAAqB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../Stylus\";\nimport { StylusMoveTransformUC } from \"../../Transform3D/UC/StylusMoveTransformUC\";\n\nexport class SceneRootMoveSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"SceneRootMoveSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get stylusRootMovementUC() {\n return this.getCachedLocalComponent<StylusMoveTransformUC>(\n StylusMoveTransformUC.type,\n );\n }\n\n private isMoving = false;\n\n allow = (button: number): boolean => {\n if (button === 2) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.isMoving = false;\n if (!this.stylus) return;\n if (!this.allow(button)) return;\n\n this.stylusRootMovementUC?.initialize();\n this.isMoving = true;\n };\n\n onButtonUp = () => {\n this.isMoving = true;\n\n if (!this.stylus) return;\n\n this.stylusRootMovementUC?.stop();\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.isMoving) return;\n this.stylusRootMovementUC?.move();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, SceneRootMoveSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchOrbit.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/TouchOrbit.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,sCAAsC;AACtC,uCAAwD;AACxD,2DAI+B;AAC/B,yDAAwD;AAExD,MAAa,UACX,SAAQ,0BAAmB;IAQ3B,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iCAAgB,CAAC,IAAI,CACtB,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,sBAAc,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IA6CD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QA1D5B,eAAU,GAAG,KAAK,CAAC;QAEpB,6BAAwB,GAAG,EAAE,CAAC;QAYrC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,KAAK,iBAAS,CAAC,MAAM,CAAC;YAE/D,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBAChD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,cAAO,CAAC,QAAQ,CAC3B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CACtB,CAAC,SAAS,CAAC;gBAEZ,IAAI,IAAI,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAxEH,gCAyEC;AArEiB,eAAI,GAAG,YAAY,AAAf,CAAgB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport { ToolRepository, ToolState } from \"../../Tools\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { OrbitSceneRootUC } from \"../UC/OrbitSceneRoot\";\n\nexport class TouchOrbit\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchOrbit\";\n private isOrbiting = false;\n\n public ORBIT_FINGER_DISTANCE_PX = 80;\n\n private get orbitSceneRoot() {\n return this.getCachedLocalComponent<OrbitSceneRootUC>(\n OrbitSceneRootUC.type\n );\n }\n\n private get toolRepo() {\n return this.getCachedSingleton<ToolRepository>(ToolRepository.type);\n }\n\n allow = (e: TouchInputEvent): boolean => {\n const orbitTool = this.toolRepo?.getTool(\"ORBIT\");\n if (!orbitTool) return false;\n\n const orbitToolIsActive = orbitTool.state === ToolState.ACTIVE;\n\n if (e.touches.length === 1 && orbitToolIsActive) {\n return true;\n } else if (e.touches.length === 2) {\n const dist = Vector2.Subtract(\n e.touches[0].position,\n e.touches[1].position\n ).magnitued;\n\n if (dist < this.ORBIT_FINGER_DISTANCE_PX) {\n return true;\n }\n }\n\n return false;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.isOrbiting = false;\n this.orbitSceneRoot?.cancelOrbit();\n return;\n }\n\n this.orbitSceneRoot?.initializeOrbit(e.touchCenter);\n this.isOrbiting = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isOrbiting) return;\n this.orbitSceneRoot?.doOrbit(e.touchCenter);\n };\n\n onTouchEnd = () => {\n this.isOrbiting = false;\n this.orbitSceneRoot?.finishOrbit();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchOrbit.type);\n const appObjects = appObject.appObjectRepo;\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"TouchOrbit.js","sourceRoot":"","sources":["../../../../src/SceneRoot/Controllers/TouchOrbit.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,sCAAsC;AACtC,uCAAwD;AACxD,2DAI+B;AAC/B,yDAAwD;AAExD,MAAa,UACX,SAAQ,0BAAmB;IAQ3B,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iCAAgB,CAAC,IAAI,CACtB,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,sBAAc,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IA6CD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QA1D5B,eAAU,GAAG,KAAK,CAAC;QAEpB,6BAAwB,GAAG,EAAE,CAAC;QAYrC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,KAAK,iBAAS,CAAC,MAAM,CAAC;YAE/D,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBAChD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,cAAO,CAAC,QAAQ,CAC3B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CACtB,CAAC,SAAS,CAAC;gBAEZ,IAAI,IAAI,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAxEH,gCAyEC;AArEiB,eAAI,GAAG,YAAY,AAAf,CAAgB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport { ToolRepository, ToolState } from \"../../Tools\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { OrbitSceneRootUC } from \"../UC/OrbitSceneRoot\";\n\nexport class TouchOrbit\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchOrbit\";\n private isOrbiting = false;\n\n public ORBIT_FINGER_DISTANCE_PX = 80;\n\n private get orbitSceneRoot() {\n return this.getCachedLocalComponent<OrbitSceneRootUC>(\n OrbitSceneRootUC.type,\n );\n }\n\n private get toolRepo() {\n return this.getCachedSingleton<ToolRepository>(ToolRepository.type);\n }\n\n allow = (e: TouchInputEvent): boolean => {\n const orbitTool = this.toolRepo?.getTool(\"ORBIT\");\n if (!orbitTool) return false;\n\n const orbitToolIsActive = orbitTool.state === ToolState.ACTIVE;\n\n if (e.touches.length === 1 && orbitToolIsActive) {\n return true;\n } else if (e.touches.length === 2) {\n const dist = Vector2.Subtract(\n e.touches[0].position,\n e.touches[1].position,\n ).magnitued;\n\n if (dist < this.ORBIT_FINGER_DISTANCE_PX) {\n return true;\n }\n }\n\n return false;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.isOrbiting = false;\n this.orbitSceneRoot?.cancelOrbit();\n return;\n }\n\n this.orbitSceneRoot?.initializeOrbit(e.touchCenter);\n this.isOrbiting = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isOrbiting) return;\n this.orbitSceneRoot?.doOrbit(e.touchCenter);\n };\n\n onTouchEnd = () => {\n this.isOrbiting = false;\n this.orbitSceneRoot?.finishOrbit();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchOrbit.type);\n const appObjects = appObject.appObjectRepo;\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}