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

A named parameter, one that refers to a variable of the path. More...

#include <EnhancedPathParameter.h>

+ Inheritance diagram for EnhancedPathNamedParameter:

Public Member Functions

 EnhancedPathNamedParameter (const QString &identifier, EnhancedPathShape *parent)
 Constructs named parameter from given identifier string.
 
 EnhancedPathNamedParameter (Identifier identifier, EnhancedPathShape *parent)
 Constructs named parameter from given identifier.
 
qreal evaluate () override
 evaluates the parameter using the given path
 
QString toString () const override
 returns string representation of the parameter
 
- Public Member Functions inherited from EnhancedPathParameter
 EnhancedPathParameter (EnhancedPathShape *parent)
 
virtual void modify (qreal value)
 modifies the parameter if possible, using the new value
 
virtual ~EnhancedPathParameter ()
 

Static Public Member Functions

static Identifier identifierFromString (const QString &text)
 Returns identifier type from given string.
 

Private Attributes

Identifier m_identifier
 the identifier type
 

Additional Inherited Members

- Protected Member Functions inherited from EnhancedPathParameter
EnhancedPathShapeparent ()
 

Detailed Description

A named parameter, one that refers to a variable of the path.

Definition at line 63 of file EnhancedPathParameter.h.

Constructor & Destructor Documentation

◆ EnhancedPathNamedParameter() [1/2]

EnhancedPathNamedParameter::EnhancedPathNamedParameter ( Identifier identifier,
EnhancedPathShape * parent )

Constructs named parameter from given identifier.

Definition at line 72 of file EnhancedPathParameter.cpp.

74 , m_identifier(identifier)
75{
76}
Identifier m_identifier
the identifier type
EnhancedPathParameter(EnhancedPathShape *parent)
EnhancedPathShape * parent()

◆ EnhancedPathNamedParameter() [2/2]

EnhancedPathNamedParameter::EnhancedPathNamedParameter ( const QString & identifier,
EnhancedPathShape * parent )

Constructs named parameter from given identifier string.

Definition at line 78 of file EnhancedPathParameter.cpp.

80{
82}
static Identifier identifierFromString(const QString &text)
Returns identifier type from given string.

References identifierFromString(), and m_identifier.

Member Function Documentation

◆ evaluate()

qreal EnhancedPathNamedParameter::evaluate ( )
overridevirtual

evaluates the parameter using the given path

Implements EnhancedPathParameter.

Definition at line 84 of file EnhancedPathParameter.cpp.

85{
86 const QRect &viewBox = parent()->viewBox();
87
88 switch (m_identifier) {
89 case IdentifierPi:
90 return M_PI;
91 break;
92 case IdentifierLeft:
93 return viewBox.left();
94 break;
95 case IdentifierTop:
96 return viewBox.top();
97 break;
98 case IdentifierRight:
99 return viewBox.right();
100 break;
101 case IdentifierBottom:
102 return viewBox.bottom();
103 break;
105 break;
107 break;
109 return parent()->stroke() ? 1.0 : 0.0;
110 break;
112 return parent()->background() ? 0.0 : 1.0;
113 break;
114 case IdentifierWidth:
115 return viewBox.width();
116 break;
117 case IdentifierHeight:
118 return viewBox.height();
119 break;
121 // TODO: ? viewBox does not have any unit or const relation to mm
122 return KoUnit(KoUnit::Millimeter).toUserValue(viewBox.width()) * 100;
123 break;
125 // TODO: ? viewBox does not have any unit or const relation to mm
126 return KoUnit(KoUnit::Millimeter).toUserValue(viewBox.height()) * 100;
127 break;
128 default:
129 break;
130 }
131 return 0.0;
132}
@ IdentifierYstretch
The value of draw:path-stretchpoint-y is used.
@ IdentifierLogwidth
The width of the svg:viewBox in 1/100th mm is used.
@ IdentifierTop
top of svg:viewBox or draw:coordinate-origin-y
@ IdentifierRight
right of svg:viewBox or draw:coordinate-origin-x + draw:coordinate-width
@ IdentifierXstretch
The value of draw:path-stretchpoint-x is used.
@ IdentifierBottom
bottom of svg:viewBox or draw:coordinate-origin-y + draw:coordinate-height
@ IdentifierHasStroke
If the shape has a line style, a value of 1 is used.
@ IdentifierPi
value of pi.
@ IdentifierHasFill
If the shape has a fill style, a value of 1 is used.
@ IdentifierHeight
The height of the svg:viewBox is used.
@ IdentifierLogheight
The height of the svg:viewBox in 1/100th mm is used.
@ IdentifierLeft
left of svg:viewBox or draw:coordinate-origin-x
@ IdentifierWidth
The width of the svg:viewBox is used.
QRect viewBox() const
Returns the viewbox of the enhanced path shape.
virtual KoShapeStrokeModelSP stroke() const
Definition KoShape.cpp:1067
virtual QSharedPointer< KoShapeBackground > background() const
Definition KoShape.cpp:926
@ Millimeter
Definition KoUnit.h:75
qreal toUserValue(qreal ptValue, bool rounding=true) const
Definition KoUnit.cpp:186
#define M_PI
Definition kis_global.h:111

