File indexing completed on 2024-06-23 04:28:31

0001 /*
0002  *  SPDX-FileCopyrightText: 2016 Jouni Pentikäinen <joupent@gmail.com>
0003  *  SPDX-FileCopyrightText: 2021 Eoin O'Neill<eoinoneill1991@gmail.com>
0004  *  SPDX-FileCopyrightText: 2021 Emmet O'Neill <emmetoneill.pdx@gmail.com>
0005  *
0006  *  SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 
0010 #ifndef __KIS_ANIMATED_TRANSFORM_MASK_PARAMETERS_H
0011 #define __KIS_ANIMATED_TRANSFORM_MASK_PARAMETERS_H
0012 
0013 #include "kis_transform_mask_adapter.h"
0014 #include "kritatooltransform_export.h"
0015 #include <qmath.h>
0016 
0017 class KisKeyframeChannel;
0018 
0019 class KRITATOOLTRANSFORM_EXPORT KisAnimatedTransformMaskParamsHolder : public KisAnimatedTransformParamsHolderInterface
0020 {
0021 public:
0022     KisAnimatedTransformMaskParamsHolder(KisDefaultBoundsBaseSP defaultBounds);
0023     KisAnimatedTransformMaskParamsHolder(const KisAnimatedTransformMaskParamsHolder& rhs);
0024     ~KisAnimatedTransformMaskParamsHolder() override;
0025 
0026     bool isAnimated() const override;
0027 
0028     const QSharedPointer<ToolTransformArgs> transformArgs() const;
0029 
0030     void setDefaultBounds(KisDefaultBoundsBaseSP bounds) override;
0031     KisDefaultBoundsBaseSP defaultBounds() const override;
0032 
0033     KisKeyframeChannel *requestKeyframeChannel(const QString &id) override;
0034     KisKeyframeChannel* getKeyframeChannel(const QString &id) const override;
0035 
0036     void syncLodCache() override;
0037 
0038     KisAnimatedTransformParamsHolderInterfaceSP clone() const override;
0039 
0040     KisTransformMaskParamsInterfaceSP bakeIntoParams() const override;
0041     void setParamsAtCurrentPosition(const KisTransformMaskParamsInterface *params, KUndo2Command *parentCommand) override;
0042 
0043 private:
0044     void setNewTransformArgs(const ToolTransformArgs &args, KUndo2Command *parentCommand);
0045     qreal defaultValueForScalarChannel(const KoID &id);
0046 
0047 private:
0048     struct Private;
0049     const QScopedPointer<Private> m_d;
0050 };
0051 
0052 #endif