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

#include <tool_transform_args.h>

+ Inheritance diagram for ToolTransformArgs:

Public Types

enum  TransformMode {
  FREE_TRANSFORM = 0 , WARP , CAGE , LIQUIFY ,
  PERSPECTIVE_4POINT , MESH , N_MODES
}
 

Public Member Functions

double alpha () const
 
double aX () const
 
double aY () const
 
double aZ () const
 
double boundsRotation () const
 
QVector3D cameraPos () const
 
KisToolChangesTrackerDataclone () const override
 
const ToolTransformArgscontinuedTransform () const
 
bool defaultPoints () const
 
KisPaintDeviceSP externalSource () const
 
KisFilterStrategyfilter () const
 
QString filterId () const
 
QTransform flattenedPerspectiveTransform () const
 
void initLiquifyTransformMode (const QRect &srcRect)
 
bool isEditingTransformPoints () const
 
bool isIdentity () const
 
bool isSameMode (const ToolTransformArgs &other) const
 
bool isUnchanging () const
 
bool keepAspectRatio () const
 
KisLiquifyPropertiesliquifyProperties ()
 
const KisLiquifyPropertiesliquifyProperties () const
 
KisLiquifyTransformWorkerliquifyWorker () const
 
bool meshScaleHandles () const
 
bool meshShowHandles () const
 
bool meshSymmetricalHandles () const
 
KisBezierTransformMeshmeshTransform ()
 
const KisBezierTransformMeshmeshTransform () const
 
TransformMode mode () const
 
int numPoints () const
 
ToolTransformArgsoperator= (const ToolTransformArgs &args)
 
bool operator== (const ToolTransformArgs &other) const
 
QPointF originalCenter () const
 
QPointF & origPoint (int i)
 
const QVector< QPointF > & origPoints () const
 
int pixelPrecision () const
 
int previewPixelPrecision () const
 
QVector< QPointF > & refOriginalPoints ()
 
QVector< QPointF > & refTransformedPoints ()
 
void restoreContinuedState ()
 
QPointF rotationCenterOffset () const
 
void saveContinuedState ()
 
void saveLiquifyTransformMode () const
 
void scale3dSrcAndDst (qreal scale)
 
double scaleX () const
 
double scaleY () const
 
void setAlpha (double alpha)
 
void setAX (double aX)
 
void setAY (double aY)
 
void setAZ (double aZ)
 
void setBoundsRotation (double boundsRotation)
 
void setCameraPos (const QVector3D &pos)
 
void setDefaultPoints (bool defaultPoints)
 
void setEditingTransformPoints (bool value)
 
void setExternalSource (KisPaintDeviceSP externalSource)
 
void setFilterId (const QString &id)
 
void setFlattenedPerspectiveTransform (const QTransform &value)
 
void setKeepAspectRatio (bool value)
 
void setMeshScaleHandles (bool meshScaleHandles)
 
void setMeshShowHandles (bool value)
 
void setMeshSymmetricalHandles (bool meshSymmetricalHandles)
 
void setMode (TransformMode mode)
 
void setOriginalCenter (QPointF originalCenter)
 
void setPixelPrecision (int precision)
 
void setPoints (QVector< QPointF > origPoints, QVector< QPointF > transfPoints)
 
void setPreviewPixelPrecision (int precision)
 
void setRotationCenterOffset (QPointF rotationCenterOffset)
 
void setScaleX (double scaleX)
 
void setScaleY (double scaleY)
 
void setShearX (double shearX)
 
void setShearY (double shearY)
 
void setTransformAroundRotationCenter (bool value)
 
void setTransformedCenter (QPointF transformedCenter)
 
void setWarpCalculation (KisWarpTransformWorker::WarpCalculation warpCalc)
 
void setWarpType (KisWarpTransformWorker::WarpType warpType)
 
double shearX () const
 
double shearY () const
 
 ToolTransformArgs ()
 
 ToolTransformArgs (const ToolTransformArgs &args)
 
 ToolTransformArgs (TransformMode mode, QPointF transformedCenter, QPointF originalCenter, QPointF rotationCenterOffset, bool transformAroundRotationCenter, double aX, double aY, double aZ, double scaleX, double scaleY, double shearX, double shearY, double boundsRotation, KisWarpTransformWorker::WarpType warpType, double alpha, bool defaultPoints, const QString &filterId, int pixelPrecision, int previewPixelPrecision, KisPaintDeviceSP externalSource)
 
void toXML (QDomElement *e) const
 
bool transformAroundRotationCenter () const
 
QPointF transformedCenter () const
 
void transformSrcAndDst (const QTransform &t)
 
QPointF & transfPoint (int i)
 
const QVector< QPointF > & transfPoints () const
 
void translateDstSpace (const QPointF &offset)
 
void translateSrcAndDst (const QPointF &offset)
 
KisWarpTransformWorker::WarpCalculation warpCalculation ()
 
KisWarpTransformWorker::WarpType warpType () const
 
 ~ToolTransformArgs ()
 
- Public Member Functions inherited from KisToolChangesTrackerData
virtual ~KisToolChangesTrackerData ()
 

Static Public Member Functions

static ToolTransformArgs fromXML (const QDomElement &e)
 

Private Member Functions

void clear ()
 
void init (const ToolTransformArgs &args)
 

Private Attributes

double m_alpha {1.0}
 
double m_aX {0}
 
double m_aY {0}
 
double m_aZ {0}
 
double m_boundsRotation {0.0}
 
QVector3D m_cameraPos {QVector3D(0,0,1024)}
 
QScopedPointer< ToolTransformArgsm_continuedTransformation
 
bool m_defaultPoints {true}
 
bool m_editTransformPoints {false}
 
KisPaintDeviceSP m_externalSource
 
KisFilterStrategym_filter {0}
 
QTransform m_flattenedPerspectiveTransform
 
bool m_keepAspectRatio {false}
 
QSharedPointer< KisLiquifyPropertiesm_liquifyProperties
 
QScopedPointer< KisLiquifyTransformWorkerm_liquifyWorker
 
bool m_meshScaleHandles = false
 
bool m_meshShowHandles = true
 
bool m_meshSymmetricalHandles = true
 
KisBezierTransformMesh m_meshTransform
 
TransformMode m_mode {ToolTransformArgs::TransformMode::FREE_TRANSFORM}
 
QPointF m_originalCenter
 
QVector< QPointF > m_origPoints
 
int m_pixelPrecision {8}
 
int m_previewPixelPrecision {16}
 
QPointF m_rotationCenterOffset
 
double m_scaleX {1.0}
 
double m_scaleY {1.0}
 
double m_shearX {0.0}
 
double m_shearY {0.0}
 
bool m_transformAroundRotationCenter {false}
 
QPointF m_transformedCenter
 
QVector< QPointF > m_transfPoints
 
KisWarpTransformWorker::WarpCalculation m_warpCalculation {KisWarpTransformWorker::WarpCalculation::DRAW}
 
KisWarpTransformWorker::WarpType m_warpType {KisWarpTransformWorker::WarpType_::RIGID_TRANSFORM}
 

Detailed Description

Class used to store the parameters of a transformation. Some parameters are specific to free transform mode, and others to warp mode : maybe add a union to save a little more memory.

Definition at line 34 of file tool_transform_args.h.

Member Enumeration Documentation

◆ TransformMode

Enumerator
FREE_TRANSFORM 
WARP 
CAGE 
LIQUIFY 
PERSPECTIVE_4POINT 
MESH 
N_MODES 

Definition at line 37 of file tool_transform_args.h.

Constructor & Destructor Documentation

◆ ToolTransformArgs() [1/3]

ToolTransformArgs::ToolTransformArgs ( )

Initializes the parameters for an identity transformation, with mode set to free transform.

Definition at line 22 of file tool_transform_args.cc.

24{
25 KConfigGroup configGroup = KSharedConfig::openConfig()->group("KisToolTransform");
26 QString savedFilterId = configGroup.readEntry("filterId", "Bicubic");
27 setFilterId(savedFilterId);
28 m_transformAroundRotationCenter = configGroup.readEntry("transformAroundRotationCenter", "0").toInt();
29 m_meshShowHandles = configGroup.readEntry("meshShowHandles", true);
30 m_meshSymmetricalHandles = configGroup.readEntry("meshSymmetricalHandles", true);
31 m_meshScaleHandles = configGroup.readEntry("meshScaleHandles", false);
32}
void setFilterId(const QString &id)
QSharedPointer< KisLiquifyProperties > m_liquifyProperties

References m_meshScaleHandles, m_meshShowHandles, m_meshSymmetricalHandles, m_transformAroundRotationCenter, and setFilterId().

◆ ToolTransformArgs() [2/3]

ToolTransformArgs::ToolTransformArgs ( const ToolTransformArgs & args)

The object return will be a copy of args.

Definition at line 112 of file tool_transform_args.cc.

114{
115 init(args);
116}
void init(const ToolTransformArgs &args)

References init().

◆ ToolTransformArgs() [3/3]

ToolTransformArgs::ToolTransformArgs ( TransformMode mode,
QPointF transformedCenter,
QPointF originalCenter,
QPointF rotationCenterOffset,
bool transformAroundRotationCenter,
double aX,
double aY,
double aZ,
double scaleX,
double scaleY,
double shearX,
double shearY,
double boundsRotation,
KisWarpTransformWorker::WarpType warpType,
double alpha,
bool defaultPoints,
const QString & filterId,
int pixelPrecision,
int previewPixelPrecision,
KisPaintDeviceSP externalSource )

If mode is warp, original and transformed vector points will be of size 0. Use setPoints method to set those vectors.

Definition at line 229 of file tool_transform_args.cc.

244 : m_mode(mode)
249 , m_alpha(alpha)
254 , m_aX(aX)
255 , m_aY(aY)
256 , m_aZ(aZ)
266{
268}
QPointF transformedCenter() const
KisPaintDeviceSP m_externalSource
bool transformAroundRotationCenter() const
int previewPixelPrecision() const
QVector< QPointF > m_transfPoints
KisWarpTransformWorker::WarpType warpType() const
QVector< QPointF > m_origPoints
QPointF originalCenter() const
QPointF rotationCenterOffset() const
KisWarpTransformWorker::WarpType m_warpType
double boundsRotation() const
QString filterId() const
TransformMode mode() const
KisPaintDeviceSP externalSource() const

References filterId(), and setFilterId().

◆ ~ToolTransformArgs()

ToolTransformArgs::~ToolTransformArgs ( )

Definition at line 271 of file tool_transform_args.cc.

272{
273 clear();
274}

References clear().

Member Function Documentation

◆ alpha()

double ToolTransformArgs::alpha ( ) const
inline

Definition at line 141 of file tool_transform_args.h.

141 {
142 return m_alpha;
143 }

◆ aX()

double ToolTransformArgs::aX ( ) const
inline

Definition at line 181 of file tool_transform_args.h.

181 {
182 return m_aX;
183 }

◆ aY()

double ToolTransformArgs::aY ( ) const
inline

Definition at line 184 of file tool_transform_args.h.

184 {
185 return m_aY;
186 }

◆ aZ()

double ToolTransformArgs::aZ ( ) const
inline

Definition at line 187 of file tool_transform_args.h.

187 {
188 return m_aZ;
189 }

◆ boundsRotation()

double ToolTransformArgs::boundsRotation ( ) const
inline

Definition at line 208 of file tool_transform_args.h.

208 {
209 return m_boundsRotation;
210 }

◆ cameraPos()

QVector3D ToolTransformArgs::cameraPos ( ) const
inline

Definition at line 190 of file tool_transform_args.h.

190 {
191 return m_cameraPos;
192 }

◆ clear()

void ToolTransformArgs::clear ( )
private

Definition at line 105 of file tool_transform_args.cc.

106{
107 m_origPoints.clear();
108 m_transfPoints.clear();
110}
KisBezierTransformMeshDetail::KisBezierTransformMesh KisBezierTransformMesh
KisBezierTransformMesh m_meshTransform

References m_meshTransform, m_origPoints, and m_transfPoints.

◆ clone()

KisToolChangesTrackerData * ToolTransformArgs::clone ( ) const
overridevirtual

Reimplemented from KisToolChangesTrackerData.

Definition at line 118 of file tool_transform_args.cc.

119{
120 return new ToolTransformArgs(*this);
121}

References ToolTransformArgs().

◆ continuedTransform()

const ToolTransformArgs * ToolTransformArgs::continuedTransform ( ) const

Definition at line 575 of file tool_transform_args.cc.

576{
577 return m_continuedTransformation.data();
578}
QScopedPointer< ToolTransformArgs > m_continuedTransformation

References m_continuedTransformation.

◆ defaultPoints()

bool ToolTransformArgs::defaultPoints ( ) const
inline

Definition at line 144 of file tool_transform_args.h.

144 {
145 return m_defaultPoints;
146 }

◆ externalSource()

KisPaintDeviceSP ToolTransformArgs::externalSource ( ) const
inline

Definition at line 105 of file tool_transform_args.h.

105 {
106 return m_externalSource;
107 }

◆ filter()

KisFilterStrategy * ToolTransformArgs::filter ( ) const
inline

Definition at line 260 of file tool_transform_args.h.

260 {
261 return m_filter;
262 }
KisFilterStrategy * m_filter

◆ filterId()

QString ToolTransformArgs::filterId ( ) const
inline

Definition at line 254 of file tool_transform_args.h.

254 {
255 return m_filter->id();
256 }

◆ flattenedPerspectiveTransform()

QTransform ToolTransformArgs::flattenedPerspectiveTransform ( ) const
inline

Definition at line 273 of file tool_transform_args.h.

273 {
275 }
QTransform m_flattenedPerspectiveTransform

◆ fromXML()

ToolTransformArgs ToolTransformArgs::fromXML ( const QDomElement & e)
static

Definition at line 443 of file tool_transform_args.cc.

444{
446
447 int newMode = e.attribute("mode", "0").toInt();
448 if (newMode < 0 || newMode >= N_MODES) return ToolTransformArgs();
449
450 args.m_mode = (TransformMode) newMode;
451
452 // reset explicitly
453 args.m_editTransformPoints = false;
454
455 bool result = false;
456
457 if (args.m_mode == FREE_TRANSFORM || args.m_mode == PERSPECTIVE_4POINT) {
458
459 QDomElement freeEl;
460
461 QString filterId;
462
463 result =
464 KisDomUtils::findOnlyElement(e, "free_transform", &freeEl) &&
465
466 KisDomUtils::loadValue(freeEl, "transformedCenter", &args.m_transformedCenter) &&
467 KisDomUtils::loadValue(freeEl, "originalCenter", &args.m_originalCenter) &&
468 KisDomUtils::loadValue(freeEl, "rotationCenterOffset", &args.m_rotationCenterOffset) &&
469
470 KisDomUtils::loadValue(freeEl, "aX", &args.m_aX) &&
471 KisDomUtils::loadValue(freeEl, "aY", &args.m_aY) &&
472 KisDomUtils::loadValue(freeEl, "aZ", &args.m_aZ) &&
473
474 KisDomUtils::loadValue(freeEl, "cameraPos", &args.m_cameraPos) &&
475
476 KisDomUtils::loadValue(freeEl, "scaleX", &args.m_scaleX) &&
477 KisDomUtils::loadValue(freeEl, "scaleY", &args.m_scaleY) &&
478
479 KisDomUtils::loadValue(freeEl, "shearX", &args.m_shearX) &&
480 KisDomUtils::loadValue(freeEl, "shearY", &args.m_shearY) &&
481
482 KisDomUtils::loadValue(freeEl, "keepAspectRatio", &args.m_keepAspectRatio) &&
483 KisDomUtils::loadValue(freeEl, "flattenedPerspectiveTransform", &args.m_flattenedPerspectiveTransform) &&
484 KisDomUtils::loadValue(freeEl, "filterId", &filterId);
485
486 // transformAroundRotationCenter is a new parameter introduced in Krita 4.0,
487 // so it might be not present in older transform masks
488 if (!KisDomUtils::loadValue(freeEl, "transformAroundRotationCenter", &args.m_transformAroundRotationCenter)) {
490 }
491
492 // bounds rotation is currently not supported by transform masks, so it should be null for them
493 if (!KisDomUtils::loadValue(freeEl, "boundsRotation", &args.m_boundsRotation)) {
494 args.m_boundsRotation = 0.0;
495 }
496
497 if (result) {
499 result = (bool) args.m_filter;
500 }
501
502 } else if (args.m_mode == WARP || args.m_mode == CAGE) {
503 QDomElement warpEl;
504
505 int warpType = 0;
506
507 result =
508 KisDomUtils::findOnlyElement(e, "warp_transform", &warpEl) &&
509
510 KisDomUtils::loadValue(warpEl, "defaultPoints", &args.m_defaultPoints) &&
511
512 KisDomUtils::loadValue(warpEl, "originalPoints", &args.m_origPoints) &&
513 KisDomUtils::loadValue(warpEl, "transformedPoints", &args.m_transfPoints) &&
514
515 KisDomUtils::loadValue(warpEl, "warpType", &warpType) &&
516 KisDomUtils::loadValue(warpEl, "alpha", &args.m_alpha);
517
518 if(args.m_mode == CAGE){
519 // Pixel precision is a parameter introduced in Krita 4.2, so we should
520 // expect it not being present in older files. In case it is not found,
521 // just use the default value initialized by c-tor (that is, do nothing).
522
523 (void) KisDomUtils::loadValue(warpEl, "pixelPrecision", &args.m_pixelPrecision);
524 (void) KisDomUtils::loadValue(warpEl, "previewPixelPrecision", &args.m_previewPixelPrecision);
525 }
526
527 if (result && warpType >= 0 && warpType < KisWarpTransformWorker::N_MODES) {
529 } else {
530 result = false;
531 }
532
533 } else if (args.m_mode == LIQUIFY) {
534 QDomElement liquifyEl;
535
536 result =
537 KisDomUtils::findOnlyElement(e, "liquify_transform", &liquifyEl);
538
541 } else if (args.m_mode == MESH) {
542 QDomElement meshEl;
543
544 result =
545 KisDomUtils::findOnlyElement(e, "mesh_transform", &meshEl);
546
547 result &= KisDomUtils::loadValue(meshEl, "mesh", &args.m_meshTransform);
548
549 } else {
550 KIS_ASSERT_RECOVER_NOOP(0 && "Unknown transform mode");
551 }
552
554 args = ToolTransformArgs();
555 }
556
557 return args;
558}
static KisFilterStrategyRegistry * instance()
static KisLiquifyProperties fromXML(const QDomElement &e)
const T value(const QString &id) const
QScopedPointer< KisLiquifyTransformWorker > m_liquifyWorker
#define KIS_SAFE_ASSERT_RECOVER(cond)
Definition kis_assert.h:126
#define KIS_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:97
typedef void(QOPENGLF_APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer)
bool findOnlyElement(const QDomElement &parent, const QString &tag, QDomElement *el, QStringList *errorMessages)
bool loadValue(const QDomElement &e, float *v)
static KisLiquifyTransformWorker * fromXML(const QDomElement &e)

References CAGE, filterId(), KisDomUtils::findOnlyElement(), FREE_TRANSFORM, KisLiquifyTransformWorker::fromXML(), KisLiquifyProperties::fromXML(), KisFilterStrategyRegistry::instance(), KIS_ASSERT_RECOVER_NOOP, KIS_SAFE_ASSERT_RECOVER, LIQUIFY, KisDomUtils::loadValue(), m_alpha, m_aX, m_aY, m_aZ, m_boundsRotation, m_cameraPos, m_defaultPoints, m_editTransformPoints, m_filter, m_flattenedPerspectiveTransform, m_keepAspectRatio, m_liquifyProperties, m_liquifyWorker, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_pixelPrecision, m_previewPixelPrecision, m_rotationCenterOffset, m_scaleX, m_scaleY, m_shearX, m_shearY, m_transformAroundRotationCenter, m_transformedCenter, m_transfPoints, m_warpType, MESH, KisWarpTransformWorker::N_MODES, N_MODES, PERSPECTIVE_4POINT, ToolTransformArgs(), KoGenericRegistry< T >::value(), void(), WARP, and warpType().

◆ init()

void ToolTransformArgs::init ( const ToolTransformArgs & args)
private

Definition at line 51 of file tool_transform_args.cc.

52{
53 m_mode = args.mode();
59 m_aX = args.aX();
60 m_aY = args.aY();
61 m_aZ = args.aZ();
62 m_scaleX = args.scaleX();
63 m_scaleY = args.scaleY();
64 m_shearX = args.shearX();
65 m_shearY = args.shearY();
67 m_origPoints = args.origPoints(); //it's a copy
69 m_warpType = args.warpType();
70 m_alpha = args.alpha();
73 m_filter = args.m_filter;
79
80 if (args.m_liquifyWorker) {
82 }
83
88
90}
const QVector< QPointF > & origPoints() const
const QVector< QPointF > & transfPoints() const

References alpha(), aX(), aY(), aZ(), boundsRotation(), defaultPoints(), externalSource(), keepAspectRatio(), m_alpha, m_aX, m_aY, m_aZ, m_boundsRotation, m_cameraPos, m_continuedTransformation, m_defaultPoints, m_editTransformPoints, m_externalSource, m_filter, m_flattenedPerspectiveTransform, m_keepAspectRatio, m_liquifyWorker, m_meshScaleHandles, m_meshShowHandles, m_meshSymmetricalHandles, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_pixelPrecision, m_previewPixelPrecision, m_rotationCenterOffset, m_scaleX, m_scaleY, m_shearX, m_shearY, m_transformAroundRotationCenter, m_transformedCenter, m_transfPoints, m_warpType, mode(), originalCenter(), origPoints(), pixelPrecision(), previewPixelPrecision(), rotationCenterOffset(), scaleX(), scaleY(), shearX(), shearY(), transformAroundRotationCenter(), transformedCenter(), transfPoints(), and warpType().

◆ initLiquifyTransformMode()

void ToolTransformArgs::initLiquifyTransformMode ( const QRect & srcRect)

Definition at line 362 of file tool_transform_args.cc.

363{
364 m_liquifyWorker.reset(new KisLiquifyTransformWorker(srcRect, 0, 8));
365 m_liquifyProperties->loadAndResetMode();
366}

References m_liquifyProperties, and m_liquifyWorker.

◆ isEditingTransformPoints()

bool ToolTransformArgs::isEditingTransformPoints ( ) const
inline

Definition at line 281 of file tool_transform_args.h.

281 {
283 }

◆ isIdentity()

bool ToolTransformArgs::isIdentity ( ) const

Definition at line 331 of file tool_transform_args.cc.

332{
333 if (m_mode == FREE_TRANSFORM) {
335 && m_scaleY == 1 && m_shearX == 0 && m_shearY == 0
336 && m_aX == 0 && m_aY == 0 && m_aZ == 0 && m_boundsRotation == 0);
337 } else if (m_mode == PERSPECTIVE_4POINT) {
339 && m_scaleY == 1 && m_shearX == 0 && m_shearY == 0
340 && m_flattenedPerspectiveTransform.isIdentity());
341 } else if(m_mode == WARP || m_mode == CAGE) {
342 for (int i = 0; i < m_origPoints.size(); ++i)
343 if (m_origPoints[i] != m_transfPoints[i])
344 return false;
345
346 return true;
347 } else if (m_mode == LIQUIFY) {
348 return !m_liquifyWorker || m_liquifyWorker->isIdentity();
349 } else if (m_mode == MESH) {
351 } else {
352 KIS_ASSERT_RECOVER_NOOP(0 && "unknown transform mode");
353 return true;
354 }
355}

References CAGE, FREE_TRANSFORM, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::isIdentity(), KIS_ASSERT_RECOVER_NOOP, LIQUIFY, m_aX, m_aY, m_aZ, m_boundsRotation, m_flattenedPerspectiveTransform, m_liquifyWorker, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_scaleX, m_scaleY, m_shearX, m_shearY, m_transformedCenter, m_transfPoints, MESH, PERSPECTIVE_4POINT, and WARP.

◆ isSameMode()

bool ToolTransformArgs::isSameMode ( const ToolTransformArgs & other) const

Definition at line 179 of file tool_transform_args.cc.

180{
181 if (m_mode != other.m_mode) return false;
182
183 bool result = true;
184
185 if (m_mode == FREE_TRANSFORM) {
186 result &= m_transformedCenter == other.m_transformedCenter;
187 result &= m_originalCenter == other.m_originalCenter;
188 result &= m_scaleX == other.m_scaleX;
189 result &= m_scaleY == other.m_scaleY;
190 result &= m_shearX == other.m_shearX;
191 result &= m_shearY == other.m_shearY;
192 result &= m_boundsRotation == other.m_boundsRotation;
193 result &= m_aX == other.m_aX;
194 result &= m_aY == other.m_aY;
195 result &= m_aZ == other.m_aZ;
196
197 } else if (m_mode == PERSPECTIVE_4POINT) {
198 result &= m_transformedCenter == other.m_transformedCenter;
199 result &= m_originalCenter == other.m_originalCenter;
200 result &= m_scaleX == other.m_scaleX;
201 result &= m_scaleY == other.m_scaleY;
202 result &= m_shearX == other.m_shearX;
203 result &= m_shearY == other.m_shearY;
205
206 } else if(m_mode == WARP || m_mode == CAGE) {
207 result &= m_origPoints == other.m_origPoints;
208 result &= m_transfPoints == other.m_transfPoints;
209
210 } else if (m_mode == LIQUIFY) {
211 result &= m_liquifyProperties &&
214
215 result &=
219
220 } else if (m_mode == MESH) {
221 result &= m_meshTransform == other.m_meshTransform;
222 } else {
223 KIS_SAFE_ASSERT_RECOVER_NOOP(0 && "unknown transform mode");
224 }
225
226 return result;
227}
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130

References CAGE, FREE_TRANSFORM, KIS_SAFE_ASSERT_RECOVER_NOOP, LIQUIFY, m_aX, m_aY, m_aZ, m_boundsRotation, m_flattenedPerspectiveTransform, m_liquifyProperties, m_liquifyWorker, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_scaleX, m_scaleY, m_shearX, m_shearY, m_transformedCenter, m_transfPoints, MESH, PERSPECTIVE_4POINT, and WARP.

◆ isUnchanging()

bool ToolTransformArgs::isUnchanging ( ) const

Definition at line 357 of file tool_transform_args.cc.

358{
359 return !m_externalSource && isIdentity();
360}

References isIdentity(), and m_externalSource.

◆ keepAspectRatio()

bool ToolTransformArgs::keepAspectRatio ( ) const
inline

Definition at line 199 of file tool_transform_args.h.

199 {
200 return m_keepAspectRatio;
201 }

◆ liquifyProperties() [1/2]

KisLiquifyProperties * ToolTransformArgs::liquifyProperties ( )
inline

Definition at line 293 of file tool_transform_args.h.

293 {
294 return m_liquifyProperties.data();
295 }

◆ liquifyProperties() [2/2]

const KisLiquifyProperties * ToolTransformArgs::liquifyProperties ( ) const
inline

Definition at line 289 of file tool_transform_args.h.

289 {
290 return m_liquifyProperties.data();
291 }

◆ liquifyWorker()

KisLiquifyTransformWorker * ToolTransformArgs::liquifyWorker ( ) const
inline

Definition at line 300 of file tool_transform_args.h.

300 {
301 return m_liquifyWorker.data();
302 }

◆ meshScaleHandles()

bool ToolTransformArgs::meshScaleHandles ( ) const

Definition at line 92 of file tool_transform_args.cc.

93{
94 return m_meshScaleHandles;
95}

References m_meshScaleHandles.

◆ meshShowHandles()

