Files
Jungfraujoch/image_analysis/indexing/IndexerFactory.cpp
2025-05-28 18:49:27 +02:00

33 lines
954 B
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#include "IndexerFactory.h"
#ifndef JFJOCH_USE_CUDA
std::unique_ptr<Indexer> CreateIndexer(const DiffractionExperiment& experiment) {
return {};
}
#else
#include "FFBIDXIndexer.h"
#include "FFTIndexer.h"
std::unique_ptr<Indexer> CreateIndexer(const DiffractionExperiment& experiment) {
std::unique_ptr<Indexer> indexer;
switch (experiment.GetIndexingAlgorithm()) {
case IndexingAlgorithmEnum::FFBIDX:
indexer = std::make_unique<FFBIDXIndexer>();
indexer->Setup(experiment);
break;
case IndexingAlgorithmEnum::FFT:
indexer = std::make_unique<FFTIndexer>(experiment.GetIndexingSettings());
indexer->Setup(experiment);
break;
default:
break;
}
return indexer;
}
#endif