Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_paintop_plugin_utils.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_PAINTOP_PLUGIN_UTILS_H
8#define __KIS_PAINTOP_PLUGIN_UTILS_H
9
11#include "kis_paintop_utils.h"
14#include "KisStandardOptions.h"
16#include "KisSpacingOption.h"
17
19
42 qreal dabHeight,
43 bool isotropicSpacing,
44 qreal rotation,
45 bool axesFlipped,
46 qreal spacingVal,
47 bool autoSpacingActive,
48 qreal autoSpacingCoeff,
49 qreal lodScale,
50 const KisAirbrushOptionData *airbrushOption,
51 const KisSpacingOption *spacingOption,
52 const KisPaintInformation &pi)
53{
54 // Extract required parameters.
55 bool distanceSpacingEnabled = true;
56 if (airbrushOption && airbrushOption->isChecked) {
57 distanceSpacingEnabled = !airbrushOption->ignoreSpacing;
58 }
59 qreal extraScale = 1.0;
60 if (spacingOption && spacingOption->isChecked()) {
61 extraScale = spacingOption->apply(pi);
62 }
63
64 return KisPaintOpUtils::effectiveSpacing(dabWidth, dabHeight, extraScale,
65 distanceSpacingEnabled, isotropicSpacing, rotation,
66 axesFlipped, spacingVal, autoSpacingActive,
67 autoSpacingCoeff, lodScale);
68}
69
83 const KisRateOption *rateOption,
84 const KisPaintInformation &pi)
85{
86 // Extract required parameters.
87 bool timingEnabled = false;
88 qreal timingInterval = LONG_TIME;
89 if (airbrushOption) {
90 timingEnabled = airbrushOption->isChecked;
91 timingInterval = 1000.0 / airbrushOption->airbrushRate;
92 }
93 qreal rateExtraScale = 1.0;
94 if (rateOption && rateOption->isChecked()) {
95 rateExtraScale = rateOption->apply(pi);
96 }
97
98 return KisPaintOpUtils::effectiveTiming(timingEnabled, timingInterval, rateExtraScale);
99}
100
101}
102
103#endif /* __KIS_PAINTOP_PLUGIN_UTILS_H */
bool isChecked() const
qreal apply(const KisPaintInformation &info) const
qreal apply(const KisPaintInformation &info) const
const qreal LONG_TIME
KisSpacingInformation effectiveSpacing(qreal dabWidth, qreal dabHeight, bool isotropicSpacing, qreal rotation, bool axesFlipped, qreal spacingVal, bool autoSpacingActive, qreal autoSpacingCoeff, qreal lodScale, const KisAirbrushOptionData *airbrushOption, const KisSpacingOption *spacingOption, const KisPaintInformation &pi)
KisTimingInformation effectiveTiming(const KisAirbrushOptionData *airbrushOption, const KisRateOption *rateOption, const KisPaintInformation &pi)
KisSpacingInformation effectiveSpacing(qreal dabWidth, qreal dabHeight, qreal extraScale, bool distanceSpacingEnabled, bool isotropicSpacing, qreal rotation, bool axesFlipped, qreal spacingVal, bool autoSpacingActive, qreal autoSpacingCoeff, qreal lodScale)
KisTimingInformation effectiveTiming(bool timingEnabled, qreal timingInterval, qreal rateExtraScale)