X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fpath.cpp;h=fe4a2467b57df59c64e9d3aea9f4396af922eccb;hb=cb4e53ba1b8ea41b978190de6668e9862b9cfea8;hp=b3b2fa1645ad367084d32535afc73bc5614a0a31;hpb=e8987fa39c3275a0a293b011e83bccd322e0958a;p=r2c2.git diff --git a/source/3d/path.cpp b/source/3d/path.cpp index b3b2fa1..fe4a246 100644 --- a/source/3d/path.cpp +++ b/source/3d/path.cpp @@ -1,20 +1,15 @@ -/* $Id$ - -This file is part of the MSP Märklin suite -Copyright © 2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #include -#include "libmarklin/tracktype.h" +#include +#include "libr2c2/tracktype.h" #include "layout.h" #include "path.h" #include "track.h" #include "tracktype.h" +using namespace std; using namespace Msp; -namespace Marklin { +namespace R2C2 { Path3D::Path3D(const Track3D &t): track(t), @@ -38,7 +33,7 @@ void Path3D::set_automatic() void Path3D::set_path(unsigned p) { if(!(track.get_track().get_type().get_paths()&(1<(&track.get_type()); +} + +void Path3D::render(GL::Renderer &renderer, const GL::Tag &tag) const { if(tag=="unlit") { @@ -70,15 +70,16 @@ void Path3D::render(const GL::Tag &tag) const if(!mask) return; - GL::PushMatrix push_mat; - track.apply_matrix(); - GL::translate(0, 0, z_offs); + GL::MatrixStack::Push push_mtx(renderer.matrix_stack()); + GL::Matrix matrix = track.create_matrix(); + matrix.translate(0, 0, z_offs); + renderer.matrix_stack() *= matrix; glColor4f(color.r, color.g, color.b, color.a); for(unsigned i=0; mask; ++i, mask>>=1) if(mask&1) - track.get_type().get_path_mesh(i).draw(); + track.get_type().get_path_mesh(i).draw(renderer); } } -} // namespace Marklin +} // namespace R2C2