aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/export_config.h
blob: e490db6fe055aab8f6187f1fe1cbcba01b3a4a75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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";
    };
}