Skip to content

Commit 4de5c51

Browse files
andrej22116paceholder
authored andcommitted
Improve connection rounding near nodes (paceholder#223)
* ImprovConnection geometry: adequate rounding around the OY axis * Connection geometry: correction adequate rounding around the OY axis * formatted code
1 parent edaaeac commit 4de5c51

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

src/ConnectionGeometry.cpp

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -98,35 +98,34 @@ std::pair<QPointF, QPointF>
9898
ConnectionGeometry::
9999
pointsC1C2() const
100100
{
101-
double xDistance = _in.x() - _out.x();
102-
//double yDistance = _in.y() - _out.y() - 100;
101+
const double defaultOffset = 200;
103102

104-
double defaultOffset = 200;
103+
double xDistance = _in.x() - _out.x();
105104

106-
double minimum = qMin(defaultOffset, std::abs(xDistance));
105+
double horizontalOffset = qMin(defaultOffset, std::abs(xDistance));
107106

108107
double verticalOffset = 0;
109108

110-
double ratio1 = 0.5;
109+
double ratioX = 0.5;
111110

112111
if (xDistance <= 0)
113112
{
114-
verticalOffset = -minimum;
113+
double yDistance = _in.y() - _out.y() + 20;
114+
115+
double vector = yDistance < 0 ? -1.0 : 1.0;
116+
117+
verticalOffset = qMin(defaultOffset, std::abs(yDistance)) * vector;
115118

116-
ratio1 = 1.0;
119+
ratioX = 1.0;
117120
}
118121

119-
//double verticalOffset2 = verticalOffset;
120-
//if (xDistance <= 0)
121-
//verticalOffset2 = qMin(defaultOffset, std::abs(yDistance));
122-
//auto sign = [](double d) { return d > 0.0 ? +1.0 : -1.0; };
123-
//verticalOffset2 = 0.0;
122+
horizontalOffset *= ratioX;
124123

125-
QPointF c1(_out.x() + minimum * ratio1,
124+
QPointF c1(_out.x() + horizontalOffset,
126125
_out.y() + verticalOffset);
127126

128-
QPointF c2(_in.x() - minimum * ratio1,
129-
_in.y() + verticalOffset);
127+
QPointF c2(_in.x() - horizontalOffset,
128+
_in.y() - verticalOffset);
130129

131130
return std::make_pair(c1, c2);
132131
}

0 commit comments

Comments
 (0)