Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSprayOpOptionData.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Agata Cacko <cacko.azh@gmail.com>
3 * SPDX-FileCopyrightText: 2008-2010 Lukáš Tvrdý <lukast.dev@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#ifndef KIS_SPRAYOP_OPTION_DATA_H
8#define KIS_SPRAYOP_OPTION_DATA_H
9
10
11#include "kis_types.h"
12#include <boost/operators.hpp>
13#include <kritapaintop_export.h>
14
15#include <kis_cubic_curve.h>
16
18
20
21
22const QString SPRAY_DIAMETER = "Spray/diameter";
23const QString SPRAY_ASPECT = "Spray/aspect";
24const QString SPRAY_ROTATION = "Spray/rotation";
25const QString SPRAY_SCALE = "Spray/scale";
26const QString SPRAY_SPACING = "Spray/spacing";
27const QString SPRAY_JITTER_MOVEMENT = "Spray/jitterMovement";
28const QString SPRAY_JITTER_MOVE_AMOUNT = "Spray/jitterMoveAmount";
29const QString SPRAY_USE_DENSITY = "Spray/useDensity";
30const QString SPRAY_PARTICLE_COUNT = "Spray/particleCount";
31const QString SPRAY_COVERAGE = "Spray/coverage";
32const QString SPRAY_ANGULAR_DISTRIBUTION_TYPE = "Spray/angularDistributionType";
33const QString SPRAY_ANGULAR_DISTRIBUTION_CURVE = "Spray/angularDistributionCurve";
34const QString SPRAY_ANGULAR_DISTRIBUTION_CURVE_REPEAT = "Spray/angularDistributionCurveRepeat";
35const QString SPRAY_RADIAL_DISTRIBUTION_TYPE = "Spray/radialDistributionType";
36const QString SPRAY_RADIAL_DISTRIBUTION_STD_DEVIATION = "Spray/radialDistributionStdDeviation";
37const QString SPRAY_RADIAL_DISTRIBUTION_CLUSTERING_AMOUNT = "Spray/radialDistributionClusteringAmount";
38const QString SPRAY_RADIAL_DISTRIBUTION_CURVE = "Spray/radialDistributionCurve";
39const QString SPRAY_RADIAL_DISTRIBUTION_CURVE_REPEAT = "Spray/radialDistributionCurveRepeat";
40const QString SPRAY_RADIAL_DISTRIBUTION_CENTER_BIASED = "Spray/radialDistributionCenterBiased";
41const QString SPRAY_GAUSS_DISTRIBUTION = "Spray/gaussianDistribution";
42
43
44struct KisSprayOpOptionData : boost::equality_comparable<KisSprayOpOptionData>
45{
53
54 inline friend bool operator==(const KisSprayOpOptionData &lhs, const KisSprayOpOptionData &rhs) {
55 return lhs.diameter == rhs.diameter // 10 entries
56 && lhs.aspect == rhs.aspect
57 && lhs.brushRotation == rhs.brushRotation
58 && lhs.scale == rhs.scale
59 && lhs.spacing == rhs.spacing
60 && lhs.jitterMovement == rhs.jitterMovement
61 && lhs.jitterAmount == rhs.jitterAmount
62 && lhs.useDensity == rhs.useDensity
63 && lhs.particleCount == rhs.particleCount
64 && lhs.coverage == rhs.coverage
65 // 9 entries
75 // 7 entries - but there is no need to compare functors
76
77 }
78
79 // sane defaults (for Coverity)
80 // NOTE: if you add any new variable, make sure it's present in all places! including == function
81 // 10 entries
82 quint16 diameter {100};
83 qreal aspect {1.0};
84 qreal brushRotation {0.0};
85 qreal scale {1.0};
86 qreal spacing {0.5};
87 bool jitterMovement {false};
88 qreal jitterAmount {1.0};
89 bool useDensity {false};
90 quint16 particleCount {12};
91 qreal coverage {0.003};
92
93 // 9 entries
103
104 // functions
105 bool read(const KisPropertiesConfiguration *setting);
106 void write(KisPropertiesConfiguration *setting) const;
107};
108
109#endif // KIS_SPRAYOP_OPTION_DATA_H
const QString SPRAY_ANGULAR_DISTRIBUTION_CURVE_REPEAT
const QString SPRAY_DIAMETER
const QString SPRAY_RADIAL_DISTRIBUTION_CURVE_REPEAT
const QString SPRAY_USE_DENSITY
const QString SPRAY_JITTER_MOVE_AMOUNT
const QString SPRAY_PARTICLE_COUNT
const QString SPRAY_RADIAL_DISTRIBUTION_CURVE
const QString SPRAY_COVERAGE
const QString SPRAY_ASPECT
const QString SPRAY_ANGULAR_DISTRIBUTION_CURVE
const QString SPRAY_SPACING
const QString SPRAY_RADIAL_DISTRIBUTION_STD_DEVIATION
const QString SPRAY_ROTATION
const QString SPRAY_ANGULAR_DISTRIBUTION_TYPE
const QString SPRAY_RADIAL_DISTRIBUTION_CLUSTERING_AMOUNT
const QString SPRAY_GAUSS_DISTRIBUTION
const QString SPRAY_SCALE
const QString SPRAY_JITTER_MOVEMENT
const QString SPRAY_RADIAL_DISTRIBUTION_TYPE
const QString SPRAY_RADIAL_DISTRIBUTION_CENTER_BIASED
const QString DEFAULT_CURVE_STRING
bool read(const KisPropertiesConfiguration *setting)
ParticleDistribution radialDistributionType
void write(KisPropertiesConfiguration *setting) const
friend bool operator==(const KisSprayOpOptionData &lhs, const KisSprayOpOptionData &rhs)
ParticleDistribution angularDistributionType