transform.h revision a1d141d5
1/*
2 * header file for transformed coordinate system.  No rotations
3 * supported, as elipses cannot be rotated in X.
4 */
5/* $XFree86$ */
6
7typedef struct _transform {
8	double	mx, bx;
9	double	my, by;
10} Transform;
11
12typedef struct _TPoint {
13	double	x, y;
14} TPoint;
15
16typedef struct _TRectangle {
17	double	x, y, width, height;
18} TRectangle;
19
20# define Xx(x,y,t)	((int)((t)->mx * (x) + (t)->bx + 0.5))
21# define Xy(x,y,t)	((int)((t)->my * (y) + (t)->by + 0.5))
22# define Xwidth(w,h,t)	((int)((t)->mx * (w) + 0.5))
23# define Xheight(w,h,t)	((int)((t)->my * (h) + 0.5))
24# define Tx(x,y,t)	((((double) (x)) - (t)->bx) / (t)->mx)
25# define Ty(x,y,t)	((((double) (y)) - (t)->by) / (t)->my)
26# define Twidth(w,h,t)	(((double) (w)) / (t)->mx)
27# define Theight(w,h,t)	(((double) (h)) / (t)->my)
28
29extern void TFillArc (Display *dpy, Drawable d, GC gc,
30                      Transform *t,
31                      double x, double y, double width, double height,
32                      int angle1, int angle2);
33extern void SetTransform (Transform *t,
34                          int xx1, int xx2, int xy1, int xy2,
35                          double tx1, double tx2, double ty1, double ty2);
36