X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fbogie.cpp;h=24fa85d3e799b1c888894ffe882a49137c378510;hb=03a22611772265b539f826f1f8bc482e71ca4a99;hp=03f7dce255c3291192079559b02a13796fabde8c;hpb=f8a7788cee0261babfc4c804a58515aad6dfbc3d;p=r2c2.git diff --git a/source/3d/bogie.cpp b/source/3d/bogie.cpp index 03f7dce..24fa85d 100644 --- a/source/3d/bogie.cpp +++ b/source/3d/bogie.cpp @@ -1,12 +1,3 @@ -/* $Id$ - -This file is part of R²C² -Copyright © 2011 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - -#include -#include #include "bogie.h" #include "vehicle.h" #include "vehicletype.h" @@ -16,34 +7,19 @@ using namespace Msp; namespace R2C2 { Bogie3D::Bogie3D(const Vehicle3D &v, unsigned b): - GL::ObjectInstance(*v.get_type().get_bogie_object(b)), - vehicle(v.get_vehicle()), - bogie(vehicle.get_bogie(b)) + VehiclePart3D(v, *v.get_type().get_bogie_object(b)), + bogie(vehicle.get_vehicle().get_bogie(b)) { } -void Bogie3D::render(Msp::GL::Renderer &renderer, const GL::Tag &tag) const -{ - if(!vehicle.get_track()) - return; - - ObjectInstance::render(renderer, tag); -} - -void Bogie3D::setup_render(Msp::GL::Renderer &renderer, const GL::Tag &) const +void Bogie3D::update_matrix() { - GL::Matrix matrix; - - const Vector &pos = vehicle.get_position(); - matrix.translate(pos.x, pos.y, pos.z); - matrix.rotate(vehicle.get_direction(), 0, 0, 1); + matrix = vehicle.Object3D::get_matrix(); matrix.translate(bogie.type->position, 0, 0); - float dir = bogie.direction; + Angle dir = bogie.direction; if(bogie.type->rotate_object) - dir += M_PI; + dir += Angle::half_turn(); matrix.rotate(dir, 0, 0, 1); - - renderer.matrix_stack() *= matrix; } } // namespace R2C2