#!/usr/bin/env python3 """Build the three named style-override inputs for the profiled heightfield slice.""" import argparse import json import os from pathlib import Path ROOT = Path(__file__).resolve().parents[4] OWNER = ROOT / "Standalone/data/owner_world.json" OUT_DEFAULT = Path(os.environ.get("VOXELFORGE_VERIFY_OUT", ROOT / "Saved/Linux/l53")) PROFILES = { "periodicHills": { "version": 1, "kind": "periodicHills", "amplitude_x_m": 1.5, "amplitude_y_m": 1.5, "wavelength_x_m": 96.0, "wavelength_y_m": 96.0, "minimum_arena_clearance_m": 0.0, }, "mirroredRelief": { "version": 1, "kind": "mirroredRelief", "amplitude_x_m": 1.5, "amplitude_y_m": 1.5, "wavelength_x_m": 128.0, "wavelength_y_m": 128.0, "mirror_lambda": 0.875, "minimum_arena_clearance_m": 8.0, }, "flatField": { "version": 1, "kind": "flatField", "minimum_arena_clearance_m": 0.0, }, } def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--out", type=Path, default=OUT_DEFAULT / "fixtures") args = parser.parse_args() args.out.mkdir(parents=True, exist_ok=True) base = json.loads(OWNER.read_text(encoding="utf-8")) for name, override in PROFILES.items(): fixture = dict(base) fixture["surface_profile_override"] = override path = args.out / f"style-override-profile-{name}.json" path.write_text(json.dumps(fixture, indent=2) + "\n", encoding="utf-8") print(f"[L53ProfileFixture] name={path.stem} profile={name} path={path} status=PASS") if __name__ == "__main__": main()