bool ToolTransformArgs::meshShowHandles ( ) const

Definition at line 590 of file tool_transform_args.cc.

591{
592 return m_meshShowHandles;
593}

References m_meshShowHandles.

◆ meshSymmetricalHandles()

bool ToolTransformArgs::meshSymmetricalHandles ( ) const

Definition at line 603 of file tool_transform_args.cc.

604{
606}

References m_meshSymmetricalHandles.

◆ meshTransform() [1/2]

KisBezierTransformMesh * ToolTransformArgs::meshTransform ( )

Definition at line 585 of file tool_transform_args.cc.

586{
587 return &m_meshTransform;
588}

References m_meshTransform.

◆ meshTransform() [2/2]

const KisBezierTransformMesh * ToolTransformArgs::meshTransform ( ) const

Definition at line 580 of file tool_transform_args.cc.

581{
582 return &m_meshTransform;
583}

References m_meshTransform.

◆ mode()

TransformMode ToolTransformArgs::mode ( ) const
inline

Definition at line 82 of file tool_transform_args.h.

82 {
83 return m_mode;
84 }

◆ numPoints()

int ToolTransformArgs::numPoints ( ) const
inline

Definition at line 114 of file tool_transform_args.h.

114 {
116 return m_origPoints.size();
117 }

References KIS_ASSERT_RECOVER_NOOP.

◆ operator=()

ToolTransformArgs & ToolTransformArgs::operator= ( const ToolTransformArgs & args)

Definition at line 123 of file tool_transform_args.cc.

124{
125 if (this == &args) return *this;
126
127 clear();
128
130 init(args);
131
132 return *this;
133}

References clear(), init(), and m_liquifyProperties.

◆ operator==()

bool ToolTransformArgs::operator== ( const ToolTransformArgs & other) const

Definition at line 135 of file tool_transform_args.cc.

