diff --git a/Core/Instrument/IntensityDataFunctions.cpp b/Core/Instrument/IntensityDataFunctions.cpp index 12d24f24ed438ad2cba5912d86f2d0fb69bf267c..4a64e45050c1cf093a78c792662b885c68a82c6f 100644 --- a/Core/Instrument/IntensityDataFunctions.cpp +++ b/Core/Instrument/IntensityDataFunctions.cpp @@ -265,7 +265,7 @@ OutputData<double>* IntensityDataFunctions::createOutputDatafrom2DArray( return result; } -OutputData<double>* IntensityDataFunctions::getFourierTransform(const OutputData<double> &data) +std::unique_ptr<OutputData<double>> IntensityDataFunctions::createFFT(const OutputData<double> &data) { std::vector<std::vector<double>> array_2d = IntensityDataFunctions::create2DArrayfromOutputData(data); @@ -273,8 +273,5 @@ OutputData<double>* IntensityDataFunctions::getFourierTransform(const OutputData std::vector<std::vector<double>> fft_array_2d = IntensityDataFunctions::FT2DArray(array_2d); - OutputData<double>* fftOutputData = IntensityDataFunctions::createOutputDatafrom2DArray( - fft_array_2d); - - return fftOutputData; + return std::unique_ptr<OutputData<double>>(IntensityDataFunctions::createOutputDatafrom2DArray(fft_array_2d)); } diff --git a/Core/Instrument/IntensityDataFunctions.h b/Core/Instrument/IntensityDataFunctions.h index 2181f19214986474943739118b8a86b544549098..e6ffa9ebe0f0da497c25fce30325ba4c9c73de39 100644 --- a/Core/Instrument/IntensityDataFunctions.h +++ b/Core/Instrument/IntensityDataFunctions.h @@ -76,8 +76,10 @@ BA_CORE_API_ std::vector<std::vector<double>> FT2DArray( BA_CORE_API_ OutputData<double>* createOutputDatafrom2DArray( const std::vector<std::vector<double>>& array_2d); +#ifndef SWIG //! Creates Fourier Transform (OutputData format) of intensity map (OutputData format). -BA_CORE_API_ OutputData<double>* getFourierTransform(const OutputData<double> &data); +BA_CORE_API_ std::unique_ptr<OutputData<double>> createFFT(const OutputData<double> &data); +#endif //SWIG }; // namespace IntensityDataFunctions diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp index ace6d7c90cf733dd08093763f0035c1458c4b197..882c5ea0ec6a381ea98986de0dfadcda6c26fc95 100644 --- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp +++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp @@ -112,7 +112,7 @@ void IntensityDataCanvas::onfftAction() m_backup->copyFrom(*dataItem->getOutputData()); dataItem->setOutputData( - (IntensityDataFunctions::getFourierTransform(*dataItem->getOutputData()))); + (IntensityDataFunctions::createFFT(*dataItem->getOutputData())).release()); } } diff --git a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp index 882b4956e3c94c6490b0d0b289dd625fdca7519f..7fe38d162e9b835b4db36574874e99236feb6700 100644 --- a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp +++ b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp @@ -77,8 +77,8 @@ bool FourierTransformationTest::test_fft(const std::string& input_image_name, } // making fourier transformation - std::unique_ptr<OutputData<double>> fft( - IntensityDataFunctions::getFourierTransform(*input_image.get())); + std::unique_ptr<OutputData<double>> fft = + IntensityDataFunctions::createFFT(*input_image.get()); // loading reference fft std::unique_ptr<OutputData<double>> reference_fft; diff --git a/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.h b/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.h index 600539cd770a180b98c6e64a8cd964ca72012a33..951be4fc0c1b3e0b5f872f1cb955aa4de31a9225 100644 --- a/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.h +++ b/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.h @@ -168,10 +168,10 @@ TEST_F(IntensityDataFunctionsTest, create2DArrayfromOutputDataTest) OutputData<double> out_data; out_data.addAxis("axis0", 2, 1.0, 2.0); out_data.addAxis("axis1", 3, 3.0, 4.0); - EXPECT_EQ(6, out_data.getAllocatedSize()); + EXPECT_EQ(6u, out_data.getAllocatedSize()); - EXPECT_EQ(2, out_data.getAxis(0).size()); // no. of rows - EXPECT_EQ(3, out_data.getAxis(1).size()); // no. of cols + EXPECT_EQ(2u, out_data.getAxis(0).size()); // no. of rows + EXPECT_EQ(3u, out_data.getAxis(1).size()); // no. of cols std::vector<double> arr_in{1,2,3,4,5,6}; out_data.setRawDataVector(arr_in);