#pragma once
#include <vector>
#include "common.hpp"
#include "image.hpp"
class Mosaics {
private:
typedef struct {
unsigned dim;
Image* im;
rgb_t im_avg;
rgb_t im_med;
unsigned char im_avg_dist;
unsigned char im_med_dist;
} entry_t;
std::vector<entry_t> entries;
void add(Image*, unsigned);
public:
~Mosaics();
bool add(const Image*);
const Image* find_best(unsigned dim, rgb_t, unsigned char& dist) const;
const Image* find_best(const Image*, double& dist) const;
size_t size() const { return entries.size(); }
};