X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fsignal.cpp;h=8e0fea841aee940b62687bf03c1749fadbc807d8;hb=f23c8d8cbc4e72b45e3a719b2cf974ce35d054e9;hp=4f124679eaed5d6ffa29338abd1d60a46061dd46;hpb=7a36d396eded897c421424905b2c938d770df341;p=r2c2.git diff --git a/source/3d/signal.cpp b/source/3d/signal.cpp index 4f12467..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,10 +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 { - renderer.matrix_stack() *= GL::Matrix::translation(signal.get_position()); - renderer.matrix_stack() *= GL::Matrix::rotation(signal.get_rotation(), 0, 0, 1); + renderer.matrix_stack() *= matrix; // XXX Use track gauge, configure signal side renderer.matrix_stack() *= GL::Matrix::translation(0, -0.035, 0); }