#pragma once class Map { public: const int size_x; const int size_y; const float lat_max; const float lat_min; const float lon_max; const float lon_min; const std::string map_file; Map(int sx, int sy, float lat_mi, float lat_ma, float lon_mi, float lon_ma, std::string file) : size_x(sx), size_y(sy), lat_max(lat_ma), lat_min(lat_mi), lon_max(lon_ma), lon_min(lon_mi), map_file(file){}; bool contains(Position pos) const { return (pos.lon >= lon_min && pos.lon <= lon_max && pos.lat >= lat_min && pos.lat <= lat_max); } int coordinate_x(Position pos) const { return (pos.lon - lon_min) / (lon_max - lon_min) * size_x; } int coordinate_y(Position pos) const { return size_y - static_cast((pos.lat - lat_min) / (lat_max - lat_min) * size_y); } }; const Map Poland(1000, 972, 48.7, 55.2, 13.8, 24.5, "Poland.png"); const Map Poland_relief(1000, 972, 48.7, 55.2, 13.8, 24.5, "Poland_relief.png"); const Map Europe(1249, 1024, 28, 82, -25, 54, "Europe.png"); const Map Podlaskie(727, 1024, 52.17, 54.5, 21.45, 24.1, "Podlaskie.png"); const Map Pomorskie(1000, 785, 53.40, 54.92, 16.65, 19.75, "Pomorskie.png");