-/************************************************************
-
-Copyright (c) 1989 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-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
-X CONSORTIUM 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 X Consortium 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 X Consortium.
-
-********************************************************/
-
-/* $XConsortium: mizerarc.h,v 5.13 94/04/17 20:28:04 dpw Exp $ */
-
-typedef struct {
- int x;
- int y;
- int mask;
-} miZeroArcPtRec;
-
-typedef struct {
- int x, y, k1, k3, a, b, d, dx, dy;
- int alpha, beta;
- int xorg, yorg;
- int xorgo, yorgo;
- int w, h;
- int initialMask;
- miZeroArcPtRec start, altstart, end, altend;
- int firstx, firsty;
- int startAngle, endAngle;
-} miZeroArcRec;
-
-#define miCanZeroArc(arc) (((arc)->width == (arc)->height) || \
- (((arc)->width <= 800) && ((arc)->height <= 800)))
-
-#define MIARCSETUP() \
- x = info.x; \
- y = info.y; \
- k1 = info.k1; \
- k3 = info.k3; \
- a = info.a; \
- b = info.b; \
- d = info.d; \
- dx = info.dx; \
- dy = info.dy
-
-#define MIARCOCTANTSHIFT(clause) \
- if (a < 0) \
- { \
- if (y == info.h) \
- { \
- d = -1; \
- a = b = k1 = 0; \
- } \
- else \
- { \
- dx = (k1 << 1) - k3; \
- k1 = dx - k1; \
- k3 = -k3; \
- b = b + a - (k1 >> 1); \
- d = b + ((-a) >> 1) - d + (k3 >> 3); \
- if (dx < 0) \
- a = -((-dx) >> 1) - a; \
- else \
- a = (dx >> 1) - a; \
- dx = 0; \
- dy = 1; \
- clause \
- } \
- }
-
-#define MIARCSTEP(move1,move2) \
- b -= k1; \
- if (d < 0) \
- { \
- x += dx; \
- y += dy; \
- a += k1; \
- d += b; \
- move1 \
- } \
- else \
- { \
- x++; \
- y++; \
- a += k3; \
- d -= a; \
- move2 \
- }
-
-#define MIARCCIRCLESTEP(clause) \
- b -= k1; \
- x++; \
- if (d < 0) \
- { \
- a += k1; \
- d += b; \
- } \
- else \
- { \
- y++; \
- a += k3; \
- d -= a; \
- clause \
- }
-
-/* mizerarc.c */
-
-extern Bool miZeroArcSetup(
-#if NeedFunctionPrototypes
- xArc * /*arc*/,
- miZeroArcRec * /*info*/,
- Bool /*ok360*/
-#endif
-);
-
-extern DDXPointPtr miZeroArcPts(
-#if NeedFunctionPrototypes
- xArc * /*arc*/,
- DDXPointPtr /*pts*/
-#endif
-);
-