Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRectsGrid.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2021 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef KISRECTSGRID_H
8
#define KISRECTSGRID_H
9
10
#include <QRect>
11
#include <QVector>
12
#include "kritaglobal_export.h"
13
14
30
class
KRITAGLOBAL_EXPORT
KisRectsGrid
31
{
32
public
:
36
KisRectsGrid
(
int
gridSize = 64);
37
38
43
QRect alignRect(
const
QRect &rc)
const
;
44
54
QVector<QRect>
addRect(
const
QRect &rc);
55
70
QVector<QRect>
removeRect(
const
QRect &rc);
71
81
QVector<QRect>
addAlignedRect(
const
QRect &rc);
82
92
QVector<QRect>
removeAlignedRect(
const
QRect &rc);
93
97
bool
contains(
const
QRect &rc)
const
;
98
102
QRect boundingRect()
const
;
103
104
private
:
105
void
resize(
const
QRect &newMappedAreaSize);
106
static
QRect shrinkRectToAlignedGrid(
const
QRect &srcRect,
int
lod);
107
108
private
:
109
int
m_gridSize
;
110
int
m_logGridSize
;
111
QVector<quint8>
m_mapping
;
112
QRect
m_mappedAreaSize
;
// measured in col/row
113
114
};
115
116
#endif
// KISRECTSGRID_H
KisRectsGrid
A utility class to maintain a sparse grid of loaded/unloaded rects.
Definition
KisRectsGrid.h:31
KisRectsGrid::m_mappedAreaSize
QRect m_mappedAreaSize
Definition
KisRectsGrid.h:112
KisRectsGrid::m_gridSize
int m_gridSize
Definition
KisRectsGrid.h:109
KisRectsGrid::m_mapping
QVector< quint8 > m_mapping
Definition
KisRectsGrid.h:111
KisRectsGrid::m_logGridSize
int m_logGridSize
Definition
KisRectsGrid.h:110
QList
Definition
KisQStringListFwd.h:16
libs
global
KisRectsGrid.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52