7.1 KiB
7.1 KiB
Feature Inventory
This is a normalized reconciliation of the VistaPro manuals, MakePath guide, screenshots, and current OpenVistaPro implementation.
Status counts by normalized feature family:
- Implemented: 7
- Partial: 7
- Planned: 6
Notes:
- “Implemented” means the current codebase has a working, tested slice for that family.
- “Partial” means the codebase covers part of the family but not the full manual-described workflow.
- “Planned” means the family is still absent or only mentioned as roadmap context.
Normalized feature families
| Feature family | Manual / reference evidence | OpenVistaPro status | Implementation evidence | Gap / next step |
|---|---|---|---|---|
| Terrain sources and compatibility boundary | VistaPro 2 manual: Load Landscape / Save Landscape; VistaPro 3 manual: Load, Save, Exp/Imp menus and DEM/PCX/Targa24 references. | Partial | src/import.rs, src/cli.rs (supported_importers()), README.md importer status. |
OpenVistaPro intentionally keeps the clean internal model separate and does not claim legacy VistaPro format compatibility. |
Project-owned plain-text heightfields (ovp-text) |
Clean-room project fixture format, not part of the legacy manuals; used to model the import boundary safely. | Implemented | src/import.rs (import_ovp_text), tests in src/import.rs, fixture in tests/fixtures/open/. |
No gap for the MVP slice; this is the project-owned test/import path. |
| SRTM / HGT terrain import | VistaPro manuals describe loading DEM-like landscape data; the open equivalent is the SRTM/HGT family. | Implemented | src/import.rs (import_hgt behind hgt), README.md, tests in src/import.rs. |
Still only the open SRTM slice; broader compatibility formats remain separate. |
| GeoTIFF terrain import | Modern open terrain source, not a legacy VistaPro format. | Implemented | src/import/geotiff.rs behind import-geotiff, tests in that module. |
Deliberately narrow subset: tiny synthetic single-band raster support only. |
| Fractal / synthetic terrain generation | VistaPro overview calls out fractal landscapes and generated terrain. | Partial | src/terrain.rs (plane, radial_hill), src/app_state.rs presets. |
Current terrain generation is only deterministic fixtures, not a true fractal/noise terrain engine. |
| Camera and target placement | VistaPro 2 / 3 manuals: “Setting Camera and Target”; screenshot workflow uses camera/target gadgets. | Implemented | src/scene.rs (Camera), src/app.rs (camera position/target controls), src/app_state.rs. |
Only the core position/target slice exists; there is no map-click placement UI yet. |
| Lens / range / orientation controls | VistaPro manuals describe lens/range, bank, heading, and pitch controls. | Partial | src/scene.rs (Camera.fov_degrees), src/render.rs perspective renderer. |
No explicit bank/heading/pitch model or legacy lens/range UI yet. |
| Water / sea level, tree line, snow line, haze | Manuals repeatedly mention tree line, snow line, water level, haze, and atmospheric tuning. | Implemented | src/scene.rs, src/app.rs sliders, src/colormap.rs, src/render.rs. |
Rivers/lakes are still missing, but the core elevation-band controls are present. |
| Rivers and lakes | VistaPro manuals explicitly mention rivers and lakes as adjustable landscape features. | Planned | Not yet represented in Scene or renderer code. |
Add hydrology controls/data model before claiming this family. |
| Light direction and custom lighting | Manuals discuss sunlight placement and lighting experiments. | Partial | src/scene.rs (Light), src/render.rs, src/app.rs (light state exists in the scene model even if UI is minimal). |
The current model is much simpler than VistaPro’s lighting workflow and lacks richer light controls. |
| Vertical exaggeration | VistaPro manuals describe vertical scaling / scene exaggeration controls. | Planned | No dedicated field or control in the current scene model. | Add an explicit vertical-scale parameter and render integration. |
| Color maps / palettes / texture image loading | VistaPro 3 manual includes loading PCX images, adding texture, and saving/loading color maps. | Partial | src/colormap.rs fixed bands, src/render.rs uses scene thresholds. |
No color-map editor, no palette import/export, and no PCX/texture loading yet. |
| Preview / final render workflow | VistaPro manuals describe rough preview rendering and full render output. | Implemented | src/render.rs (render_top_down, render_perspective), src/cli.rs (render), tests in src/render.rs. |
The preview/final split is still simplified, but the core render outputs are working. |
| Render quality presets / smoothing / detail tradeoffs | VistaPro manuals describe quality menus and poly/detail tradeoffs. | Planned | No dedicated quality preset system in current code. | Add explicit quality presets or a render-quality profile object. |
Scene file save/load (.ovp.toml) |
Not a VistaPro legacy format; this is the clean-room OpenVistaPro scene format. | Implemented | src/scene_file.rs, src/cli.rs (scene export), tests in src/scene_file.rs. |
No gap for the project-owned scene format slice. |
| Script language parser | MakePath guide and VistaPro manual describe scripts and “Run Script” workflows. | Partial | src/script.rs parser, tests in src/script.rs, README.md script section. |
Parser exists, but script execution is intentionally deferred. |
| Script execution and animation frames | MakePath guide says scripts should render full animations and VistaPro can run scripts from the Script menu. | Planned | No script runner or frame-sequencing engine exists yet. | Add execution semantics once the command model is stable. |
| MakePath-style path generation and motion models | MakePath guide describes spline nodes, previewing a path, and vehicle models (jet, glider, dune buggy, motorcycle, helicopter, cruise missile, custom). | Planned | No path generator or motion-model layer exists yet. | This is a separate planner/animation feature, not just a script parser. |
| UI shell, menus, dialogs, and numeric gadgets | VistaPro screenshots/manuals show dense menus, dialogs, map tools, and numeric gadgets. | Partial | src/app.rs, src/app_state.rs, src/ui_shell.rs, src/bin/openvistapro_app.rs. |
OpenVistaPro now has a durable docked egui shell with stable navigation, sidebar, viewport, inspector, and status chrome; menus/dialogs/numeric gadgets still remain to be filled in. |
| Legacy image / landscape export formats | VistaPro manuals mention saving rendered images and landscapes in formats like IFF/IFF24/RGB and DEM/binary landscape files. | Planned | Current output is PNG plus project-owned .ovp.toml scenes. |
Add separate compatibility/export work only after the clean internal pipeline is stable. |
Current reconciliation summary
OpenVistaPro already covers the core clean-room pipeline: terrain grids, open importers, scene state, preview/final rendering, project-owned scene files, and a small script parser. The remaining VistaPro-specific gaps cluster around legacy compatibility, richer scene controls, script execution, MakePath-style animation tooling, and the old dense UI/menu workflow.