7#ifndef KISBEZIERGRADIENTMESH_H
8#define KISBEZIERGRADIENTMESH_H
10#include "kritaimage_export.h"
17inline QColor
lerp(
const QColor &c1,
const QColor &c2, qreal t) {
20 return QColor::fromRgbF(
lerp(c1.redF(), c2.redF(), t),
21 lerp(c1.greenF(), c2.greenF(), t),
22 lerp(c1.blueF(), c2.blueF(), t),
23 lerp(c1.alphaF(), c2.alphaF(), t));
32 using BaseMeshNode::BaseMeshNode;
48 const QRectF &srcRect,
67 PatchIndex hitTestPatch(
const QPointF &pt, QPointF *localPointResult)
const;
70 const QPoint &dstQImageOffset,
73 void renderMesh(
const QPoint &dstQImageOffset,
74 QImage *dstImage)
const;
76 friend KRITAIMAGE_EXPORT
void saveValue(QDomElement *parent,
const QString &tag,
const KisBezierGradientMesh &mesh);
77 friend KRITAIMAGE_EXPORT
bool loadValue(
const QDomElement &parent,
const QString &tag,
KisBezierGradientMesh *mesh);
Point lerp(const Point &pt1, const Point &pt2, qreal t)
QColor lerp(const QColor &c1, const QColor &c2, qreal t)
void lerpNodeData(const GradientMeshNode &left, const GradientMeshNode &right, qreal t, GradientMeshNode &dst)
bool loadValue(const QDomElement &parent, GradientMeshNode *node)
void assignPatchData(GradientMeshPatch *patch, const QRectF &srcRect, const GradientMeshNode &tl, const GradientMeshNode &tr, const GradientMeshNode &bl, const GradientMeshNode &br)
void saveValue(QDomElement *parent, const QString &tag, const GradientMeshNode &node)
bool operator==(const GradientMeshNode &rhs) const
std::array< QColor, 4 > colors