File indexing completed on 2024-06-23 04:27:44

0001 /*
0002  *  SPDX-FileCopyrightText: 2008-2010 Lukáš Tvrdý <lukast.dev@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KIS_HAIRYINK_OPTION_DATA_H
0007 #define KIS_HAIRYINK_OPTION_DATA_H
0008 
0009 
0010 #include "kis_types.h"
0011 #include <boost/operators.hpp>
0012 
0013 #include "kis_cubic_curve.h"
0014 
0015 class KisPropertiesConfiguration;
0016 
0017 struct KisHairyInkOptionData : boost::equality_comparable<KisHairyInkOptionData>
0018 {
0019     inline friend bool operator==(const KisHairyInkOptionData &lhs, const KisHairyInkOptionData &rhs) {
0020         return lhs.inkDepletionEnabled == rhs.inkDepletionEnabled
0021             && lhs.inkAmount == rhs.inkAmount
0022             && lhs.inkDepletionCurve == rhs.inkDepletionCurve
0023             && lhs.useSaturation == rhs.useSaturation
0024             && lhs.useOpacity == rhs.useOpacity
0025             && lhs.useWeights == rhs.useWeights
0026             && lhs.pressureWeight == rhs.pressureWeight
0027             && lhs.bristleLengthWeight == rhs.bristleLengthWeight
0028             && lhs.bristleInkAmountWeight == rhs.bristleInkAmountWeight
0029             && lhs.inkDepletionWeight == rhs.inkDepletionWeight
0030             && lhs.useSoakInk == rhs.useSoakInk;
0031     }
0032 
0033     bool inkDepletionEnabled {false};
0034 
0035     int inkAmount {1024};
0036     QString inkDepletionCurve {DEFAULT_CURVE_STRING};
0037 
0038     bool useSaturation {false};
0039     bool useOpacity {true};
0040     bool useWeights {false};
0041 
0042     int pressureWeight {50};
0043     int bristleLengthWeight {50};
0044     int bristleInkAmountWeight {50};
0045     int inkDepletionWeight {50};
0046 
0047     bool useSoakInk {false};
0048 
0049     bool read(const KisPropertiesConfiguration *setting);
0050     void write(KisPropertiesConfiguration *setting) const;
0051 };
0052 
0053 #endif // KIS_HAIRYINK_OPTION_DATA_H