diff --git a/GUI/Model/Detector/DetectorItem.cpp b/GUI/Model/Detector/DetectorItem.cpp index 6adfc77ca67fbf48b389352228aa2d185568508f..85c65a59ea0dbc5163885fce98ac5867eb2b98e2 100644 --- a/GUI/Model/Detector/DetectorItem.cpp +++ b/GUI/Model/Detector/DetectorItem.cpp @@ -103,16 +103,17 @@ void DetectorItem::addMasksToCore(IDetector* detector) const { const double scale = axesToCoreUnitsFactor(); const QVector<MaskItem*> maskItems = m_maskContainerItem.maskItems(); - for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) { - if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>(*maskIter)) { - const double xlow = scale * roiItem->xLow(); - const double ylow = scale * roiItem->yLow(); - const double xup = scale * roiItem->xUp(); - const double yup = scale * roiItem->yUp(); - detector->setRegionOfInterest(xlow, ylow, xup, yup); - } else { - std::unique_ptr<IShape2D> shape((*maskIter)->createShape(scale)); - detector->addMask(*shape, (*maskIter)->maskValue()); + for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) + if ((*maskIter)->isVisible()) { + if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>(*maskIter)) { + const double xlow = scale * roiItem->xLow(); + const double ylow = scale * roiItem->yLow(); + const double xup = scale * roiItem->xUp(); + const double yup = scale * roiItem->yUp(); + detector->setRegionOfInterest(xlow, ylow, xup, yup); + } else { + std::unique_ptr<IShape2D> shape((*maskIter)->createShape(scale)); + detector->addMask(*shape, (*maskIter)->maskValue()); + } } - } }