@@ -4,8 +4,9 @@ class SugiyamaEdgeRenderer extends ArrowEdgeRenderer {
4
4
Map <Node , SugiyamaNodeData > nodeData;
5
5
Map <Edge , SugiyamaEdgeData > edgeData;
6
6
BendPointShape bendPointShape;
7
+ bool addTriangleToEdge;
7
8
8
- SugiyamaEdgeRenderer (this .nodeData, this .edgeData, this .bendPointShape);
9
+ SugiyamaEdgeRenderer (this .nodeData, this .edgeData, this .bendPointShape, this .addTriangleToEdge );
9
10
10
11
var path = Path ();
11
12
@@ -51,9 +52,6 @@ class SugiyamaEdgeRenderer extends ArrowEdgeRenderer {
51
52
bendPoints[size - 4 ], bendPoints[size - 3 ], bendPoints[size - 2 ], bendPoints[size - 1 ], destination);
52
53
}
53
54
54
- final triangleCentroid = drawTriangle (
55
- canvas, edgeTrianglePaint ?? trianglePaint, clippedLine[0 ], clippedLine[1 ], clippedLine[2 ], clippedLine[3 ]);
56
-
57
55
path.reset ();
58
56
path.moveTo (bendPoints[0 ], bendPoints[1 ]);
59
57
@@ -83,7 +81,16 @@ class SugiyamaEdgeRenderer extends ArrowEdgeRenderer {
83
81
_drawSharpBendPointsEdge (bendPointsWithoutDuplication);
84
82
}
85
83
86
- path.lineTo (triangleCentroid[0 ], triangleCentroid[1 ]);
84
+ if (addTriangleToEdge) {
85
+ final triangleCentroid = drawTriangle (
86
+ canvas, edgeTrianglePaint ?? trianglePaint, clippedLine[0 ], clippedLine[1 ], clippedLine[2 ], clippedLine[3 ]);
87
+
88
+ path.lineTo (triangleCentroid[0 ], triangleCentroid[1 ]);
89
+ } else {
90
+ final stopX = x1 + destination.width / 2 ;
91
+ final stopY = y1 + destination.height / 2 ;
92
+ path.lineTo (stopX, stopY);
93
+ }
87
94
canvas.drawPath (path, currentPaint);
88
95
} else {
89
96
final startX = x + source.width / 2 ;
@@ -93,11 +100,17 @@ class SugiyamaEdgeRenderer extends ArrowEdgeRenderer {
93
100
94
101
clippedLine = clipLine (startX, startY, stopX, stopY, destination);
95
102
96
- final triangleCentroid = drawTriangle (
97
- canvas, edgeTrianglePaint ?? trianglePaint, clippedLine[0 ], clippedLine[1 ], clippedLine[2 ], clippedLine[3 ]);
103
+ if (addTriangleToEdge) {
104
+ final triangleCentroid = drawTriangle (
105
+ canvas, edgeTrianglePaint ?? trianglePaint, clippedLine[0 ],
106
+ clippedLine[1 ], clippedLine[2 ], clippedLine[3 ]);
98
107
99
- canvas.drawLine (
100
- Offset (clippedLine[0 ], clippedLine[1 ]), Offset (triangleCentroid[0 ], triangleCentroid[1 ]), currentPaint);
108
+ canvas.drawLine (
109
+ Offset (clippedLine[0 ], clippedLine[1 ]), Offset (triangleCentroid[0 ], triangleCentroid[1 ]), currentPaint);
110
+ } else {
111
+ canvas.drawLine (
112
+ Offset (clippedLine[0 ], clippedLine[1 ]), Offset (stopX, stopY), currentPaint);
113
+ }
101
114
}
102
115
});
103
116
}
0 commit comments