@@ -223,22 +223,6 @@ function gplot(g::AbstractGraph{T},
223
223
text_locs_y .- nodesize .* (nodelabeldist * sin (nodelabelangleoffset)),
224
224
map (string, nodelabel), [hcenter], [vcenter])
225
225
end
226
- # Create edge labels if provided
227
- edgetexts = nothing
228
- if ! isempty (edgelabel)
229
- edge_locs_x = zeros (R1, NE)
230
- edge_locs_y = zeros (R2, NE)
231
- for (e_idx, e) in enumerate (edges (g))
232
- i = src (e)
233
- j = dst (e)
234
- mid_x = (locs_x[i]+ locs_x[j]) / 2.0
235
- mid_y = (locs_y[i]+ locs_y[j]) / 2.0
236
- edge_locs_x[e_idx] = (is_directed (g) ? (mid_x+ locs_x[j]) / 2.0 : mid_x) + edgelabeldistx * NODESIZE
237
- edge_locs_y[e_idx] = (is_directed (g) ? (mid_y+ locs_y[j]) / 2.0 : mid_y) + edgelabeldisty * NODESIZE
238
-
239
- end
240
- edgetexts = text (edge_locs_x, edge_locs_y, map (string, edgelabel), [hcenter], [vcenter])
241
- end
242
226
243
227
# Create lines and arrow heads
244
228
lines, larrows = nothing , nothing
@@ -251,6 +235,28 @@ function gplot(g::AbstractGraph{T},
251
235
lines, larrows = build_straight_edges (edges (g), locs_x, locs_y, nodesize, arrowlengthfrac, arrowangleoffset)
252
236
end
253
237
238
+ # Create edge labels if provided
239
+ edgetexts = nothing
240
+ if ! isempty (edgelabel)
241
+ edge_locs_x = zeros (R1, NE)
242
+ edge_locs_y = zeros (R2, NE)
243
+ self_loop_idx = 1
244
+ for (e_idx, e) in enumerate (edges (g))
245
+ i, j = src (e), dst (e)
246
+ if linetype == " curve"
247
+ mid_x, mid_y = interpolate_bezier (curves. primitives[e_idx], 0.5 )
248
+ elseif src (e) == dst (e)
249
+ mid_x, mid_y = interpolate_bezier (curves. primitives[self_loop_idx], 0.5 )
250
+ self_loop_idx += 1
251
+ else
252
+ mid_x, mid_y = interpolate_line (locs_x,locs_y,i,j,0.5 )
253
+ end
254
+ edge_locs_x[e_idx] = mid_x + edgelabeldistx * NODESIZE
255
+ edge_locs_y[e_idx] = mid_y + edgelabeldisty * NODESIZE
256
+ end
257
+ edgetexts = text (edge_locs_x, edge_locs_y, map (string, edgelabel), [hcenter], [vcenter])
258
+ end
259
+
254
260
# Set plot_size
255
261
if length (plot_size) != 2 || ! isa (plot_size[1 ], Compose. AbsoluteLength) || ! isa (plot_size[2 ], Compose. AbsoluteLength)
256
262
error (" `plot_size` must be a Tuple of lengths" )
0 commit comments