Add transform-pointer-intent.ts for handling pointer down events
This commit is contained in:
31
src/viewport-three/transform-pointer-intent.ts
Normal file
31
src/viewport-three/transform-pointer-intent.ts
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import type { TransformSessionState } from "../core/transform-session";
|
||||||
|
import type { ViewportPanelId } from "./viewport-layout";
|
||||||
|
|
||||||
|
export interface TransformPointerDownIntent {
|
||||||
|
commitActiveTransform: boolean;
|
||||||
|
allowGizmoInteraction: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function resolveTransformPointerDownIntent(
|
||||||
|
transformSession: TransformSessionState,
|
||||||
|
panelId: ViewportPanelId
|
||||||
|
): TransformPointerDownIntent {
|
||||||
|
if (transformSession.kind !== "active") {
|
||||||
|
return {
|
||||||
|
commitActiveTransform: false,
|
||||||
|
allowGizmoInteraction: true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transformSession.sourcePanelId !== panelId) {
|
||||||
|
return {
|
||||||
|
commitActiveTransform: false,
|
||||||
|
allowGizmoInteraction: false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
commitActiveTransform: true,
|
||||||
|
allowGizmoInteraction: false
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user