]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/engineer.cpp
Use generic objects in Layout3D
[r2c2.git] / source / engineer / engineer.cpp
index 61dd49a1c72d86136baa9fd462e05b2458b398e5..1fb4adf75653a852905aae77bafaff338d15d18e 100644 (file)
@@ -206,7 +206,7 @@ void Engineer::tick()
                                        picking_entry = 0;
 
                                delete picking_path;
-                               picking_path = new Path3D(layout_3d.get_track(*track));
+                               picking_path = new Path3D(layout_3d.get<Track3D>(*track));
                                if(picking_entry>=0)
                                        picking_path->set_mask(picking_track->get_type().get_endpoint(picking_entry).paths);
                                else
@@ -304,7 +304,7 @@ void Engineer::axis_motion(unsigned axis, float value, float)
 
 void Engineer::view_all()
 {
-       const Layout3D::TrackMap &tracks = layout_3d.get_tracks();
+       const Layout3D::ObjectMap &objects = layout_3d.get_all();
 
        float view_aspect = float(window.get_width())/window.get_height();
        float view_height = tan(camera.get_field_of_view()/2.0f)*2.0f;
@@ -315,8 +315,8 @@ void Engineer::view_all()
        {
                Transform trans = Transform::rotation(-angle, Vector(0, 0, 1));
                BoundingBox bbox;
-               for(Layout3D::TrackMap::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
-                       bbox = bbox|trans.transform(i->second->get_track().get_bounding_box());
+               for(Layout3D::ObjectMap::const_iterator i=objects.begin(); i!=objects.end(); ++i)
+                       bbox = bbox|trans.transform(i->second->get_object().get_bounding_box());
 
                const Vector &minp = bbox.get_minimum_point();
                const Vector &maxp = bbox.get_maximum_point();
@@ -353,7 +353,7 @@ void Engineer::set_block_color(const Block &block, const GL::Color &color)
 {
        const set<Track *> &tracks = block.get_tracks();
        for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
-               layout_3d.get_track(**i).get_path().set_color(color);
+               layout_3d.get<Track3D>(**i).get_path().set_color(color);
 }
 
 void Engineer::reset_block_color(const Block &block)
@@ -391,7 +391,7 @@ Object *Engineer::pick_object(const Vector &p)
 
 void Engineer::process_new_train(Train &train)
 {
-       Vehicle3D &loco3d = layout_3d.get_vehicle(train.get_vehicle(0));
+       Vehicle3D &loco3d = layout_3d.get<Vehicle3D>(train.get_vehicle(0));
        overlay->set_label(loco3d, train.get_name());
        train.signal_name_changed.connect(sigc::bind<0>(sigc::mem_fun(overlay, &Overlay3D::set_label), sigc::ref(loco3d)));
 }