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