Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_transform_processing_visitor.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_TRANSFORM_PROCESSING_VISITOR_H
8#define __KIS_TRANSFORM_PROCESSING_VISITOR_H
9
12
13#include <kis_types.h>
14
15#include <QTransform>
16
18
19
21{
22public:
23 KisTransformProcessingVisitor(qreal xscale, qreal yscale,
24 qreal xshear, qreal yshear, qreal angle,
25 qreal tx, qreal ty,
26 KisFilterStrategy *filter,
27 const QTransform &shapesCorrection = QTransform());
28
29 void setSelection(KisSelectionSP selection);
31
32
33 void visit(KisNode *node, KisUndoAdapter *undoAdapter) override;
34 void visit(KisPaintLayer *layer, KisUndoAdapter *undoAdapter) override;
35 void visit(KisGroupLayer *layer, KisUndoAdapter *undoAdapter) override;
36 void visit(KisAdjustmentLayer *layer, KisUndoAdapter *undoAdapter) override;
37 void visit(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override;
38 void visit(KisGeneratorLayer *layer, KisUndoAdapter *undoAdapter) override;
39 void visit(KisCloneLayer *layer, KisUndoAdapter *undoAdapter) override;
40 void visit(KisFilterMask *mask, KisUndoAdapter *undoAdapter) override;
41 void visit(KisTransformMask *mask, KisUndoAdapter *undoAdapter) override;
42 void visit(KisTransparencyMask *mask, KisUndoAdapter *undoAdapter) override;
43 void visit(KisSelectionMask *mask, KisUndoAdapter *undoAdapter) override;
44 void visit(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override;
45
46private:
47 void transformClones(KisLayer *layer, KisUndoAdapter *undoAdapter);
48 void transformPaintDevice(KisPaintDeviceSP device, KisUndoAdapter *adapter, const ProgressHelper &helper);
49 void transformSelection(KisSelectionSP selection, KisUndoAdapter *adapter, const ProgressHelper &helper);
50
51 void transformOneDevice(KisPaintDeviceSP device, KoUpdater *updater);
52
53private:
54 qreal m_sx, m_sy;
55 qreal m_tx, m_ty;
56 qreal m_shearx, m_sheary;
58 qreal m_angle;
61};
62
63#endif /* __KIS_TRANSFORM_PROCESSING_VISITOR_H */
virtual KUndo2Command * createInitCommand()
virtual void visit(KisNode *node, KisUndoAdapter *undoAdapter)=0
KisSelectionBasedProcessingHelper m_selectionHelper