// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #ifndef JUNGFRAUJOCH_ROIBOX_H #define JUNGFRAUJOCH_ROIBOX_H #include "ROIElement.h" class ROIBox : public ROIElement { int64_t x_min; int64_t x_max; int64_t y_min; int64_t y_max; public: ROIBox(const std::string &name, int64_t x_min, int64_t x_max, int64_t y_min, int64_t y_max); ~ROIBox() override = default; [[nodiscard]] int64_t GetXMin() const; [[nodiscard]] int64_t GetXMax() const; [[nodiscard]] int64_t GetYMin() const; [[nodiscard]] int64_t GetYMax() const; [[nodiscard]] int64_t GetWidth() const; [[nodiscard]] int64_t GetHeight() const; [[nodiscard]] int64_t GetArea() const; bool CheckROI(int64_t x, int64_t y, float resolution) const override; ROIConfig ExportMetadata() const override; }; #endif //JUNGFRAUJOCH_ROIBOX_H