X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fvehicle.cpp;h=106be97d3c5be4c5ed49997362d314a4f2a412db;hb=0a370f46322b0d6b804801bed042817fb8f98408;hp=0bd57e95da2b80d276fdf82cef0015649dc1d53d;hpb=a993f204ba2cd282637814caec3ab115040fc0cc;p=r2c2.git diff --git a/source/3d/vehicle.cpp b/source/3d/vehicle.cpp index 0bd57e9..106be97 100644 --- a/source/3d/vehicle.cpp +++ b/source/3d/vehicle.cpp @@ -64,11 +64,20 @@ Vehicle3D::~Vehicle3D() layout.remove_vehicle(*this); layout.get_scene().remove(*this); for(vector::iterator i=axles.begin(); i!=axles.end(); ++i) + { + layout.get_scene().remove(**i); delete *i; + } for(vector::iterator i=bogies.begin(); i!=bogies.end(); ++i) + { + layout.get_scene().remove(**i); delete *i; + } for(vector::iterator i=rods.begin(); i!=rods.end(); ++i) + { + layout.get_scene().remove(**i); delete *i; + } } Vector Vehicle3D::get_node() const @@ -93,12 +102,11 @@ void Vehicle3D::render(GL::Renderer &renderer, const GL::Tag &tag) const void Vehicle3D::setup_render(GL::Renderer &renderer, const GL::Tag &) const { GL::Matrix matrix; - const Vector &pos = vehicle.get_position(); - matrix.translate(pos.x, pos.y, pos.z); - float dir = vehicle.get_direction(); + matrix.translate(vehicle.get_position()); + Angle rot = vehicle.get_rotation(); if(vehicle.get_type().get_rotate_object()) - dir += M_PI; - matrix.rotate(dir, 0, 0, 1); + rot += Angle::half_turn(); + matrix.rotate(rot, 0, 0, 1); renderer.matrix_stack() *= matrix; }