works for all rois

This commit is contained in:
2025-06-27 17:17:19 +02:00
parent 3d4eaec178
commit ca3311da4c
4 changed files with 21 additions and 25 deletions

View File

@@ -411,6 +411,19 @@ std::vector<slsDetectorDefs::ROI> Implementation::getPortROIs() const {
}
void Implementation::setPortROIs(const std::vector<defs::ROI> &args) {
int nx = static_cast<int>(generalData->nPixelsX);
int ny = static_cast<int>(generalData->nPixelsY);
// validate rois
for (auto &it : args) {
if (it.completeRoi() || it.noRoi()) {
continue; // valid
}
if (it.xmin < 0 || it.ymin < 0 || it.xmax < 0 || it.ymax < 0 ||
it.xmin >= nx || it.xmax >= nx ||
it.ymin >= ny || it.ymax >= ny) {
throw RuntimeError("Invalid ROI coordinates: " + ToString(it));
}
}
portRois = args;
for (size_t i = 0; i != listener.size(); ++i)