From ec745a93a012e7cf588a54d1c67d45984c408dbf Mon Sep 17 00:00:00 2001
From: Matthew D Jones <matthew.d.jones@tessella.com>
Date: Wed, 2 Dec 2015 11:35:23 +0000
Subject: [PATCH] Re #14631 Define value for displaying masked data in single
 location

---
 Framework/API/inc/MantidAPI/IMDWorkspace.h                  | 3 +++
 Framework/API/src/IMDWorkspace.cpp                          | 3 +++
 .../DataObjects/inc/MantidDataObjects/MDEventWorkspace.tcc  | 6 +++---
 Framework/DataObjects/src/MDHistoWorkspace.cpp              | 6 +++---
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/Framework/API/inc/MantidAPI/IMDWorkspace.h b/Framework/API/inc/MantidAPI/IMDWorkspace.h
index af93bc889e0..634291648bc 100644
--- a/Framework/API/inc/MantidAPI/IMDWorkspace.h
+++ b/Framework/API/inc/MantidAPI/IMDWorkspace.h
@@ -159,6 +159,9 @@ protected:
 
   virtual const std::string toString() const;
 
+  // Value to be used for masked data in plots of MDWorkspaces
+  static const signal_t m_maskValue;
+
 private:
   virtual IMDWorkspace *doClone() const = 0;
 };
diff --git a/Framework/API/src/IMDWorkspace.cpp b/Framework/API/src/IMDWorkspace.cpp
index 944da88b66a..4a7e5d76de0 100644
--- a/Framework/API/src/IMDWorkspace.cpp
+++ b/Framework/API/src/IMDWorkspace.cpp
@@ -21,6 +21,9 @@ IMDWorkspace::IMDWorkspace(const IMDWorkspace &other)
 /// Destructor
 IMDWorkspace::~IMDWorkspace() {}
 
+// Value to be used for masked data in plots of MDWorkspaces
+const signal_t IMDWorkspace::m_maskValue = 0.0;
+
 /** Creates a single iterator and returns it.
  *
  * This calls createIterators(), a pure virtual method on IMDWorkspace which
diff --git a/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.tcc b/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.tcc
index 5fb70309e18..848e7d3153e 100644
--- a/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.tcc
+++ b/Framework/DataObjects/inc/MantidDataObjects/MDEventWorkspace.tcc
@@ -326,7 +326,7 @@ TMDE(signal_t MDEventWorkspace)::getSignalWithMaskAtCoord(
   // Check if masked
   const API::IMDNode *box = data->getBoxAtCoord(coords);
   if (box->getIsMasked()) {
-    return 0.0;
+    return m_maskValue;
   }
   return getNormalizedSignal(box, normalization);
 }
@@ -765,8 +765,8 @@ TMDE(void MDEventWorkspace)::getLinePlot(const Mantid::Kernel::VMD &start,
 
       if (box != NULL) {
         if (box->getIsMasked()) {
-          y.push_back(0.0);
-          e.push_back(0.0);
+          y.push_back(m_maskValue);
+          e.push_back(m_maskValue);
         } else {
           // What is our normalization factor?
           signal_t normalizer = 1.0;
diff --git a/Framework/DataObjects/src/MDHistoWorkspace.cpp b/Framework/DataObjects/src/MDHistoWorkspace.cpp
index ed779c82343..1661d82936d 100644
--- a/Framework/DataObjects/src/MDHistoWorkspace.cpp
+++ b/Framework/DataObjects/src/MDHistoWorkspace.cpp
@@ -389,7 +389,7 @@ signal_t MDHistoWorkspace::getSignalWithMaskAtCoord(
     const Mantid::API::MDNormalization &normalization) const {
   size_t linearIndex = this->getLinearIndexAtCoord(coords);
   if (this->getIsMaskedAt(linearIndex)) {
-    return 0.0;
+    return m_maskValue;
   }
   return getSignalAtCoord(coords, normalization);
 }
@@ -586,8 +586,8 @@ void MDHistoWorkspace::getLinePlot(const Mantid::Kernel::VMD &start,
 
         // Is the signal here masked?
         if (this->getIsMaskedAt(linearIndex)) {
-          y.push_back(0.0);
-          e.push_back(0.0);
+          y.push_back(m_maskValue);
+          e.push_back(m_maskValue);
         } else {
           signal_t normalizer = getNormalizationFactor(normalize, linearIndex);
           // And add the normalized signal/error to the list too
-- 
GitLab