ROAM can be adapted to use a spherical coordinates system. (psi, phi, distance). This is a trivial adjustment for star-polyhedra, (a class of polyhedra, which is a superset of the convex class), in which the any point of the interior star-space can be used to generate a valid mapping.

On non-star meshes, map the points on the mesh to the new coordinate system, but you have to make sure adjacency is taken into account. Psi and phi normally range from 0 to 2pi radians, but now can range 0 to any number. When rendered, angle and angle+2pi are the same angle, but not when building the mesh. The idea here is that psi and phi are always non-decreasing as they wrap(in the sense of gift-wrap) around the mesh.

Using as an example, a 2-D bow-tie shape, (the procesdure generalizes to n-D):

(0,0), (0.5,0.25), (1,0), (1,1), (0.5, 0.75), (0,1).

We start arbitrarily at the (0,0) node.

Conversion to polar(rad,dist) gives

(0,0)->(0,0)

(0.5,0.25)->(pi/6, root(3)/3)

(1,0)-> should be (0,1), but angles need to be non-decreasing -> (0 + 2pi, 1)

(1,1)->(pi/4 + 2pi, root(2))

ecetera…

To generalize to 3-D, instead of a line to determine adjacency, we have a face. One can evaluate adjacent faces in any order, as long as the non-decreasing property holds for both angles. It is an open problem – to my knowledge – in determining the optimal traversal order for 3 and higher dimensions. Smallest-Angle-Delta-Next is a reasonable metric. Expand the next face, which minizes the sum of the deltas on the angles.

Smaller angles can be obtained by choosing a start location on the line/plane that has the minimal mesh-crossings. (In the bow-tie example, choosing a point on the crease would prevent any angle increases by 2pi.)