File indexing completed on 2024-05-26 04:34:03
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KISAUTOBRUSHMODEL_H 0007 #define KISAUTOBRUSHMODEL_H 0008 0009 #include <lager/cursor.hpp> 0010 #include <lager/extra/qt.hpp> 0011 0012 #include <KisBrushModel.h> 0013 #include <KisWidgetConnectionUtils.h> 0014 0015 using namespace KisBrushModel; 0016 using namespace KisWidgetConnectionUtils; 0017 0018 0019 class KisAutoBrushModel : public QObject 0020 { 0021 Q_OBJECT 0022 public: 0023 KisAutoBrushModel(lager::cursor<CommonData> commonData, 0024 lager::cursor<AutoBrushData> autoBrushData, 0025 lager::cursor<qreal> commonBrushSizeData); 0026 0027 // the state must be declared **before** any cursors or readers 0028 lager::cursor<KisBrushModel::CommonData> m_commonData; 0029 lager::cursor<KisBrushModel::AutoBrushData> m_autoBrushData; 0030 lager::cursor<qreal> m_commonBrushSizeData; 0031 0032 LAGER_QT_CURSOR(qreal, diameter); 0033 LAGER_QT_CURSOR(qreal, ratio); 0034 LAGER_QT_CURSOR(qreal, horizontalFade); 0035 LAGER_QT_CURSOR(qreal, verticalFade); 0036 LAGER_QT_CURSOR(int, spikes); 0037 LAGER_QT_CURSOR(bool, antialiasEdges); 0038 LAGER_QT_CURSOR(int, shape); 0039 LAGER_QT_CURSOR(int, type); 0040 LAGER_QT_CURSOR(QString, curveString); 0041 LAGER_QT_CURSOR(qreal, randomness); 0042 LAGER_QT_CURSOR(qreal, density); 0043 LAGER_QT_CURSOR(qreal, angle); 0044 LAGER_QT_CURSOR(qreal, spacing); 0045 LAGER_QT_CURSOR(bool, useAutoSpacing); 0046 LAGER_QT_CURSOR(qreal, autoSpacingCoeff); 0047 LAGER_QT_CURSOR(SpacingState, aggregatedSpacing); 0048 0049 AutoBrushData bakedOptionData() const; 0050 }; 0051 0052 #endif // KISAUTOBRUSHMODEL_H