Diff of /lib/Masking.cpp [000000] .. [dd2e6a]

Switch to side-by-side view

--- a
+++ b/lib/Masking.cpp
@@ -0,0 +1,39 @@
+#include "../includes/Masking/Masking.h"
+
+namespace sitk = itk::simple;
+
+bool Masking::execute()
+{
+    maskingMethod->run(); 
+    this->chain->setMask(maskingMethod->getMask());
+    return true;
+}
+
+Masking::Masking(std::shared_ptr<Chain> chain) : Command(chain)
+{   
+    sitk::Image image = this->chain->getImage();
+    Parameters params = this->chain->getParameters();
+
+    if (params.getValue("maskingStrategy") == "regular")
+    {
+        auto regionGrowingSeed = params.getValue("regularMaskingRegionGrowingSeedType");
+        if (regionGrowingSeed != "center")
+        {
+            std::ostringstream stream;
+            stream << regionGrowingSeed << " specified as regularMaskingRegionGrowingSeed parameter is a wrong input argument."; 
+            throw std::invalid_argument(stream.str());
+        }
+
+        double regionGrowingLowerThreshold = stod(params.getValue("regularMaskingRegionGrowingLowerThreshold"), nullptr);
+        double regionGrowingUpperThreshold = stod(params.getValue("regularMaskingRegionGrowingUpperThreshold"), nullptr);
+        maskingMethod = std::make_shared<RegularMasking>(image, regionGrowingSeed, regionGrowingLowerThreshold, regionGrowingUpperThreshold);
+    }
+    else if ( params.getValue("maskingStrategy") == "rayCasting" )
+    {
+        maskingMethod = std::make_shared<RayMasking>(image);
+    }
+    else
+    {
+        std::cout << "Wrong masking strategy specified in parameters." << std::endl;
+    }
+}
\ No newline at end of file