Files
2026-05-25 16:47:15 -04:00

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.

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 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.