Krita Source Code Documentation
Loading...
Searching...
No Matches
KisGridConfig Class Reference

#include <kis_grid_config.h>

+ Inheritance diagram for KisGridConfig:

Classes

struct  TrigoCache
 

Public Types

enum  GridType { GRID_RECTANGULAR = 0 , GRID_ISOMETRIC_LEGACY , GRID_ISOMETRIC }
 
enum  LineTypeInternal { LINE_SOLID = 0 , LINE_DASHED , LINE_DOTTED , LINE_NONE }
 

Public Member Functions

bool angleAspectLocked () const
 
qreal angleLeft () const
 
bool angleLeftActive () const
 
qreal angleRight () const
 
bool angleRightActive () const
 
int cellSize () const
 
int cellSpacing () const
 
QColor colorMain () const
 
QColor colorSubdivision () const
 
QColor colorVertical () const
 
GridType gridType () const
 
bool isDefault () const
 
 KisGridConfig ()
 
LineTypeInternal lineTypeMain () const
 
LineTypeInternal lineTypeSubdivision () const
 
LineTypeInternal lineTypeVertical () const
 
bool loadDynamicDataFromXml (const QDomElement &parent)
 
void loadStaticData ()
 
QPoint offset () const
 
bool offsetActive () const
 
bool offsetAspectLocked () const
 
bool operator== (const KisGridConfig &rhs) const
 
QPen penMain () const
 
QPen penSubdivision () const
 
QPen penVertical () const
 
QDomElement saveDynamicDataToXml (QDomDocument &doc, const QString &tag) const
 
void saveStaticData () const
 
void setAngleAspectLocked (bool value)
 
void setAngleLeft (qreal angle)
 
void setAngleLeftActive (bool value)
 
void setAngleRight (qreal angle)
 
void setAngleRightActive (bool value)
 
void setCellSize (int spacing)
 
void setCellSpacing (int spacing)
 
void setColorMain (const QColor &value)
 
void setColorSubdivision (const QColor &value)
 
void setColorVertical (const QColor &value)
 
void setGridType (GridType type)
 
void setLineTypeMain (LineTypeInternal value)
 
void setLineTypeSubdivision (LineTypeInternal value)
 
void setLineTypeVertical (LineTypeInternal value)
 
void setOffset (const QPoint &value)
 
void setOffsetActive (bool value)
 
void setOffsetAspectLocked (bool value)
 
void setShowGrid (bool value)
 
void setSnapToGrid (bool value)
 
void setSpacing (const QPoint &value)
 
void setSpacingAspectLocked (bool value)
 
void setSubdivision (int value)
 
void setXSpacingActive (bool value)
 
void setYSpacingActive (bool value)
 
bool showGrid () const
 
bool snapToGrid () const
 
QPoint spacing () const
 
bool spacingAspectLocked () const
 
int subdivision () const
 
void transform (const QTransform &transform)
 
TrigoCache trigoCache () const
 
bool xSpacingActive () const
 
bool ySpacingActive () const
 

Static Public Member Functions

static const KisGridConfigdefaultGrid ()
 

Private Member Functions

void updatePenStyle (QPen *pen, QColor color, LineTypeInternal type)
 
void updateTrigoCache ()
 

Private Attributes

bool m_angleAspectLocked
 
qreal m_angleLeft
 
bool m_angleLeftActive
 
qreal m_angleRight
 
bool m_angleRightActive
 
int m_cellSize
 
int m_cellSpacing
 
QColor m_colorIsoVertical
 
QColor m_colorMain
 
QColor m_colorSubdivision
 
GridType m_gridType
 
LineTypeInternal m_lineTypeIsoVertical
 
LineTypeInternal m_lineTypeMain
 
LineTypeInternal m_lineTypeSubdivision
 
QPoint m_offset
 
bool m_offsetActive
 
bool m_offsetAspectLocked
 
QPen m_penMain
 
QPen m_penSubdivision
 
QPen m_penVertical
 
bool m_showGrid
 
bool m_snapToGrid
 
QPoint m_spacing
 
bool m_spacingAspectLocked
 
int m_subdivision
 
TrigoCache m_trigoCache
 
bool m_xSpacingActive
 
bool m_ySpacingActive
 

