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: f2leps.ctr
12 */
13 
14 /**	@file f2leps.h Header file for the f2leps module.
15 */
16 
17 #ifndef F2LEPS_H_INCLUDED
18 /** Avoid multiple inclusions. */
19 #define F2LEPS_H_INCLUDED 1
20 
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 /**	Driver initialization for pdf with tex driver.
27 	@param	job	Job structure.
28 	@param	drw	Drawing structure.
29 	@return	1 on success, 0 on error.
30 */
31 int
32 f2leps_eps_with_tex_initialize(f2l_job_t *job, dk3_fig_drawing_t *drw);
33 
34 /**	Driver cleanup for pdf with tex driver.
35 	@param	job	Job structure.
36 	@param	drw	Drawing structure.
37 */
38 void
39 f2leps_eps_with_tex_end(f2l_job_t *job, dk3_fig_drawing_t *drw);
40 
41 /**	Write start of output for eps with tex driver.
42 	@param	job	Job structure.
43 	@param	drw	Drawing structure.
44 	@return	1 on success, 0 on error.
45 */
46 int
47 f2leps_eps_with_tex_start_processing(f2l_job_t *job, dk3_fig_drawing_t *drw);
48 
49 /**	Write end of output for eps with tex driver.
50 	@param	job	Job structure.
51 	@param	drw	Drawing structure.
52 */
53 void
54 f2leps_eps_with_tex_end_processing(f2l_job_t *job, dk3_fig_drawing_t *drw);
55 
56 /**	Open output files for eps with tex driver.
57 	@param	job	Job structure.
58 	@return	1 on success, 0 on error.
59 */
60 int
61 f2leps_eps_with_tex_open_output_files(f2l_job_t *job);
62 
63 /**	Close output files for eps with tex driver.
64 	@param	job	Job structure.
65 */
66 void
67 f2leps_eps_with_tex_close_output_files(f2l_job_t *job);
68 
69 /**	Process one text object.
70 	@param	job	Job structure.
71 	@param	drw	Drawing structure.
72 	@param	obj	Current object to process.
73 	@param	x	Point x.
74 	@param	y	Point y.
75 */
76 void
77 f2leps_eps_with_tex_text_object(
78   f2l_job_t		*job,
79   dk3_fig_drawing_t	*drw,
80   dk3_fig_obj_t		*obj,
81   double		 x,
82   double		 y
83 );
84 
85 /**	Process one image object.
86 	@param	job	Job structure.
87 	@param	drw	Drawing structure.
88 	@param	obj	Current object to process.
89 	@param	outbb	Bounding box for image.
90 	@param	drawdir	Drawing direction.
91 	@param	ec	Pointer to error code variable, may be NULL.
92 */
93 void
94 f2leps_eps_with_tex_image_object(
95   f2l_job_t		*job,
96   dk3_fig_drawing_t	*drw,
97   dk3_fig_obj_t		*obj,
98   dk3_bb_t		*outbb,
99   int			 drawdir,
100   int			*ec
101 );
102 
103 /**	Start new path.
104 	@param	job	Job structure.
105 	@param	drw	Drawing structure.
106 	@param	obj	Current object to process.
107 */
108 void
109 f2leps_eps_with_tex_newpath(
110   f2l_job_t		*job,
111   dk3_fig_drawing_t	*drw,
112   dk3_fig_obj_t		*obj
113 );
114 
115 /**	Move to point.
116 	@param	job	Job structure.
117 	@param	drw	Drawing structure.
118 	@param	obj	Current object to process.
119 	@param	x	Point x.
120 	@param	y	Point y.
121 */
122 void
123 f2leps_eps_with_tex_moveto(
124   f2l_job_t		*job,
125   dk3_fig_drawing_t	*drw,
126   dk3_fig_obj_t		*obj,
127   double		 x,
128   double		 y
129 );
130 
131 /**	Draw line to point.
132 	@param	job	Job structure.
133 	@param	drw	Drawing structure.
134 	@param	obj	Current object to process.
135 	@param	x	Point x.
136 	@param	y	Point y.
137 */
138 void
139 f2leps_eps_with_tex_lineto(
140   f2l_job_t		*job,
141   dk3_fig_drawing_t	*drw,
142   dk3_fig_obj_t		*obj,
143   double		 x,
144   double		 y
145 );
146 
147 /**	Draw curve to point.
148 	@param	job	Job structure.
149 	@param	drw	Drawing structure.
150 	@param	obj	Current object to process.
151 	@param	xcs	Start control point y.
152 	@param	ycs	Start control point y.
153 	@param	xce	End control point x.
154 	@param	yce	End control point y.
155 	@param	xe	End point x.
156 	@param	ye	End point y.
157 */
158 void
159 f2leps_eps_with_tex_curveto(
160   f2l_job_t		*job,
161   dk3_fig_drawing_t	*drw,
162   dk3_fig_obj_t		*obj,
163   double		 xcs,
164   double		 ycs,
165   double		 xce,
166   double		 yce,
167   double		 xe,
168   double		 ye
169 );
170 
171 /**	Close path.
172 	@param	job	Job structure.
173 	@param	drw	Drawing structure.
174 	@param	obj	Current object to process.
175 */
176 void
177 f2leps_eps_with_tex_closepath(
178   f2l_job_t		*job,
179   dk3_fig_drawing_t	*drw,
180   dk3_fig_obj_t		*obj
181 );
182 
183 /**	Fill path.
184 	@param	job	Job structure.
185 	@param	drw	Drawing structure.
186 	@param	obj	Current object to process.
187 */
188 void
189 f2leps_eps_with_tex_fill(
190   f2l_job_t		*job,
191   dk3_fig_drawing_t	*drw,
192   dk3_fig_obj_t		*obj
193 );
194 
195 /**	Clip drawing operations to path.
196 	@param	job	Job structure.
197 	@param	drw	Drawing structure.
198 	@param	obj	Current object to process.
199 */
200 void
201 f2leps_eps_with_tex_clip(
202   f2l_job_t		*job,
203   dk3_fig_drawing_t	*drw,
204   dk3_fig_obj_t		*obj
205 );
206 
207 /**	Stroke path.
208 	@param	job	Job structure.
209 	@param	drw	Drawing structure.
210 	@param	obj	Current object to process.
211 */
212 void
213 f2leps_eps_with_tex_stroke(
214   f2l_job_t		*job,
215   dk3_fig_drawing_t	*drw,
216   dk3_fig_obj_t		*obj
217 );
218 
219 /**	Save graphics state.
220 	@param	job	Job structure.
221 	@param	drw	Drawing structure.
222 	@param	obj	Current object to process.
223 */
224 void
225 f2leps_eps_with_tex_gsave(
226   f2l_job_t		*job,
227   dk3_fig_drawing_t	*drw,
228   dk3_fig_obj_t		*obj
229 );
230 
231 /**	Restore graphics state.
232 	@param	job	Job structure.
233 	@param	drw	Drawing structure.
234 	@param	obj	Current object to process.
235 */
236 void
237 f2leps_eps_with_tex_grestore(
238   f2l_job_t		*job,
239   dk3_fig_drawing_t	*drw,
240   dk3_fig_obj_t		*obj
241 );
242 
243 /**	Set color.
244 	@param	job	Job structure.
245 	@param	drw	Drawing structure.
246 	@param	obj	Current object to process.
247 	@param	r	Red.
248 	@param	g	Green.
249 	@param	b	Blue.
250 */
251 void
252 f2leps_eps_with_tex_setcolor(
253   f2l_job_t		*job,
254   dk3_fig_drawing_t	*drw,
255   dk3_fig_obj_t		*obj,
256   double		 r,
257   double		 g,
258   double		 b
259 );
260 
261 /**	Set line width.
262 	The line width is not set again if we already
263 	have a current line width equal to the new line width.
264 	@param	job	Job structure.
265 	@param	drw	Drawing structure.
266 	@param	obj	Fig Object.
267 	@param	lw	New line width in output coordinates.
268 */
269 void
270 f2leps_eps_with_tex_set_line_width(
271   f2l_job_t		*job,
272   dk3_fig_drawing_t	*drw,
273   dk3_fig_obj_t		*obj,
274   double		 lw
275 );
276 
277 /**	Set line style.
278 	@param	job	Job structure.
279 	@param	drw	Drawing structure.
280 	@param	obj	Object to set up.
281 	@param	ls	Line style, see @ref dk3figlinestyles.
282 	@param	sv	Style value in output coordinates.
283 	@param	lw	Dot length in output coordinates.
284 */
285 void
286 f2leps_eps_with_tex_set_line_style(
287   f2l_job_t		*job,
288   dk3_fig_drawing_t	*drw,
289   dk3_fig_obj_t		*obj,
290   int			 ls,
291   double		 sv,
292   double		 lw
293 );
294 
295 /**	Set line end.
296 	@param	job	Job structure.
297 	@param	drw	Drawing structure.
298 	@param	obj	Fig object.
299 	@param	le	Line end, see @ref dk3figlinecap.
300 */
301 void
302 f2leps_eps_with_tex_set_line_end(
303   f2l_job_t		*job,
304   dk3_fig_drawing_t	*drw,
305   dk3_fig_obj_t		*obj,
306   int			 le
307 );
308 
309 /**	Set line join.
310 	@param	job	Job structure.
311 	@param	drw	Drawing structure.
312 	@param	obj	Fig object.
313 	@param	lj	Line join style, see @ref dk3figlinejoin.
314 */
315 void
316 f2leps_eps_with_tex_set_line_join(
317   f2l_job_t		*job,
318   dk3_fig_drawing_t	*drw,
319   dk3_fig_obj_t		*obj,
320   int			 lj
321 );
322 
323 /**	Set current color or stroking color (PGF, PDF).
324 	@param	job	Job structure.
325 	@param	drw	Drawing structure.
326 	@param	rgb	New color value.
327 */
328 void
329 f2leps_eps_with_tex_set_color_1(
330   f2l_job_t		*job,
331   dk3_fig_drawing_t	*drw,
332   dk3_rgb_color_t	*rgb
333 );
334 
335 /**	Set non-stroking color (PGF, PDF).
336 	@param	job	Job structure.
337 	@param	drw	Drawing structure.
338 	@param	rgb	New color value.
339 */
340 void
341 f2leps_eps_with_tex_set_color_2(
342   f2l_job_t		*job,
343   dk3_fig_drawing_t	*drw,
344   dk3_rgb_color_t	*rgb
345 );
346 
347 
348 /**	Write debugging line to output file.
349 	@param	job	Job structure.
350 	@param	msg	Message to write to output file.
351 */
352 void
353 f2leps_eps_with_tex_debug(
354   f2l_job_t		*job,
355   char const		*msg
356 );
357 
358 /**	Driver initialization for tex with pdf driver.
359 	@param	job	Job structure.
360 	@param	drw	Drawing structure.
361 	@return	1 on success, 0 on error.
362 */
363 int
364 f2leps_eps_pure_initialize(f2l_job_t *job, dk3_fig_drawing_t *drw);
365 
366 /**	Driver cleanup for tex with pdf driver.
367 	@param	job	Job structure.
368 	@param	drw	Drawing structure.
369 */
370 void
371 f2leps_eps_pure_end(f2l_job_t *job, dk3_fig_drawing_t *drw);
372 
373 /**	Write start of output for eps driver.
374 	@param	job	Job structure.
375 	@param	drw	Drawing structure.
376 	@return	1 on success, 0 on error.
377 */
378 int
379 f2leps_eps_pure_start_processing(f2l_job_t *job, dk3_fig_drawing_t *drw);
380 
381 /**	Write end of output for eps driver.
382 	@param	job	Job structure.
383 	@param	drw	Drawing structure.
384 */
385 void
386 f2leps_eps_pure_end_processing(f2l_job_t *job, dk3_fig_drawing_t *drw);
387 
388 /**	Open output files for eps driver.
389 	@param	job	Job structure.
390 	@return	1 on success, 0 on error.
391 */
392 int
393 f2leps_eps_pure_open_output_files(f2l_job_t *job);
394 
395 /**	Close output files for eps driver.
396 	@param	job	Job structure.
397 */
398 void
399 f2leps_eps_pure_close_output_files(f2l_job_t *job);
400 
401 /**	Process one text object.
402 	@param	job	Job structure.
403 	@param	drw	Drawing structure.
404 	@param	obj	Current object to process.
405 	@param	x	Point x.
406 	@param	y	Point y.
407 */
408 void
409 f2leps_eps_pure_text_object(
410   f2l_job_t		*job,
411   dk3_fig_drawing_t	*drw,
412   dk3_fig_obj_t		*obj,
413   double		 x,
414   double		 y
415 );
416 
417 /**	Process one image object.
418 	@param	job	Job structure.
419 	@param	drw	Drawing structure.
420 	@param	obj	Current object to process.
421 	@param	outbb	Bounding box for image.
422 	@param	drawdir	Drawing direction.
423 	@param	ec	Pointer to error code variable, may be NULL.
424 */
425 void
426 f2leps_eps_pure_image_object(
427   f2l_job_t		*job,
428   dk3_fig_drawing_t	*drw,
429   dk3_fig_obj_t		*obj,
430   dk3_bb_t		*outbb,
431   int			 drawdir,
432   int			*ec
433 );
434 
435 /**	Start new path.
436 	@param	job	Job structure.
437 	@param	drw	Drawing structure.
438 	@param	obj	Current object to process.
439 */
440 void
441 f2leps_eps_pure_newpath(
442   f2l_job_t		*job,
443   dk3_fig_drawing_t	*drw,
444   dk3_fig_obj_t		*obj
445 );
446 
447 /**	Move to point.
448 	@param	job	Job structure.
449 	@param	drw	Drawing structure.
450 	@param	obj	Current object to process.
451 	@param	x	Point x.
452 	@param	y	Point y.
453 */
454 void
455 f2leps_eps_pure_moveto(
456   f2l_job_t		*job,
457   dk3_fig_drawing_t	*drw,
458   dk3_fig_obj_t		*obj,
459   double		 x,
460   double		 y
461 );
462 
463 /**	Draw line to point.
464 	@param	job	Job structure.
465 	@param	drw	Drawing structure.
466 	@param	obj	Current object to process.
467 	@param	x	Point x.
468 	@param	y	Point y.
469 */
470 void
471 f2leps_eps_pure_lineto(
472   f2l_job_t		*job,
473   dk3_fig_drawing_t	*drw,
474   dk3_fig_obj_t		*obj,
475   double		 x,
476   double		 y
477 );
478 
479 /**	Draw curve to point.
480 	@param	job	Job structure.
481 	@param	drw	Drawing structure.
482 	@param	obj	Current object to process.
483 	@param	xcs	Start control point y.
484 	@param	ycs	Start control point y.
485 	@param	xce	End control point x.
486 	@param	yce	End control point y.
487 	@param	xe	End point x.
488 	@param	ye	End point y.
489 */
490 void
491 f2leps_eps_pure_curveto(
492   f2l_job_t		*job,
493   dk3_fig_drawing_t	*drw,
494   dk3_fig_obj_t		*obj,
495   double		 xcs,
496   double		 ycs,
497   double		 xce,
498   double		 yce,
499   double		 xe,
500   double		 ye
501 );
502 
503 /**	Close path.
504 	@param	job	Job structure.
505 	@param	drw	Drawing structure.
506 	@param	obj	Current object to process.
507 */
508 void
509 f2leps_eps_pure_closepath(
510   f2l_job_t		*job,
511   dk3_fig_drawing_t	*drw,
512   dk3_fig_obj_t		*obj
513 );
514 
515 /**	Fill path.
516 	@param	job	Job structure.
517 	@param	drw	Drawing structure.
518 	@param	obj	Current object to process.
519 */
520 void
521 f2leps_eps_pure_fill(
522   f2l_job_t		*job,
523   dk3_fig_drawing_t	*drw,
524   dk3_fig_obj_t		*obj
525 );
526 
527 /**	Clip drawing operations to path.
528 	@param	job	Job structure.
529 	@param	drw	Drawing structure.
530 	@param	obj	Current object to process.
531 */
532 void
533 f2leps_eps_pure_clip(
534   f2l_job_t		*job,
535   dk3_fig_drawing_t	*drw,
536   dk3_fig_obj_t		*obj
537 );
538 
539 /**	Stroke path.
540 	@param	job	Job structure.
541 	@param	drw	Drawing structure.
542 	@param	obj	Current object to process.
543 */
544 void
545 f2leps_eps_pure_stroke(
546   f2l_job_t		*job,
547   dk3_fig_drawing_t	*drw,
548   dk3_fig_obj_t		*obj
549 );
550 
551 /**	Save graphics state.
552 	@param	job	Job structure.
553 	@param	drw	Drawing structure.
554 	@param	obj	Current object to process.
555 */
556 void
557 f2leps_eps_pure_gsave(
558   f2l_job_t		*job,
559   dk3_fig_drawing_t	*drw,
560   dk3_fig_obj_t		*obj
561 );
562 
563 /**	Restore graphics state.
564 	@param	job	Job structure.
565 	@param	drw	Drawing structure.
566 	@param	obj	Current object to process.
567 */
568 void
569 f2leps_eps_pure_grestore(
570   f2l_job_t		*job,
571   dk3_fig_drawing_t	*drw,
572   dk3_fig_obj_t		*obj
573 );
574 
575 /**	Set color.
576 	@param	job	Job structure.
577 	@param	drw	Drawing structure.
578 	@param	obj	Current object to process.
579 	@param	r	Red.
580 	@param	g	Green.
581 	@param	b	Blue.
582 */
583 void
584 f2leps_eps_pure_setcolor(
585   f2l_job_t		*job,
586   dk3_fig_drawing_t	*drw,
587   dk3_fig_obj_t		*obj,
588   double		 r,
589   double		 g,
590   double		 b
591 );
592 
593 
594 /**	Set line width.
595 	The line width is not set again if we already
596 	have a current line width equal to the new line width.
597 	@param	job	Job structure.
598 	@param	drw	Drawing structure.
599 	@param	obj	Fig object.
600 	@param	lw	New line width in output coordinates.
601 */
602 void
603 f2leps_eps_pure_set_line_width(
604   f2l_job_t		*job,
605   dk3_fig_drawing_t	*drw,
606   dk3_fig_obj_t		*obj,
607   double		 lw
608 );
609 
610 /**	Set line style.
611 	@param	job	Job structure.
612 	@param	drw	Drawing structure.
613 	@param	obj	Object to set up.
614 	@param	ls	Line style, see @ref dk3figlinestyles.
615 	@param	sv	Style value in output coordinates.
616 	@param	lw	Dot length in output coordinates.
617 */
618 void
619 f2leps_eps_pure_set_line_style(
620   f2l_job_t		*job,
621   dk3_fig_drawing_t	*drw,
622   dk3_fig_obj_t		*obj,
623   int			 ls,
624   double		 sv,
625   double		 lw
626 );
627 
628 /**	Set line end.
629 	@param	job	Job structure.
630 	@param	drw	Drawing structure.
631 	@param	obj	Fig object.
632 	@param	le	Line end, see @ref dk3figlinecap.
633 */
634 void
635 f2leps_eps_pure_set_line_end(
636   f2l_job_t		*job,
637   dk3_fig_drawing_t	*drw,
638   dk3_fig_obj_t		*obj,
639   int			 le
640 );
641 
642 /**	Set line join.
643 	@param	job	Job structure.
644 	@param	drw	Drawing structure.
645 	@param	obj	Fig object.
646 	@param	lj	Line join style, see @ref dk3figlinejoin.
647 */
648 void
649 f2leps_eps_pure_set_line_join(
650   f2l_job_t		*job,
651   dk3_fig_drawing_t	*drw,
652   dk3_fig_obj_t		*obj,
653   int			 lj
654 );
655 
656 /**	Set current color or stroking color (PGF, PDF).
657 	@param	job	Job structure.
658 	@param	drw	Drawing structure.
659 	@param	rgb	New color value.
660 */
661 void
662 f2leps_eps_pure_set_color_1(
663   f2l_job_t		*job,
664   dk3_fig_drawing_t	*drw,
665   dk3_rgb_color_t	*rgb
666 );
667 
668 /**	Set non-stroking color (PGF, PDF).
669 	@param	job	Job structure.
670 	@param	drw	Drawing structure.
671 	@param	rgb	New color value.
672 */
673 void
674 f2leps_eps_pure_set_color_2(
675   f2l_job_t		*job,
676   dk3_fig_drawing_t	*drw,
677   dk3_rgb_color_t	*rgb
678 );
679 
680 /**	Write debugging line to output file.
681 	@param	job	Job structure.
682 	@param	msg	Message to write to output file.
683 */
684 void
685 f2leps_eps_pure_debug(
686   f2l_job_t		*job,
687   char const		*msg
688 );
689 
690 #ifdef __cplusplus
691 }
692 #endif
693 
694 
695 
696 
697 #endif
698