136{
137 return
138 m_mode == other.m_mode &&
140 m_origPoints == other.m_origPoints &&
142 m_warpType == other.m_warpType &&
143 m_alpha == other.m_alpha &&
148 m_aX == other.m_aX &&
149 m_aY == other.m_aY &&
150 m_aZ == other.m_aZ &&
151 m_cameraPos == other.m_cameraPos &&
152 m_scaleX == other.m_scaleX &&
153 m_scaleY == other.m_scaleY &&
154 m_shearX == other.m_shearX &&
155 m_shearY == other.m_shearY &&
163
164 // pointer types
165
167
168 ((m_filter && other.m_filter &&
169 m_filter->id() == other.m_filter->id())
170 || m_filter == other.m_filter) &&
171
172 ((m_liquifyWorker && other.m_liquifyWorker &&
174 || m_liquifyWorker == other.m_liquifyWorker) &&
177}

References KisFilterStrategy::id(), m_alpha, m_aX, m_aY, m_aZ, m_boundsRotation, m_cameraPos, m_defaultPoints, m_editTransformPoints, m_externalSource, m_filter, m_flattenedPerspectiveTransform, m_keepAspectRatio, m_liquifyProperties, m_liquifyWorker, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_pixelPrecision, m_previewPixelPrecision, m_rotationCenterOffset, m_scaleX, m_scaleY, m_shearX, m_shearY, m_transformAroundRotationCenter, m_transformedCenter, m_transfPoints, and m_warpType.

◆ originalCenter()

QPointF ToolTransformArgs::originalCenter ( ) const
inline

Definition at line 172 of file tool_transform_args.h.

172 {
173 return m_originalCenter;
174 }

◆ origPoint()

QPointF & ToolTransformArgs::origPoint ( int i)
inline

Definition at line 118 of file tool_transform_args.h.

118 {
119 return m_origPoints[i];
120 }

◆ origPoints()

const QVector< QPointF > & ToolTransformArgs::origPoints ( ) const
inline

Definition at line 124 of file tool_transform_args.h.

124 {
125 return m_origPoints;
126 }

◆ pixelPrecision()

int ToolTransformArgs::pixelPrecision ( ) const
inline

Definition at line 89 of file tool_transform_args.h.

89 {
90 return m_pixelPrecision;
91 }

◆ previewPixelPrecision()

int ToolTransformArgs::previewPixelPrecision ( ) const
inline

Definition at line 97 of file tool_transform_args.h.

97 {
99 }

◆ refOriginalPoints()

QVector< QPointF > & ToolTransformArgs::refOriginalPoints ( )
inline

Definition at line 131 of file tool_transform_args.h.

131 {
132 return m_origPoints;
133 }

◆ refTransformedPoints()

QVector< QPointF > & ToolTransformArgs::refTransformedPoints ( )
inline

Definition at line 134 of file tool_transform_args.h.

134 {
135 return m_transfPoints;
136 }

◆ restoreContinuedState()

void ToolTransformArgs::restoreContinuedState ( )

Definition at line 566 of file tool_transform_args.cc.

567{
568 QScopedPointer<ToolTransformArgs> tempTransformation(
570
571 *this = *tempTransformation;
572 m_continuedTransformation.swap(tempTransformation);
573}

References m_continuedTransformation, and ToolTransformArgs().

◆ rotationCenterOffset()

QPointF ToolTransformArgs::rotationCenterOffset ( ) const
inline

Definition at line 175 of file tool_transform_args.h.

175 {
177 }

◆ saveContinuedState()

void ToolTransformArgs::saveContinuedState ( )

Definition at line 560 of file tool_transform_args.cc.

561{
564}

References m_continuedTransformation, and ToolTransformArgs().

◆ saveLiquifyTransformMode()

void ToolTransformArgs::saveLiquifyTransformMode ( ) const

Definition at line 368 of file tool_transform_args.cc.

369{
370 m_liquifyProperties->saveMode();
371}

References m_liquifyProperties.

◆ scale3dSrcAndDst()

void ToolTransformArgs::scale3dSrcAndDst ( qreal scale)

Definition at line 616 of file tool_transform_args.cc.

617{
618 const QTransform t = QTransform::fromScale(scale, scale);
619
620 if (m_mode == FREE_TRANSFORM ) {
623
624 // we need to scale Z-coordinate of the camera pos as well,
625 // so we cannot just do `QMatrix4x4 m(t)`.
626 QMatrix4x4 m;
627 m.scale(scale);
629 } else {
631 }
632}
void transformSrcAndDst(const QTransform &t)

References FREE_TRANSFORM, m_cameraPos, m_mode, m_originalCenter, m_transformedCenter, and transformSrcAndDst().

◆ scaleX()

double ToolTransformArgs::scaleX ( ) const
inline

Definition at line 193 of file tool_transform_args.h.

193 {
194 return m_scaleX;
195 }

◆ scaleY()

double ToolTransformArgs::scaleY ( ) const
inline

Definition at line 196 of file tool_transform_args.h.

196 {
197 return m_scaleY;
198 }

◆ setAlpha()

void ToolTransformArgs::setAlpha ( double alpha)
inline

Definition at line 161 of file tool_transform_args.h.

161 {
162 m_alpha = alpha;
163 }

◆ setAX()

void ToolTransformArgs::setAX ( double aX)
inline

Definition at line 223 of file tool_transform_args.h.

223 {
224 m_aX = aX;
225 }

◆ setAY()

void ToolTransformArgs::setAY ( double aY)
inline

Definition at line 226 of file tool_transform_args.h.

226 {
227 m_aY = aY;
228 }

◆ setAZ()

void ToolTransformArgs::setAZ ( double aZ)
inline

Definition at line 229 of file tool_transform_args.h.

229 {
230 m_aZ = aZ;
231 }

◆ setBoundsRotation()

void ToolTransformArgs::setBoundsRotation ( double boundsRotation)
inline

Definition at line 250 of file tool_transform_args.h.

250 {
252 }

◆ setCameraPos()

void ToolTransformArgs::setCameraPos ( const QVector3D & pos)
inline

Definition at line 232 of file tool_transform_args.h.

232 {
233 m_cameraPos = pos;
234 }

◆ setDefaultPoints()

void ToolTransformArgs::setDefaultPoints ( bool defaultPoints)
inline

Definition at line 164 of file tool_transform_args.h.

164 {
166 }

◆ setEditingTransformPoints()

void ToolTransformArgs::setEditingTransformPoints ( bool value)
inline

Definition at line 285 of file tool_transform_args.h.

285 {
287 }
float value(const T *src, size_t ch)

References value().

◆ setExternalSource()

void ToolTransformArgs::setExternalSource ( KisPaintDeviceSP externalSource)
inline

Definition at line 109 of file tool_transform_args.h.

109 {
111 }

◆ setFilterId()

void ToolTransformArgs::setFilterId ( const QString & id)

Definition at line 34 of file tool_transform_args.cc.

34 {
36
37 if (m_filter) {
38 KConfigGroup configGroup = KSharedConfig::openConfig()->group("KisToolTransform");
39 configGroup.writeEntry("filterId", id);
40 }
41}

References KisFilterStrategyRegistry::instance(), m_filter, and KoGenericRegistry< T >::value().

◆ setFlattenedPerspectiveTransform()

void ToolTransformArgs::setFlattenedPerspectiveTransform ( const QTransform & value)
inline

Definition at line 277 of file tool_transform_args.h.

References value().

◆ setKeepAspectRatio()

void ToolTransformArgs::setKeepAspectRatio ( bool value)
inline

Definition at line 241 of file tool_transform_args.h.

241 {
243 }

References value().

◆ setMeshScaleHandles()

void ToolTransformArgs::setMeshScaleHandles ( bool meshScaleHandles)

Definition at line 97 of file tool_transform_args.cc.

98{
100
101 KConfigGroup configGroup = KSharedConfig::openConfig()->group("KisToolTransform");
102 configGroup.writeEntry("meshScaleHandles", meshScaleHandles);
103}
bool meshScaleHandles() const

References m_meshScaleHandles, and meshScaleHandles().

◆ setMeshShowHandles()

void ToolTransformArgs::setMeshShowHandles ( bool value)

Definition at line 595 of file tool_transform_args.cc.

596{
598
599 KConfigGroup configGroup = KSharedConfig::openConfig()->group("KisToolTransform");
600 configGroup.writeEntry("meshShowHandles", value);
601}

References m_meshShowHandles, and value().

◆ setMeshSymmetricalHandles()

void ToolTransformArgs::setMeshSymmetricalHandles ( bool meshSymmetricalHandles)

Definition at line 608 of file tool_transform_args.cc.

609{
611
612 KConfigGroup configGroup = KSharedConfig::openConfig()->group("KisToolTransform");
613 configGroup.writeEntry("meshSymmetricalHandles", value);
614}

References m_meshSymmetricalHandles, and value().

◆ setMode()

void ToolTransformArgs::setMode ( TransformMode mode)
inline

Definition at line 85 of file tool_transform_args.h.

85 {
86 m_mode = mode;
87 }

◆ setOriginalCenter()

void ToolTransformArgs::setOriginalCenter ( QPointF originalCenter)
inline

Definition at line 215 of file tool_transform_args.h.

215 {
217 }

◆ setPixelPrecision()

void ToolTransformArgs::setPixelPrecision ( int precision)
inline

Definition at line 93 of file tool_transform_args.h.

93 {
94 m_pixelPrecision = precision;
95 }

◆ setPoints()

void ToolTransformArgs::setPoints ( QVector< QPointF > origPoints,
QVector< QPointF > transfPoints )
inline

◆ setPreviewPixelPrecision()

void ToolTransformArgs::setPreviewPixelPrecision ( int precision)
inline

Definition at line 101 of file tool_transform_args.h.

101 {
102 m_previewPixelPrecision = precision;
103 }

◆ setRotationCenterOffset()

void ToolTransformArgs::setRotationCenterOffset ( QPointF rotationCenterOffset)
inline

Definition at line 218 of file tool_transform_args.h.

◆ setScaleX()

void ToolTransformArgs::setScaleX ( double scaleX)
inline

Definition at line 235 of file tool_transform_args.h.

235 {
237 }

◆ setScaleY()

void ToolTransformArgs::setScaleY ( double scaleY)
inline

Definition at line 238 of file tool_transform_args.h.

238 {
240 }

◆ setShearX()

void ToolTransformArgs::setShearX ( double shearX)
inline

Definition at line 244 of file tool_transform_args.h.

244 {
246 }

◆ setShearY()

void ToolTransformArgs::setShearY ( double shearY)
inline

Definition at line 247 of file tool_transform_args.h.

247 {
249 }

◆ setTransformAroundRotationCenter()

void ToolTransformArgs::setTransformAroundRotationCenter ( bool value)

Definition at line 43 of file tool_transform_args.cc.

44{
46
47 KConfigGroup configGroup = KSharedConfig::openConfig()->group("KisToolTransform");
48 configGroup.writeEntry("transformAroundRotationCenter", int(value));
49}

References m_transformAroundRotationCenter, and value().

◆ setTransformedCenter()

void ToolTransformArgs::setTransformedCenter ( QPointF transformedCenter)
inline

Definition at line 212 of file tool_transform_args.h.

◆ setWarpCalculation()

void ToolTransformArgs::setWarpCalculation ( KisWarpTransformWorker::WarpCalculation warpCalc)
inline

Definition at line 154 of file tool_transform_args.h.

154 {
155 m_warpCalculation = warpCalc;
156 }
KisWarpTransformWorker::WarpCalculation m_warpCalculation

◆ setWarpType()

void ToolTransformArgs::setWarpType ( KisWarpTransformWorker::WarpType warpType)
inline

Definition at line 151 of file tool_transform_args.h.

151 {
153 }

◆ shearX()

double ToolTransformArgs::shearX ( ) const
inline

Definition at line 202 of file tool_transform_args.h.

202 {
203 return m_shearX;
204 }

◆ shearY()

double ToolTransformArgs::shearY ( ) const
inline

Definition at line 205 of file tool_transform_args.h.

205 {
206 return m_shearY;
207 }

◆ toXML()

void ToolTransformArgs::toXML ( QDomElement * e) const

Definition at line 373 of file tool_transform_args.cc.

374{
375 e->setAttribute("mode", (int) m_mode);
376
377 QDomDocument doc = e->ownerDocument();
378
380
381 QDomElement freeEl = doc.createElement("free_transform");
382 e->appendChild(freeEl);
383
384 KisDomUtils::saveValue(&freeEl, "transformedCenter", m_transformedCenter);
385 KisDomUtils::saveValue(&freeEl, "originalCenter", m_originalCenter);
386 KisDomUtils::saveValue(&freeEl, "rotationCenterOffset", m_rotationCenterOffset);
387 KisDomUtils::saveValue(&freeEl, "transformAroundRotationCenter", m_transformAroundRotationCenter);
388
389 KisDomUtils::saveValue(&freeEl, "aX", m_aX);
390 KisDomUtils::saveValue(&freeEl, "aY", m_aY);
391 KisDomUtils::saveValue(&freeEl, "aZ", m_aZ);
392
393 KisDomUtils::saveValue(&freeEl, "cameraPos", m_cameraPos);
394
395 KisDomUtils::saveValue(&freeEl, "scaleX", m_scaleX);
396 KisDomUtils::saveValue(&freeEl, "scaleY", m_scaleY);
397
398 KisDomUtils::saveValue(&freeEl, "shearX", m_shearX);
399 KisDomUtils::saveValue(&freeEl, "shearY", m_shearY);
400
401 // bounds rotation is currently not supported by transform masks, so it should be null
402 KisDomUtils::saveValue(&freeEl, "boundsRotation", m_boundsRotation);
403
404 KisDomUtils::saveValue(&freeEl, "keepAspectRatio", m_keepAspectRatio);
405 KisDomUtils::saveValue(&freeEl, "flattenedPerspectiveTransform", m_flattenedPerspectiveTransform);
406
407 KisDomUtils::saveValue(&freeEl, "filterId", m_filter->id());
408
409 } else if (m_mode == WARP || m_mode == CAGE) {
410 QDomElement warpEl = doc.createElement("warp_transform");
411 e->appendChild(warpEl);
412
413 KisDomUtils::saveValue(&warpEl, "defaultPoints", m_defaultPoints);
414 KisDomUtils::saveValue(&warpEl, "originalPoints", m_origPoints);
415 KisDomUtils::saveValue(&warpEl, "transformedPoints", m_transfPoints);
416
417 KisDomUtils::saveValue(&warpEl, "warpType", (int)m_warpType); // limited!
418 KisDomUtils::saveValue(&warpEl, "alpha", m_alpha);
419
420 if(m_mode == CAGE){
421 KisDomUtils::saveValue(&warpEl,"pixelPrecision",m_pixelPrecision);
422 KisDomUtils::saveValue(&warpEl,"previewPixelPrecision",m_previewPixelPrecision);
423 }
424
425 } else if (m_mode == LIQUIFY) {
426 QDomElement liqEl = doc.createElement("liquify_transform");
427 e->appendChild(liqEl);
428
429 m_liquifyProperties->toXML(&liqEl);
430 m_liquifyWorker->toXML(&liqEl);
431 } else if (m_mode == MESH) {
432 QDomElement meshEl = doc.createElement("mesh_transform");
433 e->appendChild(meshEl);
434
435 KisDomUtils::saveValue(&meshEl, "mesh", m_meshTransform);
436 } else {
437 KIS_ASSERT_RECOVER_RETURN(0 && "Unknown transform mode");
438 }
439
440 // m_editTransformPoints should not be saved since it is reset explicitly
441}
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75
void saveValue(QDomElement *parent, const QString &tag, const QSize &size)

References CAGE, FREE_TRANSFORM, KisFilterStrategy::id(), KIS_ASSERT_RECOVER_RETURN, LIQUIFY, m_alpha, m_aX, m_aY, m_aZ, m_boundsRotation, m_cameraPos, m_defaultPoints, m_filter, m_flattenedPerspectiveTransform, m_keepAspectRatio, m_liquifyProperties, m_liquifyWorker, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_pixelPrecision, m_previewPixelPrecision, m_rotationCenterOffset, m_scaleX, m_scaleY, m_shearX, m_shearY, m_transformAroundRotationCenter, m_transformedCenter, m_transfPoints, m_warpType, MESH, PERSPECTIVE_4POINT, KisDomUtils::saveValue(), and WARP.

◆ transformAroundRotationCenter()

bool ToolTransformArgs::transformAroundRotationCenter ( ) const
inline

Definition at line 178 of file tool_transform_args.h.

178 {
180 }

◆ transformedCenter()

QPointF ToolTransformArgs::transformedCenter ( ) const
inline

Definition at line 169 of file tool_transform_args.h.

169 {
170 return m_transformedCenter;
171 }

◆ transformSrcAndDst()

void ToolTransformArgs::transformSrcAndDst ( const QTransform & t)

Definition at line 281 of file tool_transform_args.cc.

282{
283 if (m_mode == FREE_TRANSFORM ) {
286
287 QMatrix4x4 m(t);
289 } else if (m_mode == PERSPECTIVE_4POINT) {
292
294
295 } else if(m_mode == WARP || m_mode == CAGE) {
296 for (auto &pt : m_origPoints) {
297 pt = t.map(pt);
298 }
299
300 for (auto &pt : m_transfPoints) {
301 pt = t.map(pt);
302 }
303 } else if (m_mode == LIQUIFY) {
305 m_liquifyWorker->transformSrcAndDst(t);
306 } else if (m_mode == MESH) {
308 } else {
309 KIS_ASSERT_RECOVER_NOOP(0 && "unknown transform mode");
310 }
311}
void transformSrcAndDst(const QTransform &t)

References CAGE, FREE_TRANSFORM, KIS_ASSERT_RECOVER_NOOP, KIS_ASSERT_RECOVER_RETURN, LIQUIFY, m_cameraPos, m_flattenedPerspectiveTransform, m_liquifyWorker, m_meshTransform, m_mode, m_originalCenter, m_origPoints, m_transformedCenter, m_transfPoints, MESH, PERSPECTIVE_4POINT, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::transformSrcAndDst(), and WARP.

◆ transfPoint()

QPointF & ToolTransformArgs::transfPoint ( int i)
inline

Definition at line 121 of file tool_transform_args.h.

121 {
122 return m_transfPoints[i];
123 }

◆ transfPoints()

const QVector< QPointF > & ToolTransformArgs::transfPoints ( ) const
inline

Definition at line 127 of file tool_transform_args.h.

127 {
128 return m_transfPoints;
129 }

◆ translateDstSpace()

void ToolTransformArgs::translateDstSpace ( const QPointF & offset)

Definition at line 313 of file tool_transform_args.cc.

314{
316 m_transformedCenter += offset;
317 } else if(m_mode == WARP || m_mode == CAGE) {
318 for (auto &pt : m_transfPoints) {
319 pt += offset;
320 }
321 } else if (m_mode == LIQUIFY) {
323 m_liquifyWorker->translateDstSpace(offset);
324 } else if (m_mode == MESH) {
326 } else {
327 KIS_ASSERT_RECOVER_NOOP(0 && "unknown transform mode");
328 }
329}
void translate(const QPointF &offset)

