All pastes #287700 Raw Edit

Unnamed

public text v1 · immutable
#287700 ·published 2006-12-21 18:16 UTC
rendered paste body
+					for (sx=xs; sx<=xe; sx++) {
+						float xf = (sx - x)/ct_crad;
+						float fys = 1e10f, fye = -1e10f;
+						int found = 0;
+						ov = len_bkh - 1;
+						mind = maxd = 0;
+						for (nv=0; nv<len_bkh; nv++) {
+							if ((BKH[nv].max_x >= xf) && (BKH[nv].min_x <= xf)) {
+								float ty = BKH[ov].y0 + BKH[nv].ls_y*(xf - BKH[ov].x0);
+								if (ty < fys) { fys = ty;  mind = BKH[nv].ls_y; }
+								if (ty > fye) { fye = ty;  maxd = BKH[nv].ls_y; }
+								if (++found == 2) break;
+							}
+							ov = nv;
+						}
+						if (found) {
+							fys = fys*ct_crad + y;
+							fye = fye*ct_crad + y;
+							// near horizontal edges only, line slope <= 1
+							if (fabs(mind) <= 1.f) {
+								int iys = (int)floor(fys);
+								if ((iys >= 0) && (iys < new->y)) {
+									lwt = 1.f - (fys - iys);
+									aacol[0] = wtcol[0]*lwt;
+									p = sx + iys*new->x;
+									if (new->type==CB_VAL) {
+										lwt *= wt;
+										TESTBG1(aacol, lwt);
+									}
+									else {
+										p4 = p * new->type;
+										aacol[1] = wtcol[1]*lwt;
+										aacol[2] = wtcol[2]*lwt;
+										aacol[3] = wtcol[3]*lwt;
+										lwt *= wt;
+										TESTBG4(aacol, lwt);
+									}
+								}
+							}
+							if (fabs(maxd) <= 1.f) {
+								int iye = ceil(fye);
+								if ((iye >= 0) && (iye < new->y)) {
+									lwt = 1.f - (iye - fye);
+									aacol[0] = wtcol[0]*lwt;
+									p = sx + iye*new->x;
+									if (new->type==CB_VAL) {
+										lwt *= wt;
+										TESTBG1(aacol, lwt);
+									}
+									else {
+										p4 = p * new->type;
+										aacol[1] = wtcol[1]*lwt;
+										aacol[2] = wtcol[2]*lwt;
+										aacol[3] = wtcol[3]*lwt;
+										lwt *= wt;
+										TESTBG4(aacol, lwt);
+									}
+								}
+							}
+						}
+					}
+
+				}
+				#undef TESTBG4
+				#undef TESTBG1
+