縦断勾配の確認等でポリラインをZ軸方向へまっすぐ伸ばす。
//
// ポリラインをZ軸上に真っすぐに投影する
// RunOver: Primitives
//
int pts[] = primpoints(0, @primnum);
float sum = 0;
for(int i = 0; i < len(pts); i++)
{
vector p = point(0, "P", pts[i]);
if(i == 0)
{
setpointattrib(0, "P", pts[i], set(0, p.y, 0));
}
else
{
vector prev = point(0, "P", pts[i-1]);
float L = sqrt(pow(prev.x - p.x, 2) + pow(prev.z - p.z, 2));
sum += L;
setpointattrib(0, "P", pts[i], set(0, p.y, sum));
}
}