Detailed Description

Definition at line 23 of file kis_grid_config.h.

Member Enumeration Documentation

◆ GridType

Enumerator
GRID_RECTANGULAR 
GRID_ISOMETRIC_LEGACY 
GRID_ISOMETRIC 

Definition at line 33 of file kis_grid_config.h.

◆ LineTypeInternal

Enumerator
LINE_SOLID 
LINE_DASHED 
LINE_DOTTED 
LINE_NONE 

Definition at line 26 of file kis_grid_config.h.

Constructor & Destructor Documentation

◆ KisGridConfig()

KisGridConfig::KisGridConfig ( )
inline

Definition at line 52 of file kis_grid_config.h.

53 : m_showGrid(false),
54 m_snapToGrid(false),
55 m_spacing(16,16),
56 m_xSpacingActive(true),
57 m_ySpacingActive(true),
58 m_offsetActive(false),
61 m_angleLeft(45),
62 m_angleRight(45),
66 m_cellSpacing(30),
67 m_cellSize(30),
73 m_colorMain(200, 200, 200, 200),
74 m_colorSubdivision(200, 200, 200, 150),
75 m_colorIsoVertical(200, 200, 200, 100),
76 m_penMain(QPen()),
77 m_penSubdivision(QPen()),
78 m_penVertical(QPen())
79 {
81 m_penMain.setWidth(0);
82 m_penSubdivision.setWidth(0);
83 m_penVertical.setWidth(0);
84 }
QColor m_colorIsoVertical
LineTypeInternal m_lineTypeIsoVertical
QColor m_colorSubdivision
LineTypeInternal m_lineTypeSubdivision
LineTypeInternal m_lineTypeMain

Member Function Documentation

◆ angleAspectLocked()

bool KisGridConfig::angleAspectLocked ( ) const
inline

Definition at line 240 of file kis_grid_config.h.

240 {
241 return m_angleAspectLocked;
242 }

◆ angleLeft()

qreal KisGridConfig::angleLeft ( ) const
inline

Definition at line 171 of file kis_grid_config.h.

171 {
172 return m_angleLeft;
173 }

◆ angleLeftActive()

bool KisGridConfig::angleLeftActive ( ) const
inline

Definition at line 188 of file kis_grid_config.h.

188 {
189 return m_angleLeftActive;
190 }

◆ angleRight()

qreal KisGridConfig::angleRight ( ) const
inline

Definition at line 179 of file kis_grid_config.h.

179 {
180 return m_angleRight;
181 }

◆ angleRightActive()

bool KisGridConfig::angleRightActive ( ) const
inline

Definition at line 196 of file kis_grid_config.h.

196 {
197 return m_angleRightActive;
198 }

◆ cellSize()

int KisGridConfig::cellSize ( ) const
inline

Definition at line 211 of file kis_grid_config.h.

211 {
212 return m_cellSize;
213 }

◆ cellSpacing()

int KisGridConfig::cellSpacing ( ) const
inline

Definition at line 204 of file kis_grid_config.h.

204 {
205 return m_cellSpacing;
206 }

◆ colorMain()

QColor KisGridConfig::colorMain ( ) const
inline

Definition at line 274 of file kis_grid_config.h.

274 {
275 return m_colorMain;
276 }

◆ colorSubdivision()

QColor KisGridConfig::colorSubdivision ( ) const
inline

Definition at line 282 of file kis_grid_config.h.

282 {
283 return m_colorSubdivision;
284 }

◆ colorVertical()

QColor KisGridConfig::colorVertical ( ) const
inline

Definition at line 290 of file kis_grid_config.h.

290 {
291 return m_colorIsoVertical;
292 }

◆ defaultGrid()

const KisGridConfig & KisGridConfig::defaultGrid ( )
static

Definition at line 23 of file kis_grid_config.cpp.

24{
25 staticDefaultObject->loadStaticData();
26 return *staticDefaultObject;
27}

References loadStaticData().

◆ gridType()

GridType KisGridConfig::gridType ( ) const
inline

Definition at line 219 of file kis_grid_config.h.

219 {
220 return m_gridType;
221 }

◆ isDefault()

bool KisGridConfig::isDefault ( ) const
inline

