// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include "AssembleToPlane.h" #include PlaneRaster PlaneRasterOf(const DetectorModules &modules, int64_t width, int64_t height) { if (modules.empty()) return {0, 0, width, height}; // Raster pixel centres are whole plane coordinates; the first and last that lie on the footprints. const PlaneBox box = modules.PlaneBounds(width, height); const auto x0 = std::min(0, static_cast(std::ceil(box.x0))); const auto y0 = std::min(0, static_cast(std::ceil(box.y0))); return {x0, y0, static_cast(std::ceil(box.x1)) - x0, static_cast(std::ceil(box.y1)) - y0}; }