]> git.tdb.fi Git - r2c2.git/blob - source/libr2c2/trackappearance.cpp
b5d8b354082c7d5b022bdd99dbb16428fa91d327
[r2c2.git] / source / libr2c2 / trackappearance.cpp
1 #include "trackappearance.h"
2
3 using namespace std;
4 using namespace Msp;
5
6 namespace R2C2 {
7
8 TrackAppearance::TrackAppearance():
9         tie_length(0),
10         tie_spacing(1)
11 { }
12
13 float TrackAppearance::get_rail_elevation() const
14 {
15         return ballast_profile.get_height()+rail_profile.get_height();
16 }
17
18
19 TrackAppearance::Loader::Loader(TrackAppearance &a):
20         ObjectLoader<TrackAppearance>(a)
21 {
22         add("ballast_profile", &Loader::ballast_profile);
23         add("rail_profile", &Loader::rail_profile);
24         add("technique", &TrackAppearance::technique);
25         add("tie_length", &Loader::tie_length);
26         add("tie_profile", &Loader::tie_profile);
27         add("tie_spacing", &Loader::tie_spacing);
28 }
29
30 void TrackAppearance::Loader::ballast_profile()
31 {
32         load_sub(obj.ballast_profile);
33 }
34
35 void TrackAppearance::Loader::rail_profile()
36 {
37         load_sub(obj.rail_profile);
38 }
39
40 void TrackAppearance::Loader::tie_length(float l)
41 {
42         obj.tie_length = l/1000;
43 }
44
45 void TrackAppearance::Loader::tie_profile()
46 {
47         load_sub(obj.tie_profile);
48 }
49
50 void TrackAppearance::Loader::tie_spacing(float s)
51 {
52         obj.tie_spacing = s/1000;
53 }
54
55 } // namespace R2C2