aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/export_config.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rendering/export_config.h')
-rw-r--r--src/rendering/export_config.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/rendering/export_config.h b/src/rendering/export_config.h
new file mode 100644
index 0000000..e490db6
--- /dev/null
+++ b/src/rendering/export_config.h
@@ -0,0 +1,28 @@
+#pragma once
+
+#include <string>
+
+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 workspace 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";
+ };
+}