| 632 | } |
| 633 | |
| 634 | float geodesicPathLength( const Mesh& mesh, const GeodesicPath& path ) |
| 635 | { |
| 636 | if ( path.mids.empty() ) |
| 637 | return path.start && path.end ? distance( mesh.triPoint( path.start ), mesh.triPoint( path.end ) ) : 0; |
| 638 | float sum = 0; |
| 639 | if ( path.start ) |
| 640 | sum += distance( mesh.triPoint( path.start ), mesh.edgePoint( path.mids.front() ) ); |
| 641 | sum += surfacePathLength( mesh, path.mids ); |
| 642 | if ( path.end ) |
| 643 | sum += distance( mesh.triPoint( path.end ), mesh.edgePoint( path.mids.back() ) ); |
| 644 | return sum; |
| 645 | } |
| 646 | |
| 647 | Contour3f surfacePathToContour3f( const Mesh & mesh, const SurfacePath & line ) |
| 648 | { |
nothing calls this directly
no test coverage detected