Skip to main content
. Author manuscript; available in PMC: 2018 Jan 1.
Published in final edited form as: Med Image Anal. 2016 Sep 6;35:517–529. doi: 10.1016/j.media.2016.09.001

Algorithm 3.

Embed the surface onto the Poincaré disk.

Input: A multiply connected surface Σ with its hyperbolic uniformization metric and
  its simply connected domain Σ̃.
Output: The embedding of Σ̃ onto the Poincaré disk.
1 Copy the hyperbolic uniformization metric from Σ to Σ̃.
2 Select a seed face f012 = [υ0, υ1, υ2] ∈ Σ̃, map each vertex to the Poincaré disk as:
p0) = (0, 0), p(υ1)=el011el01+1(1,0), and p(υ2)=el021el02+1(cosθ012,sinθ012).
3 Put all the neighboring faces of f012 to a queue.
4 while the queue is not empty do
5 graphic file with name nihms816875t1.jpg Pop the first face fijk from the queue;
6 if fijk has been embedded then
7 graphic file with name nihms816875t2.jpg Continue;
8 else
9 graphic file with name nihms816875t3.jpg Suppose υi and υj have been embedded, compute the intersections of two
circles (center, radius): (pi), lik) and (pj), ljk).
10 Then pk) is chosen as the intersection point that keeps the face upward.
11 Put the neighboring faces of fijk in the queue.
12 end
13 end