]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/beamgatetype.cpp
Basic support for beam gate sensors
[r2c2.git] / source / libr2c2 / beamgatetype.cpp
diff --git a/source/libr2c2/beamgatetype.cpp b/source/libr2c2/beamgatetype.cpp
new file mode 100644 (file)
index 0000000..46f0aad
--- /dev/null
@@ -0,0 +1,37 @@
+#include <msp/geometry/box.h>
+#include <msp/geometry/transformedshape.h>
+#include <msp/geometry/union.h>
+#include "beamgatetype.h"
+
+using namespace std;
+using namespace Msp;
+
+namespace R2C2 {
+
+BeamGateType::BeamGateType():
+       ObjectType(ArticleNumber(0))
+{
+       name = "Beam gate";
+       Geometry::TransformedShape<float, 3> box1(
+               Geometry::Box<float>(0.005, 0.03, 0.002),
+               Transform::translation(Vector(0, 0, 0.001)));
+       Geometry::TransformedShape<float, 3> box2(
+               Geometry::Box<float>(0.005, 0.008, 0.023),
+               Transform::translation(Vector(0, -0.025, 0.0125)));
+       Geometry::TransformedShape<float, 3> box3(
+               Geometry::Box<float>(0.005, 0.008, 0.023),
+               Transform::translation(Vector(0, 0.025, 0.0125)));
+       vector<Shape *> shapes;
+       shapes.push_back(&box1);
+       shapes.push_back(&box2);
+       shapes.push_back(&box3);
+       shape = Geometry::Union<float, 3>::from_iterator_range(shapes.begin(), shapes.end()).clone();
+}
+
+const BeamGateType &BeamGateType::instance()
+{
+       static BeamGateType type;
+       return type;
+}
+
+} // namespace R2C2