-/draw_dashed_line % dash thickness dx dy
-{
- 1 setlinecap
- 1 setlinejoin
- setdash
- setlinewidth
- 0 0 moveto
- lineto
- stroke
-} bind def
-
-/draw_dashed_slur % dash thickness controls
-{
- 1 setlinecap
- 1 setlinejoin
- setdash
- setlinewidth
- 8 -2 roll
- moveto
- curveto
- stroke
-} bind def
-
-
-
-/bracket_traject
-{
- /traject_ds exch def
- /traject_alpha exch def
- traject_ds traject_alpha sin mul add
- exch
- traject_ds traject_alpha cos mul add
- exch
-} bind def
-
-
-
-/half_bracket
-{
-%6
- 0 0
-%5a
- bracket_thick arch_height add half_height arch_thick sub arch_width add
- arch_angle arch_height -0.15 mul bracket_traject
-%5b
- bracket_thick 0.5 mul half_height
- 0 arch_height 0.5 mul bracket_traject
-%5c
- 0 half_height
-%4a
- bracket_thick half_height arch_thick sub
- 0 arch_height 0.4 mul bracket_traject
-%4b
- bracket_thick arch_height add half_height arch_thick sub arch_width add
- arch_angle arch_height -0.25 mul bracket_traject
-%4c
- bracket_thick arch_height add half_height arch_thick sub arch_width add
-%3
- bracket_thick half_height arch_thick sub
-%2
- bracket_thick 0
-%1
- 0 0
-} bind def
+/draw_oval % filled? x-radius y-radius thickness draw_ellipse
+{
+ setlinewidth % f? x-r y-r
+ /yrad exch def
+ /xrad exch def
+ xrad 0 rmoveto
+ 0 yrad -2 xrad mul dup yrad exch 0 rcurveto
+ 0 yrad neg dup 2 xrad mul dup 3 1 roll 0 rcurveto
+ closepath
+ { stroke_and_fill}
+ { stroke }
+ ifelse
+} bind def