Files
Jungfraujoch/image_analysis/IndexerWrapper.h
2024-10-05 13:14:49 +02:00

34 lines
880 B
C++

// Copyright (2019-2024) Paul Scherrer Institute
#ifndef JUNGFRAUJOCH_INDEXERWRAPPER_H
#define JUNGFRAUJOCH_INDEXERWRAPPER_H
#include <vector>
#include <memory>
#include "../common/Coord.h"
#include "CrystalLattice.h"
#include "../common/Definitions.h"
struct IndexerWrapperImpl;
struct IndexingResult {
CrystalLattice l;
std::vector<uint8_t> indexed_spot;
};
class IndexerWrapper {
std::unique_ptr<IndexerWrapperImpl> impl_;
constexpr const static uint32_t viable_cell_min_spots = 9;
public:
IndexerWrapper();
~IndexerWrapper();
IndexerWrapper(const IndexerWrapper &i) = delete;
const IndexerWrapper& operator=(const IndexerWrapper &i) = delete;
void Setup(const UnitCell &cell);
std::vector<IndexingResult> Run(const std::vector<Coord> &coord, float indexing_threshold, int nspots = -1);
};
#endif //JUNGFRAUJOCH_INDEXERWRAPPER_H