X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Frod.cpp;h=0e41f02614d6b2ef1b3790724fb54fe18f0f980e;hb=28947c087bd2d05c1850e320844f2e33fc0fc253;hp=26d000d313afd67fe345a02bf20a716529322f1c;hpb=4b7008978ce5b67e7e1db14b4a359e4ab1881bbd;p=r2c2.git diff --git a/source/3d/rod.cpp b/source/3d/rod.cpp index 26d000d..0e41f02 100644 --- a/source/3d/rod.cpp +++ b/source/3d/rod.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 "rod.h" #include "vehicle.h" #include "vehicletype.h" @@ -16,32 +7,18 @@ using namespace Msp; namespace R2C2 { Rod3D::Rod3D(const Vehicle3D &v, unsigned r): - GL::ObjectInstance(*v.get_type().get_rod_object(r)), - vehicle(v.get_vehicle()), - rod(vehicle.get_rod(r)) + VehiclePart3D(v, *v.get_type().get_rod_object(r)), + rod(vehicle.get_vehicle().get_rod(r)) { } -void Rod3D::render(GL::Renderer &renderer, const GL::Tag &tag) const +void Rod3D::update_matrix() { - if(!vehicle.get_track()) - return; - - ObjectInstance::render(renderer, tag); -} + matrix = vehicle.Object3D::get_matrix(); -void Rod3D::setup_render(GL::Renderer &renderer, const GL::Tag &) const -{ - GL::Matrix matrix; - const Point &pos = vehicle.get_position(); - matrix.translate(pos.x, pos.y, pos.z); - matrix.rotate(vehicle.get_direction(), 0, 0, 1); - - matrix.translate(rod.position.x, rod.position.y, rod.position.z); + matrix.translate(rod.position); if(rod.type->mirror_object) matrix.scale(1, -1, 1); matrix.rotate(rod.angle, 0, -1, 0); - - renderer.matrix_stack() *= matrix; } } // namespace R2C2