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 newEdges.push_back(*(oldEdges.begin()));
139 for (std::vector<const ROEdge*>::const_iterator i = oldEdges.begin() + 1; i != oldEdges.end(); ++i) {
140 if ((*(i - 1))->isConnectedTo(*i)) {
141 newEdges.push_back(*i);
143 std::vector<const ROEdge*> edges;
144 router.
compute(*(i - 1), *i, &veh, begin, edges);
145 if (edges.size() == 0) {
148 std::copy(edges.begin() + 1, edges.end(), back_inserter(newEdges));
209 if ((*i)->getProbability() == 0) {
227 newSum += (*i)->getProbability();
232 (*i)->setProbability((*i)->getProbability() / newSum);
240 chosen -= (*i)->getProbability();
258 bool asAlternatives,
bool withExitTimes)
const {
259 if (asAlternatives) {
262 myAlternatives[i]->writeXMLDefinition(dev, veh,
true, withExitTimes);
277 std::vector<const ROEdge*> edges;
279 edges.push_back(route->
getLast());
301 sum += (*i)->getProbability();