final float sinStart = (float) Math.sin(thetaStart);
final float cosStart = (float) Math.cos(thetaStart);
tmp.set(o.xAxis).scaleSelf(r * cosStart);
Vec3D p0 = new Vec3D(o.origin).addSelf(tmp);
tmp.set(o.yAxis).scaleSelf(r * sinStart);
p0.addSelf(tmp);
tmp.set(o.yAxis).scaleSelf(cosStart);
Vec3D t0 = new Vec3D(o.xAxis).scaleSelf(-sinStart).addSelf(tmp);
Vec4D[] cps = new Vec4D[n + 1];