ouroboros1221
Here I made a simple example, it's up to you to figure out how to procedurally organize the points so you don't have to type them in.
Thank you. Unfortunately, your file doesn't work properly, geometry is all messed up with open prims flying everywhere. But it's a starting point.
Nicolas Longchamps
Simple VEX inset. Run over prims.vector centerPoint = v@P ; int pts[] = primpoints(0,@elemnum); int newPTS[] = {}; //generate inset points foreach( int pt ; pts ) { vector pos = point(0,'P',pt); vector insetPos = lerp(pos,centerPoint,ch('inset')); int newPt = addpoint(0,insetPos); append(newPTS,newPt); } //inset prim int prCenter = addprim(0,'poly',newPTS); //contour prims for(int i=0; i<len(pts); i++) { int pr = addprim(0,'poly'); addvertex(0,pr,pts[i-1]); addvertex(0,pr,pts[i]); addvertex(0,pr,newPTS[i]); addvertex(0,pr,newPTS[i-1]); } //remove original prim removeprim(0,@elemnum,0);
Ideally you also interpolate point and vertex attributes on the inset points.
Thank you for your example. Simple indeed but very interesting.