@bastian
Prim wrangle (tangent)
int vtc[];
vtc = primvertices(0, @primnum);
int n = len(vtc);
int jm1, j, jp1;
int pm1, p, pp1;
vector A,B;
for (int i = 0; i < n; i++)
{
jm1 = i - 1;
j = i;
jp1 = i + 1;
if (chi('mode') == 0)
{
jm1 %= (n-1);
jp1 %= (n-1);
} else
{
jm1 = max(0, jm1);
jp1 = min(n-1, jp1);
}
pm1 = vertexpoint(0, vtc[jm1]);
p = vertexpoint(0, vtc[j]);
pp1 = vertexpoint(0, vtc[jp1]);
A = point(0, 'P', p) - point(0, 'P', pm1);
B = point(0, 'P', pp1) - point(0, 'P', p);
setpointattrib(0, 'tangentu', p, normalize(lerp(A, B, 0.5)));
}
Point wrang-set normal by tangent
vector up = chv('up');
v@N = normalize(cross(v@tangentu, up));
if (chi('reverse'))
{
v@N *= -1;
}