]> git.tdb.fi Git - r2c2.git/blob - source/libr2c2/signaltype.cpp
545e4de8f253f5a28247838d7627041b0d94f3ad
[r2c2.git] / source / libr2c2 / signaltype.cpp
1 #include <msp/geometry/circle.h>
2 #include <msp/geometry/extrudedshape.h>
3 #include <msp/geometry/transformedshape.h>
4 #include "signaltype.h"
5
6 using namespace std;
7 using namespace Msp;
8
9 namespace R2C2 {
10
11 SignalType::SignalType(const ArticleNumber &an):
12         ObjectType(an)
13 {
14         shape = new Geometry::TransformedShape<float, 3>(
15                 Geometry::ExtrudedShape<float, 3>(Geometry::Circle<float>(0.01), 0.12),
16                 Transform::translation(Vector(0, -0.035, 0.06)));
17 }
18
19
20 SignalType::Loader::Loader(SignalType &st):
21         DataFile::DerivedObjectLoader<SignalType, ObjectType::Loader>(st)
22 {
23         add("indication",  &Loader::indication);
24         add("object",      &SignalType::object);
25 }
26
27 void SignalType::Loader::indication(const string &n)
28 {
29         Indication ind;
30         ind.name = n;
31         load_sub(ind);
32         obj.indications.push_back(ind);
33 }
34
35
36 SignalType::Indication::Loader::Loader(Indication &i):
37         ObjectLoader<Indication>(i)
38 {
39         add("aspect",      &Indication::aspect);
40         add("free_blocks", &Indication::free_blocks);
41 }
42
43 } // namespace R2C2