3 Various utility functions for dealing with gfxdevices (header file).
5 Part of the swftools package.
7 Copyright (c) 2005 Matthias Kramm <kramm@quiss.org>
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
23 #ifndef __gfxtools_h__
24 #define __gfxtools_h__
31 #include "../lib/mem.h"
32 #include "../lib/gfxdevice.h"
34 typedef struct _gfxdrawer
38 void (*moveTo)(struct _gfxdrawer*d, gfxcoord_t x, gfxcoord_t y);
39 void (*lineTo)(struct _gfxdrawer*d, gfxcoord_t x, gfxcoord_t y);
40 void (*splineTo)(struct _gfxdrawer*d, gfxcoord_t sx, gfxcoord_t sy, gfxcoord_t x, gfxcoord_t y);
41 void* (*result)(struct _gfxdrawer*d);
44 typedef struct _gfxpoint
49 void gfxdrawer_target_gfxline(gfxdrawer_t*d);
51 void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*dashes, float phase);
52 gfxline_t* gfxtool_dash_line(gfxline_t*line, float*dashes, float phase);
54 void gfxline_dump(gfxline_t*l, FILE*fi, char*prefix);
55 gfxline_t* gfxline_append(gfxline_t*line1, gfxline_t*line2);
56 void gfxline_free(gfxline_t*l);
57 gfxline_t* gfxline_clone(gfxline_t*line);
59 void gfxdraw_cubicTo(gfxdrawer_t*draw, double c1x, double c1y, double c2x, double c2y, double x, double y, double quality);
60 void gfxdraw_conicTo(gfxdrawer_t*draw, double cx, double cy, double tox, double toy, double quality);
62 gfxbbox_t gfxline_getbbox(gfxline_t*line);
63 gfxbbox_t gfxbbox_expand_to_point(gfxbbox_t box, gfxcoord_t x, gfxcoord_t y);
65 void gfxline_transform(gfxline_t*line, gfxmatrix_t*matrix);
67 void gfxmatrix_dump(gfxmatrix_t*l, FILE*fi, char*prefix);
68 void gfxmatrix_transform(gfxmatrix_t*m, gfxcoord_t* v1, gfxcoord_t*dest);
69 void gfxmatrix_invert(gfxmatrix_t*src, gfxmatrix_t*dest);
75 #endif //__gfxtools_h__