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

#include <kis_cage_transform_strategy.h>

+ Inheritance diagram for KisCageTransformStrategy:

Classes

struct  Private
 

Public Member Functions

 KisCageTransformStrategy (const KisCoordinatesConverter *converter, KoSnapGuide *snapGuide, ToolTransformArgs &currentArgs, TransformTransactionProperties &transaction)
 
 ~KisCageTransformStrategy () override
 
- Public Member Functions inherited from KisWarpTransformStrategy
bool acceptsClicks () const override
 
bool beginPrimaryAction (const QPointF &pt) override
 
virtual bool beginPrimaryAction (KoPointerEvent *event)=0
 
void continuePrimaryAction (const QPointF &pt, bool shiftModifierActive, bool altModifierActive) override
 
virtual void continuePrimaryAction (KoPointerEvent *event)=0
 
bool endPrimaryAction () override
 
virtual bool endPrimaryAction (KoPointerEvent *event)=0
 
void externalConfigChanged () override
 
QCursor getCurrentCursor () const override
 
 KisWarpTransformStrategy (const KisCoordinatesConverter *converter, KoSnapGuide *snapGuide, ToolTransformArgs &currentArgs, TransformTransactionProperties &transaction)
 
void paint (QPainter &gc) override
 
void setTransformFunction (const QPointF &mousePos, bool perspectiveModifierActive, bool shiftModifierActive, bool altModifierActive) override
 
void setTransformType (TransformType type)
 
 ~KisWarpTransformStrategy () override
 
- Public Member Functions inherited from KisSimplifiedActionPolicyStrategy
void activateAlternateAction (KisTool::AlternateAction action) override
 
void activatePrimaryAction () override
 
bool beginAlternateAction (KoPointerEvent *event, KisTool::AlternateAction action) override
 
void continueAlternateAction (KoPointerEvent *event, KisTool::AlternateAction action) override
 
void deactivateAlternateAction (KisTool::AlternateAction action) override
 
bool endAlternateAction (KoPointerEvent *event, KisTool::AlternateAction action) override
 
virtual QPointF handleSnapPoint (const QPointF &imagePos)
 
void hoverActionCommon (KoPointerEvent *event) override
 
 KisSimplifiedActionPolicyStrategy (const KisCoordinatesConverter *_converter, KoSnapGuide *snapGuide=0)
 
 ~KisSimplifiedActionPolicyStrategy () override
 
- Public Member Functions inherited from KisTransformStrategyBase
virtual void deactivatePrimaryAction ()
 
virtual int decorationThickness () const
 
virtual QPainterPath getCursorOutline () const
 
 KisTransformStrategyBase ()
 
QImage originalImage () const
 
virtual void setDecorationThickness (int thickness)
 
void setThumbnailImage (const QImage &image, QTransform thumbToImageTransform)
 
QTransform thumbToImageTransform () const
 
 ~KisTransformStrategyBase () override
 

Protected Member Functions

QImage calculateTransformedImage (ToolTransformArgs &currentArgs, const QImage &srcImage, const QVector< QPointF > &origPoints, const QVector< QPointF > &transfPoints, const QPointF &srcOffset, QPointF *dstOffset) override
 
void drawConnectionLines (QPainter &gc, const QVector< QPointF > &origPoints, const QVector< QPointF > &transfPoints, bool isEditingPoints) override
 
- Protected Member Functions inherited from KisWarpTransformStrategy
void overrideDrawingItems (bool drawConnectionLines, bool drawOrigPoints, bool drawTransfPoints)
 
void setClipOriginalPointsPosition (bool value)
 
void setCloseOnStartPointClick (bool value)
 
- Protected Member Functions inherited from KisSimplifiedActionPolicyStrategy
virtual void hoverActionCommon (const QPointF &pt)
 
virtual bool shiftModifierIsUsed () const
 

Private Attributes

const QScopedPointer< Privatem_d
 

Additional Inherited Members

- Signals inherited from KisWarpTransformStrategy
void requestCanvasUpdate ()
 
void requestImageRecalculation ()
 

Detailed Description

Definition at line 23 of file kis_cage_transform_strategy.h.