References CAGE, FREE_TRANSFORM, KIS_ASSERT_RECOVER_NOOP, KIS_ASSERT_RECOVER_RETURN, LIQUIFY, m_liquifyWorker, m_meshTransform, m_mode, m_transformedCenter, m_transfPoints, MESH, PERSPECTIVE_4POINT, KisBezierMeshDetails::Mesh< NodeArg, PatchArg >::translate(), and WARP.

◆ translateSrcAndDst()

void ToolTransformArgs::translateSrcAndDst ( const QPointF & offset)

Definition at line 276 of file tool_transform_args.cc.

277{
278 transformSrcAndDst(QTransform::fromTranslate(offset.x(), offset.y()));
279}

References transformSrcAndDst().

◆ warpCalculation()

KisWarpTransformWorker::WarpCalculation ToolTransformArgs::warpCalculation ( )
inline

Definition at line 157 of file tool_transform_args.h.

157 {
158 return m_warpCalculation;
159 }

◆ warpType()

KisWarpTransformWorker::WarpType ToolTransformArgs::warpType ( ) const
inline

Definition at line 138 of file tool_transform_args.h.

138 {
139 return m_warpType;
140 }

Member Data Documentation

◆ m_alpha

double ToolTransformArgs::m_alpha {1.0}
private

