v1.0.0-rc.40
This commit is contained in:
54
common/MultiLinePlot.cpp
Normal file
54
common/MultiLinePlot.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
#include "MultiLinePlot.h"
|
||||
|
||||
void MultiLinePlot::AddPlot(const MultiLinePlotStruct &p) {
|
||||
plots.emplace_back(p);
|
||||
}
|
||||
|
||||
void MultiLinePlot::SetUnits(MultiLinePlotUnits input) {
|
||||
units = input;
|
||||
}
|
||||
|
||||
const std::vector<MultiLinePlotStruct> &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<float> input) {
|
||||
size_x = input;
|
||||
}
|
||||
|
||||
void MultiLinePlot::SetSizeY(std::optional<float> input) {
|
||||
size_y = input;
|
||||
}
|
||||
|
||||
std::optional<float> MultiLinePlot::GetSizeX() const {
|
||||
return size_x;
|
||||
}
|
||||
|
||||
std::optional<float> MultiLinePlot::GetSizeY() const {
|
||||
return size_y;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user