Definition at line 322 of file kis_grid_config.h.

322 {
323 return *this == defaultGrid();
324 }
static const KisGridConfig & defaultGrid()

References defaultGrid.

◆ lineTypeMain()

LineTypeInternal KisGridConfig::lineTypeMain ( ) const
inline

Definition at line 247 of file kis_grid_config.h.

247 {
248 return m_lineTypeMain;
249 }

◆ lineTypeSubdivision()

LineTypeInternal KisGridConfig::lineTypeSubdivision ( ) const
inline

Definition at line 255 of file kis_grid_config.h.

255 {
257 }

◆ lineTypeVertical()

LineTypeInternal KisGridConfig::lineTypeVertical ( ) const
inline

Definition at line 264 of file kis_grid_config.h.

264 {
266 }

◆ loadDynamicDataFromXml()

bool KisGridConfig::loadDynamicDataFromXml ( const QDomElement & parent)

Definition at line 115 of file kis_grid_config.cpp.

116{
117 KisConfig cfg(true);
118 bool result = true;
119
120 result &= KisDomUtils::loadValue(gridElement, "showGrid", &m_showGrid);
121 result &= KisDomUtils::loadValue(gridElement, "snapToGrid", &m_snapToGrid);
122 result &= KisDomUtils::loadValue(gridElement, "offset", &m_offset);
123 result &= KisDomUtils::loadValue(gridElement, "spacing", &m_spacing);
124 result &= KisDomUtils::loadValue(gridElement, "offsetAspectLocked", &m_offsetAspectLocked);
125 result &= KisDomUtils::loadValue(gridElement, "spacingAspectLocked", &m_spacingAspectLocked);
126 result &= KisDomUtils::loadValue(gridElement, "subdivision", &m_subdivision);
127 result &= KisDomUtils::loadValue(gridElement, "angleLeft", &m_angleLeft);
128 result &= KisDomUtils::loadValue(gridElement, "angleRight", &m_angleRight);
129 result &= KisDomUtils::loadValue(gridElement, "cellSpacing", &m_cellSpacing);
130 result &= KisDomUtils::loadValue(gridElement, "gridType", (int*)(&m_gridType));
131
132 // following variables may not be present in older files; do not update result variable
133 KisDomUtils::loadValue(gridElement, "offsetActive", &m_offsetActive);
134 KisDomUtils::loadValue(gridElement, "xSpacingActive", &m_xSpacingActive);
135 KisDomUtils::loadValue(gridElement, "ySpacingActive", &m_ySpacingActive);
136 KisDomUtils::loadValue(gridElement, "angleLeftActive", &m_angleLeftActive);
137 KisDomUtils::loadValue(gridElement, "angleRightActive", &m_angleRightActive);
138 KisDomUtils::loadValue(gridElement, "angleAspectLocked", &m_angleAspectLocked);
139 KisDomUtils::loadValue(gridElement, "cellSize", &m_cellSize);
140
141 int lineTypeMain = cfg.getGridMainStyle();
142 KisDomUtils::loadValue(gridElement, "lineTypeMain", &lineTypeMain);
144
145 int lineTypeSubdivision = cfg.getGridSubdivisionStyle();
146 KisDomUtils::loadValue(gridElement, "lineTypeSubdivision", &lineTypeSubdivision);
148
149 int lineTypeVertical = cfg.getGridIsoVerticalStyle();
150 KisDomUtils::loadValue(gridElement, "lineTypeVertical", &lineTypeVertical);
152
153 m_colorMain = cfg.getGridMainColor();
154 KisDomUtils::loadValue(gridElement, "colorMain", &m_colorMain);
155
156 m_colorSubdivision = cfg.getGridSubdivisionColor();
157 KisDomUtils::loadValue(gridElement, "colorSubdivision", &m_colorSubdivision);
158
159 m_colorIsoVertical = cfg.getGridIsoVerticalColor();
160 KisDomUtils::loadValue(gridElement, "colorVertical", &m_colorIsoVertical);
161
166
167 return result;
168}
LineTypeInternal lineTypeMain() const
void updatePenStyle(QPen *pen, QColor color, LineTypeInternal type)
LineTypeInternal lineTypeSubdivision() const
LineTypeInternal lineTypeVertical() const
bool loadValue(const QDomElement &e, float *v)

