Eclipse SUMO - Simulation of Urban MObility
NIVissimEdgePosMap.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
18 // -------------------
19 /****************************************************************************/
20 #include <config.h>
21 
22 
23 #include <map>
24 #include "NIVissimEdgePosMap.h"
25 
26 
28 
29 
31 
32 
33 void
34 NIVissimEdgePosMap::add(int edgeid, double pos) {
35  add(edgeid, pos, pos);
36 }
37 
38 
39 void
40 NIVissimEdgePosMap::add(int edgeid, double from, double to) {
41  if (from > to) {
42  double tmp = from;
43  from = to;
44  to = tmp;
45  }
46  ContType::iterator i = myCont.find(edgeid);
47  if (i == myCont.end()) {
48  myCont[edgeid] = Range(from, to);
49  } else {
50  double pfrom = (*i).second.first;
51  double pto = (*i).second.second;
52  if (pfrom < from) {
53  from = pfrom;
54  }
55  if (pto > to) {
56  to = pto;
57  }
58  myCont[edgeid] = Range(from, to);
59  }
60 }
61 
62 
63 void
65  for (ContType::iterator i = with.myCont.begin(); i != with.myCont.end(); i++) {
66  add((*i).first, (*i).second.first, (*i).second.second);
67  }
68 }
69 
70 
71 /****************************************************************************/
void add(int edgeid, double pos)
std::pair< double, double > Range
void join(NIVissimEdgePosMap &with)