| 531 | } |
| 532 | |
| 533 | Expected<SurfacePath, PathError> computeGeodesicPath( const Mesh & mesh, |
| 534 | const MeshTriPoint & start, const MeshTriPoint & end, GeodesicPathApprox atype, |
| 535 | int maxGeodesicIters ) |
| 536 | { |
| 537 | MR_TIMER; |
| 538 | auto res = computeGeodesicPathApprox( mesh, start, end, atype ); |
| 539 | if ( res.has_value() && !res.value().empty() ) |
| 540 | reducePath( mesh, start, res.value(), end, maxGeodesicIters ); |
| 541 | return res; |
| 542 | } |
| 543 | |
| 544 | HashMap<VertId, VertId> computeClosestSurfacePathTargets( const Mesh & mesh, |
| 545 | const VertBitSet & starts, const VertBitSet & ends, |