- if(tracks.count(&t.get_track()))
- throw KeyError("Duplicate track");
-
- tracks[&t.get_track()] = &t;
-}
-
-void Layout3D::remove_track(Track3D &t)
-{
- tracks.erase(&t.get_track());
-}
-
-Track3D &Layout3D::get_track(Track &t) const
-{
- TrackMap::const_iterator i = tracks.find(&t);
- if(i==tracks.end())
- throw KeyError("Unknown track");
-
- return *i->second;
-}
-
-Track3D *Layout3D::pick_track(float x, float y, float size) const
-{
- vector<GL::SelectRecord> select_buf;
- GL::select_buffer(select_buf);
- GL::render_mode(GL::SELECT);