27 , m_tangentTiltOption(settings.data())
28 , m_opacityOption(settings.data(), node)
29 , m_flowOption(settings.data())
30 , m_sizeOption(settings.data())
31 , m_spacingOption(settings.data())
32 , m_softnessOption(settings.data())
33 , m_sharpnessOption(settings.data())
34 , m_scatterOption(settings.data())
35 , m_rotationOption(settings.data())
36 , m_rateOption(settings.data())
37 , m_tempDev(painter->device()->createCompositionSourceDevice())
63 if (currentSpace !=
"RGBA") {
68 QVector <float> channelValues(4);
72 channelValues[0] = 0.5;
73 channelValues[1] = 0.5;
74 channelValues[2] = 1.0;
75 channelValues[3] = 1.0;
84 channelValues[0] = 1.0;
85 channelValues[1] = 0.5;
86 channelValues[2] = 0.5;
87 channelValues[3] = 1.0;
98 KoColor color(data, rgbColorSpace);
102 if (!
painter()->device() || !brush || !brush->canPaintFor(info)) {
115 brush->maskWidth(shape, 0, 0, info),
116 brush->maskHeight(shape, 0, 0, info));
163 qreal scale, qreal rotation)
const
183 if (currentSpace !=
"RGBA") {
188 QVector <float> channelValues(4);
192 channelValues[0] = 0.5;
193 channelValues[1] = 0.5;
194 channelValues[2] = 1.0;
195 channelValues[3] = 1.0;
200 channelValues[0] = r;
201 channelValues[1] = g;
202 channelValues[2] = b;
204 channelValues[0] = 1.0;
205 channelValues[1] = 0.5;
206 channelValues[2] = 0.5;
207 channelValues[3] = 1.0;
211 channelValues[0] = b;
212 channelValues[1] = g;
213 channelValues[2] = r;
218 KoColor color(data, rgbColorSpace);
219 p.setPaintColor(color);
220 p.drawDDALine(pi1.
pos(), pi2.
pos());
KisSpacingInformation effectiveSpacing(qreal scale) const
bool checkSizeTooSmall(qreal scale)
bool needSeparateOriginal() const
KisFixedPaintDeviceSP fetchDab(const KoColorSpace *cs, KisColorSource *colorSource, const QPointF &cursorPoint, KisDabShape const &, const KisPaintInformation &info, qreal softnessFactor, QRect *dstDabRect, qreal lightnessStrength=1.0)
void setSharpnessPostprocessing(KisSharpnessOption *option)
void apply(KisPainter *painter, const KisPaintInformation &info)
qreal opacityF() const
Returns the opacity that is used in painting.
void renderMirrorMask(QRect rc, KisFixedPaintDeviceSP dab)
void setOpacityF(qreal opacity)
void bitBlt(qint32 dstX, qint32 dstY, const KisPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)
void renderMirrorMaskSafe(QRect rc, KisFixedPaintDeviceSP dab, bool preserveDab)
void bltFixed(qint32 dstX, qint32 dstY, const KisFixedPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)
void setCompositeOpId(const KoCompositeOp *op)
qreal apply(const KisPaintInformation &info) const
void applyFanCornersInfo(KisPaintOp *op)
QPointF apply(const KisPaintInformation &info, qreal width, qreal height) const
qreal apply(const KisPaintInformation &info) const
KisRateOption m_rateOption
KisSizeOption m_sizeOption
KisSoftnessOption m_softnessOption
KisAirbrushOptionData m_airbrushData
KisFixedPaintDeviceSP m_maskDab
KisTimingInformation updateTimingImpl(const KisPaintInformation &info) const override
KisPaintDeviceSP m_lineCacheDevice
KisTangentTiltOption m_tangentTiltOption
KisPaintDeviceSP m_tempDev
KisSpacingOption m_spacingOption
KisSharpnessOption m_sharpnessOption
KisFlowOpacityOption2 m_opacityOption
void paintLine(const KisPaintInformation &pi1, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance) override
KisRotationOption m_rotationOption
KisTangentNormalPaintOp(const KisPaintOpSettingsSP settings, KisPainter *painter, KisNodeSP node, KisImageSP image)
KisScatterOption m_scatterOption
~KisTangentNormalPaintOp() override
KisSpacingInformation computeSpacing(const KisPaintInformation &info, qreal scale, qreal rotation) const
KisSpacingInformation paintAt(const KisPaintInformation &info) override
KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const override
void apply(const KisPaintInformation &info, qreal *r, qreal *g, qreal *b)
virtual KoID colorModelId() const =0
virtual KoID colorDepthId() const =0
virtual void fromNormalisedChannelsValue(quint8 *pixel, const QVector< float > &values) const =0
const KoColorSpace * colorSpace() const
return the current colorSpace
KisTimingInformation effectiveTiming(const KisAirbrushOptionData *airbrushOption, const KisRateOption *rateOption, const KisPaintInformation &pi)
bool read(const KisPropertiesConfiguration *setting)
virtual void paintLine(const KisPaintInformation &pi1, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance)
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())