[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