#pragma once #include namespace Donut { // how each channel is written: // png = display image (tone-mapped colour / false-coloured observable). // pfm = raw float image (actual physical values; RGB, Portable Float Map). // csv = raw scalar grid (the observable's value per pixel, one row per line). enum class ExportFormat { Png, Pfm, Csv }; // what the Export panel asks the RenderPath to write to disk: which // observable channels to render, at what resolution, in what format, and where. // each enabled channel becomes one file. struct ExportConfig { bool color = true; // colour image (tone-mapped, or linear HDR when raw) bool redshift = false; // redshift factor g (disk only) bool temperature = false; // emission temperature in K (disk only) bool impact = false; // impact parameter in r_s (whole frame) int width = 1920; int height = 1080; ExportFormat format = ExportFormat::Png; std::string directory = "exports"; }; }