Why is it enough for a vertex in a doubly connected edge list to store only one half edge for which the vertex is an origin?
How could we find all incident edges having only that one half edge with the origin in the vertex?
Why is it enough for a vertex in a doubly connected edge list to store only one half edge for which the vertex is an origin?
How could we find all incident edges having only that one half edge with the origin in the vertex?
Suppose our vertex $v$ is incident to half-edges $vw_1, vw_2, \dots, vw_k$ in that order, but only stores a pointer to the half-edge $vw_1$.
The half-edge $vw_1$ stores a pointer to its "twin" half-edge $w_1v$. The half-edge $w_1v$ stores a pointer to its "next" half-edge, which is $vw_2$. Why is it $vw_2$? Because $w_1, v, w_2$ are adjacent vertices along the same face; $w_1v$ bounds that face, and $vw_2$ is the next half-edge bounding that face.
Similarly, we can go from $vw_2$ to its twin $w_2v$ and from that to its next half-edge $vw_3$. The sequence of twin-next-twin-next-twin-next operations will iterate over the half-edges out of $v$.
In fact, the sequence of prev-twin, prev-twin-prev-twin, prev-twin-prev-twin-prev-twin, etc. operations will do the same thing, but in a reverse order. (These two orders will be consistently clockwise or consistently counterclockwise around $v$ if we're consistent about the direction in which half-edges go around faces.)