Lines Matching defs:acc

378 static void drawQuadrant(struct arc_def *def, struct accelerators *acc,
617 struct arc_def *def, struct arc_bound *bounds, struct accelerators *acc)
630 Hs = acc->h2;
631 WH = -acc->h2mw2;
634 Hf = acc->h4;
640 if (acc->left.valid && boundedLe(K, bounds->left) &&
643 if (acc->right.valid && boundedLe(K, bounds->right) &&
737 if (acc->left.valid && boundedLe(K, bounds->left) &&
740 if (acc->right.valid && boundedLe(K, bounds->right) &&
2552 tailEllipseY(struct arc_def *def, struct accelerators *acc)
2556 acc->tail_y = 0.0;
2561 if (t < acc->h2)
2565 if (t > acc->h2)
2569 t = (CUBED_ROOT_4 * acc->h2 - cbrt(t * t)) / acc->h2mw2;
2571 acc->tail_y = def->h / CUBED_ROOT_2 * sqrt(t);
2580 outerXfromXY(double x, double y, struct arc_def *def, struct accelerators *acc)
2582 return x + (x * acc->h2l) / sqrt(x * x * acc->h4 + y * y * acc->w4);
2586 outerYfromXY(double x, double y, struct arc_def *def, struct accelerators *acc)
2588 return y + (y * acc->w2l) / sqrt(x * x * acc->h4 + y * y * acc->w4);
2592 innerXfromXY(double x, double y, struct arc_def *def, struct accelerators *acc)
2594 return x - (x * acc->h2l) / sqrt(x * x * acc->h4 + y * y * acc->w4);
2598 innerYfromXY(double x, double y, struct arc_def *def, struct accelerators *acc)
2600 return y - (y * acc->w2l) / sqrt(x * x * acc->h4 + y * y * acc->w4);
2604 innerYfromY(double y, struct arc_def *def, struct accelerators *acc)
2608 x = (def->w / def->h) * sqrt(acc->h2 - y * y);
2610 return y - (y * acc->w2l) / sqrt(x * x * acc->h4 + y * y * acc->w4);
2632 computeAcc(xArc * tarc, int lw, struct arc_def *def, struct accelerators *acc)
2637 acc->h2 = def->h * def->h;
2638 acc->w2 = def->w * def->w;
2639 acc->h4 = acc->h2 * acc->h2;
2640 acc->w4 = acc->w2 * acc->w2;
2641 acc->h2l = acc->h2 * def->l;
2642 acc->w2l = acc->w2 * def->l;
2643 acc->h2mw2 = acc->h2 - acc->w2;
2644 acc->fromIntX = (tarc->width & 1) ? 0.5 : 0.0;
2645 acc->fromIntY = (tarc->height & 1) ? 0.5 : 0.0;
2646 acc->xorg = tarc->x + (tarc->width >> 1);
2647 acc->yorgu = tarc->y + (tarc->height >> 1);
2648 acc->yorgl = acc->yorgu + (tarc->height & 1);
2649 tailEllipseY(def, acc);
2660 struct accelerators *acc, miArcFacePtr right, miArcFacePtr left)
2678 bound->outer.min = outerYfromXY(ellipsex.min, bound->ellipse.min, def, acc);
2679 bound->outer.max = outerYfromXY(ellipsex.max, bound->ellipse.max, def, acc);
2680 bound->inner.min = innerYfromXY(ellipsex.min, bound->ellipse.min, def, acc);
2681 bound->inner.max = innerYfromXY(ellipsex.max, bound->ellipse.max, def, acc);
2683 outerx.min = outerXfromXY(ellipsex.min, bound->ellipse.min, def, acc);
2684 outerx.max = outerXfromXY(ellipsex.max, bound->ellipse.max, def, acc);
2685 innerx.min = innerXfromXY(ellipsex.min, bound->ellipse.min, def, acc);
2686 innerx.max = innerXfromXY(ellipsex.max, bound->ellipse.max, def, acc);
2720 &acc->right);
2722 &acc->left);
2729 tail_y = acc->tail_y;
2734 innerTaily = innerYfromY(tail_y, def, acc);
2739 bound->inneri.min = ICEIL(bound->inner.min - acc->fromIntY);
2740 bound->inneri.max = floor(bound->inner.max - acc->fromIntY);
2741 bound->outeri.min = ICEIL(bound->outer.min - acc->fromIntY);
2742 bound->outeri.max = floor(bound->outer.max - acc->fromIntY);
2797 struct arc_bound *bound, struct accelerators *acc, int left)
2801 if (acc->h2mw2 == 0) {
2806 ret = (acc->h4 * scan_y) / (acc->h2mw2);
2821 struct arc_bound *bound, struct accelerators *acc, int left)
2827 ellipse_y = hookEllipseY(scan_y, bound, acc, left);
2833 maxMin = ellipse_y * ellipse_y * ellipse_y * acc->h2mw2 -
2834 acc->h2 * scan_y * (3 * ellipse_y * ellipse_y - 2 * acc->h2);
2838 x = (acc->h2 * scan_y - ellipse_y * acc->h2mw2) *
2839 sqrt(acc->h2 - ellipse_y * ellipse_y) /
2846 if (acc->left.valid && boundedLe(scan_y, bound->left)) {
2847 x = intersectLine(scan_y, acc->left);
2850 if (acc->right.valid)
2851 x = intersectLine(scan_y, acc->right);
2857 if (acc->right.valid && boundedLe(scan_y, bound->right)) {
2858 x = intersectLine(scan_y, acc->right);
2861 if (acc->left.valid)
2862 x = intersectLine(scan_y, acc->left);
2882 struct arc_bound *bounds, struct accelerators *acc, int mask)
2895 x = hookX(y + acc->fromIntY, def, bounds, acc, 1);
2896 if (acc->right.valid && boundedLe(y + acc->fromIntY, bounds->right)) {
2897 altx = intersectLine(y + acc->fromIntY, acc->right);
2901 linx = -ICEIL(acc->fromIntX - x);
2902 rinx = ICEIL(acc->fromIntX + x);
2912 x = hookX(y + acc->fromIntY, def, bounds, acc, 0);
2913 if (acc->left.valid && boundedLe(y + acc->fromIntY, bounds->left)) {
2915 x = intersectLine(y + acc->fromIntY, acc->left);
2919 loutx = -ICEIL(acc->fromIntX - x);
2920 routx = ICEIL(acc->fromIntX + x);
2924 newFinalSpan(acc->yorgu - y, acc->xorg + rinx, acc->xorg + routx);
2926 newFinalSpan(acc->yorgl + y, acc->xorg + rinx, acc->xorg + routx);
2930 newFinalSpan(acc->yorgu - y, acc->xorg - loutx, acc->xorg - linx);
2932 newFinalSpan(acc->yorgl + y, acc->xorg - loutx, acc->xorg - linx);
2942 struct arc_bound *bounds, struct accelerators *acc, int mask)
2947 acc->left.valid && boundedLe(0, bounds->left) && acc->left.b > 0) {
2949 if (acc->left.b < x)
2950 x = acc->left.b;
2951 lw = ICEIL(acc->fromIntX - x) - lx;
2953 rx = ICEIL(acc->fromIntX + x);
2956 arcSpan(0, lx, lw, rx, rw, def, bounds, acc, mask);
2964 struct arc_bound *bounds, struct accelerators *acc, int mask)
2970 arcSpan(y, 0, lw, -rw, rw, def, bounds, acc, mask);
2972 yy = y + acc->fromIntY;
2973 x = tailX(yy, def, bounds, acc);
2974 if (yy == 0.0 && x == -rw - acc->fromIntX)
2976 if (acc->right.valid && boundedLe(yy, bounds->right)) {
2979 xalt = intersectLine(yy, acc->right);
2980 if (xalt >= -rw - acc->fromIntX && xalt <= rx)
2982 n = ICEIL(acc->fromIntX + lx);
2985 newFinalSpan(acc->yorgu - y, acc->xorg + n, acc->xorg + lw);
2987 newFinalSpan(acc->yorgl + y, acc->xorg + n, acc->xorg + lw);
2989 n = ICEIL(acc->fromIntX + rx);
2992 newFinalSpan(acc->yorgu - y, acc->xorg - rw, acc->xorg + n);
2994 newFinalSpan(acc->yorgl + y, acc->xorg - rw, acc->xorg + n);
2998 ICEIL(acc->fromIntX - x), 0,
2999 ICEIL(acc->fromIntX + x), 0, def, bounds, acc, mask);
3264 struct accelerators acc;
3427 computeAcc(tarc, l, &def, &acc);
3452 drawQuadrant(&def, &acc, sweep[j].a0, sweep[j].a1, mask,
3496 struct accelerators *acc,
3510 computeBound(def, &bound, acc, right, left);
3514 miny = ICEIL(yy - acc->fromIntY);
3518 maxy = floor(yy - acc->fromIntY);
3523 newFinalSpan(acc->yorgu - y - 1, acc->xorg, acc->xorg + 1);
3532 def, &bound, acc, mask);
3534 tailSpan(y, -span->rw, -span->rx, def, &bound, acc, mask);
3543 arcSpan(y, 0, 0, 0, 1, def, &bound, acc, mask & 0xc);
3550 def, &bound, acc, mask);
3560 def, &bound, acc, n);
3562 tailSpan(y, -span->rw, -span->rx, def, &bound, acc, n);
3566 def, &bound, acc, n);
3570 yy = y + acc->fromIntY;
3576 x = tailX(yy, def, &bound, acc);
3577 if (acc->left.valid && boundedLe(yy, bound.left)) {
3578 xalt = intersectLine(yy, acc->left);
3582 if (acc->right.valid && boundedLe(yy, bound.right)) {
3583 xalt = intersectLine(yy, acc->right);
3589 ICEIL(acc->fromIntX - x), 0,
3590 ICEIL(acc->fromIntX + x), 0, def, &bound, acc, mask);