]> git.tdb.fi Git - r2c2.git/blob - source/libmarklin/traincontrol.h
Foundations of using physics simulation for trains
[r2c2.git] / source / libmarklin / traincontrol.h
1 /* $Id$
2
3 This file is part of the MSP Märklin suite
4 Copyright © 2010  Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
6 */
7
8 #ifndef LIBMARKLIN_TRAINCONTROL_H_
9 #define LIBMARKLIN_TRAINCONTROL_H_
10
11 #include <string>
12
13 namespace Marklin {
14
15 struct TrainControl
16 {
17         enum Type
18         {
19                 BINARY,
20                 DISCRETE,
21                 CONTINUOUS
22         };
23
24         std::string name;
25         Type type;
26         float min_value;
27         float max_value;
28         float step;
29         float value;
30
31 private:
32         TrainControl() { }
33
34 public:
35         void set(float);
36
37         static TrainControl binary(const std::string &);
38         static TrainControl discrete(const std::string &, float, float, float);
39         static TrainControl continuous(const std::string &, float, float);
40 };
41
42 } // namespace Marklin
43
44 #endif