------------------------------------------------------------------------
| 469 | |
| 470 | //------------------------------------------------------------------------ |
| 471 | void 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 | //------------------------------------------------------------------------ |
nothing calls this directly
no test coverage detected