From b50126d9f07e575713c0f283337b20b261dcc449 Mon Sep 17 00:00:00 2001 From: Michael Reuter Date: Mon, 17 Mar 2014 09:11:20 -0400 Subject: [PATCH] Refs #9196. Making helper for special value checking and using it. --- Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/Common.h | 2 ++ Code/Mantid/Vates/VatesAPI/src/Common.cpp | 6 ++++++ Code/Mantid/Vates/VatesAPI/src/vtkMDHexFactory.cpp | 4 ++-- Code/Mantid/Vates/VatesAPI/src/vtkMDHistoHexFactory.cpp | 4 ++-- Code/Mantid/Vates/VatesAPI/src/vtkMDHistoLineFactory.cpp | 4 ++-- Code/Mantid/Vates/VatesAPI/src/vtkMDHistoQuadFactory.cpp | 4 ++-- Code/Mantid/Vates/VatesAPI/src/vtkMDLineFactory.cpp | 4 ++-- Code/Mantid/Vates/VatesAPI/src/vtkMDQuadFactory.cpp | 4 ++-- 8 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/Common.h b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/Common.h index 44a080dc5150..6f2c94cef288 100644 --- a/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/Common.h +++ b/Code/Mantid/Vates/VatesAPI/inc/MantidVatesAPI/Common.h @@ -38,6 +38,8 @@ std::string makeAxisTitle(Dimension_const_sptr dim); void setAxisLabel(std::string metadataLabel, std::string labelString, vtkFieldData *fieldData); +/// Function to check for special values. +bool isSpecial(double value); } diff --git a/Code/Mantid/Vates/VatesAPI/src/Common.cpp b/Code/Mantid/Vates/VatesAPI/src/Common.cpp index 5bf26a6a1e1c..698610bea2c8 100644 --- a/Code/Mantid/Vates/VatesAPI/src/Common.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/Common.cpp @@ -5,6 +5,8 @@ #include #include +#include + //using namespace Mantid::Geometry; namespace Mantid { @@ -31,6 +33,10 @@ void setAxisLabel(std::string metadataLabel, fieldData->AddArray(axisTitle.GetPointer()); } +bool isSpecial(double value) +{ + return boost::math::isnan(value) || boost::math::isinf(value); +} } // VATES } // Mantid diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkMDHexFactory.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkMDHexFactory.cpp index 558fecfb569c..053782f2d7bc 100644 --- a/Code/Mantid/Vates/VatesAPI/src/vtkMDHexFactory.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/vtkMDHexFactory.cpp @@ -2,8 +2,8 @@ #include "MantidKernel/CPUTimer.h" #include "MantidMDEvents/MDEventFactory.h" #include "MantidVatesAPI/vtkMDHexFactory.h" +#include "MantidVatesAPI/Common.h" #include "MantidVatesAPI/ProgressAction.h" -#include #include #include #include @@ -100,7 +100,7 @@ namespace Mantid API::IMDNode * box = boxes[i]; Mantid::signal_t signal_normalized= box->getSignalNormalized(); - if (!boost::math::isnan( signal_normalized ) && m_thresholdRange->inRange(signal_normalized)) + if (!isSpecial( signal_normalized ) && m_thresholdRange->inRange(signal_normalized)) { // Cache the signal and using of it signalArray[i] = float(signal_normalized); diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoHexFactory.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoHexFactory.cpp index 090b80294647..ce9b098f1158 100644 --- a/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoHexFactory.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoHexFactory.cpp @@ -2,8 +2,8 @@ #include "MantidKernel/CPUTimer.h" #include "MantidMDEvents/MDHistoWorkspace.h" #include "MantidVatesAPI/vtkMDHistoHexFactory.h" +#include "MantidVatesAPI/Common.h" #include "MantidVatesAPI/ProgressAction.h" -#include #include "MantidAPI/NullCoordTransform.h" #include "MantidKernel/ReadLock.h" @@ -150,7 +150,7 @@ namespace VATES else signalScalar = m_workspace->getSignalNormalizedAt(x,y,z); - if (boost::math::isnan( signalScalar ) || !m_thresholdRange->inRange(signalScalar)) + if (isSpecial( signalScalar ) || !m_thresholdRange->inRange(signalScalar)) { // out of range voxelShown[index] = false; diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoLineFactory.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoLineFactory.cpp index aaaf4af335a7..d8223d1e008b 100644 --- a/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoLineFactory.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoLineFactory.cpp @@ -1,4 +1,5 @@ #include "MantidVatesAPI/vtkMDHistoLineFactory.h" +#include "MantidVatesAPI/Common.h" #include "MantidVatesAPI/ProgressAction.h" #include "vtkCellArray.h" #include "vtkCellData.h" @@ -6,7 +7,6 @@ #include "vtkSmartPointer.h" #include "vtkLine.h" #include -#include #include "MantidAPI/IMDWorkspace.h" #include "MantidAPI/NullCoordTransform.h" #include "MantidMDEvents/MDHistoWorkspace.h" @@ -105,7 +105,7 @@ namespace Mantid float signalScalar = static_cast(m_workspace->getSignalNormalizedAt(i)); - if (boost::math::isnan( signalScalar ) || !m_thresholdRange->inRange(signalScalar)) + if (isSpecial( signalScalar ) || !m_thresholdRange->inRange(signalScalar)) { //Flagged so that topological and scalar data is not applied. unstructPoint.isSparse = true; diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoQuadFactory.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoQuadFactory.cpp index 8ef755534f7a..2341a57fe072 100644 --- a/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoQuadFactory.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/vtkMDHistoQuadFactory.cpp @@ -3,13 +3,13 @@ #include "MantidMDEvents/MDHistoWorkspace.h" #include "MantidAPI/NullCoordTransform.h" #include "MantidVatesAPI/vtkMDHistoQuadFactory.h" +#include "MantidVatesAPI/Common.h" #include "MantidVatesAPI/ProgressAction.h" #include "vtkCellArray.h" #include "vtkCellData.h" #include "vtkFloatArray.h" #include "vtkQuad.h" #include "vtkSmartPointer.h" -#include #include #include "MantidKernel/ReadLock.h" @@ -118,7 +118,7 @@ namespace Mantid { index = j + nBinsY*i; signalScalar = static_cast(m_workspace->getSignalNormalizedAt(i, j)); - if (boost::math::isnan( signalScalar ) || !m_thresholdRange->inRange(signalScalar)) + if (isSpecial( signalScalar ) || !m_thresholdRange->inRange(signalScalar)) { // out of range voxelShown[index] = false; diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkMDLineFactory.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkMDLineFactory.cpp index d7ce64ee734b..6864152a1824 100644 --- a/Code/Mantid/Vates/VatesAPI/src/vtkMDLineFactory.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/vtkMDLineFactory.cpp @@ -1,4 +1,5 @@ #include "MantidVatesAPI/vtkMDLineFactory.h" +#include "MantidVatesAPI/Common.h" #include "MantidVatesAPI/ProgressAction.h" #include "MantidAPI/IMDWorkspace.h" #include "MantidAPI/IMDEventWorkspace.h" @@ -10,7 +11,6 @@ #include #include #include -#include #include "MantidKernel/ReadLock.h" using namespace Mantid::API; @@ -102,7 +102,7 @@ namespace Mantid progressUpdating.eventRaised(double(iBox)*progressFactor); Mantid::signal_t signal_normalized= it->getNormalizedSignal(); - if (!boost::math::isnan( signal_normalized ) && m_thresholdRange->inRange(signal_normalized)) + if (!isSpecial( signal_normalized ) && m_thresholdRange->inRange(signal_normalized)) { useBox[iBox] = true; signals->InsertNextValue(static_cast(signal_normalized)); diff --git a/Code/Mantid/Vates/VatesAPI/src/vtkMDQuadFactory.cpp b/Code/Mantid/Vates/VatesAPI/src/vtkMDQuadFactory.cpp index 7b6fb96bdec2..e1721843b398 100644 --- a/Code/Mantid/Vates/VatesAPI/src/vtkMDQuadFactory.cpp +++ b/Code/Mantid/Vates/VatesAPI/src/vtkMDQuadFactory.cpp @@ -1,4 +1,5 @@ #include "MantidVatesAPI/vtkMDQuadFactory.h" +#include "MantidVatesAPI/Common.h" #include "MantidVatesAPI/ProgressAction.h" #include "MantidAPI/IMDWorkspace.h" #include "MantidAPI/IMDEventWorkspace.h" @@ -10,7 +11,6 @@ #include #include #include -#include #include "MantidKernel/ReadLock.h" using namespace Mantid::API; @@ -98,7 +98,7 @@ namespace Mantid progressUpdating.eventRaised(progressFactor * double(iBox)); Mantid::signal_t signal_normalized= it->getNormalizedSignal(); - if (!boost::math::isnan( signal_normalized ) && m_thresholdRange->inRange(signal_normalized)) + if (!isSpecial( signal_normalized ) && m_thresholdRange->inRange(signal_normalized)) { useBox[iBox] = true; signals->InsertNextValue(static_cast(signal_normalized));