Lines Matching defs:p1
74 static int clip_line(const SkRect& bounds, SkPoint p0, SkPoint p1, SkPoint edges[]) {
77 if (p0.fY == p1.fY) {
81 if (p0.fY > p1.fY) {
82 SkTSwap(p0, p1);
84 // now we're monotonic in Y: p0 <= p1
85 if (p1.fY <= bounds.top() || p0.fY >= bounds.bottom()) {
89 double dxdy = (double)(p1.fX - p0.fX) / (p1.fY - p0.fY);
94 if (p1.fY > bounds.bottom()) {
95 p1.fX = SkDoubleToScalar(p1.fX + dxdy * (bounds.bottom() - p1.fY));
96 p1.fY = bounds.bottom();
99 // Now p0...p1 is strictly inside bounds vertically, so we just need to clip horizontally
101 if (p0.fX > p1.fX) {
102 SkTSwap(p0, p1);
104 // now we're left-to-right: p0 .. p1
106 if (p1.fX <= bounds.left()) { // entirely to the left
107 p0.fX = p1.fX = bounds.left();
109 *edges++ = p1;
113 p0.fX = p1.fX = bounds.right();
115 *edges++ = p1;
125 if (p1.fX > bounds.right()) {
129 *edges++ = SkPoint::Make(bounds.right(), p1.fY);
132 *edges++ = p1;
138 SkPoint p0, SkPoint p1, const SkPaint& paint) {
140 int count = clip_line(bounds, p0, p1, verts);