//-------------------------------------------------------------------- public SpanGenGradient(ISpanInterpolator inter, IGradientValueCalculator gvc, IGradientColorsProvider m_colorsProvider, double d1, double d2) { this.m_interpolator = inter; this.m_grValueCalculator = gvc; this.m_colorsProvider = m_colorsProvider; m_d1 = AggBasics.iround(d1 * GR_SUBPIX_SCALE); m_d2 = AggBasics.iround(d2 * GR_SUBPIX_SCALE); dd = m_d2 - m_d1; if (dd < 1) dd = 1; stepRatio = (float)m_colorsProvider.GradientSteps / (float)dd; }
//-------------------------------------------------------------------- public SpanGenGradient(ISpanInterpolator inter, IGradientValueCalculator gvc, IGradientColorsProvider m_colorsProvider, double d1, double d2) { this.m_interpolator = inter; this.m_grValueCalculator = gvc; this.m_colorsProvider = m_colorsProvider; m_d1 = AggBasics.iround(d1 * GR_SUBPIX_SCALE); m_d2 = AggBasics.iround(d2 * GR_SUBPIX_SCALE); dd = m_d2 - m_d1; if (dd < 1) { dd = 1; } stepRatio = (float)m_colorsProvider.GradientSteps / (float)dd; }
public void Reset(ISpanInterpolator inter, IGradientValueCalculator gvc, IGradientColorsProvider m_colorsProvider, double distance) { _grad0X = _grad0Y = _xoffset = _yoffset = 0;//reset _interpolator = inter; _grValueCalculator = gvc; _colorsProvider = m_colorsProvider; _dist = AggMath.iround(distance * GR_SUBPIX_SCALE); if (_dist < 1) { _dist = 1; } _stepRatio = (float)m_colorsProvider.GradientSteps / (float)_dist; _xoffset = _yoffset = 0;//reset }