import type { ObjectHolder } from '../../core/model/Project'; import type { Vec2 } from '../../core/model/Properties'; import type { DrawItem } from '../../viewport/items'; import type { EditorState } from '../state'; /** Below this on-screen spacing a grid is noise rather than orientation, so it is dropped. */ export const MIN_GRID_STEP = 12; /** What the scene view lends the tools that work inside it. */ export interface SceneViewHost { readonly state: EditorState; /** What the view shows and edits. */ holder(): ObjectHolder | undefined; /** What the view drew last. */ items(): readonly DrawItem[]; /** The world point under a global pointer position. */ worldAt(global: Vec2): Vec2; /** Screen pixels per world unit. */ scale(): number; redraw(): void; }