33 lines
1.0 KiB
C
33 lines
1.0 KiB
C
/*
|
|
* header file for transformed coordinate system. No rotations
|
|
* supported, as elipses cannot be rotated in X.
|
|
*/
|
|
/* $XFree86$ */
|
|
|
|
typedef struct _transform {
|
|
double mx, bx;
|
|
double my, by;
|
|
} Transform;
|
|
|
|
typedef struct _TPoint {
|
|
double x, y;
|
|
} TPoint;
|
|
|
|
typedef struct _TRectangle {
|
|
double x, y, width, height;
|
|
} TRectangle;
|
|
|
|
# define Xx(x,y,t) ((int)((t)->mx * (x) + (t)->bx + 0.5))
|
|
# define Xy(x,y,t) ((int)((t)->my * (y) + (t)->by + 0.5))
|
|
# define Xwidth(w,h,t) ((int)((t)->mx * (w) + 0.5))
|
|
# define Xheight(w,h,t) ((int)((t)->my * (h) + 0.5))
|
|
# define Tx(x,y,t) ((((double) (x)) - (t)->bx) / (t)->mx)
|
|
# define Ty(x,y,t) ((((double) (y)) - (t)->by) / (t)->my)
|
|
# define Twidth(w,h,t) (((double) (w)) / (t)->mx)
|
|
# define Theight(w,h,t) (((double) (h)) / (t)->my)
|
|
|
|
extern void Trectangle (const Transform *t, const TRectangle *in, TRectangle *out);
|
|
extern void SetTransform (Transform *t,
|
|
int xx1, int xx2, int xy1, int xy2,
|
|
double tx1, double tx2, double ty1, double ty2);
|