]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/designer.cpp
Make new and erase work on objects rather than just tracks
[r2c2.git] / source / designer / designer.cpp
index 1df759b2367ffb417b6b25b89b51f3abffd9de38..88bdf8b75253f958e4493489f978cb3c5eda67b7 100644 (file)
@@ -150,7 +150,7 @@ Designer::Designer(int argc, char **argv):
 
        const set<Track *> &tracks = layout->get_all<Track>();
        for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
-               update_track_icon(layout_3d->get<Track3D>(**i));
+               update_track_icon(layout_3d->get_3d(**i));
 }
 
 Designer::~Designer()
@@ -189,23 +189,23 @@ void Designer::quit()
        exit(0);
 }
 
-void Designer::new_track()
+void Designer::new_object()
 {
        use_select_tool();
 
        mode = CATALOGUE;
-       lbl_status->set_text("Select new track or press Esc to cancel");
+       lbl_status->set_text("Select new object or press Esc to cancel");
 }
 
-void Designer::erase_tracks()
+void Designer::erase_objects()
 {
        use_select_tool();
 
-       set<Track *> tracks = selection.get_objects<Track>();
+       set<Object *> objects = selection.get_objects();
        selection.clear();
-       for(set<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
+       for(set<Object *>::iterator i=objects.begin(); i!=objects.end(); ++i)
        {
-               overlay->clear(layout_3d->get<Track3D>(**i));
+               overlay->clear(layout_3d->get_3d(**i));
                delete *i;
        }
 }
@@ -360,7 +360,7 @@ void Designer::key_press(unsigned key)
        if(key==Msp::Input::KEY_N && shift)
                use_tool_with_selected_objects<ExtendTool>();
        else if(key==Msp::Input::KEY_N)
-               new_track();
+               new_object();
        else if(key==Msp::Input::KEY_G)
                use_tool_with_selected_objects<MoveTool>();
        else if(key==Msp::Input::KEY_R)
@@ -393,7 +393,7 @@ void Designer::key_press(unsigned key)
                        use_select_tool();
        }
        else if(key==Msp::Input::KEY_X)
-               erase_tracks();
+               erase_objects();
        else if(key==Msp::Input::KEY_F && shift)
        {
                const set<Track *> &tracks = selection.get_objects<Track>();
@@ -406,7 +406,7 @@ void Designer::key_press(unsigned key)
                                if(*j!=*i)
                                        (*i)->snap_to(**j, true);
 
-                       update_track_icon(layout_3d->get<Track3D>(**i));
+                       update_track_icon(layout_3d->get_3d(**i));
                }
        }
        else if(key==Msp::Input::KEY_F)
@@ -516,17 +516,17 @@ void Designer::update_track_icon(Track3D &track)
        if(track.get_track().get_flex())
                overlay->add_graphic(track, "flex");
 
-       if(unsigned sid = track.get_track().get_sensor_id())
+       if(unsigned saddr = track.get_track().get_sensor_address())
        {
                overlay->add_graphic(track, "sensor");
-               overlay->set_label(track, lexical_cast<string>(sid));
+               overlay->set_label(track, lexical_cast<string>(saddr));
        }
-       else if(unsigned tid = track.get_track().get_turnout_id())
+       else if(unsigned taddr = track.get_track().get_turnout_address())
        {
-               if(tid<0x800)
+               if(taddr<0x800)
                {
                        overlay->add_graphic(track, "turnout");
-                       overlay->set_label(track, lexical_cast<string>(tid));
+                       overlay->set_label(track, lexical_cast<string>(taddr));
                }
        }
 }
@@ -540,7 +540,7 @@ void Designer::track_properties_response(int)
 {
        const set<Track *> &tracks = selection.get_objects<Track>();
        for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
-               update_track_icon(layout_3d->get<Track3D>(**i));
+               update_track_icon(layout_3d->get_3d(**i));
 }
 
 void Designer::route_name_accept(const string &text)
@@ -566,10 +566,10 @@ string Designer::tooltip(int x, int y)
                {
                        if(mode!=CATALOGUE && abs(track->get_tilt()).radians()>1e-4)
                                info += format(" (slope %.1f%%)", abs(tan(track->get_tilt())*100));
-                       if(track->get_turnout_id())
-                               info += format(" (turnout %d)", track->get_turnout_id());
-                       else if(track->get_sensor_id())
-                               info += format(" (sensor %d)", track->get_sensor_id());
+                       if(track->get_turnout_address())
+                               info += format(" (turnout %d)", track->get_turnout_address());
+                       else if(track->get_sensor_address())
+                               info += format(" (sensor %d)", track->get_sensor_address());
                }
                return info;
        }
@@ -591,11 +591,11 @@ void Designer::show_route(const Route &route)
        const set<Track *> &rtracks = route.get_tracks();
        for(set<Track *>::iterator i=rtracks.begin(); i!=rtracks.end(); ++i)
        {
-               Track3D &t3d = layout_3d->get<Track3D>(**i);
+               Track3D &t3d = layout_3d->get_3d(**i);
                Path3D *path = new Path3D(t3d);
                path->set_color(GL::Color(0.5, 0.8, 1.0));
-               if(unsigned tid = (*i)->get_turnout_id())
-                       path->set_path(route.get_turnout(tid));
+               if(unsigned taddr = (*i)->get_turnout_address())
+                       path->set_path(route.get_turnout(taddr));
        }
 }
 
@@ -606,7 +606,7 @@ void Designer::show_zone(const Zone &zone)
        const Zone::TrackSet &ztracks = zone.get_tracks();
        for(Zone::TrackSet::const_iterator i=ztracks.begin(); i!=ztracks.end(); ++i)
        {
-               Track3D &t3d = layout_3d->get<Track3D>(**i);
+               Track3D &t3d = layout_3d->get_3d(**i);
                Path3D *path = new Path3D(t3d);
                path->set_color(GL::Color(0.8, 1.0, 0.5));
        }