#pragma once #include #include "constants.h" #include "typedefs.h" #define USER_PTR class Pixels; // TODO: template struct Image { // Image(Image &other) { std::cerr << __func__ << ": don't copy me please" << std::endl; } Image() = default; Image(Image &other) = delete; Image(Image &&other) = delete; Image &operator=(Image &&other) = default; int width{0}; int height{0}; // uint8_t data[img_height][img_width] = {{0}}; using row_t = std::array; using data_t = std::array; using rotated_row_t = std::array; using column_t = rotated_row_t; using rotated_data_t = std::array; // data_t d; data_t data; // data_t *data; // uint8_t *data = {nullptr}; // uint8_t &dataAt(size_t row, size_t col); // uint8_t rotated_cw[img_width][img_height] = {{0}}; rotated_data_t rotated_cw; // size_t dataSize{0}; // unsigned int stride{0}; libcamera::PixelFormat pixelFormat{0}; Counters counters{}; bool hasInputData{false}; QElapsedTimer t; void rotate(); Pixels pixels(); void copyFromData(const void* src, size_t size); private: Image &operator=(Image &other) = delete; };