42 lines
1.1 KiB
C++
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
|