References KisConfig::getGridIsoVerticalColor(), KisConfig::getGridIsoVerticalStyle(), KisConfig::getGridMainColor(), KisConfig::getGridMainStyle(), KisConfig::getGridSubdivisionColor(), KisConfig::getGridSubdivisionStyle(), lineTypeMain(), lineTypeSubdivision(), lineTypeVertical(), KisDomUtils::loadValue(), m_angleAspectLocked, m_angleLeft, m_angleLeftActive, m_angleRight, m_angleRightActive, m_cellSize, m_cellSpacing, m_colorIsoVertical, m_colorMain, m_colorSubdivision, m_gridType, m_lineTypeIsoVertical, m_lineTypeMain, m_lineTypeSubdivision, m_offset, m_offsetActive, m_offsetAspectLocked, m_penMain, m_penSubdivision, m_penVertical, m_showGrid, m_snapToGrid, m_spacing, m_spacingAspectLocked, m_subdivision, m_xSpacingActive, m_ySpacingActive, updatePenStyle(), and updateTrigoCache().

◆ loadStaticData()

void KisGridConfig::loadStaticData ( )

◆ offset()

QPoint KisGridConfig::offset ( ) const
inline

Definition at line 135 of file kis_grid_config.h.

135 {
136 return m_offset;
137 }

◆ offsetActive()

bool KisGridConfig::offsetActive ( ) const
inline

Definition at line 128 of file kis_grid_config.h.

128 {
129 return m_offsetActive;
130 }

◆ offsetAspectLocked()

bool KisGridConfig::offsetAspectLocked ( ) const
inline

Definition at line 226 of file kis_grid_config.h.

226 {
228 }

◆ operator==()

bool KisGridConfig::operator== ( const KisGridConfig & rhs) const
inline

Definition at line 86 of file kis_grid_config.h.

References m_angleAspectLocked, m_angleLeft, m_angleLeftActive, m_angleRight, m_angleRightActive, m_cellSize, m_cellSpacing, m_colorIsoVertical, m_colorMain, m_colorSubdivision, m_gridType, m_lineTypeIsoVertical, m_lineTypeMain, m_lineTypeSubdivision, m_offset, m_offsetActive, m_offsetAspectLocked, m_showGrid, m_snapToGrid, m_spacing, m_spacingAspectLocked, m_subdivision, m_xSpacingActive, and m_ySpacingActive.

◆ penMain()

QPen KisGridConfig::penMain ( ) const
inline

Definition at line 298 of file kis_grid_config.h.

298 {
299 return m_penMain;
300 }

◆ penSubdivision()

QPen KisGridConfig::penSubdivision ( ) const
inline

Definition at line 302 of file kis_grid_config.h.

302 {
303 return m_penSubdivision;
304 }

◆ penVertical()

QPen KisGridConfig::penVertical ( ) const
inline

Definition at line 306 of file kis_grid_config.h.

306 {
307 return m_penVertical;
308 }

◆ saveDynamicDataToXml()

QDomElement KisGridConfig::saveDynamicDataToXml ( QDomDocument & doc,
const QString & tag ) const

Definition at line 83 of file kis_grid_config.cpp.

