algorithmic modeling for Rhino
While working on the curve based Barycentric mapping components, came across the question of how to offset adjacent closed polygons along a common "vertex normal". Ended up creating a ngon based mesh component which takes adjacent closed n-sided polygons and generates a set of topology relationships for a "mesh". The approach is fairly simple, but fast. For a set of adjacent planar or non planar irregular closed polygons, introduce a new point at the averaged center of closed polygon. Create a "fan" triangular mesh about this center to the edges. Join all the meshes together into 1 and weld. Optionally align any near vertices and weld again (seemed to be fastest). Rebuild normals. For each control point of each polyline, find the nearest mesh point. If that mesh point has not been appropriated to the new vertex list, add it. Assign the vertex index to the new "topology face" and repeat. Add the averaged center point and its normal to a list of face centers and normals. Repeat similar process for edges.
For each new Vertex get Location, Normal, Naked Status, Connected Vertices, Connected Faces, Connected Edges
For each new Face get Vertex Topology, Center, Normal, Connected Edges, Connected Faces
For each new Edge get Vertex Topology, Naked Status, Connected Faces.
The visual output is a triangulated representation of the mesh where naked vertices are highlighted in Red, Face Centers in White, and Edges in Black.
Soon to be released along with an overhauled and more comprehensive set of Barycentric Mapping components.