From ea58ef61827a8141dc043c9ed12be61ced3875a6 Mon Sep 17 00:00:00 2001 From: Roman Tolchenov <roman.tolchenov@stfc.ac.uk> Date: Wed, 15 Feb 2017 15:05:47 +0000 Subject: [PATCH] Re #18688. Returned validity checks. --- .../MantidWidgets/src/InstrumentView/RotationSurface.cpp | 6 ++++++ .../MantidWidgets/src/InstrumentView/UnwrappedSurface.cpp | 2 ++ 2 files changed, 8 insertions(+) diff --git a/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp b/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp index fbbecac5db9..7facb3f871c 100644 --- a/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp +++ b/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp @@ -192,6 +192,8 @@ void RotationSurface::findUVBounds() { m_v_max = -DBL_MAX; for (size_t i = 0; i < m_unwrappedDetectors.size(); ++i) { const UnwrappedDetector &udet = m_unwrappedDetectors[i]; + if (!udet.isValid()) + continue; if (udet.u < m_u_min) m_u_min = udet.u; if (udet.u > m_u_max) @@ -223,6 +225,8 @@ void RotationSurface::findAndCorrectUGap() { std::vector<UnwrappedDetector>::const_iterator ud = m_unwrappedDetectors.begin(); for (; ud != m_unwrappedDetectors.end(); ++ud) { + if (!ud->isValid()) + continue; double u = ud->u; int i = int((u - m_u_min) / bin_width); ubins[i] = true; @@ -259,6 +263,8 @@ void RotationSurface::findAndCorrectUGap() { std::vector<UnwrappedDetector>::iterator ud = m_unwrappedDetectors.begin(); for (; ud != m_unwrappedDetectors.end(); ++ud) { + if (!ud->isValid()) + continue; double &u = ud->u; u = applyUCorrection(u); } diff --git a/MantidQt/MantidWidgets/src/InstrumentView/UnwrappedSurface.cpp b/MantidQt/MantidWidgets/src/InstrumentView/UnwrappedSurface.cpp index 2f23f573c4f..a7881fe188d 100644 --- a/MantidQt/MantidWidgets/src/InstrumentView/UnwrappedSurface.cpp +++ b/MantidQt/MantidWidgets/src/InstrumentView/UnwrappedSurface.cpp @@ -129,6 +129,8 @@ void UnwrappedSurface::cacheAllAssemblies() { for (size_t i = 0; i < m_unwrappedDetectors.size(); ++i) { const UnwrappedDetector &udet = m_unwrappedDetectors[i]; + if (!udet.isValid()) + continue; // Get the BARE parent (not parametrized) to speed things up. auto &detector = m_instrActor->getDetectorByDetID(udet.detID); const Mantid::Geometry::IComponent *bareDet = detector.getComponentID(); -- GitLab