Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMirrorProcessingVisitor Class Reference

#include <kis_mirror_processing_visitor.h>

+ Inheritance diagram for KisMirrorProcessingVisitor:

Public Member Functions

 KisMirrorProcessingVisitor (const QRect &bounds, Qt::Orientation orientation)
 
 KisMirrorProcessingVisitor (KisSelectionSP selection, Qt::Orientation orientation)
 
- Public Member Functions inherited from KisSimpleProcessingVisitor
void visit (KisAdjustmentLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisCloneLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisFilterMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisGeneratorLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisGroupLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisNode *node, KisUndoAdapter *undoAdapter) override
 
void visit (KisPaintLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visit (KisSelectionMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransformMask *mask, KisUndoAdapter *undoAdapter) override
 
void visit (KisTransparencyMask *mask, KisUndoAdapter *undoAdapter) override
 
 ~KisSimpleProcessingVisitor () override
 
- Public Member Functions inherited from KisProcessingVisitor
virtual ~KisProcessingVisitor ()
 
- Public Member Functions inherited from KisShared
bool deref ()
 
bool ref ()
 
int refCount ()
 
QAtomicInt * sharedWeakReference ()
 

Private Member Functions

KUndo2CommandcreateInitCommand () override
 
void mirrorDevice (KisPaintDeviceSP device)
 
void transformPaintDevice (KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)
 
void visitColorizeMask (KisColorizeMask *node, KisUndoAdapter *undoAdapter) override
 
void visitExternalLayer (KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
 
void visitNodeWithPaintDevice (KisNode *node, KisUndoAdapter *undoAdapter) override
 

Private Attributes

qreal m_axis = 0.0
 
QRect m_bounds
 
Qt::Orientation m_orientation
 
KisSelectionBasedProcessingHelper m_selectionHelper
 

Additional Inherited Members

- Protected Member Functions inherited from KisShared
 KisShared ()
 
 ~KisShared ()
 

Detailed Description

Definition at line 17 of file kis_mirror_processing_visitor.h.

Constructor & Destructor Documentation

◆ KisMirrorProcessingVisitor() [1/2]

KisMirrorProcessingVisitor::KisMirrorProcessingVisitor ( const QRect & bounds,
Qt::Orientation orientation )

Definition at line 23 of file kis_mirror_processing_visitor.cpp.

25 m_orientation(orientation),
26 m_selectionHelper(0, std::bind(&KisMirrorProcessingVisitor::mirrorDevice, this, std::placeholders::_1))
27{
28 m_axis = m_orientation == Qt::Horizontal ?
29 m_bounds.x() + 0.5 * m_bounds.width() :
30 m_bounds.y() + 0.5 * m_bounds.height();
31}
KisSelectionBasedProcessingHelper m_selectionHelper
void mirrorDevice(KisPaintDeviceSP device)
#define bounds(x, a, b)

References m_axis, m_bounds, and m_orientation.

◆ KisMirrorProcessingVisitor() [2/2]

KisMirrorProcessingVisitor::KisMirrorProcessingVisitor ( KisSelectionSP selection,
Qt::Orientation orientation )

Definition at line 33 of file kis_mirror_processing_visitor.cpp.

34 : KisMirrorProcessingVisitor(selection->selectedExactRect(), orientation)
35{
37}
KisMirrorProcessingVisitor(const QRect &bounds, Qt::Orientation orientation)
QRect selectedExactRect() const
Slow, but exact way of determining the rectangle that encloses the selection.

References m_selectionHelper, and KisSelectionBasedProcessingHelper::setSelection().

Member Function Documentation

◆ createInitCommand()

KUndo2Command * KisMirrorProcessingVisitor::createInitCommand ( )
overrideprivatevirtual

Create a command that initializes the processing visitor before running on all the layers. The command is executed sequentially, non-exclusively on the image by applicator.

Reimplemented from KisProcessingVisitor.

Definition at line 39 of file kis_mirror_processing_visitor.cpp.

References KisSelectionBasedProcessingHelper::createInitCommand(), and m_selectionHelper.

◆ mirrorDevice()

void KisMirrorProcessingVisitor::mirrorDevice ( KisPaintDeviceSP device)
private

Definition at line 44 of file kis_mirror_processing_visitor.cpp.

45{
47}
static void mirror(KisPaintDeviceSP dev, qreal axis, Qt::Orientation orientation)

References m_axis, m_orientation, and KisTransformWorker::mirror().

◆ transformPaintDevice()

void KisMirrorProcessingVisitor::transformPaintDevice ( KisPaintDeviceSP device,
KisUndoAdapter * undoAdapter )
private

Definition at line 49 of file kis_mirror_processing_visitor.cpp.

50{
51 m_selectionHelper.transformPaintDevice(device, undoAdapter);
52}
void transformPaintDevice(KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)

References m_selectionHelper, and KisSelectionBasedProcessingHelper::transformPaintDevice().

◆ visitColorizeMask()

void KisMirrorProcessingVisitor::visitColorizeMask ( KisColorizeMask * node,
KisUndoAdapter * undoAdapter )
overrideprivatevirtual

Implements KisSimpleProcessingVisitor.

Definition at line 78 of file kis_mirror_processing_visitor.cpp.

79{
81
82 Q_FOREACH (KisPaintDeviceSP device, devices) {
83 transformPaintDevice(device, undoAdapter);
84 }
85}
QVector< KisPaintDeviceSP > allPaintDevices() const
void transformPaintDevice(KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)

References KisColorizeMask::allPaintDevices(), and transformPaintDevice().

◆ visitExternalLayer()

void KisMirrorProcessingVisitor::visitExternalLayer ( KisExternalLayer * layer,
KisUndoAdapter * undoAdapter )
overrideprivatevirtual

Implements KisSimpleProcessingVisitor.

Definition at line 59 of file kis_mirror_processing_visitor.cpp.

60{
61 if (m_orientation == Qt::Horizontal) {
62 KisTransformProcessingVisitor visitor(-1.0, 1.0,
63 0.0, 0.0,
64 0.0,
65 m_bounds.width(), 0.0,
66 0);
67 visitor.visit(layer, undoAdapter);
68 } else {
69 KisTransformProcessingVisitor visitor(1.0, -1.0,
70 0.0, 0.0,
71 0.0,
72 0.0, m_bounds.height(),
73 0);
74 visitor.visit(layer, undoAdapter);
75 }
76}

References m_bounds, m_orientation, and KisTransformProcessingVisitor::visit().

◆ visitNodeWithPaintDevice()

void KisMirrorProcessingVisitor::visitNodeWithPaintDevice ( KisNode * node,
KisUndoAdapter * undoAdapter )
overrideprivatevirtual

Implements KisSimpleProcessingVisitor.

Definition at line 54 of file kis_mirror_processing_visitor.cpp.

55{
56 transformPaintDevice(node->paintDevice(), undoAdapter);
57}
virtual KisPaintDeviceSP paintDevice() const =0

References KisBaseNode::paintDevice(), and transformPaintDevice().

Member Data Documentation

◆ m_axis

qreal KisMirrorProcessingVisitor::m_axis = 0.0
private

Definition at line 38 of file kis_mirror_processing_visitor.h.

◆ m_bounds

QRect KisMirrorProcessingVisitor::m_bounds
private

Definition at line 36 of file kis_mirror_processing_visitor.h.

◆ m_orientation

Qt::Orientation KisMirrorProcessingVisitor::m_orientation
private

Definition at line 37 of file kis_mirror_processing_visitor.h.

◆ m_selectionHelper

KisSelectionBasedProcessingHelper KisMirrorProcessingVisitor::m_selectionHelper
private

Definition at line 40 of file kis_mirror_processing_visitor.h.


The documentation for this class was generated from the following files: