Files
openvistapro/docs/knowledgebase/ui-panel-map.md
2026-05-16 16:20:15 -04:00

50 lines
4.4 KiB
Markdown

# OpenVistaPro UI Panel Map
This is a normalized modern shell map derived from the VistaPro manuals, screenshots, and the current OpenVistaPro codebase. It is intentionally not a 1:1 recreation of the legacy menu hierarchy; instead, it groups the old surfaces into a docked shell that can grow with the product.
## Proposed panel layout
| Modern panel | VistaPro surfaces it absorbs | Suggested placement | Current code support | Notes / gaps |
|---|---|---|---|---|
| Viewport / preview | Main render window, map preview, perspective view, preview/final render output | Center dock | Partial | `src/app.rs` already renders the CPU preview into `CentralPanel`; perspective and top-down preview modes exist, but there is no GPU viewport or direct manipulation overlay yet. |
| Terrain / import | Load Landscape, Import, terrain source selection, generated terrain presets | Left dock or collapsible section | Partial | The current shell only exposes project-owned terrain presets (`Plane`, `RadialHill`) in `AppData`; legacy format import UI is still absent. |
| Scene / camera | Camera and target gadgets, lens/range, bank/heading/pitch, water/tree/snow/haze controls | Left dock or inspector stack | Partial | Position/target and scene-band sliders exist. Lens/range, orientation axes, and richer VistaPro camera semantics are still missing. |
| Render | Preview vs final render, quality/smoothing, detail tradeoffs | Left dock, toolbar, or render tab | Partial | Current code toggles top-down vs perspective render mode, but there is no dedicated quality profile or render preset UI. |
| Scripts / paths | Script menu, Run Script, MakePath path tools, animation-frame workflows | Right dock or modal workflow | Planned | Script parsing exists in the codebase, but execution and path generation are still deferred. |
| File / project actions | New/Open/Save landscape, scene load/save, export commands | Top bar / file menu | Planned | The app tracks a loaded scene path internally, but there is no visible file/project action surface yet. |
| Status / feedback | Coordinate readouts, render state, file path, progress, messages | Bottom status bar | Planned | No dedicated status bar or message strip exists yet. |
| Deferred features / legacy compatibility | Dense menu hierarchy, advanced lighting, hydrology, vertical exaggeration, palette editing, legacy image/landscape exports | Right dock, tool drawer, or dialogs | Planned | These are best surfaced as future tabs or dialogs rather than cluttering the initial shell. |
## Recommended shell structure
A practical first-pass shell is:
1. Top bar for file/project actions and render mode shortcuts.
2. Left dock for terrain/import and scene/camera controls.
3. Center viewport for preview output.
4. Right dock for scripts/paths and deferred advanced features.
5. Bottom status bar for current scene, source, and render feedback.
That layout preserves the VistaPro workflow while making room for modern discoverability and incremental feature growth.
## Panel-by-panel implementation summary
| Panel | Code support today | Implementation evidence | Priority |
|---|---|---|---|
| Viewport / preview | Present | `src/app.rs` renders the preview into `CentralPanel`; `src/app_state.rs` builds the preview image. | High |
| Terrain / import | Partial | `TerrainPreset` and `AppAction::SetTerrainPreset` in `src/app_state.rs`; terrain radio buttons in `src/app.rs`. | High |
| Scene / camera | Partial | `Scene`, camera position/target controls, and scene-band sliders in `src/app.rs` and `src/app_state.rs`. | High |
| Render | Partial | `RendererMode` plus preview switching in `src/app_state.rs` and `src/app.rs`. | High |
| Scripts / paths | Not yet | `docs/knowledgebase/feature-inventory.md` marks scripts and path generation as planned. | Medium |
| File / project actions | Not yet | `loaded_scene_path` exists in `AppData`, but there is no visible file/project UI yet. | Medium |
| Status / feedback | Not yet | No dedicated status widget or state binding is present. | Medium |
| Deferred features / legacy compatibility | Not yet | These remain future work in the feature inventory. | Low |
## Remaining gaps
- No legacy-style menu/dialog layer for file, export, or script workflows.
- No docked status bar or live feedback line.
- No UI for orientation, lens/range, or vertical exaggeration.
- No dedicated scripts/paths editor surface.
- No palette editor, hydrology controls, or legacy export panels.