1 /*
2 Copyright (C) 2012-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5 
6 /*
7 	WARNING: This file was generated by the dkct program (see
8 	http://dktools.sourceforge.net/ for details).
9 	Changes you make here will be lost if dkct is run again!
10 	You should modify the original source and run dkct on it.
11 	Original source: f2lud.ctr
12 */
13 
14 /**	@file f2lud.h Header file for the f2lud module.
15 */
16 
17 #ifndef F2LUD_H_INCLUDED
18 /** Avoid multiple inclusions. */
19 #define F2LUD_H_INCLUDED 1
20 
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 /**	Produce output.
27 	@param	job	Job structure.
28 */
29 void
30 f2lud_output(f2l_job_t *job);
31 
32 /**	Issue "newpath" command.
33 	@param	job	Job structure.
34 	@param	drw	Drawing structure.
35 	@param	obj	Current object to process.
36 */
37 void
38 f2lud_newpath(
39   f2l_job_t		*job,
40   dk3_fig_drawing_t	*drw,
41   dk3_fig_obj_t		*obj
42 );
43 
44 /**	Issue "moveto" command.
45 	@param	job	Job structure.
46 	@param	drw	Drawing structure.
47 	@param	obj	Current object to process.
48 	@param	x	New point x in output space.
49 	@param	y	New point y in output space.
50 */
51 void
52 f2lud_moveto(
53   f2l_job_t		*job,
54   dk3_fig_drawing_t	*drw,
55   dk3_fig_obj_t		*obj,
56   double		 x,
57   double		 y
58 );
59 
60 /**	Issue "lineto" command.
61 	@param	job	Job structure.
62 	@param	drw	Drawing structure.
63 	@param	obj	Current object to process.
64 	@param	x	New point x in output space.
65 	@param	y	New point y in output space.
66 */
67 void
68 f2lud_lineto(
69   f2l_job_t		*job,
70   dk3_fig_drawing_t	*drw,
71   dk3_fig_obj_t		*obj,
72   double		 x,
73   double		 y
74 );
75 
76 /**	Issue "curveto" command.
77 	@param	job	Job structure.
78 	@param	drw	Drawing structure.
79 	@param	obj	Current object to process.
80 	@param	xcs	Control point at start x in output space.
81 	@param	ycs	Control point at start y in output space.
82 	@param	xce	Control point at end x in output space.
83 	@param	yce	Control point at end y in output space.
84 	@param	xe	End point x in output space.
85 	@param	ye	End point y in output space.
86 
87 */
88 void
89 f2lud_curveto(
90   f2l_job_t		*job,
91   dk3_fig_drawing_t	*drw,
92   dk3_fig_obj_t		*obj,
93   double		 xcs,
94   double		 ycs,
95   double		 xce,
96   double		 yce,
97   double		 xe,
98   double		 ye
99 );
100 
101 /**	Issue "moveto" command.
102 	@param	job	Job structure.
103 	@param	drw	Drawing structure.
104 	@param	obj	Current object to process.
105 	@param	x	New point x in Fig space.
106 	@param	y	New point y in Fig space.
107 	@param	ec	Pointer to error code variable, may be NULL.
108 */
109 void
110 f2lud_fig_moveto(
111   f2l_job_t		*job,
112   dk3_fig_drawing_t	*drw,
113   dk3_fig_obj_t		*obj,
114   double		 x,
115   double		 y,
116   int			*ec
117 );
118 
119 /**	Issue "lineto" command.
120 	@param	job	Job structure.
121 	@param	drw	Drawing structure.
122 	@param	obj	Current object to process.
123 	@param	x	New point x in Fig space.
124 	@param	y	New point y in Fig space.
125 	@param	ec	Pointer to error code variable, may be NULL.
126 */
127 void
128 f2lud_fig_lineto(
129   f2l_job_t		*job,
130   dk3_fig_drawing_t	*drw,
131   dk3_fig_obj_t		*obj,
132   double		 x,
133   double		 y,
134   int			*ec
135 );
136 
137 /**	Issue "curveto" command.
138 	@param	job	Job structure.
139 	@param	drw	Drawing structure.
140 	@param	obj	Current object to process.
141 	@param	xcs	Control point at start x in Fig space.
142 	@param	ycs	Control point at start y in Fig space.
143 	@param	xce	Control point at end x in Fig space.
144 	@param	yce	Control point at end y in Fig space.
145 	@param	xe	End point x in Fig space.
146 	@param	ye	End point y in Fig space.
147 	@param	ec	Pointer to error code variable, may be NULL.
148 */
149 void
150 f2lud_fig_curveto(
151   f2l_job_t		*job,
152   dk3_fig_drawing_t	*drw,
153   dk3_fig_obj_t		*obj,
154   double		 xcs,
155   double		 ycs,
156   double		 xce,
157   double		 yce,
158   double		 xe,
159   double		 ye,
160   int			*ec
161 );
162 
163 /**	Issue "closepath" command.
164 	@param	job	Job structure.
165 	@param	drw	Drawing structure.
166 	@param	obj	Current object to process.
167 */
168 void
169 f2lud_closepath(
170   f2l_job_t		*job,
171   dk3_fig_drawing_t	*drw,
172   dk3_fig_obj_t		*obj
173 );
174 
175 /**	Issue "stroke" command.
176 	@param	job	Job structure.
177 	@param	drw	Drawing structure.
178 	@param	obj	Current object to process.
179 */
180 void
181 f2lud_stroke(
182   f2l_job_t		*job,
183   dk3_fig_drawing_t	*drw,
184   dk3_fig_obj_t		*obj
185 );
186 
187 /**	Issue "fill" command.
188 	@param	job	Job structure.
189 	@param	drw	Drawing structure.
190 	@param	obj	Current object to process.
191 */
192 void
193 f2lud_fill(
194   f2l_job_t		*job,
195   dk3_fig_drawing_t	*drw,
196   dk3_fig_obj_t		*obj
197 );
198 
199 /**	Check whether a spline object is an interpolated spline
200 	(only s=-1 and/or s=0 points).
201 	@param	obj	Object to check.
202 	@return	1 for pure interpolated spline, 0 otherwise.
203 */
204 int
205 f2lud_is_interpolated_spline(dk3_fig_obj_t *obj);
206 
207 #ifdef __cplusplus
208 }
209 #endif
210 
211 
212 
213 
214 #endif
215