Hi- I want to construct the shortest (geodesic) path along the surface of a mesh between two vertices. (Not just through the mesh edges, but the general shortest path anywhere across the faces of the mesh.) I have discovered that bmesh.ops.connect_vert_pair() seems to do exactly this, as long as the vertices are sufficiently close together (say 5-10 faces apart), but when the vertices are further apart on a large mesh, an edge list of [] is returned. What is happening here? How can I call this function with any pair of vertices from a single mesh surface? (Or is there a better method I should be using?) Thanks in advance for your help!

sample code:

data = bpy.context.object.data

bm = bmesh.new()

bm.from_mesh(data)

v0 = bm.verts[vert_index_0]

v1 = bm.verts[vert_index_1]

new_path = bmesh.ops.connect_vert_pair(bm, verts=[v0,v1])