Is there any specific advantage of it being outgoing? I imagine that all of the related algorithms will still hold if any given vertex consistently knows about one of its "incoming" halfedges?
csciutto
The outgoing makes iterating around a vertex easy via h->twin()->next()
yilong_new
So why we do not use a doubly linked list (i.e. include prev() for each node as well)? Seems it makes some local mesh operations easier (sometimes we need to take O(d) time to find the previous halfedge of a given halfedge).
kmc
@yilong_new that would complicate the data structure and require more storage I think
nphirning
Is this widely accepted as the go-to data structure? It seems like a simpler structure (with just vertices and faces, perhaps) could work just as well.
Will a halfedge always be pointing OUT/AWAY from a vertex in a Vertex struct?
I think so, check https://github.com/stanford-cs248/triangle-mesh-editor/wiki/Halfedge-Mesh for more details. In short, it says "a vertex knows about one of its "outgoing" halfedges".
Is there any specific advantage of it being outgoing? I imagine that all of the related algorithms will still hold if any given vertex consistently knows about one of its "incoming" halfedges?
The outgoing makes iterating around a vertex easy via h->twin()->next()
So why we do not use a doubly linked list (i.e. include prev() for each node as well)? Seems it makes some local mesh operations easier (sometimes we need to take O(d) time to find the previous halfedge of a given halfedge).
@yilong_new that would complicate the data structure and require more storage I think
Is this widely accepted as the go-to data structure? It seems like a simpler structure (with just vertices and faces, perhaps) could work just as well.