Lines Matching refs:crossings

114      * then no crossings are counted for that intersection.
117 * The return value is the sum of all crossings for every segment in
141 int crossings = 0;
146 crossings += pointCrossingsForLine(px, py,
156 crossings += pointCrossingsForLine(px, py,
165 crossings += pointCrossingsForQuad(px, py,
175 crossings += pointCrossingsForCubic(px, py,
185 crossings += pointCrossingsForLine(px, py,
196 crossings += pointCrossingsForLine(px, py,
200 return crossings;
206 * If the point lies on the line, then no crossings are recorded.
228 * then no crossings are counted for that intersection.
279 * then no crossings are counted for that intersection.
369 * The return value is the sum of all crossings for both the
396 int crossings = 0;
397 while (crossings != RECT_INTERSECTS && !pi.isDone()) {
401 crossings = rectCrossingsForLine(crossings,
408 // assert((crossings & 1) != 0);
415 crossings = rectCrossingsForLine(crossings,
426 crossings = rectCrossingsForQuad(crossings,
438 crossings = rectCrossingsForCubic(crossings,
450 crossings = rectCrossingsForLine(crossings,
459 // assert((crossings & 1) != 0);
464 if (crossings != RECT_INTERSECTS && (curx != movx || cury != movy)) {
465 crossings = rectCrossingsForLine(crossings,
472 // assert((crossings & 1) != 0);
473 return crossings;
481 public static int rectCrossingsForLine(int crossings,
487 if (y0 >= rymax && y1 >= rymax) return crossings;
488 if (y0 <= rymin && y1 <= rymin) return crossings;
489 if (x0 <= rxmin && x1 <= rxmin) return crossings;
499 if (y0 <= rymin) crossings++;
500 if (y1 >= rymax) crossings++;
504 if (y1 <= rymin) crossings--;
505 if (y0 >= rymax) crossings--;
507 return crossings;
532 if (xi0 <= rxmin && xi1 <= rxmin) return crossings;
537 if (y0 <= rymin) crossings++;
538 if (y1 >= rymax) crossings++;
542 if (y1 <= rymin) crossings--;
543 if (y0 >= rymax) crossings--;
545 return crossings;
555 public static int rectCrossingsForQuad(int crossings,
563 if (y0 >= rymax && yc >= rymax && y1 >= rymax) return crossings;
564 if (y0 <= rymin && yc <= rymin && y1 <= rymin) return crossings;
565 if (x0 <= rxmin && xc <= rxmin && x1 <= rxmin) return crossings;
570 // We now judge the crossings solely based on the line segment
572 // Note that we may have 0, 1, or 2 crossings as the control
577 if (y0 <= rymin && y1 > rymin) crossings++;
578 if (y0 < rymax && y1 >= rymax) crossings++;
581 if (y1 <= rymin && y0 > rymin) crossings--;
582 if (y1 < rymax && y0 >= rymax) crossings--;
584 return crossings;
597 return rectCrossingsForLine(crossings,
613 crossings = rectCrossingsForQuad(crossings,
617 if (crossings != RECT_INTERSECTS) {
618 crossings = rectCrossingsForQuad(crossings,
623 return crossings;
631 public static int rectCrossingsForCubic(int crossings,
641 return crossings;
644 return crossings;
647 return crossings;
653 // We now judge the crossings solely based on the line segment
655 // Note that we may have 0, 1, or 2 crossings as the control
660 if (y0 <= rymin && y1 > rymin) crossings++;
661 if (y0 < rymax && y1 >= rymax) crossings++;
664 if (y1 <= rymin && y0 > rymin) crossings--;
665 if (y1 < rymax && y0 >= rymax) crossings--;
667 return crossings;
680 return rectCrossingsForLine(crossings,
702 crossings = rectCrossingsForCubic(crossings,
706 if (crossings != RECT_INTERSECTS) {
707 crossings = rectCrossingsForCubic(crossings,
712 return crossings;