Algorithm 1.
Input: A triangle mesh M, measure μ and Dirac measure {(p1, ν1), (p2, ν2), ⋯ , (pk, νk)}, ; a threshold ϵ. |
Output: The unique discrete Optimal Mass Transport Map φ : (M, μ) → (P, ν). |
Subdivide M for several levels, until each triangle size is small enough. |
for all pi ∈ P do |
Compute the geodesic from pi to every other vertex on M, |
end for |
h ← (0, 0, ⋯ , 0). |
repeat |
for all vertex vj on M do |
Find the minimum weighted squared geodesic distance, decide which Voronoi cell vi belongs to, vi ∈ Wt(h) |
end for |
for all pi ∈ P do |
Compute the current cell area wi = ∫Wi(h) dμ, |
end for |
for all hi ∈ h do |
Update hi, hi = hi + δ(νi − wi) |
end for |
until ∣νi − wi∣ < ϵ, ∀i. |
return Power geodesic Voronoi diagram. |