Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_spacing_information.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: GPL-3.0-or-later
3 */
4
5#ifndef KIS_SPACING_INFORMATION_H
6#define KIS_SPACING_INFORMATION_H
7
8#include "kritaimage_export.h"
9
15class KRITAIMAGE_EXPORT KisSpacingInformation {
16public:
18 : m_distanceSpacingEnabled(true)
19 , m_distanceSpacing(0.0, 0.0)
20 , m_rotation(0.0)
21 , m_coordinateSystemFlipped(false)
22 {
23 }
24
25 explicit KisSpacingInformation(qreal isotropicSpacing)
26 : m_distanceSpacingEnabled(true)
27 , m_distanceSpacing(isotropicSpacing, isotropicSpacing)
28 , m_rotation(0.0)
29 , m_coordinateSystemFlipped(false)
30 {
31 }
32
33 explicit KisSpacingInformation(const QPointF &anisotropicSpacing, qreal rotation,
34 bool coordinateSystemFlipped)
35 : m_distanceSpacingEnabled(true)
36 , m_distanceSpacing(anisotropicSpacing)
37 , m_rotation(rotation)
38 , m_coordinateSystemFlipped(coordinateSystemFlipped)
39 {
40 }
41
42 explicit KisSpacingInformation(bool distanceSpacingEnabled, qreal isotropicSpacing)
43 : m_distanceSpacingEnabled(distanceSpacingEnabled)
44 , m_distanceSpacing(isotropicSpacing, isotropicSpacing)
45 , m_rotation(0.0)
46 , m_coordinateSystemFlipped(false)
47 {
48 }
49
50 explicit KisSpacingInformation(bool distanceSpacingEnabled,
51 const QPointF &anisotropicSpacing,
52 qreal rotation,
53 bool coordinateSystemFlipped)
54 : m_distanceSpacingEnabled(distanceSpacingEnabled)
55 , m_distanceSpacing(anisotropicSpacing)
56 , m_rotation(rotation)
57 , m_coordinateSystemFlipped(coordinateSystemFlipped)
58 {
59 }
60
64 inline bool isDistanceSpacingEnabled() const {
65 return m_distanceSpacingEnabled;
66 }
67
68 inline QPointF distanceSpacing() const {
69 return m_distanceSpacing;
70 }
71
72 inline bool isIsotropic() const {
73 return m_distanceSpacing.x() == m_distanceSpacing.y();
74 }
75
76 inline qreal scalarApprox() const {
77 return isIsotropic() ? m_distanceSpacing.x() : QVector2D(m_distanceSpacing).length();
78 }
79
80 inline qreal rotation() const {
81 return m_rotation;
82 }
83
85 return m_coordinateSystemFlipped;
86 }
87
88private:
89
90 // Distance-based spacing
93
96};
97
98#endif // KIS_SPACING_INFORMATION_H
KisSpacingInformation(qreal isotropicSpacing)
KisSpacingInformation(bool distanceSpacingEnabled, qreal isotropicSpacing)
KisSpacingInformation(bool distanceSpacingEnabled, const QPointF &anisotropicSpacing, qreal rotation, bool coordinateSystemFlipped)
KisSpacingInformation(const QPointF &anisotropicSpacing, qreal rotation, bool coordinateSystemFlipped)