public interface IViewportInputWhatever gets first refusal on a pane's input before the pane itself reads it.
Remarks
This is the viewport's half of doc 20's IEditorMode, and it is deliberately not that interface. A mode is a shell concept — it has a title, an icon, a place on the mode bar and a claim on the keymap — and this assembly has never heard of a shell: Vixen.Editor.SceneView does not reference Vixen.Editor.Ui, for the reason doc 02 gives, which is that a viewport that needed the editor's chrome to be constructible would not be testable headless. So the pane declares the seam it needs and the application is what joins the two — the same bargain TargetsFactory, Surfaces and Picker already make.
⚠ Refusal is over what a gesture starts, not over one already running. A pointer event that arrives while the gizmo is being dragged or a rubber-band is open goes to the pane whatever this says, because a mode that could take the release of a drag it did not begin would leave the gizmo holding the object and the band on screen with nothing updating it. Keys are the other way round and Key says why.
Methods (2)
bool Pointer(SceneViewport pane, PointerEvent args)Offers a pointer event to whatever owns the pane's input.
bool Key(SceneViewport pane, KeyEvent args)Offers a key event to it.
Used by (8)
- BlockoutModeVixen.Editor.Blockout
- DeclaredContributionsVixen.Editor.App
- FoliageModeVixen.Editor.Terrain
- ModeInputVixen.Editor.App
- OwnerVixen.Editor.SceneView.Tests
- SceneToolVixen.Editor.SceneView
- SceneViewportVixen.Editor.SceneView
- TerrainModeVixen.Editor.Terrain