The bare bones of a HalfEdge structure are in place. It took some fiddling with C struct syntax that was not familiar to me (forward declaration, typedef of struct), but now that it works it's clear.
I have to pick a set of mesh edit operations for the program. These would be things such as Collapse Edge or Extrude Face. An artist user would use these abilities to shape a mesh.
I need to specify invariants for the HalfEdge structure, or perhaps for an encompassing Mesh structure. Half Edge can only represent a manifold surface. Β That is, the local area around any point should have the topology of a disk. Β I should be able to encode this as invariants for a mesh structure.
More sophisticated structures like the "Winged-Edge" structure are needed for more complex non-manifold mesh representations, but I don't plan on implementing that... at least not in the initial version of this application.