A C# half-edge mesh data structure, and components for using this in Grasshopper/Rhino