// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include #include #include "JFJochMessages.h" class ROIElement { protected: std::string name; explicit ROIElement(const std::string &name); public: virtual ~ROIElement() = default; [[nodiscard]] std::string GetName() const; [[nodiscard]] virtual ROIConfig ExportMetadata() const = 0; [[nodiscard]] virtual bool CheckROI(int64_t x, int64_t y, float resolution, float phi_deg) const = 0; void MarkROI(std::vector &v, uint16_t value_to_mark, int64_t xpixel, int64_t ypixel, const std::vector &resolution_map, const std::vector &phi_map = {}) const; };