X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrackattachment.cpp;h=9e3d244056602dd33684daddafe6ff799d21faa2;hb=3907520897611cb1b5f2f938c60d3eaff34477a5;hp=64704b11b5290bab5e17d24da21e06f61b9eb230;hpb=0443ca05cbd306487131f5f5bd3b91181ae4a733;p=r2c2.git diff --git a/source/libr2c2/trackattachment.cpp b/source/libr2c2/trackattachment.cpp index 64704b1..9e3d244 100644 --- a/source/libr2c2/trackattachment.cpp +++ b/source/libr2c2/trackattachment.cpp @@ -50,7 +50,8 @@ void TrackAttachment::attach_to_closest(float limit) 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(dget_snap_node(i); - Angle adiff = abs(wrap_balanced(sn.rotation-rotation)); + Angle adiff = abs(wrap_balanced(sn.rotation+Angle::half_turn()-rotation)); if(adiffget_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)