MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / lineLinearGradient

Method lineLinearGradient

dep/agg/src/agg2d.cpp:504–533  ·  view source on GitHub ↗

------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

502
503//------------------------------------------------------------------------
504void Agg2D::lineLinearGradient(double x1, double y1, double x2, double y2, Color c1, Color c2, double profile)
505{
506 int i;
507 int startGradient = 128 - int(profile * 128.0);
508 int endGradient = 128 + int(profile * 128.0);
509 if (endGradient <= startGradient) endGradient = startGradient + 1;
510 double k = 1.0 / double(endGradient - startGradient);
511 for (i = 0; i < startGradient; i++)
512 {
513 m_lineGradient[i] = c1;
514 }
515 for (; i < endGradient; i++)
516 {
517 m_lineGradient[i] = c1.gradient(c2, double(i - startGradient) * k);
518 }
519 for (; i < 256; i++)
520 {
521 m_lineGradient[i] = c2;
522 }
523 double angle = atan2(y2-y1, x2-x1);
524 m_lineGradientMatrix.reset();
525 m_lineGradientMatrix *= agg::trans_affine_rotation(angle);
526 m_lineGradientMatrix *= agg::trans_affine_translation(x1, y1);
527 m_fillGradientMatrix *= m_transform;
528 m_lineGradientMatrix.invert();
529 m_lineGradientD1 = 0;
530 m_lineGradientD2 = sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
531 m_lineGradientFlag = Linear;
532 m_lineColor = Color(0,0,0); // Set some real color
533}
534
535
536//------------------------------------------------------------------------

Callers

nothing calls this directly

Calls 5

gradientMethod · 0.45
resetMethod · 0.45
invertMethod · 0.45

Tested by

no test coverage detected