]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/beamgate.cpp
Basic support for beam gate sensors
[r2c2.git] / source / 3d / beamgate.cpp
diff --git a/source/3d/beamgate.cpp b/source/3d/beamgate.cpp
new file mode 100644 (file)
index 0000000..a2024b9
--- /dev/null
@@ -0,0 +1,32 @@
+#include <msp/gl/object.h>
+#include <msp/gl/renderer.h>
+#include "beamgate.h"
+#include "layout.h"
+
+using namespace Msp;
+
+namespace R2C2 {
+
+BeamGate3D::BeamGate3D(Layout3D &l, BeamGate &g):
+       Object3D(l, g),
+       GL::ObjectInstance(layout.get_catalogue().get<GL::Object>("beamgate.object"))
+{
+       layout.get_scene().add(*this);
+}
+
+BeamGate3D::~BeamGate3D()
+{
+       layout.get_scene().remove(*this);
+}
+
+Vector BeamGate3D::get_node() const
+{
+       return matrix*Vector(0, 0, 0.04);
+}
+
+void BeamGate3D::setup_render(GL::Renderer &renderer, const GL::Tag &) const
+{
+       renderer.matrix_stack() *= matrix;
+}
+
+} // namespace R2C2