Krita Source Code Documentation
Loading...
Searching...
No Matches
KisCurveOption::ValueComponents Struct Reference

#include <KisCurveOption.h>

Public Member Functions

qreal rotationLikeValue (qreal normalizedBaseAngle, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
 
qreal sizeLikeValue () const
 

Public Attributes

qreal absoluteOffset {0.0}
 
qreal additive {0.0}
 
qreal constant {1.0}
 
bool hasAbsoluteOffset {false}
 
bool hasAdditive {false}
 
bool hasScaling {false}
 
qreal maxSizeLikeValue {0.0}
 
qreal minSizeLikeValue {0.0}
 
qreal scaling {1.0}
 

Detailed Description

Definition at line 25 of file KisCurveOption.h.

Member Function Documentation

◆ rotationLikeValue()

qreal KisCurveOption::ValueComponents::rotationLikeValue ( qreal normalizedBaseAngle,
bool absoluteAxesFlipped,
qreal scalingPartCoeff,
bool disableScalingPart ) const
Parameters
normalizedBaseAnglecanvas rotation angle normalized to range [0; 1]
absoluteAxesFlippedtrue if underlying image coordinate system is flipped (horiz. mirror != vert. mirror)

Definition at line 61 of file KisCurveOption.cpp.

61 {
62 const qreal offset =
63 !hasAbsoluteOffset ? normalizedBaseAngle :
64 absoluteAxesFlipped ? 0.5 - absoluteOffset :
66
67 const qreal realScalingPart = hasScaling && !disableScalingPart ? KisDynamicSensor::scalingToAdditive(scaling) : 0.0;
68 const qreal realAdditivePart = hasAdditive ? additive : 0;
69
70 qreal value = KisAlgebra2D::wrapValue(2 * offset + constant * (scalingPartCoeff * realScalingPart + realAdditivePart), -1.0, 1.0);
71 if (qIsNaN(value)) {
72 qWarning() << "rotationLikeValue returns NaN!" << normalizedBaseAngle << absoluteAxesFlipped;
73 value = 0;
74 }
75 return value;
76}
float value(const T *src, size_t ch)
static qreal scalingToAdditive(qreal x)
T wrapValue(T value, T wrapBounds)

References absoluteOffset, additive, constant, hasAbsoluteOffset, hasAdditive, hasScaling, scaling, KisDynamicSensor::scalingToAdditive(), value(), and KisAlgebra2D::wrapValue().

◆ sizeLikeValue()

qreal KisCurveOption::ValueComponents::sizeLikeValue ( ) const

Definition at line 78 of file KisCurveOption.cpp.

78 {
79 const qreal offset =
81
82 const qreal realScalingPart = hasScaling ? scaling : 1.0;
83 const qreal realAdditivePart = hasAdditive ? KisDynamicSensor::additiveToScaling(additive) : 1.0;
84
85 return qBound(minSizeLikeValue,
86 constant * offset * realScalingPart * realAdditivePart,
88}
static qreal additiveToScaling(qreal x)

References KisDynamicSensor::additiveToScaling().

Member Data Documentation

◆ absoluteOffset

qreal KisCurveOption::ValueComponents::absoluteOffset {0.0}

Definition at line 29 of file KisCurveOption.h.

29{0.0};

◆ additive

qreal KisCurveOption::ValueComponents::additive {0.0}

Definition at line 28 of file KisCurveOption.h.

28{0.0};

◆ constant

qreal KisCurveOption::ValueComponents::constant {1.0}

Definition at line 26 of file KisCurveOption.h.

26{1.0};

◆ hasAbsoluteOffset

bool KisCurveOption::ValueComponents::hasAbsoluteOffset {false}

Definition at line 30 of file KisCurveOption.h.

30{false};

◆ hasAdditive

bool KisCurveOption::ValueComponents::hasAdditive {false}

Definition at line 32 of file KisCurveOption.h.

32{false};

◆ hasScaling

bool KisCurveOption::ValueComponents::hasScaling {false}

Definition at line 31 of file KisCurveOption.h.

31{false};

◆ maxSizeLikeValue

qreal KisCurveOption::ValueComponents::maxSizeLikeValue {0.0}

Definition at line 34 of file KisCurveOption.h.

34{0.0};

◆ minSizeLikeValue

qreal KisCurveOption::ValueComponents::minSizeLikeValue {0.0}

Definition at line 33 of file KisCurveOption.h.

33{0.0};

◆ scaling

qreal KisCurveOption::ValueComponents::scaling {1.0}

Definition at line 27 of file KisCurveOption.h.

27{1.0};

The documentation for this struct was generated from the following files: