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
53
54
55
|
#ifndef CGMOUT_H
#define CGMOUT_H
/* Include all files on which this is dependent. */
#include "cgmmach.h"
#include "cgmtypes.h"
#include "cgmstruc.h"
/* Include file that all modules using this file will use. */
#include "cgmatt.h"
#include "cgmerr.h"
/* external structures needed by driver */
extern const struct char_defaults chardef;
extern struct char_defaults mfchar, curchar, oldchar;
extern const struct text_defaults textdef;
extern struct text_defaults mftext, curtext;
extern const struct bin_defaults bindef;
extern struct bin_defaults mfbin, curbin;
extern struct defaults cur, old;
extern struct attributes curatt, oldatt;
extern struct flags att;
extern Enum cgmdriver;
extern Enum cgmstate;
extern long *null;
extern Code st_start, st_term;
/* Global variable set as arguments for output control */
extern Logical cgmralgks, cgmverbose, cgmquiet, cgmEOF, cgmfinished;
/* Variables for random frame access */
extern long cgmnext, cgmpresent, cgmabort;
/* Structures for font list and character set list */
extern struct cgmfont cgmfonts;
extern struct cgmcset cgmcsets;
/* Macros for common Maths functions */
#define REQUAL(x,y) ( FABS((x)-(y)) <= cur.realmin )
#define VEQUAL(x,y) ( FABS((x)-(y)) <= cur.vdcmin )
#define PEQUAL(p,q) ( VEQUAL((p)->x, (q)->x) && VEQUAL((p)->y, (q)->y) )
#define XPROD(a,b,c,d) ( (b->x - a->x)*(d->y - c->y)\
- (d->x - c->x)*(b->y - a->y) )
#endif /* end of cgmout.h */
|