13#include <ksharedconfig.h>
15#include <kconfiggroup.h>
25 KConfigGroup configGroup = KSharedConfig::openConfig()->group(
"KisToolTransform");
26 QString savedFilterId = configGroup.readEntry(
"filterId",
"Bicubic");
38 KConfigGroup configGroup = KSharedConfig::openConfig()->group(
"KisToolTransform");
39 configGroup.writeEntry(
"filterId",
id);
47 KConfigGroup configGroup = KSharedConfig::openConfig()->group(
"KisToolTransform");
48 configGroup.writeEntry(
"transformAroundRotationCenter",
int(
value));
101 KConfigGroup configGroup = KSharedConfig::openConfig()->group(
"KisToolTransform");
125 if (
this == &args)
return *
this;
230 QPointF transformedCenter,
231 QPointF originalCenter,
232 QPointF rotationCenterOffset,
233 bool transformAroundRotationCenter,
234 double aX,
double aY,
double aZ,
235 double scaleX,
double scaleY,
236 double shearX,
double shearY,
237 double boundsRotation,
241 const QString &filterId,
242 int pixelPrecision,
int previewPixelPrecision,
245 , m_defaultPoints(defaultPoints)
246 , m_origPoints {
QVector<QPointF>()}
247 , m_transfPoints {
QVector<QPointF>()}
248 , m_warpType(warpType)
250 , m_transformedCenter(transformedCenter)
251 , m_originalCenter(originalCenter)
252 , m_rotationCenterOffset(rotationCenterOffset)
253 , m_transformAroundRotationCenter(transformAroundRotationCenter)
261 , m_boundsRotation(boundsRotation)
263 , m_pixelPrecision(pixelPrecision)
264 , m_previewPixelPrecision(previewPixelPrecision)
265 , m_externalSource(externalSource)
375 e->setAttribute(
"mode", (
int)
m_mode);
377 QDomDocument doc = e->ownerDocument();
381 QDomElement freeEl = doc.createElement(
"free_transform");
382 e->appendChild(freeEl);
410 QDomElement warpEl = doc.createElement(
"warp_transform");
411 e->appendChild(warpEl);
426 QDomElement liqEl = doc.createElement(
"liquify_transform");
427 e->appendChild(liqEl);
432 QDomElement meshEl = doc.createElement(
"mesh_transform");
433 e->appendChild(meshEl);
447 int newMode = e.attribute(
"mode",
"0").toInt();
493 if (!KisDomUtils::loadValue(freeEl,
"boundsRotation", &args.
m_boundsRotation)) {
534 QDomElement liquifyEl;
568 QScopedPointer<ToolTransformArgs> tempTransformation(
571 *
this = *tempTransformation;
599 KConfigGroup configGroup = KSharedConfig::openConfig()->group(
"KisToolTransform");
600 configGroup.writeEntry(
"meshShowHandles",
value);
612 KConfigGroup configGroup = KSharedConfig::openConfig()->group(
"KisToolTransform");
613 configGroup.writeEntry(
"meshSymmetricalHandles",
value);
618 const QTransform t = QTransform::fromScale(scale, scale);
float value(const T *src, size_t ch)
void transformSrcAndDst(const QTransform &t)
void translate(const QPointF &offset)
static KisFilterStrategyRegistry * instance()
static KisLiquifyProperties fromXML(const QDomElement &e)
const T value(const QString &id) const
#define KIS_SAFE_ASSERT_RECOVER(cond)
#define KIS_ASSERT_RECOVER_RETURN(cond)
#define KIS_ASSERT_RECOVER_NOOP(cond)
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
typedef void(QOPENGLF_APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer)
void saveValue(QDomElement *parent, const QString &tag, const QSize &size)
bool findOnlyElement(const QDomElement &parent, const QString &tag, QDomElement *el, QStringList *errorMessages)
bool loadValue(const QDomElement &e, float *v)