Snap sn;
sn.position = position;
sn.rotation = rotation;
- if((*i)->snap(sn, limit, SNAP_SEGMENT))
+ float gauge = (*i)->get_type().get_gauge();
+ if((*i)->snap(sn, gauge*limit, SNAP_SEGMENT))
{
float d = distance(position, sn.position);
if(d<dist || dist<0)
float offs = min(dist, trk->get_type().get_path_length(0));
while(1)
{
- TrackPoint tp = trk->get_point(trk.entry(), offs);
- float diff = dist-distance(epp, tp.pos);
+ OrientedPoint p = trk->get_point(trk.entry(), offs);
+ float diff = dist-distance(epp, p.position);
if(abs(diff)<margin)
break;
offs += diff;