xref: /plan9/sys/src/cmd/unix/drawterm/libmemdraw/poly.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1 #include "../lib9.h"
2 
3 #include "../libdraw/draw.h"
4 #include "../libmemdraw/memdraw.h"
5 
6 void
7 mempoly(Memimage *dst, Point *vert, int nvert, int end0, int end1, int radius, Memimage *src, Point sp)
8 {
9 	int i, e0, e1;
10 	Point d;
11 	Point tp, tp_1;
12 
13 	if(nvert < 2)
14 		return;
15 
16 	/* use temp tp to avoid unaligned volatile warning on digital unix */
17 	tp = vert[0];
18 	d = subpt(sp, tp);
19 	for(i=1; i<nvert; i++){
20 		e0 = e1 = Enddisc;
21 		if(i == 1)
22 			e0 = end0;
23 		if(i == nvert-1)
24 			e1 = end1;
25 		tp = vert[i];
26 		tp_1 = vert[i-1];
27 		memline(dst, tp_1, tp, e0, e1, radius, src, addpt(d, tp_1));
28 	/*	memline(dst, vert[i-1], vert[i], e0, e1, radius, src, addpt(d, vert[i-1])); */
29 	}
30 }
31