// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include "../../common/AzimuthalIntegrationMapping.h" #include "../../common/AzimuthalIntegrationProfile.h" #include "../image_preprocessing/ImagePreprocessorBuffer.h" class AzIntEngine { protected: const uint16_t azint_bins; const size_t npixel; const AzimuthalIntegrationMapping& integration; std::vector azint_sum; std::vector azint_sum2; std::vector azint_count; public: AzIntEngine(const AzimuthalIntegrationMapping& integration); virtual ~AzIntEngine() = default; virtual void Run(const ImagePreprocessorBuffer &image, AzimuthalIntegrationProfile &profile) = 0; };