Files
Jungfraujoch/common/FrameTransformation.h
T

31 lines
1.1 KiB
C++

// Copyright (2019-2023) Paul Scherrer Institute
#ifndef JUNGFRAUJOCH_FRAMETRANSFORMATION_H
#define JUNGFRAUJOCH_FRAMETRANSFORMATION_H
#include "DiffractionExperiment.h"
#include "../compression/JFJochCompressor.h"
#include "../jungfrau/JFConversion.h"
#include "ROIFilter.h"
class FrameTransformation {
const DiffractionExperiment& experiment;
JFJochBitShuffleCompressor compressor;
std::vector<std::vector<int32_t> > summation_buffer;
std::vector<char> precompression_buffer;
const size_t summation;
const size_t pixel_depth;
void PackSummation(); // transfer summed image to converted coordinates, clear summation buffer, no compression
public:
explicit FrameTransformation(const DiffractionExperiment &experiment);
void ProcessModule(const int16_t *input, uint16_t module_number, int data_stream);
void Pack(); // transfer summed image to converted coordinates, clear summation buffer
size_t SaveCompressedImage(void *output);
void ApplyROI(const ROIFilter &filter);
const void *GetPreviewImage() const;
};
#endif //JUNGFRAUJOCH_FRAMETRANSFORMATION_H