home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / demos / xeyes / transform.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-03-31  |  756 b   |  27 lines

  1. /*
  2.  * header file for transformed coordinate system.  No rotations
  3.  * supported, as elipses cannot be rotated in X.
  4.  */
  5.  
  6. typedef struct _transform {
  7.     double    mx, bx;
  8.     double    my, by;
  9. } Transform;
  10.  
  11. typedef struct _TPoint {
  12.     double    x, y;
  13. } TPoint;
  14.  
  15. typedef struct _TRectangle {
  16.     double    x, y, width, height;
  17. } TRectangle;
  18.  
  19. # define Xx(x,y,t)    ((int)((t)->mx * (x) + (t)->bx + 0.5))
  20. # define Xy(x,y,t)    ((int)((t)->my * (y) + (t)->by + 0.5))
  21. # define Xwidth(w,h,t)    ((int)((t)->mx * (w) + 0.5))
  22. # define Xheight(w,h,t)    ((int)((t)->my * (h) + 0.5))
  23. # define Tx(x,y,t)    ((((double) (x)) - (t)->bx) / (t)->mx)
  24. # define Ty(x,y,t)    ((((double) (y)) - (t)->by) / (t)->my)
  25. # define Twidth(w,h,t)    (((double) (w)) / (t)->mx)
  26. # define Theight(w,h,t)    (((double) (h)) / (t)->my)
  27.