1 /* Copyright (C) 2001-2012 Artifex Software, Inc.
2    All Rights Reserved.
3 
4    This software is provided AS-IS with no warranty, either express or
5    implied.
6 
7    This software is distributed under license and may not be copied,
8    modified or distributed except as expressly authorized under the terms
9    of the license contained in the file LICENSE in this distribution.
10 
11    Refer to licensing information at http://www.artifex.com or contact
12    Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
13    CA  94903, U.S.A., +1(415)492-9861, for further information.
14 */
15 
16 
17 /* Interface to graphics state CTM procedures */
18 /* Requires gsmatrix.h and gsstate.h */
19 
20 #ifndef gscoord_INCLUDED
21 #  define gscoord_INCLUDED
22 
23 /* Coordinate system modification */
24 int gs_initmatrix(gs_state *),
25     gs_defaultmatrix(const gs_state *, gs_matrix *),
26     gs_currentmatrix(const gs_state *, gs_matrix *),
27     gs_setmatrix(gs_state *, const gs_matrix *),
28     gs_translate(gs_state *, floatp, floatp),
29     gs_translate_untransformed(gs_state *, floatp, floatp),
30     gs_scale(gs_state *, floatp, floatp),
31     gs_rotate(gs_state *, floatp),
32     gs_concat(gs_state *, const gs_matrix *);
33 
34 /* Extensions */
35 int gs_setdefaultmatrix(gs_state *, const gs_matrix *),
36     gs_currentcharmatrix(gs_state *, gs_matrix *, bool),
37     gs_setcharmatrix(gs_state *, const gs_matrix *),
38     gs_settocharmatrix(gs_state *);
39 
40 /* Coordinate transformation */
41 int gs_transform(gs_state *, floatp, floatp, gs_point *),
42     gs_dtransform(gs_state *, floatp, floatp, gs_point *),
43     gs_itransform(gs_state *, floatp, floatp, gs_point *),
44     gs_idtransform(gs_state *, floatp, floatp, gs_point *);
45 
46 #ifndef gs_imager_state_DEFINED
47 #  define gs_imager_state_DEFINED
48 typedef struct gs_imager_state_s gs_imager_state;
49 #endif
50 
51 int gs_imager_setmatrix(gs_imager_state *, const gs_matrix *);
52 int gs_imager_idtransform(const gs_imager_state *, floatp, floatp, gs_point *);
53 
54 #endif /* gscoord_INCLUDED */
55