- const set<Track *> &tracks = layout.get_tracks();
- float dist = -1;
- for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
- if(!(*i)->get_type().is_turnout())
- {
- Snap sn;
- sn.position = p;
- sn.rotation = rotation;
- (*i)->snap(sn, 1000, SNAP_SEGMENT);
- float d = distance(p, sn.position);
- if(d<dist || dist<0)
- {
- position = sn.position;
- rotation = sn.rotation;
- track = *i;
- dist = d;
- }
- }