Half-edge data structure