void Line0NoClip(LineParameters lp) { if (lp.len > LineAA.MAX_LENGTH) { LineParameters lp1, lp2; lp.HalfDivide(out lp1, out lp2); Line0NoClip(lp1); Line0NoClip(lp2); return; } (new LineInterpolatorAA0(this, lp)).Loop(); }
void Line2NoClip(LineParameters lp, int ex, int ey) { if (lp.len > LineAA.MAX_LENGTH) { LineParameters lp1, lp2; lp.HalfDivide(out lp1, out lp2); Line2NoClip(lp1, lp1.x2 + (lp1.y2 - lp1.y1), lp1.y2 - (lp1.x2 - lp1.x1)); Line2NoClip(lp2, (lp.x2 + ex) >> 1, (lp.y2 + ey) >> 1); return; } LineAA.FixDegenBisectrixEnd(lp, ref ex, ref ey); (new LineInterpolatorAA2(this, lp, ex, ey)).Loop(); }
void Line1NoClip(LineParameters lp, int sx, int sy) { if (lp.len > LineAA.MAX_LENGTH) { LineParameters lp1, lp2; lp.HalfDivide(out lp1, out lp2); Line1NoClip(lp1, (lp.x1 + sx) >> 1, (lp.y1 + sy) >> 1); Line1NoClip(lp2, lp1.x2 + (lp1.y2 - lp1.y1), lp1.y2 - (lp1.x2 - lp1.x1)); return; } LineAA.FixDegenBisectrixStart(lp, ref sx, ref sy); (new LineInterpolatorAA1(this, lp, sx, sy)).Loop(); }
void Line3NoClip(LineParameters lp, int sx, int sy, int ex, int ey) { if (lp.len > LineAA.MAX_LENGTH) { LineParameters lp1, lp2; lp.HalfDivide(out lp1, out lp2); int mx = lp1.x2 + (lp1.y2 - lp1.y1); int my = lp1.y2 - (lp1.x2 - lp1.x1); Line3NoClip(lp1, (lp.x1 + sx) >> 1, (lp.y1 + sy) >> 1, mx, my); Line3NoClip(lp2, mx, my, (lp.x2 + ex) >> 1, (lp.y2 + ey) >> 1); return; } LineAA.FixDegenBisectrixStart(lp, ref sx, ref sy); LineAA.FixDegenBisectrixEnd(lp, ref ex, ref ey); (new LineInterpolatorAA3(this, lp, sx, sy, ex, ey)).Loop(); }