File indexing completed on 2024-06-16 04:18:02
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_TRANSFORM_MASK_ADAPTER_H 0008 #define __KIS_TRANSFORM_MASK_ADAPTER_H 0009 0010 #include <QScopedPointer> 0011 #include "kis_transform_mask_params_interface.h" 0012 #include "kritatooltransform_export.h" 0013 0014 class ToolTransformArgs; 0015 0016 0017 class KRITATOOLTRANSFORM_EXPORT KisTransformMaskAdapter : public KisTransformMaskParamsInterface 0018 { 0019 public: 0020 KisTransformMaskAdapter(); 0021 KisTransformMaskAdapter(const ToolTransformArgs &args, bool isHidden = false, bool isInitialized = true); 0022 ~KisTransformMaskAdapter() override; 0023 0024 QTransform finalAffineTransform() const override; 0025 bool isAffine() const override; 0026 0027 bool isInitialized() const; 0028 0029 void setHidden(bool value) override; 0030 bool isHidden() const override; 0031 0032 void transformDevice(KisNodeSP node, KisPaintDeviceSP src, KisPaintDeviceSP dst, bool forceSubPixelTranslation) const override; 0033 0034 virtual const QSharedPointer<ToolTransformArgs> transformArgs() const; 0035 void setBaseArgs(const ToolTransformArgs& args); 0036 0037 QString id() const override; 0038 void toXML(QDomElement *e) const override; 0039 static KisTransformMaskParamsInterfaceSP fromXML(const QDomElement &e); 0040 0041 void translateSrcAndDst(const QPointF &offset) override; 0042 void transformSrcAndDst(const QTransform &t) override; 0043 void translateDstSpace(const QPointF &offset) override; 0044 0045 0046 QRect nonAffineChangeRect(const QRect &rc) override; 0047 QRect nonAffineNeedRect(const QRect &rc, const QRect &srcBounds) override; 0048 0049 KisKeyframeChannel *getKeyframeChannel(const QString &id, KisDefaultBoundsBaseSP defaultBounds); 0050 0051 KisTransformMaskParamsInterfaceSP clone() const override; 0052 0053 bool compareTransform(KisTransformMaskParamsInterfaceSP rhs) const override; 0054 0055 private: 0056 struct Private; 0057 const QScopedPointer<Private> m_d; 0058 }; 0059 0060 #endif /* __KIS_TRANSFORM_MASK_ADAPTER_H */