diff --git a/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp b/MantidQt/MantidWidgets/src/InstrumentView/RotationSurface.cpp index fbbecac5db995b307e7f1935d65b4da6895a7246..7facb3f871cee94009c2a432f9b1292a881abb42 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 2f23f573c4f8b0ba80ca24dd9ae3456585c35cfd..a7881fe188dc5c86a05dd4e844bc5255fa5dfcfd 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();