248
249
OrderOfChunks chunkorder = COM_ORDER_OF_CHUNKS_DEFAULT;
250
251
if (operation->isViewerOperation()) {
251
ViewerBaseOperation *viewer = (ViewerBaseOperation *)operation;
252
ViewerOperation *viewer = (ViewerOperation *)operation;
252
253
centerX = viewer->getCenterX();
253
254
centerY = viewer->getCenterY();
254
255
chunkorder = viewer->getChunkOrder();
518
524
// find all chunks inside the rect
519
525
// determine minxchunk, minychunk, maxxchunk, maxychunk where x and y are chunknumbers
521
float chunkSizef = this->m_chunkSize;
523
527
int indexx, indexy;
524
int minxchunk = floor((area->xmin - this->m_viewerBorder.xmin) / chunkSizef);
525
int maxxchunk = ceil((area->xmax - 1) / chunkSizef);
526
int minychunk = floor((area->ymin - this->m_viewerBorder.ymin) / chunkSizef);
527
int maxychunk = ceil((area->ymax - 1) / chunkSizef);
528
minxchunk = max(minxchunk, 0);
529
minychunk = max(minychunk, 0);
530
maxxchunk = min(maxxchunk, (int)this->m_numberOfXChunks);
531
maxychunk = min(maxychunk, (int)this->m_numberOfYChunks);
528
int minx = max_ii(area->xmin - m_viewerBorder.xmin, 0);
529
int maxx = min_ii(area->xmax - m_viewerBorder.xmin, m_viewerBorder.xmax - m_viewerBorder.xmin);
530
int miny = max_ii(area->ymin - m_viewerBorder.ymin, 0);
531
int maxy = min_ii(area->ymax - m_viewerBorder.ymin, m_viewerBorder.ymax - m_viewerBorder.ymin);
532
int minxchunk = minx / (int)m_chunkSize;
533
int maxxchunk = (maxx + (int)m_chunkSize - 1) / (int)m_chunkSize;
534
int minychunk = miny / (int)m_chunkSize;
535
int maxychunk = (maxy + (int)m_chunkSize - 1) / (int)m_chunkSize;
536
minxchunk = max_ii(minxchunk, 0);
537
minychunk = max_ii(minychunk, 0);
538
maxxchunk = min_ii(maxxchunk, (int)m_numberOfXChunks);
539
maxychunk = min_ii(maxychunk, (int)m_numberOfYChunks);
533
541
bool result = true;
534
542
for (indexx = minxchunk; indexx < maxxchunk; indexx++) {