69 lines
2.6 KiB
C
69 lines
2.6 KiB
C
|
/* $Xorg: transform.h,v 1.4 2001/02/09 02:05:33 xorgcvs Exp $ */
|
||
|
/*
|
||
|
|
||
|
Copyright 1993, 1998 The Open Group
|
||
|
|
||
|
Permission to use, copy, modify, distribute, and sell this software and its
|
||
|
documentation for any purpose is hereby granted without fee, provided that
|
||
|
the above copyright notice appear in all copies and that both that
|
||
|
copyright notice and this permission notice appear in supporting
|
||
|
documentation.
|
||
|
|
||
|
The above copyright notice and this permission notice shall be included
|
||
|
in all copies or substantial portions of the Software.
|
||
|
|
||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||
|
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||
|
|
||
|
Except as contained in this notice, the name of The Open Group shall
|
||
|
not be used in advertising or otherwise to promote the sale, use or
|
||
|
other dealings in this Software without prior written authorization
|
||
|
from The Open Group.
|
||
|
|
||
|
*/
|
||
|
/* $XFree86: xc/programs/oclock/transform.h,v 1.4 2001/01/17 23:45:01 dawes Exp $ */
|
||
|
|
||
|
|
||
|
/*
|
||
|
* header file for transformed coordinate system. No rotations
|
||
|
* supported, as elipses cannot be rotated in X.
|
||
|
*/
|
||
|
|
||
|
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 TFillPolygon ( Display *dpy, Drawable d, GC gc, Transform *t,
|
||
|
TPoint *points, int n_points, int shape, int mode );
|
||
|
extern void TDrawArc ( Display *dpy, Drawable d, GC gc, Transform *t,
|
||
|
double x, double y, double width, double height,
|
||
|
int angle1, int angle2 );
|
||
|
extern void TFillArc ( Display *dpy, Drawable d, GC gc, Transform *t,
|
||
|
double x, double y, double width, double height,
|
||
|
int angle1, int angle2 );
|
||
|
extern void SetTransform ( Transform *t, int xx1, int xx2, int xy1, int xy2,
|
||
|
double tx1, double tx2, double ty1, double ty2 );
|