/* $Id$
This file is part of the MSP Märklin suite
-Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
+Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa
Distributed under the GPL
*/
for(set<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
(*i)->break_links();
+ set<Track *> flext;
for(set<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
- for(set<Track *>::iterator j=i; j!=tracks.end(); ++j)
+ {
+ if((*i)->get_flex())
+ flext.insert(*i);
+ else
+ {
+ for(set<Track *>::iterator j=i; j!=tracks.end(); ++j)
+ if(j!=i)
+ (*i)->snap_to(**j, true);
+ }
+ }
+
+ for(set<Track *>::iterator i=flext.begin(); i!=flext.end(); ++i)
+ for(set<Track *>::iterator j=tracks.begin(); j!=tracks.end(); ++j)
if(j!=i)
(*i)->snap_to(**j, true);
}