// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include #include #include "MultiLinePlot.h" void MultiLinePlot::AddPlot(const MultiLinePlotStruct &p) { plots.emplace_back(p); } void MultiLinePlot::SetUnits(MultiLinePlotUnits input) { units = input; } const std::vector &MultiLinePlot::GetPlots() const { return plots; } MultiLinePlotUnits MultiLinePlot::GetUnits() const { return units; } void MultiLinePlot::Convert2D(const GridScanSettings &input) { for (auto &p: plots) { assert(p.x.size() == p.y.size()); p.z = p.y; for (int i = 0; i < p.x.size(); i++) { auto tmp = std::lround(p.x[i]); p.x[i] = input.GetElementPosX_um(tmp) + input.GetGridStepX_um() / 2.0f; p.y[i] = input.GetElementPosY_um(tmp) + input.GetGridStepY_um() / 2.0f; } } size_x = input.GetGridSizeX_um(); size_y = input.GetGridSizeY_um(); } void MultiLinePlot::SetSizeX(std::optional input) { size_x = input; } void MultiLinePlot::SetSizeY(std::optional input) { size_y = input; } std::optional MultiLinePlot::GetSizeX() const { return size_x; } std::optional MultiLinePlot::GetSizeY() const { return size_y; }