//---------------------------------------------------------------- public void Next() { m_coord_x.Next(); m_coord_y.Next(); m_scale_x.Next(); m_scale_y.Next(); }
//---------------------------------------------------------------- //public void operator++() public void Next() { m_li_x.Next(); m_li_y.Next(); }
//-------------------------------------------------------------------- public void hstep() { m_interpolator.Next(); m_x1_lr += m_inc; }
public line_interpolator_aa_base(OutlineRenderer ren, line_parameters lp) { m_lp = lp; m_li = new dda2_line_interpolator(lp.vertical ? LineAABasics.line_dbl_hr(lp.x2 - lp.x1) : LineAABasics.line_dbl_hr(lp.y2 - lp.y1), lp.vertical ? Math.Abs(lp.y2 - lp.y1) : Math.Abs(lp.x2 - lp.x1) + 1); m_ren = ren; m_len = ((lp.vertical == (lp.inc > 0)) ? -lp.len : lp.len); m_x = (lp.x1 >> LineAABasics.line_subpixel_shift); m_y = (lp.y1 >> LineAABasics.line_subpixel_shift); m_old_x = (m_x); m_old_y = (m_y); m_count = ((lp.vertical ? Math.Abs((lp.y2 >> LineAABasics.line_subpixel_shift) - m_y) : Math.Abs((lp.x2 >> LineAABasics.line_subpixel_shift) - m_x))); m_width = (ren.subpixel_width()); //m_max_extent(m_width >> (line_subpixel_shift - 2)); m_max_extent = ((m_width + LineAABasics.line_subpixel_mask) >> LineAABasics.line_subpixel_shift); m_step = 0; dda2_line_interpolator li = new dda2_line_interpolator(0, lp.vertical ? (lp.dy << LineAABasics.line_subpixel_shift) : (lp.dx << LineAABasics.line_subpixel_shift), lp.len); int i; int stop = m_width + LineAABasics.line_subpixel_scale * 2; for (i = 0; i < max_half_width; ++i) { m_dist[i] = li.y(); if (m_dist[i] >= stop) break; li.Next(); } m_dist[i++] = 0x7FFF0000; }