Krita Source Code Documentation
Loading...
Searching...
No Matches
KisPaintOpPluginUtils Namespace Reference

Functions

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)
 

Function Documentation

◆ effectiveSpacing()

KisSpacingInformation KisPaintOpPluginUtils::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 )

Similar to KisPaintOpUtils::effectiveSpacing, but some of the required parameters are obtained from the provided configuration options. This function assumes a common configuration where spacing and airbrush settings are configured through a KisSpacingOption and KisAirbrushOptionData. This type of configuration is used by several different paintops.

Parameters
dabWidth- The dab width.
dabHeight- The dab height.
isotropicSpacing- If true the spacing should be isotropic.
rotation- The rotation angle in radians.
axesFlipped- If true the axes should be flipped.
spacingVal- The spacing value.
autoSpacingActive- If true the autospacing will be activated.
autoSpacingCoeff- The autospacing coefficient.
lodScale- The level of details scale.
airbrushOption- The airbrushing option. Can be null for paintops that don't support airbrushing.
spacingOption- The pressure-curve spacing option. Can be null for paintops that don't support pressure-based spacing.
pi- The paint information.
See also
KisPaintInformation

Definition at line 41 of file kis_paintop_plugin_utils.h.

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}
bool isChecked() const
qreal apply(const KisPaintInformation &info) const
KisSpacingInformation effectiveSpacing(qreal dabWidth, qreal dabHeight, qreal extraScale, bool distanceSpacingEnabled, bool isotropicSpacing, qreal rotation, bool axesFlipped, qreal spacingVal, bool autoSpacingActive, qreal autoSpacingCoeff, qreal lodScale)

References KisSpacingOption::apply(), KisPaintOpUtils::effectiveSpacing(), KisAirbrushOptionData::ignoreSpacing, KisAirbrushOptionData::isChecked, and KisCurveOption::isChecked().

◆ effectiveTiming()

KisTimingInformation KisPaintOpPluginUtils::effectiveTiming ( const KisAirbrushOptionData * airbrushOption,
const KisRateOption * rateOption,
const KisPaintInformation & pi )

Similar to KisPaintOpUtils::effectiveTiming, but some of the required parameters are obtained from the provided configuration options. This function assumes a common configuration where airbrush settings are configured through a KisAirbrushOptionData and KisRateOption. This type of configuration is used by several different paintops.

Parameters
airbrushOption- The airbrushing option. Can be null for paintops that don't support airbrushing.
rateOption- The pressure-curve airbrush rate option. Can be null for paintops that don't support a pressure-based airbrush rate.
pi- The paint information.
See also
KisPaintInformation

Definition at line 82 of file kis_paintop_plugin_utils.h.

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}
qreal apply(const KisPaintInformation &info) const
const qreal LONG_TIME
KisTimingInformation effectiveTiming(bool timingEnabled, qreal timingInterval, qreal rateExtraScale)

References KisAirbrushOptionData::airbrushRate, KisStandardOption< Data >::apply(), KisPaintOpUtils::effectiveTiming(), KisAirbrushOptionData::isChecked, KisCurveOption::isChecked(), and LONG_TIME.