aboutsummaryrefslogtreecommitdiffstats
path: root/src/fish.h
blob: 1a7a874068d035670121520580f93c98ca720a3f (plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <string.h>

typedef struct {
	float x,y;
} Jwgpos;

typedef struct {
	Jwgpos *data;
	int npts;
} Jwgline;



typedef struct {
	float xc,yc;
	float a,b,c,d;
	float det;
} Transform;

BEGIN_OBJECT(Data) 
	int w,h;
	int l;
	float *data;
END_OBJECT(Data);

extern void Data_Destructor(Data);

CREATOR(Data)=Obj_DefaultCreator;
DESTRUCTOR(Data)=Data_Destructor;

typedef struct {
	float r,g,b;
} Color;

typedef struct {
	float width;
	Color color;
} Pen;

typedef struct {
	float density;
	Color color;
} Brush;

typedef struct {
	int font;
	Color color;
	float height;
} Ink;


#define JWG_FM_XFIG 0
#define JWG_FM_CGM  1

#define JWG_DEFAULT_LINE_SIZE	4096

BEGIN_OBJECT(Handle) 
	int serial;

	struct Handle_struct *stack;

	Data data;
	Transform transform;
		
	Brush brush;
	Pen pen;
	Ink ink;

	int format;
	FILE *file;

	Jwgline current_line;
	int current_line_size;

	void *private;
END_OBJECT(Handle) 

extern void Handle_Destructor(Handle);

CREATOR(Handle)=Obj_DefaultCreator;
DESTRUCTOR(Handle)=Handle_Destructor;
	
extern void jwg_xform(Handle,Jwgpos *);
extern void jwg_write_line(Handle,Jwgline *);
extern void jwg_write_polygon(Handle,Jwgline *);

extern float jwg_decompose_matrix(Transform,int);


extern int jwg_create_handle(int *,char *,int);
extern void jwg_pass_data(int *,float *,int *,int *,int *);
extern void jwg_destory_data(int *);
extern void jwg_set_xform(int *,float *,float *,float *,float *, float *, float *);
extern void jwg_set_brush(int *, float *,float *,float *,float *);
extern void jwg_set_pen(int *, float *,float *,float *,float *);
extern void jwg_set_textcolor(int *,float *,float *,float *);
extern void jwg_set_textheight(int *,float *);
extern void jwg_draw_text(int *,float *,float *,char *,int);
extern void jwg_contour(int *, float *,int *,int *);
extern void jwg_draw_line(int *,float *,float *,int *);
extern void jwg_draw_polygon(int *,float *,float *,int *);
extern void jwg_destroy_handle(int *);