11#ifndef KOSEGMENTGRADIENT_H
12#define KOSEGMENTGRADIENT_H
21#include <kritapigment_export.h>
68 void colorAt(
KoColor&, qreal t)
const;
70 const KoColor& startColor()
const;
71 const KoColor& endColor()
const;
76 m_start.color = color;
80 m_start.color.setOpacity(quint8(255));
88 m_end.color.setOpacity(quint8(255));
95 qreal startOffset()
const;
96 qreal middleOffset()
const;
97 qreal endOffset()
const;
99 void setStartOffset(qreal t);
100 void setMiddleOffset(qreal t);
101 void setEndOffset(qreal t);
103 void setVariableColors(
const KoColor& foreground,
const KoColor& background);
104 bool hasVariableColors();
110 int interpolation()
const;
111 int colorInterpolation()
const;
113 void setInterpolation(
int interpolationType);
114 void setColorInterpolation(
int colorInterpolationType);
116 void mirrorSegment();
118 bool isValid()
const;
187 virtual qreal
valueAt(qreal t, qreal middle)
const = 0;
196 qreal valueAt(qreal t, qreal middle)
const override;
204 static qreal calcValueAt(qreal t, qreal middle);
217 qreal valueAt(qreal t, qreal middle)
const override;
233 qreal valueAt(qreal t, qreal middle)
const override;
248 qreal valueAt(qreal t, qreal middle)
const override;
263 qreal valueAt(qreal t, qreal middle)
const override;
281 bool m_hasVariableColors =
false;
299 bool saveToDevice(QIODevice* dev)
const override;
306 void colorAt(
KoColor& dst, qreal t)
const override;
308 QList<int> requiredCanvasResources()
const override;
320 QGradient* toQGradient()
const override;
323 QString defaultFileExtension()
const override;
329 void toXML(QDomDocument& doc, QDomElement& gradientElt)
const;
352 void createSegment(
int interpolation,
int colorInterpolation,
double startOffset,
double endOffset,
double middleOffset,
353 const QColor & leftColor,
const QColor & rightColor,
356 void createSegment(
int interpolation,
int colorInterpolation,
double startOffset,
double endOffset,
double middleOffset,
468 bool removeSegmentPossible()
const;
476 m_segments.push_back(segment);
QSharedPointer< KoSegmentGradient > KoSegmentGradientSP
KoGradientSegmentEndpointType
@ BACKGROUND_TRANSPARENT_ENDPOINT
@ FOREGROUND_TRANSPARENT_ENDPOINT
@ INTERP_SPHERE_DECREASING
@ INTERP_SPHERE_INCREASING
PythonPluginManager * instance
void setOpacity(quint8 alpha)
ColorInterpolationStrategy()
virtual int type() const =0
virtual void colorAt(KoColor &dst, qreal t, const KoColor &start, const KoColor &end) const =0
virtual ~ColorInterpolationStrategy()
int type() const override
static CurvedInterpolationStrategy * m_instance
const KoColorSpace *const m_colorSpace
static HSVCCWColorInterpolationStrategy * m_instance
int type() const override
static HSVCWColorInterpolationStrategy * m_instance
const KoColorSpace *const m_colorSpace
int type() const override
virtual int type() const =0
virtual ~InterpolationStrategy()
virtual qreal valueAt(qreal t, qreal middle) const =0
LinearInterpolationStrategy()
static LinearInterpolationStrategy * m_instance
int type() const override
const KoColorSpace *const m_colorSpace
int type() const override
static RGBColorInterpolationStrategy * m_instance
int type() const override
static SineInterpolationStrategy * m_instance
SineInterpolationStrategy()
int type() const override
static SphereDecreasingInterpolationStrategy * m_instance
SphereDecreasingInterpolationStrategy()
SphereIncreasingInterpolationStrategy()
static SphereIncreasingInterpolationStrategy * m_instance
int type() const override
ColorInterpolationStrategy * m_colorInterpolator
InterpolationStrategy * m_interpolator
void setStartColor(const KoColor &color)
KoGradientSegmentEndpoint m_end
void setEndColor(const KoColor &color)
QPair< QString, QString > resourceType() const override
QList< KoGradientSegment * > m_segments
KoSegmentGradient & operator=(const KoSegmentGradient &rhs)=delete
void pushSegment(KoGradientSegment *segment)
bool loadFromDevice(QIODevice *)
const QString SegmentedGradients
KoGradientSegmentEndpoint(qreal _off, KoColor _color, KoGradientSegmentEndpointType _type)
KoGradientSegmentEndpointType type