46 #ifdef CHECK_MEMORY_LEAKS
48 #endif // CHECK_MEMORY_LEAKS
61 :
MSE2Collector(id, usage, lane, startPos, detLength, haltingTimeThreshold,
62 haltingSpeedThreshold, jamDistThreshold) {}
81 myDetector(detector) {
84 Line l(v.front(), v.back());
90 int e = (
int) myFullGeometry.size() - 1;
91 for (
int i = 0; i < e; ++i) {
92 const Position& f = myFullGeometry[i];
93 const Position& s = myFullGeometry[i + 1];
120 ret->
mkItem(
"length [m]",
false, myDetector.getEndPos() - myDetector.getStartPos());
121 ret->
mkItem(
"position [m]",
false, myDetector.getStartPos());
122 ret->
mkItem(
"lane",
false, myDetector.getLane()->getID());
124 ret->
mkItem(
"vehicles [#]",
true,
126 ret->
mkItem(
"occupancy [%]",
true,
128 ret->
mkItem(
"mean speed [m/s]",
true,
130 ret->
mkItem(
"mean vehicle length [m]",
true,
132 ret->
mkItem(
"jam number [#]",
true,
134 ret->
mkItem(
"max jam length [veh]",
true,
136 ret->
mkItem(
"max jam length [m]",
true,
138 ret->
mkItem(
"jam length sum [veh]",
true,
140 ret->
mkItem(
"jam length sum [m]",
true,
142 ret->
mkItem(
"started halts [#]",
true,
152 glPushName(getGlID());
154 glTranslated(0, 0, getType());
167 int e = (
int) myFullGeometry.size() - 1;
168 for (
int i = 0; i < e; ++i) {
173 drawName(getCenteringBoundary().getCenter(), s.
scale, s.
addName);