Krita Source Code Documentation
Loading...
Searching...
No Matches
fill_processing_visitor.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2013 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __FILL_PROCESSING_VISITOR_H
8#define __FILL_PROCESSING_VISITOR_H
9
11
12#include <QPoint>
13#include <kis_selection.h>
15#include <kritaui_export.h>
16#include <kis_fill_painter.h>
17
19{
20public:
22 {
25 ContinuousFillMode_FillSimilarRegions
26 };
27
28 FillProcessingVisitor(KisPaintDeviceSP referencePaintDevice,
29 KisSelectionSP selection,
30 KisResourcesSnapshotSP resources);
31
32 void setSeedPoint(const QPoint &seedPoint);
33 void setSeedPoints(const QVector<QPoint> &seedPoints);
34 void setUseFastMode(bool useFastMode);
35 void setUsePattern(bool usePattern);
36 void setSelectionOnly(bool selectionOnly);
37 void setUseSelectionAsBoundary(bool useSelectionAsBoundary);
38 void setAntiAlias(bool antiAlias);
39 void setFeather(int feather);
40 void setSizeMod(int sizemod);
41 void setStopGrowingAtDarkestPixel(bool stopGrowingAtDarkestPixel);
42 void setFillThreshold(int fillThreshold);
43 void setOpacitySpread(int opacitySpread);
44 void setCloseGap(int gap);
45 void setRegionFillingMode(KisFillPainter::RegionFillingMode regionFillingMode);
46 void setRegionFillingBoundaryColor(const KoColor &regionFillingBoundaryColor);
47 void setContinuousFillMode(ContinuousFillMode continuousFillMode);
48 void setContinuousFillMask(KisSelectionSP continuousFillMask);
49 void setContinuousFillReferenceColor(const QSharedPointer<KoColor> continuousFillReferenceColor);
50 void setUnmerged(bool unmerged);
51 void setUseBgColor(bool useBgColor);
52 void setUseCustomBlendingOptions(bool useCustomBlendingOptions);
53 void setCustomOpacity(qreal customOpacity);
54 void setCustomCompositeOp(const QString &customCompositeOp);
55 void setOutDirtyRect(QSharedPointer<QRect> outDirtyRect);
56 void setProgressHelper(QSharedPointer<ProgressHelper> progressHelper);
57
58private:
59 void visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter) override;
60 void visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override;
61 void visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override;
62
63 void fillPaintDevice(KisPaintDeviceSP device, KisUndoAdapter *undoAdapter);
64
65 void selectionFill(KisPaintDeviceSP device, const QRect &fillRect, KisUndoAdapter *undoAdapter);
66 void normalFill(KisPaintDeviceSP device, const QRect &fillRect, const QPoint &seedPoint, KisUndoAdapter *undoAdapter);
67 void continuousFill(KisPaintDeviceSP device, const QRect &fillRect, const QPoint &seedPoint, KisUndoAdapter *undoAdapter);
68
69private:
73
88
91 QSharedPointer<KoColor> m_continuousFillReferenceColor {nullptr};
92
95
99
101
102 QSharedPointer<ProgressHelper> m_progressHelper {nullptr};
103};
104
105#endif /* __FILL_PROCESSING_VISITOR_H */
KisResourcesSnapshotSP m_resources
QSharedPointer< QRect > m_outDirtyRect
ContinuousFillMode m_continuousFillMode
KisFillPainter::RegionFillingMode m_regionFillingMode
virtual void visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter)=0
virtual void visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter)=0
virtual void visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter)=0