X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fsignal.cpp;h=8e0fea841aee940b62687bf03c1749fadbc807d8;hb=f23c8d8cbc4e72b45e3a719b2cf974ce35d054e9;hp=8601bcc8d935aaa381d137275602fe263a67e673;hpb=3e3675f8d86b06cdea7df197dfe8866ffb285aec;p=r2c2.git diff --git a/source/3d/signal.cpp b/source/3d/signal.cpp index 8601bcc..8e0fea8 100644 --- a/source/3d/signal.cpp +++ b/source/3d/signal.cpp @@ -9,6 +9,7 @@ using namespace Msp; namespace R2C2 { Signal3D::Signal3D(Layout3D &l, Signal &s): + Object3D(s), GL::ObjectInstance(l.get_catalogue().get_signal(s.get_type()).get_object()), layout(l), signal(s) @@ -23,11 +24,14 @@ Signal3D::~Signal3D() layout.get_scene().remove(*this); } +Vector Signal3D::get_node() const +{ + return matrix*Vector(0, -0.035, 0.13); +} + void Signal3D::setup_render(GL::Renderer &renderer, const GL::Tag &) const { - const Vector &pos = signal.get_position(); - renderer.matrix_stack() *= GL::Matrix::translation(pos.x, pos.y, pos.z); - renderer.matrix_stack() *= GL::Matrix::rotation(signal.get_direction(), 0, 0, 1); + renderer.matrix_stack() *= matrix; // XXX Use track gauge, configure signal side renderer.matrix_stack() *= GL::Matrix::translation(0, -0.035, 0); }