File indexing completed on 2024-06-09 04:28:22

0001 /*
0002  * SPDX-FileCopyrightText: 2015 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #ifndef KIS_TANGENTTILT_OPTION_DATA_H
0007 #define KIS_TANGENTTILT_OPTION_DATA_H
0008 
0009 
0010 #include "kis_types.h"
0011 #include <boost/operators.hpp>
0012 
0013 class KisPropertiesConfiguration;
0014 
0015 enum TangentTiltDirectionType {
0016     Tilt,
0017     Direction,
0018     Rotation,
0019     Mix
0020 };
0021 
0022 struct KisTangentTiltOptionData : boost::equality_comparable<KisTangentTiltOptionData>
0023 {
0024     inline friend bool operator==(const KisTangentTiltOptionData &lhs, const KisTangentTiltOptionData &rhs) {
0025         return lhs.redChannel == rhs.redChannel
0026             && lhs.greenChannel == rhs.greenChannel
0027             && lhs.blueChannel == rhs.blueChannel
0028             && lhs.directionType == rhs.directionType
0029             && qFuzzyCompare(lhs.elevationSensitivity, rhs.elevationSensitivity)
0030             && qFuzzyCompare(lhs.mixValue, rhs.mixValue);
0031     }
0032 
0033     int redChannel {0};
0034     int greenChannel {2};
0035     int blueChannel {4};
0036     TangentTiltDirectionType directionType {TangentTiltDirectionType::Tilt};
0037     double elevationSensitivity {100.0};
0038     double mixValue {50.0};
0039 
0040     bool read(const KisPropertiesConfiguration *setting);
0041     void write(KisPropertiesConfiguration *setting) const;
0042 };
0043 
0044 #endif // KIS_TANGENTTILT_OPTION_DATA_H