plugins/paintops/libpaintop
kis_curve_option.cpp
Go to the documentation of this file.
21 qreal KisCurveOption::ValueComponents::rotationLikeValue(qreal normalizedBaseAngle, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const {
27 const qreal realScalingPart = hasScaling && !disableScalingPart ? KisDynamicSensor::scalingToAdditive(scaling) : 0.0;
30 qreal value = KisAlgebra2D::wrapValue(2 * offset + constant * (scalingPartCoeff * realScalingPart + realAdditivePart), -1.0, 1.0);
43 const qreal realAdditivePart = hasAdditive ? KisDynamicSensor::additiveToScaling(additive) : 1.0;
168 void KisCurveOption::readNamedOptionSetting(const QString& prefix, const KisPropertiesConfigurationSP setting)
349 void KisCurveOption::setCurve(DynamicSensorType sensorType, bool useSameCurve, const KisCubicCurve &curve)
395 KisCurveOption::ValueComponents KisCurveOption::computeValueComponents(const KisPaintInformation& info) const
406 qreal valueFromCurve = m_useSameCurve ? s->parameter(info, m_commonCurve, true) : s->parameter(info);
467 qreal KisCurveOption::computeRotationLikeValue(const KisPaintInformation& info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
470 return components.rotationLikeValue(baseValue, absoluteAxesFlipped, scalingPartCoeff, disableScalingPart);
496 //dbgKrita << "ID" << name() << "has" << m_sensorMap.count() << "Sensors of which" << sensorList.count() << "are active.";
508 //dbgKrita << "ID" << name() << "has" << m_sensorMap.count() << "Sensors of which" << sensorList.count() << "are active.";
643 KisDynamicSensorSP KisCurveOption::type2Sensor(DynamicSensorType sensorType, const QString &parentOptionName)
const_iterator constBegin() const
T & first()
Definition: kis_dynamic_sensor.h:66
void setCurve(DynamicSensorType sensorType, bool useSameCurve, const KisCubicCurve &curve)
Definition: kis_curve_option.cpp:349
const KoID YTiltId("ytilt", ki18nc("Context: dynamic sensors", "Y-Tilt"))
number depending on Y-tilt
QString toString(int indent) const
Definition: kis_dynamic_sensor.h:64
KisCubicCurve defaultCurve()
defaultCurve returns a curve that is set when the KisCurveOption is not initialized yet the purpose o...
Definition: kis_curve_option.cpp:473
qreal maxSizeLikeValue
Definition: kis_curve_option.h:122
bool contains(const Key &key) const
QDomNode firstChild() const
QDomElement toElement() const
virtual void writeOptionSetting(KisPropertiesConfigurationSP setting) const
Definition: kis_curve_option.cpp:113
void setSeparateCurveValue(bool separateCurveValue)
Definition: kis_curve_option.cpp:309
QVariant fromValue(const T &value)
Definition: kis_dynamic_sensor_fade.h:12
QString tagName() const
void clear()
const T value(const Key &key) const
const KoID FuzzyPerDabId("fuzzy", ki18nc("Context: dynamic sensors", "Fuzzy Dab"))
generate a random number
int count(const T &value) const
const KoID DistanceId("distance", ki18nc("Context: dynamic sensors", "Distance"))
generate a number that increase with distance
KisCubicCurve getCommonCurve() const
Returns the curve that is being used instead of sensor ones in case "Use the same curve" is checked.
Definition: kis_curve_option.cpp:304
bool isNull() const
const KoID RotationId("rotation", ki18nc("Context: dynamic sensors", "Rotation"))
rotation coming from the device
Definition: kis_dynamic_sensor.h:67
Definition: kis_dynamic_sensor.h:65
void push_back(const T &value)
bool setContent(const QByteArray &data, bool namespaceProcessing, QString *errorMsg, int *errorLine, int *errorColumn)
Definition: kis_dynamic_sensor.h:72
const KoID FuzzyPerStrokeId("fuzzystroke", ki18nc("Context: dynamic sensors", "Fuzzy Stroke"))
generate a random number
QDomElement createElement(const QString &tagName)
KisCubicCurve m_commonCurve
Curve that is being used instead of sensors' internal ones in case "Use the same curve" is checked.
Definition: kis_curve_option.h:186
static KisDynamicSensorSP createFromXML(const QString &, const QString &parentOptionName)
Definition: kis_dynamic_sensor.cc:279
Definition: kis_dynamic_sensors.h:39
Definition: kis_dynamic_sensors.h:16
KisCurveOption(const QString &name, KisPaintOpOption::PaintopCategory category, bool checked, qreal value=1.0, qreal min=0.0, qreal max=1.0)
Definition: kis_curve_option.cpp:50
void setAttribute(const QString &name, const QString &value)
Definition: kis_dynamic_sensor.h:70
const KoID PressureInId("pressurein", ki18nc("Context: dynamic sensors", "PressureIn"))
number depending on the pressure
const KoID PerspectiveId("perspective", ki18nc("Context: dynamic sensors", "Perspective"))
< tilt elevation is 90 when stylus is perpendicular to tablet and 0 when it's parallel to tablet
Definition: kis_dynamic_sensor.h:62
KisDynamicSensorSP sensor(DynamicSensorType sensorType, bool active) const
Definition: kis_curve_option.cpp:267
const_iterator constEnd() const
Definition: kis_dynamic_sensors.h:69
Definition: kis_dynamic_sensor.h:60
qreal computeSizeLikeValue(const KisPaintInformation &info) const
Definition: kis_curve_option.cpp:461
void setUseSameCurve(bool useSameCurve)
Sets the bool indicating whether "Share curve across all settings" is checked.
Definition: kis_curve_option.cpp:339
Definition: kis_dynamic_sensor.h:71
virtual void readOptionSetting(KisPropertiesConfigurationSP setting)
Definition: kis_curve_option.cpp:143
QMap< DynamicSensorType, KisDynamicSensorSP > m_sensorMap
Definition: kis_curve_option.h:190
const KoID SpeedId("speed", ki18nc("Context: dynamic sensors", "Speed"))
generate a number depending on the speed of the cursor
virtual QList< DynamicSensorType > sensorsTypes()
Definition: kis_curve_option.cpp:683
Definition: kis_dynamic_sensor.h:87
void setValueRange(qreal min, qreal max)
Definition: kis_curve_option.cpp:384
QList< T > values() const
qreal computeRotationLikeValue(const KisPaintInformation &info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
Definition: kis_curve_option.cpp:467
const KoID TiltElevationId("declination", ki18nc("Context: dynamic sensors", "Tilt elevation"))
< number depending on the X and Y tilt, tilt direction is 0 when stylus nib points to you and changes...
QDomElement documentElement() const
virtual void readNamedOptionSetting(const QString &prefix, const KisPropertiesConfigurationSP setting)
Read the option using the prefix in argument.
Definition: kis_curve_option.cpp:168
virtual KisDynamicSensorSP type2Sensor(DynamicSensorType sensorType, const QString &parentOptionName)
Definition: kis_curve_option.cpp:643
KisPaintOpOption::PaintopCategory category() const
Definition: kis_curve_option.cpp:84
const KoID TiltDirectionId("ascension", ki18nc("Context: dynamic sensors", "Tilt direction"))
"TiltDirection" and "TiltElevation" parameters are written to preset files as "ascension" and "declin...
virtual DynamicSensorType id2Type(const KoID &id)
Definition: kis_curve_option.cpp:536
KisPaintOpOption::PaintopCategory m_category
Definition: kis_curve_option.h:174
KisSharedPtr< KisDynamicSensor > KisDynamicSensorSP
Definition: kis_dynamic_sensor.h:55
Definition: kis_dynamic_sensor.h:63
Definition: kis_dynamic_sensor.h:68
Definition: kis_dynamic_sensor.h:75
Definition: kis_dynamic_sensor.h:61
qreal sizeLikeValue() const
Definition: kis_curve_option.cpp:38
ValueComponents computeValueComponents(const KisPaintInformation &info) const
Uses the curves set on the sensors to compute a single double value that can control the parameters o...
Definition: kis_curve_option.cpp:395
QDomNode appendChild(const QDomNode &newChild)
qreal minSizeLikeValue
Definition: kis_curve_option.h:121
KisCubicCurve emptyCurve()
emptyCurve returns the simplest usable curve
Definition: kis_curve_option.cpp:486
QList< KisDynamicSensorSP > activeSensors() const
Definition: kis_curve_option.cpp:500
virtual KisDynamicSensorSP id2Sensor(const KoID &id, const QString &parentOptionName)
Definition: kis_curve_option.cpp:589
qreal absoluteOffset
Definition: kis_curve_option.h:117
const KoID PressureId("pressure", ki18nc("Context: dynamic sensors", "Pressure"))
number depending on the pressure
Definition: kis_dynamic_sensor.h:59
QDomNode nextSibling() const
iterator begin()
const KoID DrawingAngleId("drawingangle", ki18nc("Context: dynamic sensors", "Drawing angle"))
number depending on the angle
Definition: kis_dynamic_sensor_time.h:12
static qreal additiveToScaling(qreal x)
Definition: kis_dynamic_sensor.h:193
const KoID TimeId("time", ki18nc("Context: dynamic sensors", "Time"))
generate a number that increase with time
const KoID TangentialPressureId("tangentialpressure", ki18nc("Context: dynamic sensors", "Tangential pressure"))
the wheel on an airbrush device
Definition: kis_dynamic_sensor.h:73
bool contains(QChar ch, Qt::CaseSensitivity cs) const
bool isElement() const
Definition: kis_dynamic_sensors.h:79
virtual void lodLimitations(KisPaintopLodLimitations *l) const
Definition: kis_curve_option.cpp:148
iterator end()
bool hasAbsoluteOffset
Definition: kis_curve_option.h:118
void setCommonCurve(KisCubicCurve curve)
Sets the curve that is being used instead of sensor ones in case "Share curve across all settings" is...
Definition: kis_curve_option.cpp:344
Definition: kis_dynamic_sensors.h:29
qreal rotationLikeValue(qreal normalizedBaseAngle, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
Definition: kis_curve_option.cpp:21
const KoID XTiltId("xtilt", ki18nc("Context: dynamic sensors", "X-Tilt"))
number depending on X-tilt
Definition: kis_dynamic_sensor.h:69
const KoID FadeId("fade", ki18nc("Context: dynamic sensors", "Fade"))
generate a number that increase every time you call it (e.g. per dab)
static qreal scalingToAdditive(qreal x)
Definition: kis_dynamic_sensor.h:189
void replaceSensor(KisDynamicSensorSP sensor)
Definition: kis_curve_option.cpp:261
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 10 2021 23:38:28 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 10 2021 23:38:28 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.