34#define BEZIER_FLATNESS_THRESHOLD 0.5
48 bool fanCornersEnabled {
false};
49 qreal fanCornersStep {1.0};
66 return cachedDab(
d->painter->device()->colorSpace());
71 if (!
d->dab || *
d->dab->colorSpace() != *cs) {
85 const qint32 i = qFloor(coordinate);
86 const qreal f = coordinate - i;
95 return std::make_pair(40,
false);
107 qreal d1 = line.absDistance(control1);
108 qreal d2 = line.absDistance(control2);
111 || qIsNaN(d1) || qIsNaN(d2)) {
112 paintOp->
paintLine(pi1, pi2, currentDistance);
130 const QPointF &control1,
131 const QPointF &control2,
144 d->fanCornersEnabled,
150 Q_ASSERT(currentDistance);
152 pi.
paintAt(*
this, currentDistance);
196 return d->painter->device();
static void paintBezierCurve(KisPaintOp *paintOp, const KisPaintInformation &pi1, const KisVector2D &control1, const KisVector2D &control2, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance)
#define BEZIER_FLATNESS_THRESHOLD
Eigen::Hyperplane< qreal, 2 > LineEquation
KisVector2D toKisVector2D(const QPointF &p)
Eigen::Matrix< qreal, 2, 1 > KisVector2D
QPointF toQPointF(const ExpressionType &expr)
void paintLine(PaintOp &op, const KisPaintInformation &pi1, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance, bool fanCornersEnabled, qreal fanCornersStep)
void updateTiming(const KisPaintInformation &info, KisDistanceInformation ¤tDistance) const
virtual KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const =0
void paintAt(const KisPaintInformation &info, KisDistanceInformation *currentDistance)
KisFixedPaintDeviceSP dab
KisPaintOp(KisPainter *painter)
KisPaintDeviceSP source() const
virtual KisTimingInformation updateTimingImpl(const KisPaintInformation &info) const
KisFixedPaintDeviceSP cachedDab()
virtual std::pair< int, bool > doAsynchronousUpdate(QVector< KisRunnableStrokeJobData * > &jobs)
void updateSpacing(const KisPaintInformation &info, KisDistanceInformation ¤tDistance) const
static void splitCoordinate(qreal coordinate, qint32 *whole, qreal *fraction)
virtual void paintLine(const KisPaintInformation &pi1, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance)
virtual void paintBezierCurve(const KisPaintInformation &pi1, const QPointF &control1, const QPointF &control2, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance)
void setFanCornersInfo(bool fanCornersEnabled, qreal fanCornersStep)