44 #ifdef CHECK_MEMORY_LEAKS
46 #endif // CHECK_MEMORY_LEAKS
62 unsigned int references,
const RGBColor*
const c,
63 const std::vector<SUMOVehicleParameter::Stop>& stops)
64 :
Named(id), myEdges(edges),
65 myReferenceCounter(references),
66 myColor(c), myStops(stops) {}
88 return (
unsigned)
myEdges.size();
137 RouteDict::iterator it =
myDict.find(
id);
139 RouteDistDict::iterator it2 =
myDistDict.find(
id);
140 if (it2 ==
myDistDict.end() || it2->second->getOverallProb() == 0) {
143 return it2->second->get();
151 RouteDistDict::iterator it2 =
myDistDict.find(
id);
165 for (RouteDict::iterator i =
myDict.begin(); i !=
myDict.end(); ++i) {
175 for (RouteDict::const_iterator i =
myDict.begin(); i !=
myDict.end(); ++i) {
176 into.push_back((*i).first);
179 into.push_back((*i).first);
187 MSEdgeVector::const_iterator i =
myEdges.begin();
191 for (; i !=
myEdges.end(); ++i) {
197 if (upTo || i !=
myEdges.end() - 1) {
207 std::vector<MSEdge*>::const_iterator i = edgelist.begin();
208 for (; i != edgelist.end(); ++i) {
225 MSRoute::dict_saveState(std::ostream& os) {
227 for (RouteDict::iterator it =
myDict.begin(); it !=
myDict.end(); ++it) {
235 const unsigned int size = (
unsigned int)(*it).second->getVals().size();
237 for (
unsigned int i = 0; i <
size; ++i) {
247 unsigned int numRoutes;
249 for (; numRoutes > 0; numRoutes--) {
252 unsigned int references;
258 0, std::vector<SUMOVehicleParameter::Stop>());
262 unsigned int numRouteDists;
263 bis >> numRouteDists;
264 for (; numRouteDists > 0; numRouteDists--) {
271 for (; no > 0; no--) {
278 dist->
add(prob, r,
false);
282 for (; no > 0; no--) {
299 for (MSEdgeVector::const_iterator i =
myEdges.begin(); i !=
myEdges.end(); ++i) {
300 ret += (*i)->getLength();
308 bool isFirstIteration =
true;
310 MSEdgeVector::const_iterator it = std::find(
myEdges.begin(),
myEdges.end(), fromEdge);
316 if (fromEdge == toEdge && fromPos <= toPos) {
318 return (toPos - fromPos);
320 for (; it !=
end(); ++it) {
321 if ((*it) == toEdge && !isFirstIteration) {
325 const std::vector<MSLane*>& lanes = (*it)->getLanes();
326 distance += lanes[0]->getLength();
327 #ifdef HAVE_INTERNAL_LANES
329 for (std::vector<MSLane*>::const_iterator laneIt = lanes.begin(); laneIt != lanes.end(); laneIt++) {
330 const MSLinkCont& links = (*laneIt)->getLinkCont();
331 for (MSLinkCont::const_iterator linkIt = links.begin(); linkIt != links.end(); linkIt++) {
332 if ((*linkIt) == 0 || (*linkIt)->getLane() == 0) {
335 std::string succLaneId = (*(it + 1))->getLanes()[0]->getID();
336 if ((*linkIt)->getLane()->getID().compare(succLaneId) == 0) {
337 distance += (*linkIt)->getLength();
343 isFirstIteration =
false;
358 const std::vector<SUMOVehicleParameter::Stop>&