STEP 2: Potentially reverse the normals of each
tangent plane to achieve consistent orientation
-
Construct a graph with one node per tangent plane.
-
Add edges to the graph between close centers (within
k-neighborhoods), to create a Riemannian Graph, encoding
geometric proximities of the tangent plane centers
-
Assign a cost to each edge depending on the angle
between the normals (if two normals are nearly parallel, they better be
oriented the same way!)
-
Select the orientations for the tangent planes so as
to maximize the total cost of the graph (NP-complete by reduction to
MAXCUT)
-
Approximate the best solution by traversing the MST
of the Riemannian graph and "propagate" orientation (solves
areas of low curvature first).