Add performance improvement of _getMonoCurves() by filtering curves that have end points and control points sorted in y direction.

This commit is contained in:
iconexperience 2016-01-16 15:05:49 +01:00
parent b33777274d
commit 5de9558533

View file

@ -924,8 +924,10 @@ Path.inject(/** @lends Path# */{
y1 = v[3], y1 = v[3],
y2 = v[5], y2 = v[5],
y3 = v[7]; y3 = v[7];
if (Curve.isStraight(v)) { if (Curve.isStraight(v) ||
// Handling straight curves is easy. y0 >= y1 === y1 >= y2 && y1 >= y2 === y2 >= y3) {
// Straight curves and curves with end and control points sorted
// in y direction are guaranteed to be monotone in y direction.
insertCurve(v); insertCurve(v);
} else { } else {
// Split the curve at y extrema, to get bezier curves with clear // Split the curve at y extrema, to get bezier curves with clear