12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- 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.
- */
- /*
- * 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 );
|