References KoShape::background(), IdentifierBottom, IdentifierHasFill, IdentifierHasStroke, IdentifierHeight, IdentifierLeft, IdentifierLogheight, IdentifierLogwidth, IdentifierPi, IdentifierRight, IdentifierTop, IdentifierWidth, IdentifierXstretch, IdentifierYstretch, m_identifier, M_PI, KoUnit::Millimeter, EnhancedPathParameter::parent(), KoShape::stroke(), KoUnit::toUserValue(), and EnhancedPathShape::viewBox().

◆ identifierFromString()

Identifier EnhancedPathNamedParameter::identifierFromString ( const QString & text)
static

Returns identifier type from given string.

Definition at line 134 of file EnhancedPathParameter.cpp.

135{
136 if (text.isEmpty()) {
137 return IdentifierUnknown;
138 } else if (text == "pi") {
139 return IdentifierPi;
140 } else if (text == "left") {
141 return IdentifierLeft;
142 } else if (text == "top") {
143 return IdentifierTop;
144 } else if (text == "right") {
145 return IdentifierRight;
146 } else if (text == "bottom") {
147 return IdentifierBottom;
148 } else if (text == "xstretch") {
149 return IdentifierXstretch;
150 } else if (text == "ystretch") {
151 return IdentifierYstretch;
152 } else if (text == "hasstroke") {
153 return IdentifierHasStroke;
154 } else if (text == "hasfill") {
155 return IdentifierHasFill;
156 } else if (text == "width") {
157 return IdentifierWidth;
158 } else if (text == "height") {
159 return IdentifierHeight;
160 } else if (text == "logwidth") {
161 return IdentifierLogwidth;
162 } else if (text == "logheight") {
163 return IdentifierLogheight;
164 } else {
165 return IdentifierUnknown;
166 }
167}
@ IdentifierUnknown
unknown identifier

References IdentifierBottom, IdentifierHasFill, IdentifierHasStroke, IdentifierHeight, IdentifierLeft, IdentifierLogheight, IdentifierLogwidth, IdentifierPi, IdentifierRight, IdentifierTop, IdentifierUnknown, IdentifierWidth, IdentifierXstretch, and IdentifierYstretch.

◆ toString()

QString EnhancedPathNamedParameter::toString ( ) const
overridevirtual

returns string representation of the parameter

Implements EnhancedPathParameter.

Definition at line 169 of file EnhancedPathParameter.cpp.

170{
172}
QString identifierData[]

References identifierData, and m_identifier.

Member Data Documentation

◆ m_identifier

Identifier EnhancedPathNamedParameter::m_identifier
private

the identifier type

Definition at line 75 of file EnhancedPathParameter.h.


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