84{
85 QDomElement gridElement = doc.createElement(tag);
86 KisDomUtils::saveValue(&gridElement, "showGrid", m_showGrid);
87 KisDomUtils::saveValue(&gridElement, "snapToGrid", m_snapToGrid);
88 KisDomUtils::saveValue(&gridElement, "offsetActive", m_offsetActive);
89 KisDomUtils::saveValue(&gridElement, "offset", m_offset);
90 KisDomUtils::saveValue(&gridElement, "spacing", m_spacing);
91 KisDomUtils::saveValue(&gridElement, "xSpacingActive", m_xSpacingActive);
92 KisDomUtils::saveValue(&gridElement, "ySpacingActive", m_ySpacingActive);
93 KisDomUtils::saveValue(&gridElement, "offsetAspectLocked", m_offsetAspectLocked);
94 KisDomUtils::saveValue(&gridElement, "spacingAspectLocked", m_spacingAspectLocked);
95 KisDomUtils::saveValue(&gridElement, "subdivision", m_subdivision);
96 KisDomUtils::saveValue(&gridElement, "angleLeft", m_angleLeft);
97 KisDomUtils::saveValue(&gridElement, "angleRight", m_angleRight);
98 KisDomUtils::saveValue(&gridElement, "angleLeftActive", m_angleLeftActive);
99 KisDomUtils::saveValue(&gridElement, "angleRightActive", m_angleRightActive);
100 KisDomUtils::saveValue(&gridElement, "angleAspectLocked", m_angleAspectLocked);
101 KisDomUtils::saveValue(&gridElement, "cellSpacing", m_cellSpacing);
102 KisDomUtils::saveValue(&gridElement, "cellSize", m_cellSize);
103 KisDomUtils::saveValue(&gridElement, "gridType", m_gridType);
104
105 KisDomUtils::saveValue(&gridElement, "colorMain", m_colorMain);
106 KisDomUtils::saveValue(&gridElement, "colorSubdivision", m_colorSubdivision);
107 KisDomUtils::saveValue(&gridElement, "colorVertical", m_colorIsoVertical);
108 KisDomUtils::saveValue(&gridElement, "lineTypeMain", m_lineTypeMain);
109 KisDomUtils::saveValue(&gridElement, "lineTypeSubdivision", m_lineTypeSubdivision);
110 KisDomUtils::saveValue(&gridElement, "lineTypeVertical", m_lineTypeIsoVertical);
111
112 return gridElement;
113}
void saveValue(QDomElement *parent, const QString &tag, const QSize &size)

References m_angleAspectLocked, m_angleLeft, m_angleLeftActive, m_angleRight, m_angleRightActive, m_cellSize, m_cellSpacing, m_colorIsoVertical, m_colorMain, m_colorSubdivision, m_gridType, m_lineTypeIsoVertical, m_lineTypeMain, m_lineTypeSubdivision, m_offset, m_offsetActive, m_offsetAspectLocked, m_showGrid, m_snapToGrid, m_spacing, m_spacingAspectLocked, m_subdivision, m_xSpacingActive, m_ySpacingActive, and KisDomUtils::saveValue().

◆ saveStaticData()

void KisGridConfig::saveStaticData ( ) const

◆ setAngleAspectLocked()

void KisGridConfig::setAngleAspectLocked ( bool value)
inline

Definition at line 243 of file kis_grid_config.h.

243 {
245 }
float value(const T *src, size_t ch)

References value().

◆ setAngleLeft()

void KisGridConfig::setAngleLeft ( qreal angle)
inline

Definition at line 174 of file kis_grid_config.h.

174 {
175 m_angleLeft = angle;
177 }

◆ setAngleLeftActive()

void KisGridConfig::setAngleLeftActive ( bool value)
inline

Definition at line 192 of file kis_grid_config.h.

192 {
194 }

References value().

◆ setAngleRight()

void KisGridConfig::setAngleRight ( qreal angle)
inline

Definition at line 183 of file kis_grid_config.h.

183 {
184 m_angleRight = angle;
186 }

◆ setAngleRightActive()

void KisGridConfig::setAngleRightActive ( bool value)
inline

Definition at line 200 of file kis_grid_config.h.

200 {
202 }

References value().

◆ setCellSize()

void KisGridConfig::setCellSize ( int spacing)
inline

Definition at line 214 of file kis_grid_config.h.

214 {
217 }
QPoint spacing() const

◆ setCellSpacing()

void KisGridConfig::setCellSpacing ( int spacing)
inline

Definition at line 207 of file kis_grid_config.h.

207 {
209 }

◆ setColorMain()

void KisGridConfig::setColorMain ( const QColor & value)
inline

Definition at line 277 of file kis_grid_config.h.

References value().

◆ setColorSubdivision()

void KisGridConfig::setColorSubdivision ( const QColor & value)
inline

◆ setColorVertical()

void KisGridConfig::setColorVertical ( const QColor & value)
inline

Definition at line 293 of file kis_grid_config.h.

References value().

◆ setGridType()

void KisGridConfig::setGridType ( GridType type)
inline

Definition at line 222 of file kis_grid_config.h.

222 {
223 m_gridType = type;
224 }

