edge.destination().sub(edge.origin(), seg);
return dot(seg, diff) / edge.origin().sqrDistance3D(edge.destination());
}</BUG>
public void compute()
{
<BUG>Skeleton skeleton = new Skeleton(mesh, angle);
main: for(List<Vertex> polyline: skeleton.getPolylinesVertices())</BUG>
{
RemeshPolyline rp = new RemeshPolyline(mesh, polyline, metric);
rp.setBuildBackgroundLink(true);

if(e.destination() == v1 && !e.sym().hasAttributes(AbstractHalfEdge.OUTER))
return e.sym();
}
throw new NoSuchElementException(v1+" "+v2+" "+v1.getLink()+" "+v2.getLink());
}
public void compute()
{
Skeleton skeleton = new Skeleton(mesh, angle);
EdgesCollapser edgeCollapser = new EdgesCollapser(mesh);
main: for(List<Vertex> polyline: skeleton.getPolylinesVertices())
{
RemeshPolyline rp = new RemeshPolyline(mesh, polyline, metric);
rp.setBuildBackgroundLink(true);