Definition at line 342 of file tool_transform_args.h.

342{1.0};

◆ m_aX

double ToolTransformArgs::m_aX {0}
private

Definition at line 354 of file tool_transform_args.h.

354{0};

◆ m_aY

double ToolTransformArgs::m_aY {0}
private

Definition at line 355 of file tool_transform_args.h.

355{0};

◆ m_aZ

double ToolTransformArgs::m_aZ {0}
private

Definition at line 356 of file tool_transform_args.h.

356{0};

◆ m_boundsRotation

double ToolTransformArgs::m_boundsRotation {0.0}
private

Definition at line 362 of file tool_transform_args.h.

362{0.0};

◆ m_cameraPos

QVector3D ToolTransformArgs::m_cameraPos {QVector3D(0,0,1024)}
private

Definition at line 357 of file tool_transform_args.h.

357{QVector3D(0,0,1024)};

◆ m_continuedTransformation

QScopedPointer<ToolTransformArgs> ToolTransformArgs::m_continuedTransformation
private

When we continue a transformation, m_continuedTransformation stores the initial step of our transform. All cancel and revert operations should revert to it.

Definition at line 383 of file tool_transform_args.h.

◆ m_defaultPoints

bool ToolTransformArgs::m_defaultPoints {true}
private

Definition at line 336 of file tool_transform_args.h.

336{true}; // true : the original points are set to make a grid

◆ m_editTransformPoints

bool ToolTransformArgs::m_editTransformPoints {false}
private

Definition at line 369 of file tool_transform_args.h.

369{false};

◆ m_externalSource

KisPaintDeviceSP ToolTransformArgs::m_externalSource
private

Optional external image, for example from the clipboard, that can be transformed directly over an existing paint layer or mask.

Definition at line 393 of file tool_transform_args.h.

◆ m_filter

KisFilterStrategy* ToolTransformArgs::m_filter {0}
private

Definition at line 368 of file tool_transform_args.h.

368{0};

◆ m_flattenedPerspectiveTransform

QTransform ToolTransformArgs::m_flattenedPerspectiveTransform
private

Definition at line 366 of file tool_transform_args.h.

◆ m_keepAspectRatio

bool ToolTransformArgs::m_keepAspectRatio {false}
private

Definition at line 363 of file tool_transform_args.h.

363{false};

◆ m_liquifyProperties

QSharedPointer<KisLiquifyProperties> ToolTransformArgs::m_liquifyProperties
private

Definition at line 370 of file tool_transform_args.h.

◆ m_liquifyWorker

QScopedPointer<KisLiquifyTransformWorker> ToolTransformArgs::m_liquifyWorker
private

Definition at line 371 of file tool_transform_args.h.

◆ m_meshScaleHandles

bool ToolTransformArgs::m_meshScaleHandles = false
private

Definition at line 376 of file tool_transform_args.h.

◆ m_meshShowHandles

bool ToolTransformArgs::m_meshShowHandles = true
private

Definition at line 374 of file tool_transform_args.h.

◆ m_meshSymmetricalHandles

bool ToolTransformArgs::m_meshSymmetricalHandles = true
private

Definition at line 375 of file tool_transform_args.h.

◆ m_meshTransform

KisBezierTransformMesh ToolTransformArgs::m_meshTransform
private

Definition at line 373 of file tool_transform_args.h.

◆ m_mode

◆ m_originalCenter

QPointF ToolTransformArgs::m_originalCenter
private

Definition at line 347 of file tool_transform_args.h.

◆ m_origPoints

QVector<QPointF> ToolTransformArgs::m_origPoints
private

Definition at line 338 of file tool_transform_args.h.

◆ m_pixelPrecision

int ToolTransformArgs::m_pixelPrecision {8}
private

Definition at line 386 of file tool_transform_args.h.

386{8};

◆ m_previewPixelPrecision

int ToolTransformArgs::m_previewPixelPrecision {16}
private

Definition at line 387 of file tool_transform_args.h.

387{16};

◆ m_rotationCenterOffset

QPointF ToolTransformArgs::m_rotationCenterOffset
private

Definition at line 348 of file tool_transform_args.h.

◆ m_scaleX

double ToolTransformArgs::m_scaleX {1.0}
private

Definition at line 358 of file tool_transform_args.h.

358{1.0};

◆ m_scaleY

double ToolTransformArgs::m_scaleY {1.0}
private

Definition at line 359 of file tool_transform_args.h.

359{1.0};

◆ m_shearX

double ToolTransformArgs::m_shearX {0.0}
private

Definition at line 360 of file tool_transform_args.h.

360{0.0};

◆ m_shearY

double ToolTransformArgs::m_shearY {0.0}
private

Definition at line 361 of file tool_transform_args.h.

361{0.0};

◆ m_transformAroundRotationCenter

bool ToolTransformArgs::m_transformAroundRotationCenter {false}
private

Definition at line 351 of file tool_transform_args.h.

351{false}; // In freehand mode makes the scaling and other transformations

◆ m_transformedCenter

QPointF ToolTransformArgs::m_transformedCenter
private

Definition at line 346 of file tool_transform_args.h.

◆ m_transfPoints

QVector<QPointF> ToolTransformArgs::m_transfPoints
private

Definition at line 339 of file tool_transform_args.h.

◆ m_warpCalculation

KisWarpTransformWorker::WarpCalculation ToolTransformArgs::m_warpCalculation {KisWarpTransformWorker::WarpCalculation::DRAW}
private

Definition at line 341 of file tool_transform_args.h.

341{KisWarpTransformWorker::WarpCalculation::DRAW}; // DRAW or GRID

◆ m_warpType


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