V8/usr/src/cmd/ideal/lib/bar

.IS
gridline
{
	var a, b, pos, neg;
	conn a - neg to a + pos;
}
barrect
{
	ne = se + (0,1)*ht;
	nw = sw + (0,1)*ht;
	ne = nw + wd;
	n = (ne+nw)/2;
	s = (se+sw)/2;
	e = (ne+se)/2;
	w = (nw+sw)/2;
	c = (ne+sw)/2;
	ht ~ 1;
	wd ~ 1.5;
	bdlist = ne, nw, sw, se;
	conn ne to nw to sw to se to ne;
}
bar
{
	var ne, nw, sw, se,
	n, e, w, s, c,
	ht, wd;
	var slant;
	conn w - abs(wd) to e + abs(wd)
		using int(30*abs(wd)) gridline {
			pos = neg = (ht+wd)*cis(slant);
		}<a,b>;
	put barrect {
		opaque exterior;
	}
}
.IE