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

Method fillLinearGradient

dep/agg/src/agg2d.cpp:471–500  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

469
470//------------------------------------------------------------------------
471void Agg2D::fillLinearGradient(double x1, double y1, double x2, double y2, Color c1, Color c2, double profile)
472{
473 int i;
474 int startGradient = 128 - int(profile * 127.0);
475 int endGradient = 128 + int(profile * 127.0);
476 if (endGradient <= startGradient) endGradient = startGradient + 1;
477 double k = 1.0 / double(endGradient - startGradient);
478 for (i = 0; i < startGradient; i++)
479 {
480 m_fillGradient[i] = c1;
481 }
482 for (; i < endGradient; i++)
483 {
484 m_fillGradient[i] = c1.gradient(c2, double(i - startGradient) * k);
485 }
486 for (; i < 256; i++)
487 {
488 m_fillGradient[i] = c2;
489 }
490 double angle = atan2(y2-y1, x2-x1);
491 m_fillGradientMatrix.reset();
492 m_fillGradientMatrix *= agg::trans_affine_rotation(angle);
493 m_fillGradientMatrix *= agg::trans_affine_translation(x1, y1);
494 m_fillGradientMatrix *= m_transform;
495 m_fillGradientMatrix.invert();
496 m_fillGradientD1 = 0.0;
497 m_fillGradientD2 = sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
498 m_fillGradientFlag = Linear;
499 m_fillColor = Color(0,0,0); // Set some real color
500}
501
502
503//------------------------------------------------------------------------

Callers

nothing calls this directly

Calls 5

gradientMethod · 0.45
resetMethod · 0.45
invertMethod · 0.45

Tested by

no test coverage detected