#include <msp/gl/matrix.h>
#include <msp/gl/meshbuilder.h>
+#include <msp/gl/renderer.h>
#include "3d/tracktype.h"
#include "selection.h"
#include "trackwrap.h"
delete i->second;
}
-void TrackWrap::render(const GL::Tag &) const
+void TrackWrap::render(GL::Renderer &renderer, const GL::Tag &) const
{
for(list<Wrap>::const_iterator i=wraps.begin(); i!=wraps.end(); ++i)
{
- GL::PushMatrix _pushm;
+ GL::MatrixStack::Push push(renderer.matrix_stack());
const Vector &pos = i->track->get_position();
- GL::translate(pos.x, pos.y, pos.z);
- GL::rotate(i->track->get_rotation()*180/M_PI, 0, 0, 1);
- i->mesh->draw();
+ renderer.matrix_stack() *= GL::Matrix::translation(pos.x, pos.y, pos.z);
+ renderer.matrix_stack() *= GL::Matrix::rotation(i->track->get_rotation(), 0, 0, 1);
+ i->mesh->draw(renderer);
}
}
TrackWrap(R2C2::Layout3D &, Selection &);
~TrackWrap();
- virtual void render(const Msp::GL::Tag &) const;
+ virtual void render(Msp::GL::Renderer &, const Msp::GL::Tag &) const;
private:
void selection_changed();