Constructor & Destructor Documentation

◆ KisCageTransformStrategy()

KisCageTransformStrategy::KisCageTransformStrategy ( const KisCoordinatesConverter * converter,
KoSnapGuide * snapGuide,
ToolTransformArgs & currentArgs,
TransformTransactionProperties & transaction )

Definition at line 29 of file kis_cage_transform_strategy.cpp.

33 : KisWarpTransformStrategy(converter, snapGuide, currentArgs, transaction),
34 m_d(new Private(this))
35{
36 overrideDrawingItems(true, false, true);
40
41}
const QScopedPointer< Private > m_d
void setTransformType(TransformType type)
KisWarpTransformStrategy(const KisCoordinatesConverter *converter, KoSnapGuide *snapGuide, ToolTransformArgs &currentArgs, TransformTransactionProperties &transaction)
void overrideDrawingItems(bool drawConnectionLines, bool drawOrigPoints, bool drawTransfPoints)

References CAGE_TRANSFORM, KisWarpTransformStrategy::overrideDrawingItems(), KisWarpTransformStrategy::setClipOriginalPointsPosition(), KisWarpTransformStrategy::setCloseOnStartPointClick(), and KisWarpTransformStrategy::setTransformType().

◆ ~KisCageTransformStrategy()

KisCageTransformStrategy::~KisCageTransformStrategy ( )
override

Definition at line 43 of file kis_cage_transform_strategy.cpp.

44{
45}

Member Function Documentation

◆ calculateTransformedImage()

QImage KisCageTransformStrategy::calculateTransformedImage ( ToolTransformArgs & currentArgs,
const QImage & srcImage,
const QVector< QPointF > & origPoints,
const QVector< QPointF > & transfPoints,
const QPointF & srcOffset,
QPointF * dstOffset )
overrideprotectedvirtual

Reimplemented from KisWarpTransformStrategy.

Definition at line 75 of file kis_cage_transform_strategy.cpp.

81{
82 KisCageTransformWorker worker(srcImage,
83 srcOffset,
84 origPoints,
85 0,
86 currentArgs.previewPixelPrecision());
87 worker.prepareTransform();
88 worker.setTransformedCage(transfPoints);
89 return worker.runOnQImage(dstOffset);
90}
int previewPixelPrecision() const

References KisCageTransformWorker::prepareTransform(), ToolTransformArgs::previewPixelPrecision(), KisCageTransformWorker::runOnQImage(), and KisCageTransformWorker::setTransformedCage().

◆ drawConnectionLines()

void KisCageTransformStrategy::drawConnectionLines ( QPainter & gc,
const QVector< QPointF > & origPoints,
const QVector< QPointF > & transfPoints,
bool isEditingPoints )
overrideprotectedvirtual

Reimplemented from KisWarpTransformStrategy.

Definition at line 47 of file kis_cage_transform_strategy.cpp.

51{
52 const int numPoints = origPoints.size();
53 if (numPoints <= 1) return;
54
55 QPen antsPen;
56 QPen outlinePen;
57
58 KisPaintingTweaks::initAntsPen(&antsPen, &outlinePen);
59 antsPen.setWidth(qMax(1, decorationThickness()));
60 outlinePen.setWidth(qMax(1, decorationThickness()));
61
62 const int iterateLimit = isEditingPoints ? numPoints : numPoints + 1;
63
64 for (int i = 1; i < iterateLimit; ++i) {
65 int idx = i % numPoints;
66 int prevIdx = (i - 1) % numPoints;
67
68 gc.setPen(outlinePen);
69 gc.drawLine(transfPoints[prevIdx], transfPoints[idx]);
70 gc.setPen(antsPen);
71 gc.drawLine(transfPoints[prevIdx], transfPoints[idx]);
72 }
73}
void initAntsPen(QPen *antsPen, QPen *outlinePen, int antLength, int antSpace)

References KisTransformStrategyBase::decorationThickness(), and KisPaintingTweaks::initAntsPen().

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisCageTransformStrategy::m_d
private

Definition at line 47 of file kis_cage_transform_strategy.h.


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