6
6
GeomCurve <- ggproto(
7
7
" GeomCurve" , GeomSegment ,
8
8
9
- draw_panel = function (data , panel_params , coord , curvature = 0.5 , angle = 90 ,
10
- ncp = 5 , arrow = NULL , arrow.fill = NULL , lineend = " butt" , na.rm = FALSE ) {
9
+ draw_panel = function (data , panel_params , coord , curvature = 0.5 , angle = 90 , ncp = 5 , shape = 0.5 ,
10
+ arrow = NULL , arrow.fill = NULL , lineend = " butt" , na.rm = FALSE ) {
11
11
12
12
if (! coord $ is_linear()) {
13
13
cli :: cli_warn(" {.fn geom_curve} is not implemented for non-linear coordinates" )
@@ -31,11 +31,13 @@ GeomCurve <- ggproto(
31
31
32
32
arrow.fill <- arrow.fill %|| % trans $ colour
33
33
34
+ square <- (ncp == 1 && angle == 90 )
35
+
34
36
curveGrob(
35
37
trans $ x , trans $ y , trans $ xend , trans $ yend ,
36
38
default.units = " native" ,
37
- curvature = curvature , angle = angle , ncp = ncp ,
38
- square = FALSE , squareShape = 1 , inflect = FALSE , open = TRUE ,
39
+ curvature = curvature , angle = angle , ncp = ncp , shape = shape ,
40
+ square = square , squareShape = 1 , inflect = FALSE , open = TRUE ,
39
41
gp = gg_par(
40
42
col = alpha(trans $ colour , trans $ alpha ),
41
43
fill = alpha(arrow.fill , trans $ alpha ),
0 commit comments