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)
for(unsigned i=0; i<nsn; ++i)
{
Snap sn = trk->get_snap_node(i);
- Angle adiff = abs(wrap_balanced(sn.rotation-rotation));
+ Angle adiff = abs(wrap_balanced(sn.rotation+Angle::half_turn()-rotation));
if(adiff<Angle::quarter_turn())
{
TrackIter iter(trk, i);