607 |
|
|
608 |
}; |
}; |
609 |
|
|
610 |
|
/** A span of the circular node shape with a segment removed. |
611 |
|
*/ |
612 |
|
struct CircularSliceSpan { |
613 |
|
const CircularNode &node; |
614 |
|
float astart; |
615 |
|
float aend; |
616 |
|
CircularSliceSpan(const CircularNode &node, |
617 |
|
float astart, float aend) : |
618 |
|
node(node), astart(astart), aend(aend) { |
619 |
|
} |
620 |
|
|
621 |
|
ZVec point(float fract, ZVec *intern = 0) const { |
622 |
|
if(intern) *intern = node.ctr - ZVec(0,0,20); |
623 |
|
return node.ctr + node.r * lerp(dirVec(astart), dirVec(aend), fract); |
624 |
|
} |
625 |
|
|
626 |
|
}; |
627 |
|
|
628 |
} |
} |
629 |
} |
} |