Half Edge Data Structuret
Concept this program will illustrate
Our project goal is to create a half-edge data structure that works for 2D environments and that is easy to manipulate. We want the user to be able to use the data structure in conjunction with the normal functions of processing to make it easy to both draw and store complex geometric figures. To achieve this end we will implement methods to allow for easy manipulation and visualization of the half edge data structure. Furthermore, we will implement methods that allow the user to draw standard processing shapes while also representing them with half edges.
The user interaction
The User has several options: Import a half edge data source (some formatted input) Formatted input: (e.g) each line represents a half edge, Halfedge-identifier, prev, next, twin, [location-optional] A, E, C, B C, A, E, D E, C, A, F B, D, F, A D, F, B, C F, B, D, E
Create it live (half edge by half edge) Remove edges (faces/spaces implicit by incidence) getface(halfedge) getpoint(halfedge) [if we include (x,y) cordinates] addedge(previous, next) removeEdge(half edge) twin(edge) previous(edge) next(edge) visualize()
We will implement a visualizer for half edge data structures, where each line represents a half edge, with an arrow going to the next half edge. The end of the line without the arrow is the vertex that the half edge is associated with.
However, most of our project is really implementing backend methods so that others do not have to make their own half-edge data strucutre.
James Boive Joey Muller Connor Riley