File indexing completed on 2024-05-12 15:59:08

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #ifndef LIBKIS_TRANSFORMMASK_H
0007 #define LIBKIS_TRANSFORMMASK_H
0008 
0009 #include <QObject>
0010 #include "Node.h"
0011 
0012 #include <kis_types.h>
0013 
0014 #include "kritalibkis_export.h"
0015 #include "libkis.h"
0016 
0017 /**
0018  * @brief The TransformMask class
0019  * A transform mask is a mask type node that can be used
0020  * to store transformations.
0021  */
0022 class KRITALIBKIS_EXPORT TransformMask : public Node
0023 {
0024     Q_OBJECT
0025     Q_DISABLE_COPY(TransformMask)
0026 
0027 public:
0028     explicit TransformMask(KisImageSP image, QString name, QObject *parent = 0);
0029     explicit TransformMask(KisImageSP image, KisTransformMaskSP mask, QObject *parent = 0);
0030     ~TransformMask() override;
0031 public Q_SLOTS:
0032 
0033     /**
0034      * @brief type Krita has several types of nodes, split in layers and masks. Group
0035      * layers can contain other layers, any layer can contain masks.
0036      *
0037      * @return transformmask
0038      *
0039      * If the Node object isn't wrapping a valid Krita layer or mask object, and
0040      * empty string is returned.
0041      */
0042     virtual QString type() const override;
0043 
0044     QTransform finalAffineTransform() const;
0045 
0046 };
0047 
0048 #endif // LIBKIS_TRANSFORMMASK_H
0049