Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRotationOption Class Reference

#include <KisRotationOption.h>

+ Inheritance diagram for KisRotationOption:

Public Member Functions

qreal apply (const KisPaintInformation &info) const
 
void applyFanCornersInfo (KisPaintOp *op)
 
 KisRotationOption (const KisPropertiesConfiguration *setting)
 
- Public Member Functions inherited from KisCurveOption
qreal computeRotationLikeValue (const KisPaintInformation &info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
 
qreal computeSizeLikeValue (const KisPaintInformation &info, bool useStrengthValue=true) const
 
ValueComponents computeValueComponents (const KisPaintInformation &info, bool useStrengthValue) const
 
bool isChecked () const
 
bool isRandom () const
 
 KisCurveOption (const KisCurveOptionData &data)
 
 KisCurveOption (KisCurveOption &)=delete
 
KisCurveOptionoperator= (KisCurveOption &)=delete
 
qreal strengthMaxValue () const
 
qreal strengthMinValue () const
 
qreal strengthValue () const
 

Private Member Functions

 KisRotationOption (const KisRotationOptionData &data)
 

Private Attributes

bool m_fanCornersEnabled {false}
 
qreal m_fanCornersStep {30.0}
 

Detailed Description

Definition at line 13 of file KisRotationOption.h.

Constructor & Destructor Documentation

◆ KisRotationOption() [1/2]

KisRotationOption::KisRotationOption ( const KisPropertiesConfiguration * setting)

Definition at line 18 of file KisRotationOption.cpp.

19 : KisRotationOption(kpou::loadOptionData<KisRotationOptionData>(setting))
20{
21}
KisRotationOption(const KisPropertiesConfiguration *setting)

◆ KisRotationOption() [2/2]

KisRotationOption::KisRotationOption ( const KisRotationOptionData & data)
private

Definition at line 23 of file KisRotationOption.cpp.

References KisDrawingAngleSensorData::fanCornersEnabled, KisDrawingAngleSensorData::fanCornersStep, KisSensorData::isActive, KisDrawingAngleSensorData::lockedAngleMode, m_fanCornersEnabled, m_fanCornersStep, KisKritaSensorData::sensorDrawingAngle, and KisCurveOptionData::sensorStruct().

Member Function Documentation

◆ apply()

qreal KisRotationOption::apply ( const KisPaintInformation & info) const

flip to conform global legacy code we measure rotation in the opposite direction relative Qt's way

Definition at line 34 of file KisRotationOption.cpp.

35{
36 if (!isChecked()) return kisDegreesToRadians(info.canvasRotation());
37
38 const bool absoluteAxesFlipped = info.canvasMirroredH() != info.canvasMirroredV();
39
40 const qreal normalizedBaseAngle = -info.canvasRotation() / 360.0;
41
42 // we should invert scaling part because it is expected
43 // to rotate the brush counterclockwise
44 const qreal scalingPartCoeff = -1.0;
45
46 qreal value = computeRotationLikeValue(info, normalizedBaseAngle, absoluteAxesFlipped, scalingPartCoeff, info.isHoveringMode());
47
50 value = 1.0 - value;
51
52 return normalizeAngle(value * M_PI);
53 }
float value(const T *src, size_t ch)
qreal computeRotationLikeValue(const KisPaintInformation &info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
bool isChecked() const
T kisDegreesToRadians(T degrees)
Definition kis_global.h:176
std::enable_if< std::is_floating_point< T >::value, T >::type normalizeAngle(T a)
Definition kis_global.h:121
#define M_PI
Definition kis_global.h:111

References KisPaintInformation::canvasMirroredH(), KisPaintInformation::canvasMirroredV(), KisPaintInformation::canvasRotation(), KisCurveOption::computeRotationLikeValue(), KisCurveOption::isChecked(), KisPaintInformation::isHoveringMode(), kisDegreesToRadians(), M_PI, normalizeAngle(), and value().

◆ applyFanCornersInfo()

void KisRotationOption::applyFanCornersInfo ( KisPaintOp * op)

A special case for the Drawing Angle sensor, because it changes the behavior of KisPaintOp::paintLine()

Definition at line 55 of file KisRotationOption.cpp.

56{
57 if (!this->isChecked()) return;
58
64}
void setFanCornersInfo(bool fanCornersEnabled, qreal fanCornersStep)

References KisCurveOption::isChecked(), m_fanCornersEnabled, m_fanCornersStep, M_PI, and KisPaintOp::setFanCornersInfo().

Member Data Documentation

◆ m_fanCornersEnabled

bool KisRotationOption::m_fanCornersEnabled {false}
private

Definition at line 25 of file KisRotationOption.h.

25{false};

◆ m_fanCornersStep

qreal KisRotationOption::m_fanCornersStep {30.0}
private

Definition at line 26 of file KisRotationOption.h.

26{30.0};

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