◆ setLineTypeMain()

void KisGridConfig::setLineTypeMain ( LineTypeInternal value)
inline

Definition at line 250 of file kis_grid_config.h.

References value().

◆ setLineTypeSubdivision()

void KisGridConfig::setLineTypeSubdivision ( LineTypeInternal value)
inline

◆ setLineTypeVertical()

void KisGridConfig::setLineTypeVertical ( LineTypeInternal value)
inline

◆ setOffset()

void KisGridConfig::setOffset ( const QPoint & value)
inline

Definition at line 138 of file kis_grid_config.h.

138 {
139 m_offset = value;
141 }

References value().

◆ setOffsetActive()

void KisGridConfig::setOffsetActive ( bool value)
inline

Definition at line 131 of file kis_grid_config.h.

131 {
133 }

References value().

◆ setOffsetAspectLocked()

void KisGridConfig::setOffsetAspectLocked ( bool value)
inline

Definition at line 229 of file kis_grid_config.h.

229 {
231 }

References value().

◆ setShowGrid()

void KisGridConfig::setShowGrid ( bool value)
inline

Definition at line 117 of file kis_grid_config.h.

117 {
119 }

References value().

◆ setSnapToGrid()

void KisGridConfig::setSnapToGrid ( bool value)
inline

Definition at line 124 of file kis_grid_config.h.

124 {
126 }

References value().

◆ setSpacing()

void KisGridConfig::setSpacing ( const QPoint & value)
inline

Definition at line 146 of file kis_grid_config.h.

146 {
148 }

References value().

◆ setSpacingAspectLocked()

void KisGridConfig::setSpacingAspectLocked ( bool value)
inline

Definition at line 236 of file kis_grid_config.h.

236 {
238 }

References value().

◆ setSubdivision()

void KisGridConfig::setSubdivision ( int value)
inline

Definition at line 167 of file kis_grid_config.h.

167 {
169 }

References value().

◆ setXSpacingActive()

void KisGridConfig::setXSpacingActive ( bool value)
inline

Definition at line 153 of file kis_grid_config.h.

153 {
155 }

References value().

◆ setYSpacingActive()

void KisGridConfig::setYSpacingActive ( bool value)
inline

Definition at line 160 of file kis_grid_config.h.

160 {
162 }

References value().

◆ showGrid()

bool KisGridConfig::showGrid ( ) const
inline

Definition at line 114 of file kis_grid_config.h.

114 {
115 return m_showGrid;
116 }

◆ snapToGrid()

bool KisGridConfig::snapToGrid ( ) const
inline

Definition at line 121 of file kis_grid_config.h.

121 {
122 return m_snapToGrid;
123 }

◆ spacing()

QPoint KisGridConfig::spacing ( ) const
inline

Definition at line 143 of file kis_grid_config.h.

143 {
144 return m_spacing;
145 }

◆ spacingAspectLocked()

bool KisGridConfig::spacingAspectLocked ( ) const
inline

Definition at line 233 of file kis_grid_config.h.

233 {
235 }

◆ subdivision()

int KisGridConfig::subdivision ( ) const
inline

Definition at line 164 of file kis_grid_config.h.

164 {
165 return m_subdivision;
166 }

◆ transform()

void KisGridConfig::transform ( const QTransform & transform)

Transform the grids using the given transform. Please note that transform should be in 'image' coordinate system. Used with image-wide transformations.

Definition at line 29 of file kis_grid_config.cpp.

30{
31 if (transform.type() >= QTransform::TxShear) return;
32
34
36 QTransform t = m.scaleTransform();
37
38 const qreal eps = 1e-3;
39 const qreal wrappedRotation = KisAlgebra2D::wrapValue(m.angle, 90.0);
40 if (wrappedRotation <= eps || wrappedRotation >= 90.0 - eps) {
41 t *= m.rotateTransform();
42 }
43
45 // Transform map may round spacing down to 0, but it must be at least 1
46 m_spacing.setX(qMax(1, m_spacing.x()));
47 m_spacing.setY(qMax(1, m_spacing.y()));
48
49 } else if (m_gridType == GRID_ISOMETRIC_LEGACY) {
50 if (qFuzzyCompare(m.scaleX, m.scaleY)) {
51 m_cellSpacing = qRound(qAbs(m_cellSpacing * m.scaleX));
52 }
53 }
55}
void transform(const QTransform &transform)
static bool qFuzzyCompare(half p1, half p2)
const qreal eps
T wrapValue(T value, T wrapBounds)
Point abs(const Point &pt)

References KisAlgebra2D::abs(), KisAlgebra2D::DecomposedMatrix::angle, eps, GRID_ISOMETRIC_LEGACY, GRID_RECTANGULAR, m_cellSpacing, m_gridType, m_offset, m_spacing, qFuzzyCompare(), KisAlgebra2D::DecomposedMatrix::rotateTransform(), KisAlgebra2D::DecomposedMatrix::scaleTransform(), KisAlgebra2D::DecomposedMatrix::scaleX, KisAlgebra2D::DecomposedMatrix::scaleY, transform(), and KisAlgebra2D::wrapValue().

◆ trigoCache()

TrigoCache KisGridConfig::trigoCache ( ) const
inline

Definition at line 310 of file kis_grid_config.h.

310 {
311 return m_trigoCache;
312 }
TrigoCache m_trigoCache

◆ updatePenStyle()

void KisGridConfig::updatePenStyle ( QPen * pen,
QColor color,
LineTypeInternal type )
private

Definition at line 170 of file kis_grid_config.cpp.

171{
172 pen->setColor(color);
173
174 if (type == LINE_DASHED) {
175 QVector<qreal> dashes;
176 dashes << 5 << 5;
177 pen->setDashPattern(dashes);
178 } else if (type == LINE_DOTTED) {
179 pen->setStyle(Qt::DotLine);
180 } else if (type == LINE_NONE) {
181 pen->setStyle(Qt::NoPen);
182 } else {
183 // assume it's SOLID by default
184 pen->setStyle(Qt::SolidLine);
185 }
186}

References LINE_DASHED, LINE_DOTTED, and LINE_NONE.

◆ updateTrigoCache()

void KisGridConfig::updateTrigoCache ( )
private

Definition at line 188 of file kis_grid_config.cpp.

189{
190 // Here some variable needed to render grid that can be calculated when grid settings in done, instead
191 // of doing recalculation on every canvas refresh
192 const qreal cosAngleRight = qCos(qDegreesToRadians(m_angleRight));
193 const qreal cosAngleLeft = qCos(qDegreesToRadians(m_angleLeft));
194
195 m_trigoCache.tanAngleRight = qTan(qDegreesToRadians(m_angleRight));
196 m_trigoCache.correctedAngleRightCellSize = m_cellSize * (qSin(qDegreesToRadians(m_angleLeft)) + cosAngleLeft * m_trigoCache.tanAngleRight);
197 if (m_angleRight > 0.0) {
199 } else {
201 }
202
203 m_trigoCache.tanAngleLeft = qTan(qDegreesToRadians(m_angleLeft));
204 m_trigoCache.correctedAngleLeftCellSize = m_cellSize * (qSin(qDegreesToRadians(m_angleRight)) + cosAngleRight * m_trigoCache.tanAngleLeft);
205 if (m_angleLeft > 0.0) {
207 } else {
209 }
210
212 m_trigoCache.verticalSpace = m_subdivision * m_cellSize * (cosAngleLeft + cosAngleRight) / 2;
213 } else {
214 // allow vertical grid line only if angle left and right are the same
216 }
217}

References KisGridConfig::TrigoCache::correctedAngleLeftCellSize, KisGridConfig::TrigoCache::correctedAngleLeftOffsetX, KisGridConfig::TrigoCache::correctedAngleRightCellSize, KisGridConfig::TrigoCache::correctedAngleRightOffsetX, LINE_NONE, m_angleLeft, m_angleRight, m_cellSize, m_lineTypeIsoVertical, m_offset, m_subdivision, m_trigoCache, KisGridConfig::TrigoCache::tanAngleLeft, KisGridConfig::TrigoCache::tanAngleRight, and KisGridConfig::TrigoCache::verticalSpace.

◆ xSpacingActive()

bool KisGridConfig::xSpacingActive ( ) const
inline

Definition at line 150 of file kis_grid_config.h.

150 {
151 return m_xSpacingActive;
152 }

◆ ySpacingActive()

bool KisGridConfig::ySpacingActive ( ) const
inline

Definition at line 157 of file kis_grid_config.h.

157 {
158 return m_ySpacingActive;
159 }

Member Data Documentation

◆ m_angleAspectLocked

bool KisGridConfig::m_angleAspectLocked
private

Definition at line 348 of file kis_grid_config.h.

◆ m_angleLeft

qreal KisGridConfig::m_angleLeft
private

Definition at line 346 of file kis_grid_config.h.

◆ m_angleLeftActive

bool KisGridConfig::m_angleLeftActive
private

Definition at line 349 of file kis_grid_config.h.

◆ m_angleRight

qreal KisGridConfig::m_angleRight
private

Definition at line 347 of file kis_grid_config.h.

◆ m_angleRightActive

bool KisGridConfig::m_angleRightActive
private

Definition at line 350 of file kis_grid_config.h.

◆ m_cellSize

int KisGridConfig::m_cellSize
private

Definition at line 352 of file kis_grid_config.h.

◆ m_cellSpacing

int KisGridConfig::m_cellSpacing
private

Definition at line 351 of file kis_grid_config.h.

◆ m_colorIsoVertical

QColor KisGridConfig::m_colorIsoVertical
private

Definition at line 367 of file kis_grid_config.h.

◆ m_colorMain

QColor KisGridConfig::m_colorMain
private

Definition at line 365 of file kis_grid_config.h.

◆ m_colorSubdivision

QColor KisGridConfig::m_colorSubdivision
private

Definition at line 366 of file kis_grid_config.h.

◆ m_gridType

GridType KisGridConfig::m_gridType
private

Definition at line 354 of file kis_grid_config.h.

◆ m_lineTypeIsoVertical

LineTypeInternal KisGridConfig::m_lineTypeIsoVertical
private

Definition at line 363 of file kis_grid_config.h.

◆ m_lineTypeMain

LineTypeInternal KisGridConfig::m_lineTypeMain
private

Definition at line 361 of file kis_grid_config.h.

◆ m_lineTypeSubdivision

LineTypeInternal KisGridConfig::m_lineTypeSubdivision
private

Definition at line 362 of file kis_grid_config.h.

◆ m_offset

QPoint KisGridConfig::m_offset
private

Definition at line 357 of file kis_grid_config.h.

◆ m_offsetActive

bool KisGridConfig::m_offsetActive
private

Definition at line 343 of file kis_grid_config.h.

◆ m_offsetAspectLocked

bool KisGridConfig::m_offsetAspectLocked
private

Definition at line 344 of file kis_grid_config.h.

◆ m_penMain

QPen KisGridConfig::m_penMain
private

Definition at line 369 of file kis_grid_config.h.

◆ m_penSubdivision

QPen KisGridConfig::m_penSubdivision
private

Definition at line 370 of file kis_grid_config.h.

◆ m_penVertical

QPen KisGridConfig::m_penVertical
private

Definition at line 371 of file kis_grid_config.h.

◆ m_showGrid

bool KisGridConfig::m_showGrid
private

Definition at line 338 of file kis_grid_config.h.

◆ m_snapToGrid

bool KisGridConfig::m_snapToGrid
private

Definition at line 339 of file kis_grid_config.h.

◆ m_spacing

QPoint KisGridConfig::m_spacing
private

Definition at line 340 of file kis_grid_config.h.

◆ m_spacingAspectLocked

bool KisGridConfig::m_spacingAspectLocked
private

Definition at line 345 of file kis_grid_config.h.

◆ m_subdivision

int KisGridConfig::m_subdivision
private

Definition at line 355 of file kis_grid_config.h.

◆ m_trigoCache

TrigoCache KisGridConfig::m_trigoCache
private

Definition at line 373 of file kis_grid_config.h.

◆ m_xSpacingActive

bool KisGridConfig::m_xSpacingActive
private

Definition at line 341 of file kis_grid_config.h.

◆ m_ySpacingActive

bool KisGridConfig::m_ySpacingActive
private

Definition at line 342 of file kis_grid_config.h.


The documentation for this class was generated from the following files: