SUMO - Simulation of Urban MObility
StdDefs.h
Go to the documentation of this file.
1 /****************************************************************************/
10 //
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
13 // Copyright (C) 2005-2016 DLR (http://www.dlr.de/) and contributors
14 /****************************************************************************/
15 //
16 // This file is part of SUMO.
17 // SUMO is free software: you can redistribute it and/or modify
18 // it under the terms of the GNU General Public License as published by
19 // the Free Software Foundation, either version 3 of the License, or
20 // (at your option) any later version.
21 //
22 /****************************************************************************/
23 #ifndef StdDefs_h
24 #define StdDefs_h
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #ifdef _MSC_VER
31 #include <windows_config.h>
32 #else
33 #include <config.h>
34 #endif
35 
37 
38 /* avoiding compiler warning unreferenced parameter */
39 #define UNUSED_PARAMETER(x) ((void)(x))
40 
42 #define SUMO_MAX_CONNECTIONS 256
43 
44 class RGBColor;
45 
46 /* -------------------------------------------------------------------------
47  * some constant defaults used by SUMO
48  * ----------------------------------------------------------------------- */
55 
58 
59 /* @brief map from LinkState to color constants (see above)
60  */
61 const RGBColor& getLinkColor(const LinkState& ls);
62 
63 
64 /* -------------------------------------------------------------------------
65  * templates for mathematical functions missing in some c++-implementations
66  * ----------------------------------------------------------------------- */
67 template<typename T>
68 inline T
69 MIN2(T a, T b) {
70  return a < b ? a : b;
71 }
72 
73 template<typename T>
74 inline T
75 MAX2(T a, T b) {
76  return a > b ? a : b;
77 }
78 
79 
80 template<typename T>
81 inline T
82 MIN3(T a, T b, T c) {
83  return MIN2(c, a < b ? a : b);
84 }
85 
86 
87 template<typename T>
88 inline T
89 MAX3(T a, T b, T c) {
90  return MAX2(c, a > b ? a : b);
91 }
92 
93 
94 template<typename T>
95 inline T
96 MIN4(T a, T b, T c, T d) {
97  return MIN2(MIN2(a, b), MIN2(c, d));
98 }
99 
100 
101 template<typename T>
102 inline T
103 MAX4(T a, T b, T c, T d) {
104  return MAX2(MAX2(a, b), MAX2(c, d));
105 }
106 
107 
108 template<typename T>
109 inline T
110 ISNAN(T a) {
111  volatile T d = a;
112  return d != d;
113 }
114 
116 extern bool gDebugFlag1;
117 extern bool gDebugFlag2;
118 extern bool gDebugFlag3;
119 extern bool gDebugFlag4;
120 
121 extern std::string gDebugSelectedVehicle;
122 
123 #endif
124 
125 /****************************************************************************/
126 
const SUMOReal SUMO_const_laneWidth
Definition: StdDefs.h:49
bool gDebugFlag2
Definition: StdDefs.cpp:92
const SUMOReal SUMO_const_halfLaneAndOffset
Definition: StdDefs.h:54
T MIN4(T a, T b, T c, T d)
Definition: StdDefs.h:96
const SUMOReal SUMO_const_laneWidthAndOffset
Definition: StdDefs.h:53
bool gDebugFlag1
global utility flags for debugging
Definition: StdDefs.cpp:91
T MAX2(T a, T b)
Definition: StdDefs.h:75
const SUMOReal SUMO_const_laneOffset
Definition: StdDefs.h:52
T MAX3(T a, T b, T c)
Definition: StdDefs.h:89
const RGBColor & getLinkColor(const LinkState &ls)
Definition: StdDefs.cpp:53
std::string gDebugSelectedVehicle
Definition: StdDefs.cpp:95
T MAX4(T a, T b, T c, T d)
Definition: StdDefs.h:103
LinkState
The right-of-way state of a link between two lanes used when constructing a NBTrafficLightLogic, in MSLink and GNEInternalLane.
T MIN2(T a, T b)
Definition: StdDefs.h:69
const SUMOReal SUMO_const_quarterLaneWidth
Definition: StdDefs.h:51
T ISNAN(T a)
Definition: StdDefs.h:110
const SUMOReal SUMO_const_haltingSpeed
the speed threshold at which vehicles are considered as halting
Definition: StdDefs.h:57
bool gDebugFlag4
Definition: StdDefs.cpp:94
#define SUMOReal
Definition: config.h:213
T MIN3(T a, T b, T c)
Definition: StdDefs.h:82
const SUMOReal SUMO_const_halfLaneWidth
Definition: StdDefs.h:50
bool gDebugFlag3
Definition: StdDefs.cpp:93