File indexing completed on 2024-06-16 04:17:33

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef MYPAINTSTANDARDOPTIONDATA_H
0007 #define MYPAINTSTANDARDOPTIONDATA_H
0008 
0009 #include <MyPaintCurveOptionData.h>
0010 #include <kis_paintop_lod_limitations.h>
0011 
0012 
0013 struct MyPaintRadiusLogarithmicData : MyPaintCurveOptionData
0014 {
0015     MyPaintRadiusLogarithmicData();
0016 };
0017 
0018 struct MyPaintHardnessData : MyPaintCurveOptionData
0019 {
0020     MyPaintHardnessData();
0021 };
0022 
0023 struct MyPaintOpacityData : MyPaintCurveOptionData
0024 {
0025     MyPaintOpacityData();
0026 };
0027 
0028 struct MyPaintRadiusByRandomData : MyPaintCurveOptionData
0029 {
0030     MyPaintRadiusByRandomData()
0031         : MyPaintCurveOptionData(KoID("radius_by_random", i18n("Radius by Random")),
0032                                  false, true, 0.0, 1.50)
0033     {
0034     }
0035 
0036     KisPaintopLodLimitations lodLimitations() const {
0037         KisPaintopLodLimitations l;
0038         if (qAbs(strengthValue) > 0.05) {
0039             l.limitations << KoID("Radius by Random", i18nc("PaintOp instant preview limitation", "Radius by Random, consider disabling Instant Preview"));
0040         }
0041         return l;
0042     }
0043 };
0044 
0045 struct MyPaintAntiAliasingData : MyPaintCurveOptionData
0046 {
0047     MyPaintAntiAliasingData()
0048         : MyPaintCurveOptionData(KoID("anti_aliasing", i18n("Anti Aliasing")),
0049                                  false, true, 0.0, 1.0)
0050     {
0051     }
0052 };
0053 
0054 struct MyPaintEllipticalDabAngleData : MyPaintCurveOptionData
0055 {
0056     MyPaintEllipticalDabAngleData()
0057         : MyPaintCurveOptionData(KoID("elliptical_dab_angle",
0058                                       i18n("Elliptical Dab Angle")),
0059                                  false, true, 0.0, 180.0)
0060     {
0061     }
0062 };
0063 
0064 struct MyPaintEllipticalDabRatioData : MyPaintCurveOptionData
0065 {
0066     MyPaintEllipticalDabRatioData()
0067         : MyPaintCurveOptionData(KoID("elliptical_dab_ratio", i18n("Elliptical Dab Ratio")),
0068                                  false, true, 1.0, 10.0)
0069     {
0070     }
0071 };
0072 
0073 
0074 struct MyPaintDirectionFilterData : MyPaintCurveOptionData
0075 {
0076     MyPaintDirectionFilterData()
0077         : MyPaintCurveOptionData(KoID("direction_filter", i18n("Direction Filter")),
0078                                  false, true, 0.0, 10.0)
0079     {
0080     }
0081 };
0082 
0083 struct MyPaintSnapToPixelsData : MyPaintCurveOptionData
0084 {
0085     MyPaintSnapToPixelsData()
0086         : MyPaintCurveOptionData(KoID("snap_to_pixel", i18n("Snap To Pixel")),
0087                                  false, true, 0.0, 10.0)
0088     {
0089     }
0090 };
0091 
0092 
0093 struct MyPaintPressureGainData : MyPaintCurveOptionData
0094 {
0095     MyPaintPressureGainData()
0096         : MyPaintCurveOptionData(KoID("pressure_gain_log", i18n("Pressure Gain")),
0097                                  false, true, -1.8, 1.8)
0098     {
0099     }
0100 };
0101 
0102 
0103 struct MyPaintChangeColorHData : MyPaintCurveOptionData
0104 {
0105     MyPaintChangeColorHData()
0106         : MyPaintCurveOptionData(KoID("change_color_h", i18n("Change Color H")),
0107                                  false, true, -2.0, 2.0)
0108     {
0109     }
0110 };
0111 
0112 struct MyPaintChangeColorLData : MyPaintCurveOptionData
0113 {
0114     MyPaintChangeColorLData()
0115         : MyPaintCurveOptionData(KoID("change_color_l", i18n("Change Color L")),
0116                                  false, true, -2.0, 2.0)
0117     {
0118     }
0119 };
0120 
0121 struct MyPaintChangeColorVData : MyPaintCurveOptionData
0122 {
0123     MyPaintChangeColorVData()
0124         : MyPaintCurveOptionData(KoID("change_color_v", i18n("Change Color V")),
0125                                  false, true, -2.0, 2.0)
0126     {
0127     }
0128 };
0129 
0130 struct MyPaintChangeColorHSLSData : MyPaintCurveOptionData
0131 {
0132     MyPaintChangeColorHSLSData()
0133         : MyPaintCurveOptionData(KoID("change_color_hsl_s", i18n("Change Color HSL S")),
0134                                  false, true, -2.0, 2.0)
0135     {
0136     }
0137 };
0138 
0139 struct MyPaintChangeColorHSVSData : MyPaintCurveOptionData
0140 {
0141     MyPaintChangeColorHSVSData()
0142         : MyPaintCurveOptionData(KoID("change_color_hsv_s", i18n("Change Color HSV S")),
0143                                  false, true, -2.0, 2.0)
0144     {
0145     }
0146 };
0147 
0148 struct MyPaintColorizeData : MyPaintCurveOptionData
0149 {
0150     MyPaintColorizeData()
0151         : MyPaintCurveOptionData(KoID("colorize", i18n("Colorize")),
0152                                  false, true, 0.0, 1.0)
0153     {
0154     }
0155 };
0156 
0157 struct MyPaintPosterizeData : MyPaintCurveOptionData
0158 {
0159     MyPaintPosterizeData()
0160         : MyPaintCurveOptionData(KoID("posterize", i18n("Posterize")),
0161                                  false, true, 0.0, 1.0)
0162     {
0163     }
0164 };
0165 
0166 struct MyPaintPosterizationLevelsData : MyPaintCurveOptionData
0167 {
0168     MyPaintPosterizationLevelsData()
0169         : MyPaintCurveOptionData(KoID("posterize_num", i18n("Posterization Levels")),
0170                                  false, true, 0.0, 1.28)
0171     {
0172     }
0173 };
0174 
0175 struct MyPaintFineSpeedGammaData : MyPaintCurveOptionData
0176 {
0177     MyPaintFineSpeedGammaData()
0178         : MyPaintCurveOptionData(KoID("speed1_gamma", i18n("Fine Speed Gamma")),
0179                                  false, true, -8.0, 8.0)
0180     {
0181     }
0182 };
0183 
0184 struct MyPaintGrossSpeedGammaData : MyPaintCurveOptionData
0185 {
0186     MyPaintGrossSpeedGammaData()
0187         : MyPaintCurveOptionData(KoID("speed2_gamma", i18n("Gross Speed Gamma")),
0188                                  false, true, -8.0, 8.0)
0189     {
0190     }
0191 };
0192 
0193 struct MyPaintFineSpeedSlownessData : MyPaintCurveOptionData
0194 {
0195     MyPaintFineSpeedSlownessData()
0196         : MyPaintCurveOptionData(KoID("speed1_slowness", i18n("Fine Speed Slowness")),
0197                                  false, true, -8.0, 8.0)
0198     {
0199     }
0200 };
0201 
0202 struct MyPaintGrossSpeedSlownessData : MyPaintCurveOptionData
0203 {
0204     MyPaintGrossSpeedSlownessData()
0205         : MyPaintCurveOptionData(KoID("speed2_slowness", i18n("Gross Speed Slowness")),
0206                                  false, true, -8.0, 8.0)
0207     {
0208     }
0209 };
0210 
0211 struct MyPaintOffsetBySpeedData : MyPaintCurveOptionData
0212 {
0213     MyPaintOffsetBySpeedData()
0214         : MyPaintCurveOptionData(KoID("offset_by_speed", i18n("Offset By Speed")),
0215                                  false, true, -3.0, 3.0)
0216     {
0217     }
0218 };
0219 
0220 struct MyPaintOffsetBySpeedFilterData : MyPaintCurveOptionData
0221 {
0222     MyPaintOffsetBySpeedFilterData()
0223         : MyPaintCurveOptionData(KoID("offset_by_speed_slowness", i18n("Offset by Speed Filter")),
0224                                  false, true, 0.0, 15.0)
0225     {
0226     }
0227 };
0228 
0229 struct MyPaintOffsetByRandomData : MyPaintCurveOptionData
0230 {
0231     MyPaintOffsetByRandomData()
0232         : MyPaintCurveOptionData(KoID("offset_by_random", i18n("Offset By Random")),
0233                                  false, true, -3.0, 3.0)
0234     {
0235     }
0236 
0237     KisPaintopLodLimitations lodLimitations() const {
0238         KisPaintopLodLimitations l;
0239         if (qAbs(strengthValue) > 0.05) {
0240             l.limitations << KoID("Offset by Random", i18nc("PaintOp instant preview limitation", "Offset by Random, consider disabling Instant Preview"));
0241         }
0242         return l;
0243     }
0244 
0245 };
0246 
0247 struct MyPaintDabsPerBasicRadiusData : MyPaintCurveOptionData
0248 {
0249     MyPaintDabsPerBasicRadiusData()
0250         : MyPaintCurveOptionData(KoID("dabs_per_basic_radius", i18n("Dabs Per Basic Radius")),
0251                                  false, true, 0.0, 6.0)
0252     {
0253     }
0254 };
0255 
0256 struct MyPaintDabsPerActualRadiusData : MyPaintCurveOptionData
0257 {
0258     MyPaintDabsPerActualRadiusData()
0259         : MyPaintCurveOptionData(KoID("dabs_per_actual_radius", i18n("Dabs Per Actual Radius")),
0260                                  false, true, 0.0, 6.0)
0261     {
0262     }
0263 };
0264 
0265 struct MyPaintDabsPerSecondData : MyPaintCurveOptionData
0266 {
0267     MyPaintDabsPerSecondData()
0268         : MyPaintCurveOptionData(KoID("dabs_per_second", i18n("Dabs per Second")),
0269                                  false, true, 0.0, 80.0)
0270     {
0271     }
0272 };
0273 
0274 
0275 struct MyPaintOpaqueLinearizeData : MyPaintCurveOptionData
0276 {
0277     MyPaintOpaqueLinearizeData()
0278         : MyPaintCurveOptionData(KoID("opaque_linearize", i18n("Opaque Linearize")),
0279                                  false, true, 0.0, 3.0)
0280     {
0281     }
0282 };
0283 
0284 struct MyPaintOpaqueMultiplyData : MyPaintCurveOptionData
0285 {
0286     MyPaintOpaqueMultiplyData()
0287         : MyPaintCurveOptionData(KoID("opaque_multiply", i18n("Opaque Multiply")),
0288                                  false, true, 0.0, 2.0)
0289     {
0290     }
0291 };
0292 
0293 struct MyPaintSlowTrackingPerDabData : MyPaintCurveOptionData
0294 {
0295     MyPaintSlowTrackingPerDabData()
0296         : MyPaintCurveOptionData(KoID("slow_tracking_per_dab", i18n("Slow tracking per dab")),
0297                                  false, true, 0.0, 10.0)
0298     {
0299     }
0300 };
0301 
0302 struct MyPaintSlowTrackingData : MyPaintCurveOptionData
0303 {
0304     MyPaintSlowTrackingData()
0305         : MyPaintCurveOptionData(KoID("slow_tracking", i18n("Slow Tracking")),
0306                                  false, true, 0.0, 10.0)
0307     {
0308     }
0309 };
0310 
0311 struct MyPaintTrackingNoiseData : MyPaintCurveOptionData
0312 {
0313     MyPaintTrackingNoiseData()
0314         : MyPaintCurveOptionData(KoID("tracking_noise", i18n("Tracking Noise")),
0315                                  false, true, 0.0, 12.0)
0316     {
0317     }
0318 };
0319 
0320 struct MyPaintSmudgeData : MyPaintCurveOptionData
0321 {
0322     MyPaintSmudgeData()
0323         : MyPaintCurveOptionData(KoID("smudge", i18n("Smudge")),
0324                                  false, true, 0.0, 1.0)
0325     {
0326     }
0327 };
0328 
0329 struct MyPaintSmudgeLengthData : MyPaintCurveOptionData
0330 {
0331     MyPaintSmudgeLengthData()
0332         : MyPaintCurveOptionData(KoID("smudge_length", i18n("Smudge Length")),
0333                                  false, true, 0.0, 1.0)
0334     {
0335     }
0336 };
0337 
0338 struct MyPaintSmudgeRadiusLogData : MyPaintCurveOptionData
0339 {
0340     MyPaintSmudgeRadiusLogData()
0341         : MyPaintCurveOptionData(KoID("smudge_radius_log", i18n("Smudge Radius Log")),
0342                                  false, true, -1.6, 1.6)
0343     {
0344     }
0345 };
0346 
0347 struct MyPaintSmudgeLengthMultiplierData : MyPaintCurveOptionData
0348 {
0349     MyPaintSmudgeLengthMultiplierData()
0350         : MyPaintCurveOptionData(KoID("smudge_length_log", i18n("Smudge Length Multiplier")),
0351                                  false, true, 0.0, 20)
0352     {
0353     }
0354 };
0355 
0356 struct MyPaintSmudgeBucketData : MyPaintCurveOptionData
0357 {
0358     MyPaintSmudgeBucketData()
0359         : MyPaintCurveOptionData(KoID("smudge_bucket", i18n("Smudge Bucket")),
0360                                  false, true, 0.0, 255.0)
0361     {
0362     }
0363 };
0364 
0365 struct MyPaintSmudgeTransparencyData : MyPaintCurveOptionData
0366 {
0367     MyPaintSmudgeTransparencyData()
0368         : MyPaintCurveOptionData(KoID("smudge_transparency", i18n("Smudge Transparency")),
0369                                  false, true, -1.0, 1.0)
0370     {
0371     }
0372 };
0373 
0374 struct MyPaintStrokeDurationLogData : MyPaintCurveOptionData
0375 {
0376     MyPaintStrokeDurationLogData()
0377         : MyPaintCurveOptionData(KoID("stroke_duration_logarithmic", i18n("Stroke Duration log")),
0378                                  false, true, -1.0, 7.0)
0379     {
0380     }
0381 };
0382 
0383 struct MyPaintStrokeHoldtimeData : MyPaintCurveOptionData
0384 {
0385     MyPaintStrokeHoldtimeData()
0386         : MyPaintCurveOptionData(KoID("stroke_holdtime", i18n("Stroke Holdtime")),
0387                                  false, true, 0.0, 10.0)
0388     {
0389     }
0390 };
0391 
0392 struct MyPaintStrokeThresholdData : MyPaintCurveOptionData
0393 {
0394     MyPaintStrokeThresholdData()
0395         : MyPaintCurveOptionData(KoID("stroke_threshold", i18n("Stroke Threshold")),
0396                                  false, true, 0.0, 0.5)
0397     {
0398     }
0399 };
0400 
0401 struct MyPaintCustomInputData : MyPaintCurveOptionData
0402 {
0403     MyPaintCustomInputData()
0404         : MyPaintCurveOptionData(KoID("custom_input", i18n("Custom Input")),
0405                                  false, true, -5.0, 5.0)
0406     {
0407     }
0408 };
0409 
0410 struct MyPaintCustomInputSlownessData : MyPaintCurveOptionData
0411 {
0412     MyPaintCustomInputSlownessData()
0413         : MyPaintCurveOptionData(KoID("custom_input_slowness", i18n("Custom Input Slowness")),
0414                                  false, true, 0.0, 10.0)
0415     {
0416     }
0417 };
0418 
0419 #endif // MYPAINTSTANDARDOPTIONDATA_H