@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.
- package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js +3 -0
- package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
- package/dist/cjs/HoverLabel/Controllers/HoverLabelMouse.js.map +1 -1
- package/dist/cjs/HoverLabel/Controllers/HoverLabelTouch.js.map +1 -1
- package/dist/cjs/LabelDrop/Controller/MouseLabelDropAuthor.js.map +1 -1
- package/dist/cjs/LabelDrop/Controller/TouchLabelDropAuthor.js.map +1 -1
- package/dist/cjs/Landmarks/Controller/MouseLandmark.js.map +1 -1
- package/dist/cjs/Landmarks/Controller/TouchLandmark.js.map +1 -1
- package/dist/cjs/MouseInput/Entities/MouseInput.js.map +1 -1
- package/dist/cjs/MouseInput/Mocks/MockMouseInput.js +4 -5
- package/dist/cjs/MouseInput/Mocks/MockMouseInput.js.map +1 -1
- package/dist/cjs/MouseInput/Mocks/index.js +18 -0
- package/dist/cjs/MouseInput/Mocks/index.js.map +1 -0
- package/dist/cjs/MouseInput/index.js +1 -0
- package/dist/cjs/MouseInput/index.js.map +1 -1
- package/dist/cjs/ObjectPick/Controllers/MouseObjectPickMC.js.map +1 -1
- package/dist/cjs/ObjectPick/Controllers/StylusObjectPickSC.js.map +1 -1
- package/dist/cjs/ObjectPick/Controllers/TouchObjectPickTC.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/DoubleTapToFocus.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/MouseClickToFocus.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/MouseOrbit.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/MouseRoll.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/MouseScale.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/ScaleSceneRootSC.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/SceneRootMoveSC.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/TouchOrbit.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/TouchPan.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/TouchPinch.js.map +1 -1
- package/dist/cjs/SceneRoot/Controllers/TouchScale.js.map +1 -1
- package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.js.map +1 -1
- package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js +1 -0
- package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
- package/dist/cjs/Selection/Controller/MousePressOnAppObject.js.map +1 -1
- package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js +1 -0
- package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
- package/dist/cjs/Selection/Controller/MouseSelectAppObject.js.map +1 -1
- package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js +1 -0
- package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
- package/dist/cjs/Selection/Controller/StylusHoverOnAppObjectSC.js.map +1 -1
- package/dist/cjs/Selection/Controller/StylusPressOnAppObjectSC.js.map +1 -1
- package/dist/cjs/Selection/Controller/StylusSelectAppObjectSC.js.map +1 -1
- package/dist/cjs/Selection/Controller/TapToSelectAppObject.js.map +1 -1
- package/dist/cjs/Selection/Controller/TouchPressOnAppObject.js.map +1 -1
- package/dist/cjs/Stick/Controllers/DoubleClickToStickMC.js.map +1 -1
- package/dist/cjs/Stick/Controllers/DoubleTapToStickTC.js.map +1 -1
- package/dist/cjs/Stylus/Entity/StylusEntity.js.map +1 -1
- package/dist/cjs/Stylus/Entity/StylusEntity.test.js.map +1 -1
- package/dist/cjs/TouchController/Entities/TouchInput.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Mouse/DragScaleTransformMC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Mouse/MousePanTransformMC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Mouse/PanTransformMC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Mouse/RollScaleTransformMC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Stylus/MoveTransformSC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Stylus/PanScaleTransformSC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Touch/DragScaleTransformTC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Touch/PanTransformTC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Touch/PinchTransformTC.js.map +1 -1
- package/dist/cjs/Transform3D/Controllers/Touch/TouchPanTransformTC.js.map +1 -1
- package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js +3 -0
- package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
- package/dist/esm/HoverLabel/Controllers/HoverLabelMouse.js.map +1 -1
- package/dist/esm/HoverLabel/Controllers/HoverLabelTouch.js.map +1 -1
- package/dist/esm/LabelDrop/Controller/MouseLabelDropAuthor.js.map +1 -1
- package/dist/esm/LabelDrop/Controller/TouchLabelDropAuthor.js.map +1 -1
- package/dist/esm/Landmarks/Controller/MouseLandmark.js.map +1 -1
- package/dist/esm/Landmarks/Controller/TouchLandmark.js.map +1 -1
- package/dist/esm/MouseInput/Entities/MouseInput.js.map +1 -1
- package/dist/esm/MouseInput/Mocks/MockMouseInput.js +4 -5
- package/dist/esm/MouseInput/Mocks/MockMouseInput.js.map +1 -1
- package/dist/esm/MouseInput/Mocks/index.js +2 -0
- package/dist/esm/MouseInput/Mocks/index.js.map +1 -0
- package/dist/esm/MouseInput/index.js +1 -0
- package/dist/esm/MouseInput/index.js.map +1 -1
- package/dist/esm/ObjectPick/Controllers/MouseObjectPickMC.js.map +1 -1
- package/dist/esm/ObjectPick/Controllers/StylusObjectPickSC.js.map +1 -1
- package/dist/esm/ObjectPick/Controllers/TouchObjectPickTC.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/DoubleTapToFocus.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/MouseClickToFocus.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/MouseOrbit.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/MouseRoll.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/MouseScale.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/ScaleSceneRootSC.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/SceneRootMoveSC.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/TouchOrbit.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/TouchPan.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/TouchPinch.js.map +1 -1
- package/dist/esm/SceneRoot/Controllers/TouchScale.js.map +1 -1
- package/dist/esm/Selection/Controller/MouseHoverOnAppObject.js.map +1 -1
- package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js +1 -0
- package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
- package/dist/esm/Selection/Controller/MousePressOnAppObject.js.map +1 -1
- package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js +1 -0
- package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
- package/dist/esm/Selection/Controller/MouseSelectAppObject.js.map +1 -1
- package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js +1 -0
- package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
- package/dist/esm/Selection/Controller/StylusHoverOnAppObjectSC.js.map +1 -1
- package/dist/esm/Selection/Controller/StylusPressOnAppObjectSC.js.map +1 -1
- package/dist/esm/Selection/Controller/StylusSelectAppObjectSC.js.map +1 -1
- package/dist/esm/Selection/Controller/TapToSelectAppObject.js.map +1 -1
- package/dist/esm/Selection/Controller/TouchPressOnAppObject.js.map +1 -1
- package/dist/esm/Stick/Controllers/DoubleClickToStickMC.js.map +1 -1
- package/dist/esm/Stick/Controllers/DoubleTapToStickTC.js.map +1 -1
- package/dist/esm/Stylus/Entity/StylusEntity.js.map +1 -1
- package/dist/esm/Stylus/Entity/StylusEntity.test.js.map +1 -1
- package/dist/esm/TouchController/Entities/TouchInput.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Mouse/DragScaleTransformMC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Mouse/MousePanTransformMC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Mouse/PanTransformMC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Mouse/RollScaleTransformMC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Stylus/MoveTransformSC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Stylus/PanScaleTransformSC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Touch/DragScaleTransformTC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Touch/PanTransformTC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Touch/PinchTransformTC.js.map +1 -1
- package/dist/esm/Transform3D/Controllers/Touch/TouchPanTransformTC.js.map +1 -1
- package/dist/types/MouseInput/Mocks/MockMouseInput.d.ts +5 -6
- package/dist/types/MouseInput/Mocks/MockMouseInput.d.ts.map +1 -1
- package/dist/types/MouseInput/Mocks/index.d.ts +2 -0
- package/dist/types/MouseInput/Mocks/index.d.ts.map +1 -0
- package/dist/types/MouseInput/index.d.ts +1 -0
- package/dist/types/MouseInput/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StylusSelectAppObjectSC.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/StylusSelectAppObjectSC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,OAAO,uBACX,SAAQ,mBAAmB;IAyB3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAnBjD,UAAK,GAAG,GAAY,EAAE;YACpB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,MAAc,EAAE,EAAE;YACjC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEzB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO;YAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAEvC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC;QAKA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,YAAY,CACpC,iBAAiB,CAAC,IAAI,CACvB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAxCe,4BAAI,GAAG,yBAAyB,AAA5B,CAA6B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../Stylus\";\nimport { SelectAppObjectUC } from \"../UC\";\n\nexport class StylusSelectAppObjectSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"StylusSelectAppObjectSC\";\n private stylus?: StylusEntity;\n private selectUC?: SelectAppObjectUC;\n\n allow = (): boolean => {\n return true;\n };\n\n onButtonClick = (button: number) => {\n if (button !== 0) return;\n\n if (!this.stylus) return;\n\n if (!this.selectUC) return;\n\n if (!this.allow()) return;\n\n const pointerRay = this.stylus.pickRay;\n\n this.selectUC.trySelectAppObject(pointerRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StylusSelectAppObjectSC.type);\n\n this.stylus = StylusEntity.get(this.appObjects);\n if (!this.stylus) {\n this.error(\"Unable to find StylusEntity\");\n return;\n }\n\n this.selectUC = appObject.getComponent<SelectAppObjectUC>(\n SelectAppObjectUC.type
|
|
1
|
+
{"version":3,"file":"StylusSelectAppObjectSC.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/StylusSelectAppObjectSC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,OAAO,uBACX,SAAQ,mBAAmB;IAyB3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAnBjD,UAAK,GAAG,GAAY,EAAE;YACpB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,MAAc,EAAE,EAAE;YACjC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEzB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE3B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO;YAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAEvC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC;QAKA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,YAAY,CACpC,iBAAiB,CAAC,IAAI,CACvB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAxCe,4BAAI,GAAG,yBAAyB,AAA5B,CAA6B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../Stylus\";\nimport { SelectAppObjectUC } from \"../UC\";\n\nexport class StylusSelectAppObjectSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"StylusSelectAppObjectSC\";\n private stylus?: StylusEntity;\n private selectUC?: SelectAppObjectUC;\n\n allow = (): boolean => {\n return true;\n };\n\n onButtonClick = (button: number) => {\n if (button !== 0) return;\n\n if (!this.stylus) return;\n\n if (!this.selectUC) return;\n\n if (!this.allow()) return;\n\n const pointerRay = this.stylus.pickRay;\n\n this.selectUC.trySelectAppObject(pointerRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StylusSelectAppObjectSC.type);\n\n this.stylus = StylusEntity.get(this.appObjects);\n if (!this.stylus) {\n this.error(\"Unable to find StylusEntity\");\n return;\n }\n\n this.selectUC = appObject.getComponent<SelectAppObjectUC>(\n SelectAppObjectUC.type,\n );\n\n if (!this.selectUC) {\n this.error(\"Added to an App Object that does not have SelectAppObjectUC\");\n return;\n }\n this.stylus.registerController(this);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TapToSelectAppObject.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/TapToSelectAppObject.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController, Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { SelectAppObjectUC } from \"../UC/SelectAppObjectUC\";\n\nexport class TapToSelectAppObject\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TapToSelectAppObject\";\n static readonly maxTapDistancePx = 5;\n\n private selectUC?: SelectAppObjectUC;\n private startPosition: Vector2 = Vector2.Zero();\n private endPosition: Vector2 = Vector2.Zero();\n private doTouchEnd: boolean = false;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.doTouchEnd = false;\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.startPosition = e.touches[0].position as Vector2;\n this.endPosition = this.startPosition;\n this.doTouchEnd = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (e.touches.length === 1) {\n this.endPosition = e.touches[0].position as Vector2;\n } else {\n this.doTouchEnd = false;\n }\n };\n\n onTouchEnd = () => {\n if (!this.doTouchEnd) {\n return;\n }\n\n if (!this.selectUC) {\n return;\n }\n\n const movement = Vector2.Subtract(\n this.startPosition,\n this.endPosition
|
|
1
|
+
{"version":3,"file":"TapToSelectAppObject.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/TapToSelectAppObject.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController, Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { SelectAppObjectUC } from \"../UC/SelectAppObjectUC\";\n\nexport class TapToSelectAppObject\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TapToSelectAppObject\";\n static readonly maxTapDistancePx = 5;\n\n private selectUC?: SelectAppObjectUC;\n private startPosition: Vector2 = Vector2.Zero();\n private endPosition: Vector2 = Vector2.Zero();\n private doTouchEnd: boolean = false;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.doTouchEnd = false;\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.startPosition = e.touches[0].position as Vector2;\n this.endPosition = this.startPosition;\n this.doTouchEnd = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (e.touches.length === 1) {\n this.endPosition = e.touches[0].position as Vector2;\n } else {\n this.doTouchEnd = false;\n }\n };\n\n onTouchEnd = () => {\n if (!this.doTouchEnd) {\n return;\n }\n\n if (!this.selectUC) {\n return;\n }\n\n const movement = Vector2.Subtract(\n this.startPosition,\n this.endPosition,\n ).magnitued;\n\n if (movement <= TapToSelectAppObject.maxTapDistancePx) {\n const ray = pixelToSceneRay(this.endPosition, this.appObjects);\n this.selectUC?.trySelectAppObject(ray);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TapToSelectAppObject.type);\n\n this.selectUC = appObject.getComponent<SelectAppObjectUC>(\n SelectAppObjectUC.type,\n );\n if (!this.selectUC) {\n console.warn(\n \"MouseSelect has been added to an App Object that does not have a SelectAppObjectUC. Add a SelectAppObjectUC before adding the Controller.\",\n );\n return;\n }\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":"TouchPressOnAppObject.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/TouchPressOnAppObject.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController, Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { PressAppObjectUC } from \"../UC/PressAppObjectUC\";\n\nexport class TouchPressOnAppObject\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchPressOnAppObject\";\n static readonly maxTapDistancePx = 5;\n\n private pressUC?: PressAppObjectUC;\n private startPosition: Vector2 = Vector2.Zero();\n private endPosition: Vector2 = Vector2.Zero();\n private doTouchEnd: boolean = false;\n private pressedID: string | null = null;\n private isPressed: boolean = false;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.doTouchEnd = false;\n this.isPressed = true;\n\n if (!this.pressUC) {\n return;\n }\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.startPosition = e.touches[0].position as Vector2;\n this.endPosition = this.startPosition;\n this.doTouchEnd = true;\n\n const ray = pixelToSceneRay(this.endPosition, this.appObjects);\n this.pressedID = this.pressUC?.tryPressAppObject(ray);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (e.touches.length === 1) {\n this.endPosition = e.touches[0].position as Vector2;\n\n const movement = Vector2.Subtract(\n this.startPosition,\n this.endPosition
|
|
1
|
+
{"version":3,"file":"TouchPressOnAppObject.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/TouchPressOnAppObject.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController, Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { PressAppObjectUC } from \"../UC/PressAppObjectUC\";\n\nexport class TouchPressOnAppObject\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchPressOnAppObject\";\n static readonly maxTapDistancePx = 5;\n\n private pressUC?: PressAppObjectUC;\n private startPosition: Vector2 = Vector2.Zero();\n private endPosition: Vector2 = Vector2.Zero();\n private doTouchEnd: boolean = false;\n private pressedID: string | null = null;\n private isPressed: boolean = false;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.doTouchEnd = false;\n this.isPressed = true;\n\n if (!this.pressUC) {\n return;\n }\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.startPosition = e.touches[0].position as Vector2;\n this.endPosition = this.startPosition;\n this.doTouchEnd = true;\n\n const ray = pixelToSceneRay(this.endPosition, this.appObjects);\n this.pressedID = this.pressUC?.tryPressAppObject(ray);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (e.touches.length === 1) {\n this.endPosition = e.touches[0].position as Vector2;\n\n const movement = Vector2.Subtract(\n this.startPosition,\n this.endPosition,\n ).magnitued;\n\n if (movement > TouchPressOnAppObject.maxTapDistancePx) {\n this.pressUC?.pressAppObject(null, true);\n }\n } else {\n this.pressUC?.pressAppObject(null, true);\n this.doTouchEnd = false;\n }\n };\n\n onTouchEnd = () => {\n if (!this.doTouchEnd) {\n return;\n }\n this.isPressed = false;\n\n this.pressUC?.pressAppObject(this.pressedID, this.isPressed);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchPressOnAppObject.type);\n\n this.pressUC = appObject.getComponent<PressAppObjectUC>(\n PressAppObjectUC.type,\n );\n if (!this.pressUC) {\n console.warn(\n \"TouchPress has been added to an App Object that does not have a PressAppObjectUC. Add a PressAppObjectUC before adding the Controller.\",\n );\n return;\n }\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":"DoubleClickToStickMC.js","sourceRoot":"","sources":["../../../../src/Stick/Controllers/DoubleClickToStickMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IAY3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,mBAAmB,CAAC,IAAI,CACzB,EAAE,YAAY,CAAC;IAClB,CAAC;IAyCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAzDrC,mBAAc,GAAG,GAAG,CAAC;QACrB,uBAAkB,GAAG,CAAC,CAAC;QAExB,oBAAe,GAAY,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,qBAAgB,GAAW,CAAC,CAAC;QAC7B,eAAU,GAAG,CAAC,CAAC;QAYvB,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAC/B,IAAI,CAAC,eAAe,EACpB,CAAC,CAAC,QAAQ,CACX,CAAC,SAAS,CAAC;gBAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAEtD,IACE,UAAU,IAAI,IAAI,CAAC,cAAc;oBACjC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EACnC,CAAC;oBACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACrC,CAAC;gBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AA7DM,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { TryStickAppObjectUC } from \"../UCs/TryStickAppObjectUC\";\n\nexport class DoubleClickToStickMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"DoubleClickToStickMC\";\n\n readonly maxClickTimeMS = 300;\n readonly maxClickDistancePx = 5;\n\n private initialClickPos: Vector2 = Vector2.Zero();\n private initialClickTime: number = 0;\n private clickCount = 0;\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get tryStickSceneMesh() {\n return this.getCachedSingleton<TryStickAppObjectUC>(\n TryStickAppObjectUC.type
|
|
1
|
+
{"version":3,"file":"DoubleClickToStickMC.js","sourceRoot":"","sources":["../../../../src/Stick/Controllers/DoubleClickToStickMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IAY3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,mBAAmB,CAAC,IAAI,CACzB,EAAE,YAAY,CAAC;IAClB,CAAC;IAyCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAzDrC,mBAAc,GAAG,GAAG,CAAC;QACrB,uBAAkB,GAAG,CAAC,CAAC;QAExB,oBAAe,GAAY,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,qBAAgB,GAAW,CAAC,CAAC;QAC7B,eAAU,GAAG,CAAC,CAAC;QAYvB,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAC/B,IAAI,CAAC,eAAe,EACpB,CAAC,CAAC,QAAQ,CACX,CAAC,SAAS,CAAC;gBAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAEtD,IACE,UAAU,IAAI,IAAI,CAAC,cAAc;oBACjC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EACnC,CAAC;oBACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACrC,CAAC;gBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AA7DM,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { TryStickAppObjectUC } from \"../UCs/TryStickAppObjectUC\";\n\nexport class DoubleClickToStickMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"DoubleClickToStickMC\";\n\n readonly maxClickTimeMS = 300;\n readonly maxClickDistancePx = 5;\n\n private initialClickPos: Vector2 = Vector2.Zero();\n private initialClickTime: number = 0;\n private clickCount = 0;\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get tryStickSceneMesh() {\n return this.getCachedSingleton<TryStickAppObjectUC>(\n TryStickAppObjectUC.type,\n )?.tryWithPixel;\n }\n\n onClick = (e: MouseInputEvent) => {\n if (!this.tryStickSceneMesh) {\n this.error(\"Missing Component\");\n return;\n }\n if (e.button !== 0) {\n this.cancelDoubleClick();\n return;\n }\n\n this.clickCount = 1 + this.clickCount;\n if (this.clickCount === 1) {\n this.initialClickPos = e.position;\n this.initialClickTime = Date.now();\n } else if (this.clickCount === 2) {\n const movement = Vector2.Subtract(\n this.initialClickPos,\n e.position,\n ).magnitued;\n\n const passedTime = Date.now() - this.initialClickTime;\n\n if (\n passedTime <= this.maxClickTimeMS &&\n movement <= this.maxClickDistancePx\n ) {\n this.tryStickSceneMesh(e.position);\n }\n\n this.cancelDoubleClick();\n }\n };\n\n private cancelDoubleClick = () => {\n this.initialClickPos = Vector2.Zero();\n this.initialClickTime = 0;\n this.clickCount = 0;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DoubleClickToStickMC.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DoubleTapToStickTC.js","sourceRoot":"","sources":["../../../../src/Stick/Controllers/DoubleTapToStickTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,OAAO,kBACX,SAAQ,mBAAmB;IAY3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,mBAAmB,CAAC,IAAI,CACzB,EAAE,YAAY,CAAC;IAClB,CAAC;IAkCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAlDnC,cAAS,GAAG,GAAG,CAAC;QAChB,qBAAgB,GAAG,EAAE,CAAC;QAEvB,oBAAe,GAAY,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,qBAAgB,GAAW,CAAC,CAAC;QAC7B,aAAQ,GAAG,CAAC,CAAC;QAYrB,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;gBACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAC/B,IAAI,CAAC,eAAe,EACpB,CAAC,CAAC,WAAW,CACd,CAAC,SAAS,CAAC;gBAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAEtD,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACxC,CAAC;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAtDM,uBAAI,GAAG,oBAAoB,AAAvB,CAAwB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { TryStickAppObjectUC } from \"../UCs/TryStickAppObjectUC\";\n\nexport class DoubleTapToStickTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"DoubleTapToStickTC\";\n\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 touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n private get tryStickSceneMesh() {\n return this.getCachedSingleton<TryStickAppObjectUC>(\n TryStickAppObjectUC.type
|
|
1
|
+
{"version":3,"file":"DoubleTapToStickTC.js","sourceRoot":"","sources":["../../../../src/Stick/Controllers/DoubleTapToStickTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,OAAO,kBACX,SAAQ,mBAAmB;IAY3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,mBAAmB,CAAC,IAAI,CACzB,EAAE,YAAY,CAAC;IAClB,CAAC;IAkCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAlDnC,cAAS,GAAG,GAAG,CAAC;QAChB,qBAAgB,GAAG,EAAE,CAAC;QAEvB,oBAAe,GAAY,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,qBAAgB,GAAW,CAAC,CAAC;QAC7B,aAAQ,GAAG,CAAC,CAAC;QAYrB,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;gBACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAC/B,IAAI,CAAC,eAAe,EACpB,CAAC,CAAC,WAAW,CACd,CAAC,SAAS,CAAC;gBAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAEtD,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACxC,CAAC;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAtDM,uBAAI,GAAG,oBAAoB,AAAvB,CAAwB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { TryStickAppObjectUC } from \"../UCs/TryStickAppObjectUC\";\n\nexport class DoubleTapToStickTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"DoubleTapToStickTC\";\n\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 touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n private get tryStickSceneMesh() {\n return this.getCachedSingleton<TryStickAppObjectUC>(\n TryStickAppObjectUC.type,\n )?.tryWithPixel;\n }\n\n onTap = (e: TouchInputEvent) => {\n if (!this.tryStickSceneMesh) {\n this.error(\"Missing Component\");\n return;\n }\n\n this.tapCount = 1 + this.tapCount;\n if (this.tapCount === 1) {\n this.initialTouchPos = e.touchCenter;\n this.initialTouchTime = Date.now();\n } else if (this.tapCount === 2) {\n const movement = Vector2.Subtract(\n this.initialTouchPos,\n e.touchCenter,\n ).magnitued;\n\n const passedTime = Date.now() - this.initialTouchTime;\n\n if (passedTime <= this.tapTimeMS && movement <= this.maxTapDistancePx) {\n this.tryStickSceneMesh(e.touchCenter);\n }\n\n this.cancelDoubleTap();\n }\n };\n\n private cancelDoubleTap = () => {\n this.initialTouchPos = Vector2.Zero();\n this.initialTouchTime = 0;\n this.tapCount = 0;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DoubleTapToStickTC.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StylusEntity.js","sourceRoot":"","sources":["../../../../src/Stylus/Entity/StylusEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent,\n Matrix,\n MemoizedBoolean,\n ParametricLine,\n Vector3,\n} from \"@vived/core\";\nimport { Transform3D } from \"../../Transform3D\";\n\nexport interface StylusEventHandler {\n onButtonDown?: (button: number) => void;\n onButtonUp?: (button: number) => void;\n onButtonClick?: (button: number) => void;\n onStylusMove?: (transform: Transform3D) => void;\n}\n\n/**\n * @deprecated Use StylusEventHandler instead\n */\nexport type StylusController = StylusEventHandler;\n\nexport abstract class StylusEntity extends AppObjectEntity {\n static readonly type = \"StylusEntity\";\n\n static clickMovementThreshold: number = 0.32;\n static clickTimeThresholdMS: number = 350;\n\n abstract registerController: (controller: StylusEventHandler) => void;\n abstract updateButtonState: (button: number, isPressed: boolean) => void;\n abstract getButtonState(button: number): boolean;\n\n abstract readonly transform: Transform3D;\n\n abstract get isInUse(): boolean;\n abstract get pickRay(): ParametricLine;\n\n static get(appObjects: AppObjectRepo): StylusEntity | undefined {\n return getSingletonComponent(StylusEntity.type, appObjects);\n }\n}\n\nexport function makeStylusEntity(appObj: AppObject): StylusEntity {\n return new StylusImp(appObj);\n}\n\nclass StylusImp extends StylusEntity {\n private controllers: StylusEventHandler[] = [];\n private buttonStates = [false, false, false];\n\n private lassPressedButton?: number;\n private pressPosition = Vector3.Zero();\n private pressTime = 0;\n\n registerController = (controller: StylusEventHandler): void => {\n this.controllers.push(controller);\n };\n\n updateButtonState = (button: number, isPressed: boolean): void => {\n if (this.buttonStates[button] === isPressed) return;\n\n this.controllers.forEach((controller) => {\n if (isPressed) {\n if (controller.onButtonDown) {\n controller.onButtonDown(button);\n }\n this.lassPressedButton = button;\n this.pressPosition = this.transform.localPosition;\n this.pressTime = Date.now();\n } else {\n if (controller.onButtonUp) {\n controller.onButtonUp(button);\n }\n\n if (this.isClick(button) && controller.onButtonClick) {\n controller.onButtonClick(button);\n }\n }\n });\n\n this.buttonStates[button] = isPressed;\n this.notifyOnChange();\n };\n\n getButtonState = (button: number): boolean => {\n if (button < 0 || button >= this.buttonStates.length) {\n return false;\n } else {\n return this.buttonStates[button];\n }\n };\n\n private isClick = (button: number): boolean => {\n const buttonIsCorrect = button === this.lassPressedButton;\n\n const movement = Vector3.Subtract(\n this.transform.localPosition,\n this.pressPosition
|
|
1
|
+
{"version":3,"file":"StylusEntity.js","sourceRoot":"","sources":["../../../../src/Stylus/Entity/StylusEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent,\n Matrix,\n MemoizedBoolean,\n ParametricLine,\n Vector3,\n} from \"@vived/core\";\nimport { Transform3D } from \"../../Transform3D\";\n\nexport interface StylusEventHandler {\n onButtonDown?: (button: number) => void;\n onButtonUp?: (button: number) => void;\n onButtonClick?: (button: number) => void;\n onStylusMove?: (transform: Transform3D) => void;\n}\n\n/**\n * @deprecated Use StylusEventHandler instead\n */\nexport type StylusController = StylusEventHandler;\n\nexport abstract class StylusEntity extends AppObjectEntity {\n static readonly type = \"StylusEntity\";\n\n static clickMovementThreshold: number = 0.32;\n static clickTimeThresholdMS: number = 350;\n\n abstract registerController: (controller: StylusEventHandler) => void;\n abstract updateButtonState: (button: number, isPressed: boolean) => void;\n abstract getButtonState(button: number): boolean;\n\n abstract readonly transform: Transform3D;\n\n abstract get isInUse(): boolean;\n abstract get pickRay(): ParametricLine;\n\n static get(appObjects: AppObjectRepo): StylusEntity | undefined {\n return getSingletonComponent(StylusEntity.type, appObjects);\n }\n}\n\nexport function makeStylusEntity(appObj: AppObject): StylusEntity {\n return new StylusImp(appObj);\n}\n\nclass StylusImp extends StylusEntity {\n private controllers: StylusEventHandler[] = [];\n private buttonStates = [false, false, false];\n\n private lassPressedButton?: number;\n private pressPosition = Vector3.Zero();\n private pressTime = 0;\n\n registerController = (controller: StylusEventHandler): void => {\n this.controllers.push(controller);\n };\n\n updateButtonState = (button: number, isPressed: boolean): void => {\n if (this.buttonStates[button] === isPressed) return;\n\n this.controllers.forEach((controller) => {\n if (isPressed) {\n if (controller.onButtonDown) {\n controller.onButtonDown(button);\n }\n this.lassPressedButton = button;\n this.pressPosition = this.transform.localPosition;\n this.pressTime = Date.now();\n } else {\n if (controller.onButtonUp) {\n controller.onButtonUp(button);\n }\n\n if (this.isClick(button) && controller.onButtonClick) {\n controller.onButtonClick(button);\n }\n }\n });\n\n this.buttonStates[button] = isPressed;\n this.notifyOnChange();\n };\n\n getButtonState = (button: number): boolean => {\n if (button < 0 || button >= this.buttonStates.length) {\n return false;\n } else {\n return this.buttonStates[button];\n }\n };\n\n private isClick = (button: number): boolean => {\n const buttonIsCorrect = button === this.lassPressedButton;\n\n const movement = Vector3.Subtract(\n this.transform.localPosition,\n this.pressPosition,\n ).magnitude;\n const movementIsSmallEnough =\n movement < StylusEntity.clickMovementThreshold;\n\n const passedTime = Date.now() - this.pressTime;\n const pressTimeIsShortEnough =\n passedTime < StylusEntity.clickTimeThresholdMS;\n\n if (buttonIsCorrect && movementIsSmallEnough && pressTimeIsShortEnough) {\n return true;\n } else {\n return false;\n }\n };\n\n readonly transform: Transform3D;\n\n private onTransformUpdate = () => {\n this.checkIfStylusIsInUse(this.transform.worldMatrix);\n\n this.controllers.forEach((controller) => {\n if (controller.onStylusMove) {\n controller.onStylusMove(this.transform);\n }\n });\n this.notifyOnChange();\n };\n\n get pickRay(): ParametricLine {\n return ParametricLine.FromPointDirection(\n this.transform.worldPosition,\n this.transform.localDirectionToWorld(Vector3.Forward()),\n );\n }\n\n private memoizedIsInUse = new MemoizedBoolean(false, this.notifyOnChange);\n get isInUse(): boolean {\n return this.memoizedIsInUse.val;\n }\n\n private checkIfStylusIsInUse(worldMatrix: Matrix) {\n const m = worldMatrix.m;\n if (\n m[1] === 0 &&\n m[2] === 0 &&\n m[3] === 0 &&\n m[4] === 0 &&\n m[7] === 0 &&\n m[8] === 0 &&\n m[11] === 0 &&\n m[12] === 0 &&\n m[15] === 1\n ) {\n this.memoizedIsInUse.val = false;\n } else {\n this.memoizedIsInUse.val = true;\n }\n }\n\n constructor(appObject: AppObject) {\n super(appObject, StylusEntity.type);\n this.transform = Transform3D.addIfMissing(appObject);\n this.transform.addChangeObserver(this.onTransformUpdate);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StylusEntity.test.js","sourceRoot":"","sources":["../../../../src/Stylus/Entity/StylusEntity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EACL,gBAAgB,EAEhB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,cAAc;IAApB;QACE,iBAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,iBAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,kBAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,CAAC;CAAA;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;IACxC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAErD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAEpC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEvD,IAAI,QAAQ,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE5D,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CACvD,OAAO,CAAC,EAAE,EAAE,EACZ,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CACtB,CAAC;QAEF,QAAQ,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChE,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE5D,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,QAAQ,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChE,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAExD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,OAAO,CAC1C,YAAY,CAAC,sBAAsB,GAAG,IAAI,EAC1C,CAAC,EACD,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,OAAO,CAC1C,YAAY,CAAC,sBAAsB,EACnC,CAAC,EACD,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QACvB,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAEnE,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QACvB,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAElC,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAEnE,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAE7C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAE7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE9C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Angle, ParametricLine, Quaternion, Vector3 } from \"@vived/core\";\nimport {\n makeStylusEntity,\n StylusEventHandler,\n StylusEntity,\n} from \"./StylusEntity\";\n\nclass MockController implements StylusEventHandler {\n onButtonDown = jest.fn();\n onButtonUp = jest.fn();\n onStylusMove = jest.fn();\n onButtonClick = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const stylusAO = appObjects.getOrCreate(\"stylus\");\n\n const stylus = makeStylusEntity(stylusAO);\n const observer = jest.fn();\n stylus.addChangeObserver(observer);\n const controller = new MockController();\n stylus.registerController(controller);\n\n return { stylus, controller, observer };\n}\n\ndescribe(\"Stylus Entity\", () => {\n it(\"Forwards a press to the controller\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, true);\n\n expect(controller.onButtonDown).toHaveBeenCalledWith(1);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonUp).toHaveBeenCalledWith(1);\n });\n\n it(\"Only forwards if there is a change\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, false);\n stylus.updateButtonState(1, false);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonUp).not.toHaveBeenCalled();\n\n stylus.updateButtonState(1, true);\n\n controller.onButtonDown.mockClear();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(1, true);\n\n expect(controller.onButtonUp).not.toHaveBeenCalled();\n });\n\n it(\"Forms the parametric line as expected\", () => {\n const { stylus } = makeTestRig();\n\n stylus.transform.localPosition = Vector3.Zero();\n stylus.transform.localRotation = Quaternion.Identity();\n\n let rayPoint = ParametricLine.GetPointAtDistance(stylus.pickRay, 1);\n let expectedPoint = new Vector3(0, 0, 1);\n expect(Vector3.Close(rayPoint, expectedPoint)).toBeTruthy();\n\n stylus.transform.localRotation = Quaternion.FromAngleAxis(\n Vector3.Up(),\n Angle.FromDegrees(90)\n );\n\n rayPoint = ParametricLine.GetPointAtDistance(stylus.pickRay, 1);\n expectedPoint = new Vector3(1, 0, 0);\n expect(Vector3.Close(rayPoint, expectedPoint)).toBeTruthy();\n\n stylus.transform.localPosition = new Vector3(1, 2, 3);\n\n rayPoint = ParametricLine.GetPointAtDistance(stylus.pickRay, 1);\n expectedPoint = new Vector3(2, 2, 3);\n expect(Vector3.Close(rayPoint, expectedPoint)).toBeTruthy();\n });\n\n it(\"Triggers the controller move when the transform position changes\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localPosition = new Vector3(1, 2, 3);\n\n expect(controller.onStylusMove).toHaveBeenCalled();\n });\n\n it(\"Triggers the controller move when the transform rotation changes\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localRotation = new Quaternion(1, 2, 3, 4);\n\n expect(controller.onStylusMove).toHaveBeenCalled();\n });\n\n it(\"Triggers a button click\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).toHaveBeenCalledWith(1);\n });\n\n it(\"Does not click if a different button is pressed\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(0, true);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(2, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n });\n\n it(\"Does click if there is a little movement\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localPosition = Vector3.Zero();\n stylus.updateButtonState(1, true);\n\n stylus.transform.localPosition = new Vector3(\n StylusEntity.clickMovementThreshold * 0.99,\n 0,\n 0\n );\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).toHaveBeenCalled();\n });\n\n it(\"Does not click if the movement is too great\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localPosition = Vector3.Zero();\n stylus.updateButtonState(1, true);\n\n stylus.transform.localPosition = new Vector3(\n StylusEntity.clickMovementThreshold,\n 0,\n 0\n );\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n });\n\n it(\"Does click if a little time passed\", () => {\n const { stylus, controller } = makeTestRig();\n\n const mockDateNow = jest.fn();\n Date.now = mockDateNow;\n mockDateNow.mockReturnValue(0);\n\n stylus.updateButtonState(1, true);\n\n mockDateNow.mockReturnValue(StylusEntity.clickTimeThresholdMS - 1);\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).toHaveBeenCalled();\n });\n\n it(\"Does not click if too much time passed\", () => {\n const { stylus, controller } = makeTestRig();\n\n const mockDateNow = jest.fn();\n Date.now = mockDateNow;\n mockDateNow.mockReturnValue(0);\n\n stylus.updateButtonState(1, true);\n\n mockDateNow.mockReturnValue(StylusEntity.clickTimeThresholdMS + 1);\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n });\n\n it(\"Sets is in use to false\", () => {\n const { stylus } = makeTestRig();\n stylus.transform.worldPosition = Vector3.Zero();\n stylus.transform.worldRotation = Quaternion.Identity();\n stylus.transform.notifyOnChange();\n expect(stylus.isInUse).toEqual(false);\n });\n\n it(\"Sets is in use to true\", () => {\n const { stylus } = makeTestRig();\n stylus.transform.worldPosition = Vector3.One();\n stylus.transform.worldRotation = new Quaternion(1, 1, 1, 1);\n stylus.transform.notifyOnChange();\n expect(stylus.isInUse).toEqual(true);\n });\n\n it(\"Returns correct button states\", () => {\n const { stylus } = makeTestRig();\n\n expect(stylus.getButtonState(0)).toBeFalsy();\n expect(stylus.getButtonState(1)).toBeFalsy();\n expect(stylus.getButtonState(2)).toBeFalsy();\n\n expect(stylus.getButtonState(-1)).toBeFalsy();\n expect(stylus.getButtonState(3)).toBeFalsy();\n\n stylus.updateButtonState(0, true);\n expect(stylus.getButtonState(0)).toBeTruthy();\n expect(stylus.getButtonState(1)).toBeFalsy();\n expect(stylus.getButtonState(2)).toBeFalsy();\n\n stylus.updateButtonState(0, false);\n expect(stylus.getButtonState(0)).toBeFalsy();\n\n stylus.updateButtonState(1, true);\n expect(stylus.getButtonState(1)).toBeTruthy();\n\n stylus.updateButtonState(2, true);\n expect(stylus.getButtonState(2)).toBeTruthy();\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"StylusEntity.test.js","sourceRoot":"","sources":["../../../../src/Stylus/Entity/StylusEntity.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Angle, ParametricLine, Quaternion, Vector3 } from \"@vived/core\";\nimport {\n makeStylusEntity,\n StylusEventHandler,\n StylusEntity,\n} from \"./StylusEntity\";\n\nclass MockController implements StylusEventHandler {\n onButtonDown = jest.fn();\n onButtonUp = jest.fn();\n onStylusMove = jest.fn();\n onButtonClick = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const stylusAO = appObjects.getOrCreate(\"stylus\");\n\n const stylus = makeStylusEntity(stylusAO);\n const observer = jest.fn();\n stylus.addChangeObserver(observer);\n const controller = new MockController();\n stylus.registerController(controller);\n\n return { stylus, controller, observer };\n}\n\ndescribe(\"Stylus Entity\", () => {\n it(\"Forwards a press to the controller\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, true);\n\n expect(controller.onButtonDown).toHaveBeenCalledWith(1);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonUp).toHaveBeenCalledWith(1);\n });\n\n it(\"Only forwards if there is a change\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, false);\n stylus.updateButtonState(1, false);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonUp).not.toHaveBeenCalled();\n\n stylus.updateButtonState(1, true);\n\n controller.onButtonDown.mockClear();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(1, true);\n\n expect(controller.onButtonUp).not.toHaveBeenCalled();\n });\n\n it(\"Forms the parametric line as expected\", () => {\n const { stylus } = makeTestRig();\n\n stylus.transform.localPosition = Vector3.Zero();\n stylus.transform.localRotation = Quaternion.Identity();\n\n let rayPoint = ParametricLine.GetPointAtDistance(stylus.pickRay, 1);\n let expectedPoint = new Vector3(0, 0, 1);\n expect(Vector3.Close(rayPoint, expectedPoint)).toBeTruthy();\n\n stylus.transform.localRotation = Quaternion.FromAngleAxis(\n Vector3.Up(),\n Angle.FromDegrees(90),\n );\n\n rayPoint = ParametricLine.GetPointAtDistance(stylus.pickRay, 1);\n expectedPoint = new Vector3(1, 0, 0);\n expect(Vector3.Close(rayPoint, expectedPoint)).toBeTruthy();\n\n stylus.transform.localPosition = new Vector3(1, 2, 3);\n\n rayPoint = ParametricLine.GetPointAtDistance(stylus.pickRay, 1);\n expectedPoint = new Vector3(2, 2, 3);\n expect(Vector3.Close(rayPoint, expectedPoint)).toBeTruthy();\n });\n\n it(\"Triggers the controller move when the transform position changes\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localPosition = new Vector3(1, 2, 3);\n\n expect(controller.onStylusMove).toHaveBeenCalled();\n });\n\n it(\"Triggers the controller move when the transform rotation changes\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localRotation = new Quaternion(1, 2, 3, 4);\n\n expect(controller.onStylusMove).toHaveBeenCalled();\n });\n\n it(\"Triggers a button click\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).toHaveBeenCalledWith(1);\n });\n\n it(\"Does not click if a different button is pressed\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(0, true);\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n\n stylus.updateButtonState(1, true);\n stylus.updateButtonState(2, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n });\n\n it(\"Does click if there is a little movement\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localPosition = Vector3.Zero();\n stylus.updateButtonState(1, true);\n\n stylus.transform.localPosition = new Vector3(\n StylusEntity.clickMovementThreshold * 0.99,\n 0,\n 0,\n );\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).toHaveBeenCalled();\n });\n\n it(\"Does not click if the movement is too great\", () => {\n const { stylus, controller } = makeTestRig();\n\n stylus.transform.localPosition = Vector3.Zero();\n stylus.updateButtonState(1, true);\n\n stylus.transform.localPosition = new Vector3(\n StylusEntity.clickMovementThreshold,\n 0,\n 0,\n );\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n });\n\n it(\"Does click if a little time passed\", () => {\n const { stylus, controller } = makeTestRig();\n\n const mockDateNow = jest.fn();\n Date.now = mockDateNow;\n mockDateNow.mockReturnValue(0);\n\n stylus.updateButtonState(1, true);\n\n mockDateNow.mockReturnValue(StylusEntity.clickTimeThresholdMS - 1);\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).toHaveBeenCalled();\n });\n\n it(\"Does not click if too much time passed\", () => {\n const { stylus, controller } = makeTestRig();\n\n const mockDateNow = jest.fn();\n Date.now = mockDateNow;\n mockDateNow.mockReturnValue(0);\n\n stylus.updateButtonState(1, true);\n\n mockDateNow.mockReturnValue(StylusEntity.clickTimeThresholdMS + 1);\n\n stylus.updateButtonState(1, false);\n\n expect(controller.onButtonClick).not.toHaveBeenCalled();\n });\n\n it(\"Sets is in use to false\", () => {\n const { stylus } = makeTestRig();\n stylus.transform.worldPosition = Vector3.Zero();\n stylus.transform.worldRotation = Quaternion.Identity();\n stylus.transform.notifyOnChange();\n expect(stylus.isInUse).toEqual(false);\n });\n\n it(\"Sets is in use to true\", () => {\n const { stylus } = makeTestRig();\n stylus.transform.worldPosition = Vector3.One();\n stylus.transform.worldRotation = new Quaternion(1, 1, 1, 1);\n stylus.transform.notifyOnChange();\n expect(stylus.isInUse).toEqual(true);\n });\n\n it(\"Returns correct button states\", () => {\n const { stylus } = makeTestRig();\n\n expect(stylus.getButtonState(0)).toBeFalsy();\n expect(stylus.getButtonState(1)).toBeFalsy();\n expect(stylus.getButtonState(2)).toBeFalsy();\n\n expect(stylus.getButtonState(-1)).toBeFalsy();\n expect(stylus.getButtonState(3)).toBeFalsy();\n\n stylus.updateButtonState(0, true);\n expect(stylus.getButtonState(0)).toBeTruthy();\n expect(stylus.getButtonState(1)).toBeFalsy();\n expect(stylus.getButtonState(2)).toBeFalsy();\n\n stylus.updateButtonState(0, false);\n expect(stylus.getButtonState(0)).toBeFalsy();\n\n stylus.updateButtonState(1, true);\n expect(stylus.getButtonState(1)).toBeTruthy();\n\n stylus.updateButtonState(2, true);\n expect(stylus.getButtonState(2)).toBeTruthy();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchInput.js","sourceRoot":"","sources":["../../../../src/TouchController/Entities/TouchInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSingletonComponent } from \"@vived/core\";\nimport { AppObject } from \"@vived/core\";\nimport { AppObjectEntity } from \"@vived/core\";\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface TouchInputEvent {\n touchCount: number;\n touchCenter: Vector2;\n touches: TouchData[];\n event: TouchEvent;\n}\n\nexport interface TouchData {\n id: number;\n position: Vector2;\n touch?: Touch;\n}\n\nexport interface TouchEventHandler {\n onTouchStart?: (e: TouchInputEvent) => void;\n onTouchMove?: (e: TouchInputEvent) => void;\n onTouchEnd?: (e: TouchInputEvent) => void;\n onTouchCancel?: (e: TouchInputEvent) => void;\n onTap?: (e: TouchInputEvent) => void;\n}\n\n/**\n * @deprecated Use TouchEventHandler instead. TouchController will be removed in a future version.\n */\nexport type TouchController = TouchEventHandler;\n\nexport abstract class TouchInputEntity extends AppObjectEntity {\n static readonly type = \"TouchInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n abstract eventElementBounds?: DOMRect;\n\n abstract setEventElement: (eventElement: HTMLElement) => void;\n abstract clearInputElement: () => void;\n abstract updateInputElementBounds: () => void;\n\n abstract registerController: (controller: TouchEventHandler) => void;\n abstract removeController: (controller: TouchEventHandler) => void;\n\n static get = (appObjects: AppObjectRepo): TouchInputEntity | undefined =>\n getSingletonComponent(TouchInputEntity.type, appObjects);\n}\n\nexport function makeTouchInput(appObject: AppObject): TouchInputEntity {\n return new TouchInputImp(appObject);\n}\n\nclass TouchInputImp extends TouchInputEntity {\n private controllers: TouchEventHandler[] = [];\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n public eventElementBounds?: DOMRect;\n\n updateInputElementBounds = () => {\n if (!this._eventElement) return;\n this.eventElementBounds = this._eventElement.getBoundingClientRect(); // Expensive so we cache\n };\n\n getTouchOffsetPosition = (touch: Touch): Vector2 => {\n if (!this.eventElementBounds) {\n console.warn(\"No target bounds\");\n return Vector2.Zero();\n }\n\n const x = touch.clientX - this.eventElementBounds.x;\n const y = touch.clientY - this.eventElementBounds.y;\n\n return new Vector2(x, y);\n };\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"touchstart\", this.onTouchStart, false);\n eventElement.addEventListener(\"touchmove\", this.onTouchMove, false);\n eventElement.addEventListener(\"touchend\", this.onTouchEnd, false);\n eventElement.addEventListener(\"touchcancel\", this.onTouchCancel, false);\n\n this.eventElementBounds = eventElement.getBoundingClientRect();\n this._eventElement = eventElement;\n };\n\n private considerTap = false;\n private tapStartPosition: Vector2 = Vector2.Zero();\n private maxTapDistancePx = 5;\n private tapEvent?: TouchInputEvent;\n\n private onTouchStart = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchStart) {\n c.onTouchStart(touchInput);\n }\n });\n\n if (touchInput.touchCount === 1) {\n this.considerTap = true;\n this.tapStartPosition = touchInput.touchCenter;\n this.tapEvent = touchInput;\n } else {\n this.cancelTap();\n }\n };\n\n private cancelTap = () => {\n this.considerTap = false;\n this.tapStartPosition = Vector2.Zero();\n this.tapEvent = undefined;\n };\n\n private onTouchMove = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchMove) {\n c.onTouchMove(touchInput);\n }\n });\n\n if (!this.considerTap) return;\n\n if (touchInput.touchCount !== 1) {\n this.cancelTap();\n }\n\n const movement = Vector2.Subtract(\n this.tapStartPosition,\n touchInput.touchCenter\n ).magnitued;\n\n if (movement > this.maxTapDistancePx) {\n this.cancelTap();\n }\n };\n\n private onTouchEnd = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchEnd) {\n c.onTouchEnd(touchInput);\n }\n });\n\n if (!this.considerTap || !this.tapEvent) return;\n this.controllers.forEach((c) => {\n if (c.onTap) {\n c.onTap(this.tapEvent!);\n }\n });\n\n this.cancelTap();\n };\n\n private onTouchCancel = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchCancel) {\n c.onTouchCancel(touchInput);\n }\n });\n this.cancelTap();\n };\n\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"touchstart\", this.onTouchStart);\n this._eventElement.removeEventListener(\"touchmove\", this.onTouchMove);\n this._eventElement.removeEventListener(\"touchend\", this.onTouchEnd);\n this._eventElement.removeEventListener(\"touchcancel\", this.onTouchCancel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: TouchEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: TouchEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private createTouchInputEvent(event: TouchEvent): TouchInputEvent {\n const touches: TouchData[] = [];\n const touchCount = event.touches.length;\n\n let minX = 0;\n let maxX = 0;\n let minY = 0;\n let maxY = 0;\n\n for (let i = 0; i < touchCount; i++) {\n const touch = event.touches[i];\n const position = this.getTouchOffsetPosition(touch);\n\n touches.push({\n id: touch.identifier,\n touch,\n position,\n });\n\n if (i === 0) {\n minX = position.x;\n maxX = position.x;\n minY = position.y;\n maxY = position.y;\n } else {\n minX = Math.min(minX, position.x);\n maxX = Math.max(maxX, position.x);\n minY = Math.min(minY, position.y);\n maxY = Math.max(maxY, position.y);\n }\n }\n\n let cntX = 0;\n let cntY = 0;\n\n if (touchCount === 1) {\n cntX = maxX;\n cntY = maxY;\n } else {\n cntX = minX + (maxX - minX) / 2;\n cntY = minY + (maxY - minY) / 2;\n }\n\n return {\n touchCenter: new Vector2(cntX, cntY),\n touchCount,\n touches,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, TouchInputEntity.type);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TouchInput.js","sourceRoot":"","sources":["../../../../src/TouchController/Entities/TouchInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSingletonComponent } from \"@vived/core\";\nimport { AppObject } from \"@vived/core\";\nimport { AppObjectEntity } from \"@vived/core\";\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface TouchInputEvent {\n touchCount: number;\n touchCenter: Vector2;\n touches: TouchData[];\n event: TouchEvent;\n}\n\nexport interface TouchData {\n id: number;\n position: Vector2;\n touch?: Touch;\n}\n\nexport interface TouchEventHandler {\n onTouchStart?: (e: TouchInputEvent) => void;\n onTouchMove?: (e: TouchInputEvent) => void;\n onTouchEnd?: (e: TouchInputEvent) => void;\n onTouchCancel?: (e: TouchInputEvent) => void;\n onTap?: (e: TouchInputEvent) => void;\n}\n\n/**\n * @deprecated Use TouchEventHandler instead. TouchController will be removed in a future version.\n */\nexport type TouchController = TouchEventHandler;\n\nexport abstract class TouchInputEntity extends AppObjectEntity {\n static readonly type = \"TouchInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n abstract eventElementBounds?: DOMRect;\n\n abstract setEventElement: (eventElement: HTMLElement) => void;\n abstract clearInputElement: () => void;\n abstract updateInputElementBounds: () => void;\n\n abstract registerController: (controller: TouchEventHandler) => void;\n abstract removeController: (controller: TouchEventHandler) => void;\n\n static get = (appObjects: AppObjectRepo): TouchInputEntity | undefined =>\n getSingletonComponent(TouchInputEntity.type, appObjects);\n}\n\nexport function makeTouchInput(appObject: AppObject): TouchInputEntity {\n return new TouchInputImp(appObject);\n}\n\nclass TouchInputImp extends TouchInputEntity {\n private controllers: TouchEventHandler[] = [];\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n public eventElementBounds?: DOMRect;\n\n updateInputElementBounds = () => {\n if (!this._eventElement) return;\n this.eventElementBounds = this._eventElement.getBoundingClientRect(); // Expensive so we cache\n };\n\n getTouchOffsetPosition = (touch: Touch): Vector2 => {\n if (!this.eventElementBounds) {\n console.warn(\"No target bounds\");\n return Vector2.Zero();\n }\n\n const x = touch.clientX - this.eventElementBounds.x;\n const y = touch.clientY - this.eventElementBounds.y;\n\n return new Vector2(x, y);\n };\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"touchstart\", this.onTouchStart, false);\n eventElement.addEventListener(\"touchmove\", this.onTouchMove, false);\n eventElement.addEventListener(\"touchend\", this.onTouchEnd, false);\n eventElement.addEventListener(\"touchcancel\", this.onTouchCancel, false);\n\n this.eventElementBounds = eventElement.getBoundingClientRect();\n this._eventElement = eventElement;\n };\n\n private considerTap = false;\n private tapStartPosition: Vector2 = Vector2.Zero();\n private maxTapDistancePx = 5;\n private tapEvent?: TouchInputEvent;\n\n private onTouchStart = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchStart) {\n c.onTouchStart(touchInput);\n }\n });\n\n if (touchInput.touchCount === 1) {\n this.considerTap = true;\n this.tapStartPosition = touchInput.touchCenter;\n this.tapEvent = touchInput;\n } else {\n this.cancelTap();\n }\n };\n\n private cancelTap = () => {\n this.considerTap = false;\n this.tapStartPosition = Vector2.Zero();\n this.tapEvent = undefined;\n };\n\n private onTouchMove = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchMove) {\n c.onTouchMove(touchInput);\n }\n });\n\n if (!this.considerTap) return;\n\n if (touchInput.touchCount !== 1) {\n this.cancelTap();\n }\n\n const movement = Vector2.Subtract(\n this.tapStartPosition,\n touchInput.touchCenter,\n ).magnitued;\n\n if (movement > this.maxTapDistancePx) {\n this.cancelTap();\n }\n };\n\n private onTouchEnd = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchEnd) {\n c.onTouchEnd(touchInput);\n }\n });\n\n if (!this.considerTap || !this.tapEvent) return;\n this.controllers.forEach((c) => {\n if (c.onTap) {\n c.onTap(this.tapEvent!);\n }\n });\n\n this.cancelTap();\n };\n\n private onTouchCancel = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchCancel) {\n c.onTouchCancel(touchInput);\n }\n });\n this.cancelTap();\n };\n\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"touchstart\", this.onTouchStart);\n this._eventElement.removeEventListener(\"touchmove\", this.onTouchMove);\n this._eventElement.removeEventListener(\"touchend\", this.onTouchEnd);\n this._eventElement.removeEventListener(\"touchcancel\", this.onTouchCancel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: TouchEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: TouchEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private createTouchInputEvent(event: TouchEvent): TouchInputEvent {\n const touches: TouchData[] = [];\n const touchCount = event.touches.length;\n\n let minX = 0;\n let maxX = 0;\n let minY = 0;\n let maxY = 0;\n\n for (let i = 0; i < touchCount; i++) {\n const touch = event.touches[i];\n const position = this.getTouchOffsetPosition(touch);\n\n touches.push({\n id: touch.identifier,\n touch,\n position,\n });\n\n if (i === 0) {\n minX = position.x;\n maxX = position.x;\n minY = position.y;\n maxY = position.y;\n } else {\n minX = Math.min(minX, position.x);\n maxX = Math.max(maxX, position.x);\n minY = Math.min(minY, position.y);\n maxY = Math.max(maxY, position.y);\n }\n }\n\n let cntX = 0;\n let cntY = 0;\n\n if (touchCount === 1) {\n cntX = maxX;\n cntY = maxY;\n } else {\n cntX = minX + (maxX - minX) / 2;\n cntY = minY + (maxY - minY) / 2;\n }\n\n return {\n touchCenter: new Vector2(cntX, cntY),\n touchCount,\n touches,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, TouchInputEntity.type);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/DragScaleTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA9BtC,eAAU,GAAG,KAAK,CAAC;QAI3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,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,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,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,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAKA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AA/Ce,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"DragScaleTransformMC\";\n private isDragging = false;\n\n private scaleUC?: ScaleTransformUC;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isDragging = false;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isDragging = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n this.scaleUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.isDragging = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformMC.type);\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type
|
|
1
|
+
{"version":3,"file":"DragScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/DragScaleTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA9BtC,eAAU,GAAG,KAAK,CAAC;QAI3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,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,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,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,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAKA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AA/Ce,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"DragScaleTransformMC\";\n private isDragging = false;\n\n private scaleUC?: ScaleTransformUC;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isDragging = false;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isDragging = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n this.scaleUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.isDragging = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformMC.type);\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type,\n );\n if (!this.scaleUC) {\n this.error(\"App Object that does not have ScaleTransformUC\");\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":"MousePanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/MousePanTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAU3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iBAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IA8BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAYM,eAAU,GAAG,KAAK,CAAC;QAE3B,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAC5E,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAjDe,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class MousePanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MousePanTransformMC\";\n\n public allow = (e: MouseInputEvent): boolean => {\n if (e.button !== 0) return false;\n return true;\n };\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type
|
|
1
|
+
{"version":3,"file":"MousePanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/MousePanTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAU3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iBAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IA8BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAYM,eAAU,GAAG,KAAK,CAAC;QAE3B,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAC5E,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAjDe,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class MousePanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MousePanTransformMC\";\n\n public allow = (e: MouseInputEvent): boolean => {\n if (e.button !== 0) return false;\n return true;\n };\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type,\n );\n }\n\n private isDragging = false;\n\n onDown = (e: MouseInputEvent) => {\n if (this.isDragging) {\n this.tryScreenDragUC?.cancel();\n this.isDragging = false;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.isDragging = this.tryScreenDragUC?.tryWithPixel(e.position) ?? false;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n\n this.tryScreenDragUC?.moveWithPixel(e.position);\n };\n\n onUp = () => {\n if (!this.isDragging) return;\n\n this.tryScreenDragUC?.stop();\n this.isDragging = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MousePanTransformMC.type);\n\n this.mouseInput?.registerController(this);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/PanTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,OAAO,cACX,SAAQ,mBAAmB;IA+B3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA5BhC,UAAK,GAAG,KAAK,CAAC;QAEtB,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAIF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAKA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,cAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CACR,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AA7Ce,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"PanTransformMC\";\n private doPan = false;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n private panUC?: PanTransformUC;\n\n onDown = (e: MouseInputEvent) => {\n this.doPan = false;\n\n if (!this.allow(e)) return;\n\n this.panUC?.initializePixel(e.position);\n this.doPan = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.doPan) return;\n this.panUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.doPan = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformMC.type);\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.error(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\"
|
|
1
|
+
{"version":3,"file":"PanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/PanTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,OAAO,cACX,SAAQ,mBAAmB;IA+B3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA5BhC,UAAK,GAAG,KAAK,CAAC;QAEtB,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAIF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAKA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,cAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CACR,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AA7Ce,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"PanTransformMC\";\n private doPan = false;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n private panUC?: PanTransformUC;\n\n onDown = (e: MouseInputEvent) => {\n this.doPan = false;\n\n if (!this.allow(e)) return;\n\n this.panUC?.initializePixel(e.position);\n this.doPan = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.doPan) return;\n this.panUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.doPan = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformMC.type);\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.error(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\",\n );\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":"RollScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/RollScaleTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IAqB3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAf9C,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,WAAW,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC,CAAC;QAKA,IAAI,CAAC,WAAW;YACd,SAAS,CAAC,YAAY,CACpB,mCAAmC,CAAC,IAAI,CACzC,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CACR,mHAAmH,CACpH,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;;AAtCe,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseWheelEvent,\n} from \"../../../MouseInput\";\nimport { BumpTransformScaleAboutPixelPointUC } from \"../../UC\";\n\nexport class RollScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"RollScaleTransformMC\";\n\n private bumpScaleUC?: BumpTransformScaleAboutPixelPointUC;\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.bumpScaleUC) {\n return;\n }\n\n this.bumpScaleUC.bump(e.event.deltaY > 0 ? \"OUT\" : \"IN\", e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, RollScaleTransformMC.type);\n\n this.bumpScaleUC =\n appObject.getComponent<BumpTransformScaleAboutPixelPointUC>(\n BumpTransformScaleAboutPixelPointUC.type
|
|
1
|
+
{"version":3,"file":"RollScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/RollScaleTransformMC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IAqB3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAf9C,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,WAAW,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC,CAAC;QAKA,IAAI,CAAC,WAAW;YACd,SAAS,CAAC,YAAY,CACpB,mCAAmC,CAAC,IAAI,CACzC,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CACR,mHAAmH,CACpH,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;;AAtCe,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseWheelEvent,\n} from \"../../../MouseInput\";\nimport { BumpTransformScaleAboutPixelPointUC } from \"../../UC\";\n\nexport class RollScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"RollScaleTransformMC\";\n\n private bumpScaleUC?: BumpTransformScaleAboutPixelPointUC;\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.bumpScaleUC) {\n return;\n }\n\n this.bumpScaleUC.bump(e.event.deltaY > 0 ? \"OUT\" : \"IN\", e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, RollScaleTransformMC.type);\n\n this.bumpScaleUC =\n appObject.getComponent<BumpTransformScaleAboutPixelPointUC>(\n BumpTransformScaleAboutPixelPointUC.type,\n );\n if (!this.bumpScaleUC) {\n this.error(\n \"Controller has been added to an App Object that does not have BumpTransformScaleAboutPixelPointUC. Add one first.\",\n );\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.error(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/MoveTransformSC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,OAAO,eACX,SAAQ,mBAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,YAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAgCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA/BjC,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,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAEtB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AA7Ce,oBAAI,GAAG,iBAAiB,AAApB,CAAqB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { TryMoveTransformUC } from \"../../UC\";\n\nexport class MoveTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"MoveTransformSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get tryMoveUC() {\n return this.getCachedLocalComponent<TryMoveTransformUC>(\n TryMoveTransformUC.type
|
|
1
|
+
{"version":3,"file":"MoveTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/MoveTransformSC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,OAAO,eACX,SAAQ,mBAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,YAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAgCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA/BjC,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,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAEtB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AA7Ce,oBAAI,GAAG,iBAAiB,AAApB,CAAqB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { TryMoveTransformUC } from \"../../UC\";\n\nexport class MoveTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"MoveTransformSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get tryMoveUC() {\n return this.getCachedLocalComponent<TryMoveTransformUC>(\n TryMoveTransformUC.type,\n );\n }\n\n private doUpdate = false;\n\n allow = (button: number): boolean => {\n if (button === 0) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doUpdate = false;\n if (!this.stylus || !this.tryMoveUC) return;\n if (!this.allow(button)) return;\n\n this.doUpdate = this.tryMoveUC.tryWithRay(this.stylus.pickRay);\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.tryMoveUC) return;\n if (!this.doUpdate) return;\n this.tryMoveUC.moveWithRay(this.stylus.pickRay);\n };\n\n onButtonUp = () => {\n if (!this.doUpdate) return;\n this.doUpdate = false;\n\n if (!this.tryMoveUC) return;\n\n this.tryMoveUC.stop();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MoveTransformSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanScaleTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/PanScaleTransformSC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAsC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAhCrC,UAAK,GAAG,KAAK,CAAC;QAEtB,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,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YAErB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QAKA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAC9B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AArDe,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { RayPanScaleTransformUC } from \"../../UC\";\n\nexport class PanScaleTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"PanScaleTransformSC\";\n private stylus?: StylusEntity;\n\n private uc?: RayPanScaleTransformUC;\n private doPan = false;\n\n allow = (button: number): boolean => {\n if (button === 1) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doPan = false;\n if (!this.stylus || !this.uc) return;\n if (!this.allow(button)) return;\n\n this.uc.initialize(this.stylus.pickRay);\n this.doPan = true;\n };\n\n onButtonUp = () => {\n if (!this.doPan) return;\n this.doPan = false;\n\n if (!this.uc) return;\n\n this.uc.finish();\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.uc) return;\n if (!this.doPan) return;\n this.uc.update(this.stylus.pickRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanScaleTransformSC.type);\n\n this.stylus = StylusEntity.get(this.appObjects);\n if (!this.stylus) {\n this.error(\"Unable to find StylusEntity\");\n return;\n }\n\n this.uc = appObject.getComponent<RayPanScaleTransformUC>(\n RayPanScaleTransformUC.type
|
|
1
|
+
{"version":3,"file":"PanScaleTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/PanScaleTransformSC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAsC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAhCrC,UAAK,GAAG,KAAK,CAAC;QAEtB,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,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YAErB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QAKA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAC9B,sBAAsB,CAAC,IAAI,CAC5B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AArDe,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { RayPanScaleTransformUC } from \"../../UC\";\n\nexport class PanScaleTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"PanScaleTransformSC\";\n private stylus?: StylusEntity;\n\n private uc?: RayPanScaleTransformUC;\n private doPan = false;\n\n allow = (button: number): boolean => {\n if (button === 1) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doPan = false;\n if (!this.stylus || !this.uc) return;\n if (!this.allow(button)) return;\n\n this.uc.initialize(this.stylus.pickRay);\n this.doPan = true;\n };\n\n onButtonUp = () => {\n if (!this.doPan) return;\n this.doPan = false;\n\n if (!this.uc) return;\n\n this.uc.finish();\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.uc) return;\n if (!this.doPan) return;\n this.uc.update(this.stylus.pickRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanScaleTransformSC.type);\n\n this.stylus = StylusEntity.get(this.appObjects);\n if (!this.stylus) {\n this.error(\"Unable to find StylusEntity\");\n return;\n }\n\n this.uc = appObject.getComponent<RayPanScaleTransformUC>(\n RayPanScaleTransformUC.type,\n );\n if (!this.uc) {\n this.error(\"App Object that does not have a StylusDragScaleTransformUC\");\n return;\n }\n\n this.stylus.registerController(this);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragScaleTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/DragScaleTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IA6C3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA1CtC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEnC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AA5De,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"DragScaleTransformTC\";\n private isScaling = false;\n scaleUC?: ScaleTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) {\n return false;\n }\n\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isScaling = false;\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isScaling = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isScaling) return;\n if (e.touches.length !== 1) return;\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = () => {\n this.isScaling = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type
|
|
1
|
+
{"version":3,"file":"DragScaleTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/DragScaleTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,OAAO,oBACX,SAAQ,mBAAmB;IA6C3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA1CtC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEnC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AA5De,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"DragScaleTransformTC\";\n private isScaling = false;\n scaleUC?: ScaleTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) {\n return false;\n }\n\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isScaling = false;\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isScaling = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isScaling) return;\n if (e.touches.length !== 1) return;\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = () => {\n this.isScaling = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type,\n );\n if (!this.scaleUC) {\n this.error(\"App Object that does not have ScaleTransformUC\");\n return;\n }\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":"PanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PanTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,OAAO,cACX,SAAQ,mBAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA9BhC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,CAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,cAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CACP,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AAhDe,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PanTransformTC\";\n private isPanning = false;\n private panUC?: PanTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.isPanning = false;\n this.panUC?.cancelPan();\n return;\n }\n\n this.panUC?.initializePixel(e.touchCenter);\n this.isPanning = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPanning) return;\n const pixelPosition = e.touches[0].position;\n this.panUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n this.isPanning = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.warn(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\"
|
|
1
|
+
{"version":3,"file":"PanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PanTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,OAAO,cACX,SAAQ,mBAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA9BhC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,CAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,cAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CACP,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AAhDe,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PanTransformTC\";\n private isPanning = false;\n private panUC?: PanTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.isPanning = false;\n this.panUC?.cancelPan();\n return;\n }\n\n this.panUC?.initializePixel(e.touchCenter);\n this.isPanning = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPanning) return;\n const pixelPosition = e.touches[0].position;\n this.panUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n this.isPanning = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.warn(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\",\n );\n return;\n }\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":"PinchTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PinchTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,OAAO,gBACX,SAAQ,mBAAmB;IAqC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAlClC,eAAU,GAAG,KAAK,CAAC;QAG3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5E,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,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACnC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AApDe,qBAAI,GAAG,kBAAkB,AAArB,CAAsB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PinchTransformUC } from \"../../UC\";\n\nexport class PinchTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PinchTransformTC\";\n private isPinching = false;\n pinchUC?: PinchTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isPinching = false;\n\n if (e.touches.length !== 2) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.pinchUC?.initializePinch(e.touches[0].position, e.touches[1].position);\n this.isPinching = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPinching) return;\n if (e.touches.length !== 2) return;\n this.pinchUC?.doPinch(e.touches[0].position, e.touches[1].position);\n };\n\n onTouchEnd = () => {\n this.isPinching = false;\n this.pinchUC?.finishPinch();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PinchTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.pinchUC = appObject.getComponent<PinchTransformUC>(\n PinchTransformUC.type
|
|
1
|
+
{"version":3,"file":"PinchTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PinchTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,OAAO,gBACX,SAAQ,mBAAmB;IAqC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAlClC,eAAU,GAAG,KAAK,CAAC;QAG3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5E,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,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACnC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,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;;AApDe,qBAAI,GAAG,kBAAkB,AAArB,CAAsB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PinchTransformUC } from \"../../UC\";\n\nexport class PinchTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PinchTransformTC\";\n private isPinching = false;\n pinchUC?: PinchTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isPinching = false;\n\n if (e.touches.length !== 2) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.pinchUC?.initializePinch(e.touches[0].position, e.touches[1].position);\n this.isPinching = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPinching) return;\n if (e.touches.length !== 2) return;\n this.pinchUC?.doPinch(e.touches[0].position, e.touches[1].position);\n };\n\n onTouchEnd = () => {\n this.isPinching = false;\n this.pinchUC?.finishPinch();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PinchTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.pinchUC = appObject.getComponent<PinchTransformUC>(\n PinchTransformUC.type,\n );\n if (!this.pinchUC) {\n this.error(\"App Object does not have PinchTransformUC\");\n return;\n }\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":"TouchPanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/TouchPanTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAU3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iBAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAkCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAQM,eAAU,GAAG,KAAK,CAAC;QAE3B,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAlDe,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class TouchPanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchPanTransformTC\";\n\n public allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) return false;\n return true;\n };\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type
|
|
1
|
+
{"version":3,"file":"TouchPanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/TouchPanTransformTC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,OAAO,mBACX,SAAQ,mBAAmB;IAU3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iBAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAkCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAQM,eAAU,GAAG,KAAK,CAAC;QAE3B,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAlDe,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class TouchPanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchPanTransformTC\";\n\n public allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) return false;\n return true;\n };\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type,\n );\n }\n\n private isDragging = false;\n\n onTouchStart = (e: TouchInputEvent) => {\n if (this.isDragging) {\n this.tryScreenDragUC?.cancel();\n this.isDragging = false;\n }\n\n if (!this.tryScreenDragUC) return;\n\n if (!this.allow(e)) return;\n\n const position = e.touches[0].position;\n this.isDragging = this.tryScreenDragUC.tryWithPixel(position);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.tryScreenDragUC) return;\n if (!this.isDragging) return;\n\n const position = e.touches[0].position;\n this.tryScreenDragUC.moveWithPixel(position);\n };\n\n onTouchEnd = () => {\n if (!this.tryScreenDragUC) return;\n if (!this.isDragging) return;\n\n this.tryScreenDragUC.stop();\n this.isDragging = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchPanTransformTC.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n touchInput?.registerController(this);\n }\n}\n"]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { AppObject } from "@vived/core";
|
|
2
|
-
import { MouseInputEntity } from "../Entities/MouseInput";
|
|
2
|
+
import { MouseInputEntity, MouseEventHandler } from "../Entities/MouseInput";
|
|
3
3
|
export declare class MockMouseInput extends MouseInputEntity {
|
|
4
4
|
get eventElement(): HTMLElement | undefined;
|
|
5
|
-
setEventElement:
|
|
6
|
-
clearInputElement:
|
|
7
|
-
registerController:
|
|
8
|
-
removeController:
|
|
9
|
-
isKeyPressed: jest.Mock<any, any, any>;
|
|
5
|
+
setEventElement: (_eventElement: HTMLElement) => void;
|
|
6
|
+
clearInputElement: () => void;
|
|
7
|
+
registerController: (_controller: MouseEventHandler) => void;
|
|
8
|
+
removeController: (_controller: MouseEventHandler) => void;
|
|
10
9
|
constructor(appObject: AppObject);
|
|
11
10
|
}
|
|
12
11
|
//# sourceMappingURL=MockMouseInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockMouseInput.d.ts","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/MockMouseInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"MockMouseInput.d.ts","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/MockMouseInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,IAAI,YAAY,IAAI,WAAW,GAAG,SAAS,CAE1C;IACD,eAAe,GAAI,eAAe,WAAW,KAAG,IAAI,CAAO;IAC3D,iBAAiB,QAAO,IAAI,CAAO;IACnC,kBAAkB,GAAI,aAAa,iBAAiB,KAAG,IAAI,CAAO;IAClE,gBAAgB,GAAI,aAAa,iBAAiB,KAAG,IAAI,CAAO;gBAEpD,SAAS,EAAE,SAAS;CAGjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/MouseInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/MouseInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|