]> git.tdb.fi Git - r2c2.git/blob - source/libmarklin/trackpart.h
043dd0d0d78f71db2d7f0bcc37aab40b9080929d
[r2c2.git] / source / libmarklin / trackpart.h
1 #ifndef MARKLIN_TRACKPART_H_
2 #define MARKLIN_TRACKPART_H_
3
4 #include <msp/datafile/loader.h>
5 #include "endpoint.h"
6
7 namespace Marklin {
8
9 struct TrackPart
10 {
11         class Loader: public Msp::DataFile::Loader
12         {
13         private:
14                 TrackPart &part;
15
16         public:
17                 Loader(TrackPart &);
18                 TrackPart &get_object() { return part; }
19         private:
20                 virtual void finish();
21
22                 void start(float, float, float);
23         };
24
25         float    x, y;
26         float    dir;
27         float    length;
28         float    radius;
29         unsigned route;
30         bool     dead_end;
31
32         TrackPart();
33
34         void collect_endpoints(std::vector<Endpoint> &);
35 };
36
37 } // namespace Marklin
38
39 #endif