[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bcalligra=5D_krita/image=3A_KisCircleMaskGenerator?=
From: Geoffry Song <goffrie () gmail ! com>
Date: 2011-04-17 22:43:43
Message-ID: 20110417224343.E6EA3A60A9 () git ! kde ! org
[Download RAW message or body]
Git commit 9e088a1dff0f145aa3451a11e04eec75c6cad410 by Geoffry Song.
Committed on 18/04/2011 at 00:41.
Pushed by geoffrysong into branch 'master'.
KisCircleMaskGenerator::valueAt(): remove unnecessary operations
Remove many calculations by reusing previous ones.
M +8 -12 krita/image/kis_circle_mask_generator.cpp
http://commits.kde.org/calligra/9e088a1dff0f145aa3451a11e04eec75c6cad410
diff --git a/krita/image/kis_circle_mask_generator.cpp b/krita/image/kis_circle_mask_generator.cpp
index 2bcafee..f221b84 100644
--- a/krita/image/kis_circle_mask_generator.cpp
+++ b/krita/image/kis_circle_mask_generator.cpp
@@ -74,23 +74,19 @@ quint8 KisCircleMaskGenerator::valueAt(qreal x, qreal y) const
double normeFade = norme(xr * transformedFadeX, yr * transformedFadeY);
if (normeFade > 1) {
- double xle, yle;
// xle stands for x-coordinate limit exterior
// yle stands for y-coordinate limit exterior
// we are computing the coordinate on the external ellipse in order to compute
// the fade value
- if (xr == 0) {
- xle = 0;
- yle = yr > 0 ? 1 / d->ycoef : -1 / d->ycoef;
- } else {
- double c = yr / (double)xr;
- xle = sqrt(1 / norme(d->xcoef, c * d->ycoef));
- xle = xr > 0 ? xle : -xle;
- yle = xle * c;
- }
+ // xle = xr / sqrt(norme(xr * d->xcoef, yr * d->ycoef))
+ // yle = yr / sqrt(norme(xr * d->xcoef, yr * d->ycoef))
+
// On the internal limit of the fade area, normeFade is equal to 1
- double normeFadeLimitE = norme(xle * transformedFadeX, yle * transformedFadeY);
- return (uchar)(255 *(normeFade - 1) / (normeFadeLimitE - 1));
+
+ // normeFadeLimitE = norme(xle * transformedFadeX, yle * transformedFadeY)
+ // return (uchar)(255 *(normeFade - 1) / (normeFadeLimitE - 1));
+ return (uchar)(255 * n * (normeFade - 1) / (normeFade - n));
+ // if n == 0, the conversion of NaN to uchar will correctly result in zero
} else {
n = 1 - n;
if( width() < 2 || height() < 2 || n > d->xcoef * 0.5 || n > d->ycoef * 0.5)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic