5.7 KiB
5.7 KiB
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 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 exposes project-owned terrain presets (Plane, RadialHill) and a working heightmap import action; 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, explicit heading/pitch/bank controls, lens/FOV/clip range controls, vertical exaggeration, lighting direction/intensity gadgets, color-map editing, and hydrology overlays now live in src/app.rs and src/app_state.rs; src/scene.rs, src/render.rs, and src/script_exec.rs carry the model/render semantics. The shell covers the main VistaPro scene controls, but its camera semantics are intentionally simplified and not yet tied to any map-click placement workflow. |
| Render | Preview vs final render, quality/smoothing, detail tradeoffs | Left dock, toolbar, or render tab | Partial | Current code now exposes preview/balanced/final quality presets alongside top-down vs perspective render mode; the shell still lacks the full legacy menu chrome and fine-grained smoothing sliders. |
| Scripts / paths | Script menu, Run Script, MakePath path tools, animation-frame workflows | Right dock or modal workflow | Partial | Script parsing/execution and MakePath-style path generation now run end-to-end in the backend; the shell surfaces a script editor, Run Script, and Make Path controls, but animation-frame export and richer path editing are still future work. |
| File / project actions | New/Open/Save landscape, scene load/save, export commands | Top bar / file menu | Partial | The shell now shows scene-file status plus working New/Open/Save controls, and the top menu mirrors those actions alongside import and help/about entry points; legacy menu chrome and export dialogs are still missing. |
| Status / feedback | Coordinate readouts, render state, file path, progress, messages | Bottom status bar | Present | The shell now has a bottom status bar driven by AppData::ui_snapshot(). |
| Legacy compatibility / advanced dialogs | Dense menu hierarchy, advanced lighting, hydrology, vertical exaggeration, palette editing, legacy image/landscape exports | Right dock, tool drawer, or dialogs | Partial | These are best surfaced as future tabs or dialogs rather than cluttering the initial shell; some sub-features already exist in the backend, and the modern shell now exposes a top menu, about/help dialog, and lighting numeric controls, but the legacy-style menu/dialog workflow is still incomplete. |
Recommended shell structure
A practical first-pass shell is:
- Top bar for file/project actions and render mode shortcuts.
- Left dock for terrain/import and scene/camera controls.
- Center viewport for preview output.
- Right dock for scripts/paths and deferred advanced features.
- 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 and import action in src/app.rs. |
High |
| Scene / camera | Partial | Scene, camera position/target controls, explicit heading/pitch/bank controls, and lens/range 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 | Partial | src/script.rs, src/script_exec.rs, src/path.rs, and the script/path controls in src/app.rs. |
High |
| File / project actions | Partial | loaded_scene_path plus the working New/Open/Save controls in src/app.rs and src/scene_file.rs. |
Medium |
| Status / feedback | Present | Bottom status bar driven by AppData::ui_snapshot() in src/app.rs. |
Medium |
| Legacy compatibility / advanced dialogs | Partial | Backend support exists for some sub-features like vertical exaggeration and hydrology, while palette/color-map editing is now wired into the shell; the legacy-style menu/dialog workflow is still incomplete. | Low |
Remaining gaps
- No legacy-style menu/dialog layer for file, export, or advanced workflows.
- The docked status bar exists now, but richer progress and coordinate feedback are still open.
- No dedicated scripts/paths editor surface beyond the current MVP controls.
- Palette import/export and legacy texture loading remain open.
- Hydrology still lacks routed-water simulation and drainage maps.
- Legacy export and compatibility dialogs are intentionally out of scope for now.