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 */