39 return ((coords.
longitude & 0xffff) << 16) |
44 const long longi_center,
const long lati_center)
50 for (
long i=longi_center-size/2; i<=longi_center+size/2; ++i)
51 for (
long j= lati_center-size/2; j<= lati_center+size/2; ++j) {
69 const long longitude_center,
const long latitude_center)
76 longitude_center, latitude_center,
size);
86 const long longi,
const long lati)
88 const LongLat coords(longi, lati);
96 ( file.open(QIODevice::ReadOnly) ?
97 new QByteArray(qUncompress(file.readAll())) : nullptr ));
101 const QByteArray *
const data =
storage.value(
LongLat(longi, lati));
102 if ( data !=
nullptr ) {
104 if ( file.open(QIODevice::WriteOnly) ) {
116 const long longi_c,
const long lati_c,
const ushort sz)
120 longi_center(longi_c),
155 default: Q_UNREACHABLE();
break;
PreloadThread * preloadThread
ShredStorage *const storage
const int COMPRESSION_LEVEL
-1 - default for zlib, 0 - no compression, 4 - best for CPU, 8 - optimal.
ShredStorage(ushort size, long longi_center, long lati_center)
static QString FileName(QString world_name, long longi, long lati)
void Shift(int direction, long longitude, long latitude)
LongLat(long longitude, long latitude)
void WriteToFileShredData(long longi, long lati)
void SetShredData(QByteArray *, long longi, long lati)
PreloadThread(ShredStorage *, int direction, long longi_center, long lati_center, ushort size)
bool operator==(const LongLat &) const
QByteArray * GetShredData(long longi, long lati) const
void AddShredData(long longi, long lati)
void Remove(long longi, long lati)
QHash< LongLat, QByteArray * > storage
uint qHash(const LongLat &coords)
QString WorldName() const