[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Calligra] 8a93202: PerspectiveAssistant::distance(): remove a divisio
From: Geoffry Song <goffrie () gmail ! com>
Date: 2010-12-31 23:27:34
Message-ID: 20101231232734.C3B7EA60A9 () git ! kde ! org
[Download RAW message or body]
commit 8a93202a7a3942f997e4fb5979f63aa49ab7b290
branch master
Author: Geoffry Song <goffrie@gmail.com>
Date: Thu Dec 30 13:42:45 2010 -0500
PerspectiveAssistant::distance(): remove a division
diff --git a/krita/plugins/assistants/RulerAssistant/PerspectiveAssistant.cc \
b/krita/plugins/assistants/RulerAssistant/PerspectiveAssistant.cc index \
a41b5e6..d15925d 100644
--- a/krita/plugins/assistants/RulerAssistant/PerspectiveAssistant.cc
+++ b/krita/plugins/assistants/RulerAssistant/PerspectiveAssistant.cc
@@ -29,7 +29,6 @@
#include <math.h>
#include <limits>
-#include <algorithm>
PerspectiveAssistant::PerspectiveAssistant()
: KisPaintingAssistant("perspective", i18n("Perspective assistant"))
@@ -136,18 +135,18 @@ inline qreal localScale(const QTransform& transform, QPointF \
pt) return fabs(a*(a + transform.m23())*b*(b + transform.m13()))/(d * d);
}
-// returns the maximum local scale at the points (0,0),(0,1),(1,0),(1,1)
-inline qreal maxLocalScale(const QTransform& transform)
+// returns the reciprocal of the maximum local scale at the points \
(0,0),(0,1),(1,0),(1,1) +inline qreal inverseMaxLocalScale(const QTransform& \
transform) {
const qreal a = fabs((transform.m33() + transform.m13()) * (transform.m33() + \
transform.m23())),
b = fabs((transform.m33()) * (transform.m13() + transform.m33() + \
transform.m23())), d00 = transform.m33() * transform.m33(),
d11 = (transform.m33() + transform.m23() + \
transform.m13())*(transform.m33() + transform.m23() + \
transform.m13()),
- s0011 = d00 > d11 ? a / d11 : a / d00,
+ s0011 = qMin(d00, d11) / a,
d10 = (transform.m33() + transform.m13()) * (transform.m33() + \
transform.m13()),
d01 = (transform.m33() + transform.m23()) * (transform.m33() + \
transform.m23()),
- s1001 = d10 > d01 ? b / d01 : b / d10;
- return qMax(s0011, s1001);
+ s1001 = qMin(d10, d01) / b;
+ return qMin(s0011, s1001);
}
qreal PerspectiveAssistant::distance(const QPointF& pt) const
@@ -163,7 +162,7 @@ qreal PerspectiveAssistant::distance(const QPointF& pt) const
// point at infinity
return 0.0;
}
- return localScale(transform, inverse.map(pt)) / maxLocalScale(transform);
+ return localScale(transform, inverse.map(pt)) * inverseMaxLocalScale(transform);
}
// draw a vanishing point marker
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic