]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/selection.cpp
Major code refactoring:
[r2c2.git] / source / designer / selection.cpp
index a693c0a7ccfc4ac9d0dbd66fffb3ded71b44b386..ed71547b0f6a9a46c51279cc3f343cd298bc88a7 100644 (file)
@@ -41,17 +41,17 @@ void Selection::toggle_track(Track *t)
 
 void Selection::select_more()
 {
-       TrackSet new_tracks;
-       for(TrackSet::iterator i=tracks.begin(); i!=tracks.end(); ++i)
+       set<Track *> new_tracks;
+       for(set<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
        {
-               const Track::EndpointSeq &epl=(*i)->get_endpoints();
-               for(Track::EndpointSeq::const_iterator j=epl.begin(); j!=epl.end(); ++j)
-                       if(j->link)
-                               new_tracks.insert(j->link);
+               const vector<Track *> &links=(*i)->get_links();
+               for(vector<Track *>::const_iterator j=links.begin(); j!=links.end(); ++j)
+                       if(*j)
+                               new_tracks.insert(*j);
        }
 
        bool changed=false;
-       for(TrackSet::iterator i=new_tracks.begin(); i!=new_tracks.end(); ++i)
+       for(set<Track *>::iterator i=new_tracks.begin(); i!=new_tracks.end(); ++i)
                if(tracks.insert(*i).second)
                        changed=true;
 
@@ -62,25 +62,25 @@ void Selection::select_more()
 void Selection::select_linked()
 {
        bool changed=false;
-       TrackSeq queue(tracks.begin(), tracks.end());
+       list<Track *> queue(tracks.begin(), tracks.end());
        while(!queue.empty())
        {
                Track *track=queue.front();
                queue.erase(queue.begin());
 
-               const Track::EndpointSeq &epl=track->get_endpoints();
-               for(Track::EndpointSeq::const_iterator j=epl.begin(); j!=epl.end(); ++j)
-                       if(j->link && tracks.insert(j->link).second)
+               const vector<Track *> &links=track->get_links();
+               for(vector<Track *>::const_iterator j=links.begin(); j!=links.end(); ++j)
+                       if(*j && tracks.insert(*j).second)
                        {
-                               queue.push_back(j->link);
+                               queue.push_back(*j);
                                changed=true;
                        }
        }
-       for(TrackSet::iterator i=tracks.begin(); i!=tracks.end(); ++i)
+       for(set<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
        {
-               const Track::EndpointSeq &epl=(*i)->get_endpoints();
-               for(Track::EndpointSeq::const_iterator j=epl.begin(); j!=epl.end(); ++j)
-                       if(j->link && tracks.insert(j->link).second)
+               const vector<Track *> &links=(*i)->get_links();
+               for(vector<Track *>::const_iterator j=links.begin(); j!=links.end(); ++j)
+                       if(*j && tracks.insert(*j).second)
                                changed=true;
        }