9#ifndef CAMCOM_COMMON_FRAMEGENERATOR_HPP
10#define CAMCOM_COMMON_FRAMEGENERATOR_HPP
134 void generate(int32_t n_frames, std::vector<uint8_t>& output);
150 std::unique_ptr<
Impl> impl_;
int32_t outputWidth() const
Output width after binning.
Definition frameGenerator.cpp:455
FrameGenerator()
Definition frameGenerator.cpp:437
int32_t outputHeight() const
Output height after binning.
Definition frameGenerator.cpp:459
FrameGenerator(FrameGenerator &&) noexcept
size_t bytesPerPixel() const
Bytes per pixel for the configured output type.
Definition frameGenerator.cpp:467
size_t bytesPerFrame() const
Bytes per single frame.
Definition frameGenerator.cpp:463
FrameGenerator & operator=(const FrameGenerator &)=delete
void generate(int32_t n_frames, std::vector< uint8_t > &output)
Generate a batch of frames into the output buffer.
Definition frameGenerator.cpp:447
FrameGenerator(const FrameGenerator &)=delete
void configure(const PatternConfig &config)
Configure the generator with pattern parameters.
Definition frameGenerator.cpp:442
CamCom data type — re-export of the ELT IFW (ifw-fnd) data type.
Definition adapterBase.cpp:18
PatternType
Definition frameGenerator.hpp:20
@ Grid
Definition frameGenerator.hpp:24
@ Grating
Definition frameGenerator.hpp:29
@ Gradient
Definition frameGenerator.hpp:25
@ Checkerboard
Definition frameGenerator.hpp:27
@ Flat
Definition frameGenerator.hpp:23
@ Noise
Definition frameGenerator.hpp:28
@ Ring
Definition frameGenerator.hpp:26
@ MultiGaussian
Definition frameGenerator.hpp:22
@ Gaussian
Definition frameGenerator.hpp:21
PatternType parsePatternType(const std::string &s)
Parse a pattern type string (case-insensitive) to PatternType enum.
Definition frameGenerator.cpp:44
NoiseDistribution
Definition frameGenerator.hpp:33
@ Poisson
Definition frameGenerator.hpp:33
@ Uniform
Definition frameGenerator.hpp:33
@ Gaussian
Definition frameGenerator.hpp:33
ifw::fnd::datatype::DataType DataType
Definition datatype.hpp:27
NoiseDistribution parseNoiseDistribution(const std::string &s)
Parse a noise distribution string to NoiseDistribution enum.
Definition frameGenerator.cpp:64
GradientDirection
Definition frameGenerator.hpp:32
@ Vertical
Definition frameGenerator.hpp:32
@ Horizontal
Definition frameGenerator.hpp:32
@ Radial
Definition frameGenerator.hpp:32
GradientDirection parseGradientDirection(const std::string &s)
Parse a gradient direction string to GradientDirection enum.
Definition frameGenerator.cpp:58
size_t bytesPerPixelForType(DataType type)
Get bytes per pixel for a given DataType.
Definition frameGenerator.cpp:28
Definition frameGenerator.cpp:73
Configuration for frame pattern generation.
Definition frameGenerator.hpp:41
double expo_time
Definition frameGenerator.hpp:52
double flat_intensity
Definition frameGenerator.hpp:65
double grating_wavelength_max
Definition frameGenerator.hpp:91
double ring_outer_radius
Definition frameGenerator.hpp:78
double amplitude
Definition frameGenerator.hpp:60
int16_t nb_stars
Definition frameGenerator.hpp:62
DataType output_type
Definition frameGenerator.hpp:49
double noise_mean
Definition frameGenerator.hpp:85
int16_t max_shift_per_frame
Definition frameGenerator.hpp:57
PatternType type
Definition frameGenerator.hpp:42
int32_t height
Definition frameGenerator.hpp:46
double ring_inner_radius
Definition frameGenerator.hpp:77
double gradient_start
Definition frameGenerator.hpp:73
double sigma
Definition frameGenerator.hpp:61
GradientDirection gradient_dir
Definition frameGenerator.hpp:72
int16_t grid_spacing
Definition frameGenerator.hpp:68
int32_t bin_y
Definition frameGenerator.hpp:48
double gain
Definition frameGenerator.hpp:53
double spot_size
Definition frameGenerator.hpp:69
int32_t width
Definition frameGenerator.hpp:45
int32_t bin_x
Definition frameGenerator.hpp:47
double grating_dispersion
Definition frameGenerator.hpp:89
double grating_wavelength_min
Definition frameGenerator.hpp:90
int16_t checker_size
Definition frameGenerator.hpp:81
double noise_std
Definition frameGenerator.hpp:86
int16_t grating_order
Definition frameGenerator.hpp:92
NoiseDistribution noise_dist
Definition frameGenerator.hpp:84
double gradient_end
Definition frameGenerator.hpp:74
int16_t max_shift
Definition frameGenerator.hpp:56