示例#1
0
		public void line2_no_clip(line_parameters lp, int ex, int ey)
		{
			if (lp.len > LineAABasics.line_max_length)
			{
				line_parameters lp1, lp2;
				lp.divide(out lp1, out lp2);
				line2_no_clip(lp1, lp1.x2 + (lp1.y2 - lp1.y1), lp1.y2 - (lp1.x2 - lp1.x1));
				line2_no_clip(lp2, (lp.x2 + ex) >> 1, (lp.y2 + ey) >> 1);
				return;
			}

			LineAABasics.fix_degenerate_bisectrix_end(lp, ref ex, ref ey);
			line_interpolator_aa2 li = new line_interpolator_aa2(this, lp, ex, ey);
			if (li.vertical())
			{
				while (li.step_ver()) ;
			}
			else
			{
				while (li.step_hor()) ;
			}
		}
示例#2
0
		public void line3_no_clip(line_parameters lp,
						   int sx, int sy, int ex, int ey)
		{
			if (lp.len > LineAABasics.line_max_length)
			{
				line_parameters lp1, lp2;
				lp.divide(out lp1, out lp2);
				int mx = lp1.x2 + (lp1.y2 - lp1.y1);
				int my = lp1.y2 - (lp1.x2 - lp1.x1);
				line3_no_clip(lp1, (lp.x1 + sx) >> 1, (lp.y1 + sy) >> 1, mx, my);
				line3_no_clip(lp2, mx, my, (lp.x2 + ex) >> 1, (lp.y2 + ey) >> 1);
				return;
			}

			LineAABasics.fix_degenerate_bisectrix_start(lp, ref sx, ref sy);
			LineAABasics.fix_degenerate_bisectrix_end(lp, ref ex, ref ey);
			line_interpolator_aa3 li = new line_interpolator_aa3(this, lp, sx, sy, ex, ey);
			if (li.vertical())
			{
				while (li.step_ver()) ;
			}
			else
			{
				while (li.step_hor()) ;
			}
		}
示例#3
0
		public void line0_no_clip(line_parameters lp)
		{
			if (lp.len > LineAABasics.line_max_length)
			{
				line_parameters lp1, lp2;
				lp.divide(out lp1, out lp2);
				line0_no_clip(lp1);
				line0_no_clip(lp2);
				return;
			}

			line_interpolator_aa0 li = new line_interpolator_aa0(this, lp);
			if (li.count() != 0)
			{
				if (li.vertical())
				{
					while (li.step_ver()) ;
				}
				else
				{
					while (li.step_hor()) ;
				}
			}
		}