File indexing completed on 2024-05-26 04:34:08

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISTEXTUREOPTIONMODEL_H
0007 #define KISTEXTUREOPTIONMODEL_H
0008 
0009 
0010 #include <lager/cursor.hpp>
0011 #include <lager/extra/qt.hpp>
0012 
0013 #include "KisTextureOptionData.h"
0014 #include "KoResourceLoadResult.h"
0015 
0016 
0017 class KisTextureOptionModel : public QObject
0018 {
0019     Q_OBJECT
0020 public:
0021     KisTextureOptionModel(lager::cursor<KisTextureOptionData> optionData, KisResourcesInterfaceSP resourcesInterface);
0022     lager::cursor<KisTextureOptionData> optionData;
0023 
0024     LAGER_QT_CURSOR(bool, isEnabled);
0025     LAGER_QT_CURSOR(KoResourceSP, textureResource);
0026     LAGER_QT_CURSOR(qreal, scale);
0027     LAGER_QT_CURSOR(qreal, brightness);
0028     LAGER_QT_CURSOR(qreal, contrast);
0029     LAGER_QT_CURSOR(qreal, neutralPoint);
0030     LAGER_QT_CURSOR(int, offsetX);
0031     LAGER_QT_CURSOR(int, offsetY);
0032     LAGER_QT_CURSOR(int, maximumOffsetX);
0033     LAGER_QT_CURSOR(int, maximumOffsetY);
0034     LAGER_QT_CURSOR(bool, isRandomOffsetX);
0035     LAGER_QT_CURSOR(bool, isRandomOffsetY);
0036     LAGER_QT_CURSOR(int, texturingMode);
0037     LAGER_QT_CURSOR(int, cutOffPolicy);
0038     LAGER_QT_CURSOR(qreal, cutOffLeftNormalized);
0039     LAGER_QT_CURSOR(qreal, cutOffRightNormalized);
0040     LAGER_QT_CURSOR(bool, invert);
0041 
0042     KisTextureOptionData bakedOptionData() const;
0043 
0044 private:
0045     void updateOffsetLimits(KoResourceSP resource);
0046 };
0047 
0048 #endif // KISTEXTUREOPTIONMODEL_H