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