mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-01 02:38:43 -05:00
Reformat code of #895 a bit.
- Respect 80 chars line-width - Indent comments with current indentation level - Use punctuation in comments
This commit is contained in:
parent
18e00f6312
commit
d186c2d356
1 changed files with 20 additions and 17 deletions
|
@ -353,9 +353,9 @@ PathItem.inject(new function() {
|
|||
// Retrieve and use it here (See _getMonoCurve()).
|
||||
var curve = curves[start],
|
||||
last = curve.last,
|
||||
// Get the values of to the end x coordinate and winding of
|
||||
// the last non-horizontal curve, which will be the previous
|
||||
// non-horizontal curve for the first curve of the loop.
|
||||
// Get the values of to the end x coordinate and winding of
|
||||
// the last non-horizontal curve, which will be the previous
|
||||
// non-horizontal curve for the first curve of the loop.
|
||||
prevWinding = last.winding,
|
||||
prevXEnd = last.values[6];
|
||||
end = start + curve.length;
|
||||
|
@ -369,35 +369,38 @@ PathItem.inject(new function() {
|
|||
// compare the endpoints of the curve to determine if the
|
||||
// ray from query point along +-x direction will intersect
|
||||
// the monotone curve.
|
||||
// horizontal curves with winding == 0 will be completely
|
||||
// ignored
|
||||
// Horizontal curves with winding == 0 will be completely
|
||||
// ignored.
|
||||
if (winding && (py >= yStart && py <= yEnd
|
||||
|| py >= yEnd && py <= yStart)) {
|
||||
// calculate the x value for the ray's intersection
|
||||
// Calculate the x value for the ray's intersection.
|
||||
var x;
|
||||
if (py === yStart) {
|
||||
x = values[0];
|
||||
} else if (py === yEnd) {
|
||||
x = values[6];
|
||||
} else if (Curve.solveCubic(values, 1, py, roots, 0, 1) === 1) {
|
||||
} else if (Curve.solveCubic(values, 1, py, roots, 0, 1)
|
||||
=== 1) {
|
||||
x = Curve.getPoint(values, roots[0]).x;
|
||||
}
|
||||
if (x != null) {
|
||||
// count the intersection of the ray with the monotonic curve if
|
||||
// - the crossing is not at the start of the curve
|
||||
// - or the windings are opposite (intersect at a vertical extremum)
|
||||
// - or the start of the current curve and the end of the prev
|
||||
// curve are on opposite sides of px
|
||||
var isWindingChange = winding === -prevWinding,
|
||||
countIntersection = py !== yStart || isWindingChange ||
|
||||
(x - px) * (prevXEnd - px) < 0;
|
||||
if (countIntersection) {
|
||||
// Count the intersection of the ray with the
|
||||
// monotonic curve if:
|
||||
// - the crossing is not at the start of the curve
|
||||
// - or the windings are opposite (intersect at a
|
||||
// vertical extremum)
|
||||
// - or the start of the current curve and the end
|
||||
// of the prev curve are on opposite sides of px
|
||||
var isWindingChange = winding === -prevWinding;
|
||||
if (py !== yStart || isWindingChange ||
|
||||
(x - px) * (prevXEnd - px) < 0) {
|
||||
if (x < xBefore) {
|
||||
windLeft += winding;
|
||||
} else if (x > xAfter) {
|
||||
windRight += winding;
|
||||
} else if (py === yStart && isWindingChange) {
|
||||
// intersection is at a vertical extremum
|
||||
// The point is a vertical extremum of the
|
||||
// path.
|
||||
++windLeft;
|
||||
++windRight;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue