aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/export_config.h
blob: 9b9187817e3852756b8918d54f57b394d85e8c67 (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 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";
    };
}