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 void decreaseBrushSize (KoCanvasBase *canvas)
 
virtual QPainterPath getCursorOutline () const
 
virtual void increaseBrushSize (KoCanvasBase *canvas)
 
 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: