Subversion Repositories eduke32

Rev

Rev 8713 | Rev 8715 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8713 Rev 8714
Line 3482... Line 3482...
3482
3482
3483
                ///Solve for f
3483
                ///Solve for f
3484
                //((px[j]-px[i])*f + px[i])*(ngx.u-ngx.d*du1) +
3484
                //((px[j]-px[i])*f + px[i])*(ngx.u-ngx.d*du1) +
3485
                //((py[j]-py[i])*f + py[i])*(ngy.u-ngdy*du1) + (ngo.u-ngo.d*du1) = 0
3485
                //((py[j]-py[i])*f + py[i])*(ngy.u-ngdy*du1) + (ngo.u-ngo.d*du1) = 0
3486
3486
3487
                //POGOTODO: this could be a static inline function -- the do/while loop should be just a pair of braces
3487
                auto mathyMcMatherson = [&](float const f) {
3488
#define DRAWPOLY_MATH_BULLSHIT(XXX)                                                                                \
-
 
3489
do                                                                                                                 \
-
 
3490
{                                                                                                                  \
-
 
3491
    float const f = -(px[i] * (ngx.u - ngx.d * XXX) + py[i] * (ngy.u - ngy.d * XXX) + (ngo.u - ngo.d * XXX)) /     \
3488
                    float const ff = -(px[i] * (ngx.u - ngx.d * f) + py[i] * (ngy.u - ngy.d * f) + (ngo.u - ngo.d * f))
3492
        ((px[j] - px[i]) * (ngx.u - ngx.d * XXX) + (py[j] - py[i]) * (ngy.u - ngy.d * XXX));                       \
3489
                                    / ((px[j] - px[i]) * (ngx.u - ngx.d * f) + (py[j] - py[i]) * (ngy.u - ngy.d * f));
3493
    uu[nn] = (px[j] - px[i]) * f + px[i];                                                                          \
3490
                    uu[nn] = (px[j] - px[i]) * ff + px[i];
3494
    vv[nn] = (py[j] - py[i]) * f + py[i];                                                                          \
3491
                    vv[nn] = (py[j] - py[i]) * ff + py[i];
3495
    ++nn;                                                                                                          \
3492
                    ++nn;
3496
} while (0)
3493
                };
3497
3494
3498
                if (duj <= dui)
3495
                if (duj <= dui)
3499
                {
3496
                {
3500
                    if ((du1 < duj) != (du1 < dui)) DRAWPOLY_MATH_BULLSHIT(du1);
3497
                    if ((du1 < duj) != (du1 < dui)) mathyMcMatherson(du1);
3501
                    if ((du0 < duj) != (du0 < dui)) DRAWPOLY_MATH_BULLSHIT(du0);
3498
                    if ((du0 < duj) != (du0 < dui)) mathyMcMatherson(du0);
3502
                }
3499
                }
3503
                else
3500
                else
3504
                {
3501
                {
3505
                    if ((du0 < duj) != (du0 < dui)) DRAWPOLY_MATH_BULLSHIT(du0);
3502
                    if ((du0 < duj) != (du0 < dui)) mathyMcMatherson(du0);
3506
                    if ((du1 < duj) != (du1 < dui)) DRAWPOLY_MATH_BULLSHIT(du1);
3503
                    if ((du1 < duj) != (du1 < dui)) mathyMcMatherson(du1);
3507
                }
3504
                }
3508
3505
3509
#undef DRAWPOLY_MATH_BULLSHIT
-
 
3510
-
 
3511
                i = j;
3506
                i = j;
3512
            }
3507
            }
3513
            while (i);
3508
            while (i);
3514
3509
3515
            if (nn < 3) continue;
3510
            if (nn < 3) continue;