Files
Jungfraujoch/common/GridPlot.h
2025-05-28 18:49:27 +02:00

42 lines
1.1 KiB
C++

// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#ifndef JFJOCH_GRIDPLOT_H
#define JFJOCH_GRIDPLOT_H
#include <string>
#include <vector>
#include <optional>
#include "MultiLinePlot.h"
#include "GridScanSettings.h"
#include "ColorScale.h"
#include "CompressedImage.h"
struct GridPlotImageRequest {
ColorScaleEnum scale;
std::optional<float> fg;
std::optional<float> bg;
float base_unit;
};
class GridPlot {
int64_t width;
int64_t height;
float step_x_um;
float step_y_um;
float fill_value;
std::vector<float> val;
public:
GridPlot(const MultiLinePlotStruct &p, const GridScanSettings& settings, float fill_value = -1);
[[nodiscard]] const std::vector<float> &GetPlot() const;
[[nodiscard]] int64_t GetWidth() const;
[[nodiscard]] int64_t GetHeight() const;
[[nodiscard]] float GetStepX_um() const;
[[nodiscard]] float GetStepY_um() const;
[[nodiscard]] CompressedImage GetImage(std::vector<rgb> &buffer, const GridPlotImageRequest &request) const;
};
#endif //JFJOCH_GRIDPLOT_H