7 static double rad
[2] = { HT2
, WID2
};
8 static double rad2
[2] = { HT2
, HT2
};
9 int i
, at
, t
, with
, battr
;
11 double r
, r2
, ddval
, fillval
;
16 with
= xwith
= ywith
= fillval
= ddval
= 0;
17 t
= (type
== CIRCLE
) ? 0 : 1;
19 r
= r2
= getfval("circlerad");
20 else if (type
== ELLIPSE
) {
21 r
= getfval("ellipsewid") / 2;
22 r2
= getfval("ellipseht") / 2;
24 for (i
= 0; i
< nattr
; i
++) {
28 savetext(ap
->a_sub
, ap
->a_val
.p
);
61 battr
|= ap
->a_type
==DOT
? DOTBIT
: DASHBIT
;
62 if (ap
->a_sub
== DEFAULT
)
63 ddval
= getfval("dashwid");
69 if (ap
->a_sub
== DEFAULT
)
70 fillval
= getfval("fillval");
72 fillval
= ap
->a_val
.f
;
77 r2
= r
; /* probably superfluous */
80 case NORTH
: ywith
= -r2
; break;
81 case SOUTH
: ywith
= r2
; break;
82 case EAST
: xwith
= -r
; break;
83 case WEST
: xwith
= r
; break;
84 case NE
: xwith
= -r
* 0.707; ywith
= -r2
* 0.707; break;
85 case SE
: xwith
= -r
* 0.707; ywith
= r2
* 0.707; break;
86 case NW
: xwith
= r
* 0.707; ywith
= -r2
* 0.707; break;
87 case SW
: xwith
= r
* 0.707; ywith
= r2
* 0.707; break;
95 else if (isleft(hvmode
))
97 else if (isup(hvmode
))
102 p
= makenode(type
, 2);
103 p
->o_val
[0] = rad
[t
] = r
;
104 p
->o_val
[1] = rad2
[t
] = r2
;
105 if (r
<= 0 || r2
<= 0) {
106 ERROR
"%s has invalid radius %g\n", (type
==CIRCLE
) ? "circle" : "ellipse", r
<r2
? r
: r2 WARNING
;
110 p
->o_fillval
= fillval
;
111 extreme(curx
+r
, cury
+r2
);
112 extreme(curx
-r
, cury
-r2
);
114 dprintf("C %g %g %g\n", curx
, cury
, r
);
116 dprintf("E %g %g %g %g\n", curx
, cury
, r
, r2
);
119 else if (isleft(hvmode
))
121 else if (isup(hvmode
))