------------------------------------------------------------------------
| 502 | |
| 503 | //------------------------------------------------------------------------ |
| 504 | void 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 | //------------------------------------------------------------------------ |
nothing calls this directly
no test coverage detected