367 |
makeLerpFilletSpan( |
makeLerpFilletSpan( |
368 |
makeFilletBlend(f1, vf2), |
makeFilletBlend(f1, vf2), |
369 |
f1, |
f1, |
370 |
fract), 1, |
fract), 1, overlap1); |
|
overlap1); |
|
371 |
|
|
372 |
renderSpan2(node, a2, |
renderSpan2(node, a2, |
373 |
makeLerpFilletSpan( |
makeLerpFilletSpan( |
374 |
makeFilletBlend(f2, vf1), |
makeFilletBlend(f2, vf1), |
375 |
f2, |
f2, |
376 |
fract), -1, |
fract), -1, overlap2); |
|
overlap2 |
|
|
); |
|
377 |
} else |
} else |
378 |
renderNormalOrBlend(node, f1, f2, overlap1, overlap2); |
renderNormalOrBlend(node, f1, f2, overlap1, overlap2); |
379 |
} else if(flags & 16) { // Ellipses |
} else if(flags & 16) { // Ellipses |
491 |
} |
} |
492 |
|
|
493 |
template<class F> void renderSpan2(const CircularNode &node, float a0, const F &f, int sign, bool overlap) const { |
template<class F> void renderSpan2(const CircularNode &node, float a0, const F &f, int sign, bool overlap) const { |
494 |
Vec p1 = f.point(1); |
ZVec p2; |
495 |
Vec n = dirVec(a0).cw90(); |
ZVec p1 = f.point(1, &p2); |
|
Vec p2 = p1 - node.ctr; |
|
|
p2 = p2 - n.dot(p2) * n + node.ctr; |
|
496 |
if (flags & 128) |
if (flags & 128) |
497 |
renderSpan(CircularSliceSpan(node, p1, p2), 0); |
renderSpan(CircularSliceSpan(node, p1, p2), 0); |
498 |
if (!overlap) renderSpan(f, sign); |
if (!overlap) renderSpan(f, sign); |