Schnyder Woods for Higher Genus Triangulated Surfaces

Input: a triangulation of genus g

Output: g-Schnyder wood

Implementation of the algorithm

1. 2g merge/split operations-> 2g+1 periods when executing

2. The implementation of each period

  • Half-edge data structure
    • each brin has several pointers: to the incident vertex, to the incident face, to the opposite brin, to tje following brin, to the dual brin
    • T & its dual T* are fixed structures
    • C and its complementary dual D evolves over time
    • a brin of D has an additional pointer to the corresponding boundary corner of C
  • Free boundary corners are stored in a list: the first one is selected each time
  • after conquering the corner, a sequence of update is needed -> O(|E|) = O(n + g)

Encoding and Decoding

G2 is the cut-graph of the Schnyder wood, i.e., G2 is T2
plus the 2g special edges.

-> G2 can be encoded by a word W of length 2n − 2 + O(g log(n)).

 

W' is obtained from a clockwise walk along the (unique) face of G2

 

the pair of words (W, W') is of total length 4n + O(g log(n))

 

reconstruction of the Schnyder wood from (W, W') takes time

O((n + g)g), since it just consists in building the cut-graph
G2 and walking clockwise along G2 .

Schnyder Woods for higher genus

By austinlaurice

Schnyder Woods for higher genus

  • 595