50 #ifdef CHECK_MEMORY_LEAKS
52 #endif // CHECK_MEMORY_LEAKS
59 const bool tryRepair) :
61 myPrecomputed(0), myLastUsed(lastUsed), myTryRepair(tryRepair)
107 std::vector<const ROEdge*> edges;
131 const std::vector<const ROEdge*>& oldEdges =
myAlternatives[0]->getEdgeVector();
132 if (oldEdges.size() == 0) {
134 m->
inform(
"Could not repair empty route of vehicle '" + veh.
getID() +
"'.");
137 std::vector<const ROEdge*> newEdges;
138 if (oldEdges.size() == 1) {
140 router.
compute(oldEdges.front(), oldEdges.front(), &veh, begin, newEdges);
142 newEdges.push_back(*(oldEdges.begin()));
143 for (std::vector<const ROEdge*>::const_iterator i = oldEdges.begin() + 1; i != oldEdges.end(); ++i) {
144 if ((*(i - 1))->isConnectedTo(*i)) {
145 newEdges.push_back(*i);
147 std::vector<const ROEdge*> edges;
148 router.
compute(*(i - 1), *i, &veh, begin, edges);
149 if (edges.size() == 0) {
152 std::copy(edges.begin() + 1, edges.end(), back_inserter(newEdges));
214 if ((*i)->getProbability() == 0) {
232 newSum += (*i)->getProbability();
237 (*i)->setProbability((*i)->getProbability() / newSum);
245 chosen -= (*i)->getProbability();
263 bool asAlternatives,
bool withExitTimes)
const {
264 if (asAlternatives) {
267 myAlternatives[i]->writeXMLDefinition(dev, veh,
true, withExitTimes);
282 std::vector<const ROEdge*> edges;
284 edges.push_back(route->
getLast());
306 sum += (*i)->getProbability();