SVN checkout 11/12/2010
[monav:monav.git] / plugins / osmimporter / types.h
1 /*
2 Copyright 2010  Christian Vetter veaac.fdirct@gmail.com
3
4 This file is part of MoNav.
5
6 MoNav is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 MoNav is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with MoNav.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef TYPES_H
21 #define TYPES_H
22
23 #include <QString>
24 #include <QVariant>
25
26 namespace MoNav {
27
28         enum NodeModificatorType {
29                 NodeModifyFixed = 0,
30                 NodeAccess = 1
31         };
32
33         struct NodeModificator {
34                 QString key;
35                 bool checkValue;
36                 QString value;
37                 bool invert;
38                 QVariant modificatorValue;
39                 NodeModificatorType type;
40         };
41
42         enum WayModificatorType {
43                 WayModifyFixed = 0,
44                 WayModifyPercentage = 1,
45                 WayAccess = 2,
46                 WayOneway = 3
47
48         };
49
50         struct WayModificator {
51                 QString key;
52                 bool checkValue;
53                 QString value;
54                 bool invert;
55                 QVariant modificatorValue;
56                 WayModificatorType type;
57         };
58
59         struct Highway {
60                 int priority;
61                 QString value;
62                 int maxSpeed;
63                 int defaultCitySpeed;
64                 int averageSpeed;
65                 bool pedestrian;
66                 bool otherLeftPenalty;
67                 bool otherLeftEqual;
68                 bool otherRightPenalty;
69                 bool otherRightEqual;
70                 bool otherStraightPenalty;
71                 bool otherStraightEqual;
72                 int leftPenalty;
73                 int rightPenalty;
74
75                 bool operator<( const Highway& right ) const
76                 {
77                         if ( priority != right.priority )
78                                 return priority;
79                         return value < right.value;
80                 }
81         };
82 }
83
84 #endif // TYPES_H