]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/track.cpp
Implement removing vehicles from a train
[r2c2.git] / source / 3d / track.cpp
index ade3d132bcef669759bff1c6796e14699a9ce177..5340318063338d9ba6f439df5c831c6be76abd21 100644 (file)
@@ -29,13 +29,15 @@ Track3D::Track3D(Layout3D &l, Track &t):
        layout.add_track(*this);
        layout.get_scene().add(*this);
 
-       const vector<Endpoint> &type_eps = track.get_type().get_endpoints();
+       const vector<TrackType::Endpoint> &type_eps = track.get_type().get_endpoints();
        for(unsigned i=0; i<type_eps.size(); ++i)
                endpoints.push_back(new Endpoint3D(*this, i));
 }
 
 Track3D::~Track3D()
 {
+       delete path;
+
        layout.remove_track(*this);
        layout.get_scene().remove(*this);
 
@@ -84,9 +86,9 @@ void Track3D::apply_matrix() const
        const Point &pos = track.get_position();
        float rot = track.get_rotation();
 
-       glTranslatef(pos.x, pos.y, pos.z);
-       glRotatef(rot*180/M_PI, 0, 0, 1);
-       glRotatef(track.get_slope()/track.get_type().get_total_length()*180/M_PI, 0, -1, 0);
+       GL::translate(pos.x, pos.y, pos.z);
+       GL::rotate(rot*180/M_PI, 0, 0, 1);
+       GL::rotate(track.get_slope()/track.get_type().get_total_length()*180/M_PI, 0, -1, 0);
 }
 
 void Track3D::render(const GL::Tag &tag) const