// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include "RotationParameters.h" RotationParameters::RotationParameters(uint64_t moving_average_elems) : profile_radius(moving_average_elems), beam_x(moving_average_elems), beam_y(moving_average_elems), mosaicity(moving_average_elems) {} float RotationParameters::ProfileRadius(float input) { profile_radius.Add(input); return profile_radius.Read().value_or(input); } float RotationParameters::Mosaicity(float input) { mosaicity.Add(input); return mosaicity.Read().value_or(input); } float RotationParameters::BeamX(float input) { beam_x.Add(input); return beam_x.Read().value_or(input); } float RotationParameters::BeamY(float input) { beam_y.Add(input); return beam_y.Read().value_or(input); }