]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/designer.cpp
Use maps instead of lists in Layout3D
[r2c2.git] / source / designer / designer.cpp
index c2c26da8332e3cc9d016a5af2eb3a48d731f6e12..cb327c560efeb51236169b369675d42b16c26798 100644 (file)
@@ -137,9 +137,9 @@ Designer::Designer(int argc, char **argv):
 
        overlay = new Overlay3D(window, camera, ui_res.get_default_font());
 
-       const list<Track3D *> &tracks = layout_3d->get_tracks();
-       for(list<Track3D *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
-               update_track_icon(**i);
+       const Layout3D::TrackMap &tracks = layout_3d->get_tracks();
+       for(Layout3D::TrackMap::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
+               update_track_icon(*i->second);
 }
 
 Designer::~Designer()
@@ -261,14 +261,14 @@ void Designer::tick()
        float dt = (t-last_tick)/Msp::Time::sec;
        last_tick = t;
 
-       for(list<Track *>::iterator i=new_tracks.begin(); i!=new_tracks.end(); ++i)
-               layout_3d->get_track(**i).get_path().set_mask(0);
-       new_tracks.clear();
-
        window.get_display().tick();
        root->tick();
        camera_ctl.tick(dt);
 
+       for(list<Track *>::iterator i=new_tracks.begin(); i!=new_tracks.end(); ++i)
+               layout_3d->get_track(**i).get_path().set_mask(0);
+       new_tracks.clear();
+
        render();
 
        window.swap_buffers();
@@ -587,12 +587,12 @@ void Designer::view_all()
        Point minp;
        Point maxp;
 
-       const list<Track3D *> &tracks = layout_3d->get_tracks();
-       for(list<Track3D *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
+       const Layout3D::TrackMap &tracks = layout_3d->get_tracks();
+       for(Layout3D::TrackMap::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
        {
                Point tmin;
                Point tmax;
-               (*i)->get_bounds(0, tmin, tmax);
+               i->second->get_bounds(0, tmin, tmax);
                minp.x = min(minp.x, tmin.x);
                minp.y = min(minp.y, tmin.y);
                maxp.x = max(maxp.x, tmax.x);