diff --git a/image_analysis/MXAnalysisAfterFPGA.cpp b/image_analysis/MXAnalysisAfterFPGA.cpp index 1d6e725e..9d815999 100644 --- a/image_analysis/MXAnalysisAfterFPGA.cpp +++ b/image_analysis/MXAnalysisAfterFPGA.cpp @@ -26,11 +26,11 @@ double stddev(const std::vector &v) { MXAnalysisAfterFPGA::MXAnalysisAfterFPGA(const DiffractionExperiment &in_experiment, IndexAndRefine &indexer) -: experiment(in_experiment), indexer(indexer) { + : experiment(in_experiment), + indexer(indexer), + prediction(CreateBraggPrediction(in_experiment.IsRotationIndexing())) { if (experiment.IsSpotFindingEnabled()) find_spots = true; - - prediction = CreateBraggPrediction(); } void MXAnalysisAfterFPGA::ReadFromFPGA(const DeviceOutput *output, const SpotFindingSettings &settings, size_t module_number) { diff --git a/image_analysis/MXAnalysisWithoutFPGA.cpp b/image_analysis/MXAnalysisWithoutFPGA.cpp index 18c31c71..5ac206ad 100644 --- a/image_analysis/MXAnalysisWithoutFPGA.cpp +++ b/image_analysis/MXAnalysisWithoutFPGA.cpp @@ -24,7 +24,7 @@ MXAnalysisWithoutFPGA::MXAnalysisWithoutFPGA(const DiffractionExperiment &in_exp mask_1bit(npixels, false), spotFinder(CreateImageSpotFinder(experiment.GetXPixelsNum(), experiment.GetYPixelsNum())), indexer(in_indexer), - prediction(CreateBraggPrediction()), + prediction(CreateBraggPrediction(in_experiment.IsRotationIndexing())), updated_image(spotFinder->GetInputBuffer()), azint_bins(in_integration.GetBinNumber()), saturation_limit(experiment.GetSaturationLimit()), diff --git a/image_analysis/bragg_prediction/BraggPredictionFactory.cpp b/image_analysis/bragg_prediction/BraggPredictionFactory.cpp index cc1ae471..abee4820 100644 --- a/image_analysis/bragg_prediction/BraggPredictionFactory.cpp +++ b/image_analysis/bragg_prediction/BraggPredictionFactory.cpp @@ -2,13 +2,16 @@ // SPDX-License-Identifier: GPL-3.0-only #include "BraggPredictionFactory.h" +#include "BraggPredictionRotation.h" #ifdef JFJOCH_USE_CUDA #include "../../common/CUDAWrapper.h" #include "BraggPredictionGPU.h" #endif -std::unique_ptr CreateBraggPrediction(int max_reflections) { +std::unique_ptr CreateBraggPrediction(bool rotation_indexing, int max_reflections) { + if (rotation_indexing) + return std::make_unique(max_reflections); #ifdef JFJOCH_USE_CUDA if (get_gpu_count() > 0) return std::make_unique(max_reflections); diff --git a/image_analysis/bragg_prediction/BraggPredictionFactory.h b/image_analysis/bragg_prediction/BraggPredictionFactory.h index fb3070c3..136597e3 100644 --- a/image_analysis/bragg_prediction/BraggPredictionFactory.h +++ b/image_analysis/bragg_prediction/BraggPredictionFactory.h @@ -6,6 +6,7 @@ #include "BraggPrediction.h" -std::unique_ptr CreateBraggPrediction(int max_reflections = 10000); +std::unique_ptr CreateBraggPrediction(bool rotation_indexing, + int max_reflections = 10000); #endif //JFJOCH_BRAGGPREDICTIONFACTORY_H \ No newline at end of file