File: print.c

package info (click to toggle)
graphviz 1.7.16-2
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 11,124 kB
  • ctags: 12,650
  • sloc: ansic: 131,002; sh: 7,483; makefile: 1,954; tcl: 1,760; yacc: 1,758; perl: 253; awk: 150; lex: 96
file content (52 lines) | stat: -rw-r--r-- 1,099 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <grid.h>

#ifdef DMALLOC
#include "dmalloc.h"
#endif

static void printseg(FILE *fp, Seg_t *seg)
{
	fprintf(fp,"%.2f %.2f map moveto %.2f %.2f map lineto stroke\n",
		x(seg->p[0]),y(seg->p[0]),x(seg->p[1]),y(seg->p[1]));
}

void ERprint(FILE *fp, ERview_t *d, ilbool all)
{
	int		i,j;
	Dir_t	side;
	Tile_t	*b;
	Seg_t	*seg;
	static int onetime = TRUE;

	if (onetime) {
		fprintf(fp,"%%!PS\n");
		fprintf(fp,"/map {72 mul exch 72 mul exch} bind def\n");
		onetime = FALSE;
	}
	for (i = 0; (b = d->config->list[i]); i++) {
		for (side = 0; side < NSIDES; side++) {
			for (j = 0; (seg = b->segs[side]->list[j]); j++) {
				switch (seg->kind) {
				case s_forbidden:  break;
				case s_plain: if (all) printseg(fp,seg); break;
				case s_edge: 
					fprintf(fp,"gsave 1 0 0 setrgbcolor\n");
					printseg(fp,seg);
					fprintf(fp,"grestore\n");
					break;
				case s_node:
					fprintf(fp,"gsave 3 setlinewidth\n");
					printseg(fp,seg);
					fprintf(fp,"grestore\n");
					break;
				}
			}
		}
	}
	fprintf(fp,"showpage\n");
}

void ERpr(ERview_t *d, ilbool all)
{
	ERprint(stderr,d,all);
}