diff --git a/image_analysis/IndexerWrapper.cpp b/image_analysis/IndexerWrapper.cpp index 131e2f59..e37a4d71 100644 --- a/image_analysis/IndexerWrapper.cpp +++ b/image_analysis/IndexerWrapper.cpp @@ -9,9 +9,9 @@ void IndexerWrapper::Setup(const UnitCell &cell) { #endif } -std::vector IndexerWrapper::Run(const std::vector &coord) { +std::vector IndexerWrapper::Run(const std::vector &coord) { #ifdef JFJOCH_USE_CUDA - std::vector ret; + std::vector ret; if (coord.size() < MIN_SPOTS_TO_INDEX) return ret; @@ -31,8 +31,11 @@ std::vector IndexerWrapper::Run(const std::vector &coord) auto id = fast_feedback::refine::best_cell(indexer.oScoreV()); // Check if is viable - if (fast_feedback::refine::is_viable_cell(indexer.oCell(id), indexer.Spots(), 0.05f, 9u)) - ret.emplace_back(indexer.oCell(id)); + if (fast_feedback::refine::is_viable_cell(indexer.oCell(id), indexer.Spots(), 0.05f, 9u)) { + IndexingResult result; + result.l = CrystalLattice(indexer.oCell(id)); + ret.emplace_back(result); + } return ret; #else diff --git a/image_analysis/IndexerWrapper.h b/image_analysis/IndexerWrapper.h index 2d1dc84f..c9890a38 100644 --- a/image_analysis/IndexerWrapper.h +++ b/image_analysis/IndexerWrapper.h @@ -16,6 +16,10 @@ #define MIN_SPOTS_TO_INDEX (10) #define MAX_SPOTS_TO_INDEX (100) +struct IndexingResult { + CrystalLattice l; +}; + class IndexerWrapper { #ifdef JFJOCH_USE_CUDA fast_feedback::config_runtime crt{ @@ -31,7 +35,7 @@ class IndexerWrapper { #endif public: void Setup(const UnitCell &cell); - std::vector Run(const std::vector &coord); + std::vector Run(const std::vector &coord); }; diff --git a/tests/IndexingUnitTest.cpp b/tests/IndexingUnitTest.cpp index 0450e771..a89b11af 100644 --- a/tests/IndexingUnitTest.cpp +++ b/tests/IndexingUnitTest.cpp @@ -97,9 +97,9 @@ TEST_CASE("FastFeedbackIndexer","[Indexing]") { double err[3] = {0.0, 0.0, 0.0}; for (const auto &iter: recip) { - err[0] += round_err(ret[0].Vec0() * iter); - err[1] += round_err(ret[0].Vec1() * iter); - err[2] += round_err(ret[0].Vec2() * iter); + err[0] += round_err(ret[0].l.Vec0() * iter); + err[1] += round_err(ret[0].l.Vec1() * iter); + err[2] += round_err(ret[0].l.Vec2() * iter); } REQUIRE (err[0] < 0.001 * recip.size()); REQUIRE (err[1] < 0.001 * recip.size());