summaryrefslogtreecommitdiff
path: root/src/data/edge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/edge.cpp')
-rw-r--r--src/data/edge.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/data/edge.cpp b/src/data/edge.cpp
index 864d5ed..fcd9959 100644
--- a/src/data/edge.cpp
+++ b/src/data/edge.cpp
@@ -169,8 +169,10 @@ void Edge::updateControls() {
qreal bnd = static_cast<qreal>(_bend) * (M_PI / 180.0);
outAngleR = angle - bnd;
inAngleR = M_PI + angle + bnd;
- _outAngle = static_cast<int>(round(outAngleR * (180.0 / M_PI)));
- _inAngle = static_cast<int>(round(inAngleR * (180.0 / M_PI)));
+
+ // keep _inAngle and _outAngle snapped to increments of 15 degrees
+ _outAngle = static_cast<int>(roundToNearest(15.0, outAngleR * (180.0 / M_PI)));
+ _inAngle = static_cast<int>(roundToNearest(15.0, inAngleR * (180.0 / M_PI)));
} else {
outAngleR = static_cast<qreal>(_outAngle) * (M_PI / 180.0);
inAngleR = static_cast<qreal>(_inAngle) * (M_PI / 180.0);
@@ -409,7 +411,7 @@ QPointF Edge::bezierTangent(qreal start, qreal end) const
// normalise
qreal len = sqrt(dx*dx + dy*dy);
- if (almostZero(len)) {
+ if (!almostZero(len)) {
dx = (dx / len) * 0.1;
dy = (dy / len) * 0.1;
}