Eclipse SUMO - Simulation of Urban MObility
NBPTStop.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
14 // The representation of a single pt stop
15 /****************************************************************************/
16 #ifndef SUMO_NBPTSTOP_H
17 #define SUMO_NBPTSTOP_H
18 
19 // ===========================================================================
20 // included modules
21 // ===========================================================================
22 #include <config.h>
23 
24 #include <string>
25 #include <utils/geom/Position.h>
27 #include "NBPTPlatform.h"
28 
29 
30 // ===========================================================================
31 // class declarations
32 // ===========================================================================
33 class OutputDevice;
34 class NBEdgeCont;
35 
36 
37 // ===========================================================================
38 // class definitions
39 // ===========================================================================
44 class NBPTStop {
45 
46 public:
53  NBPTStop(std::string ptStopId, Position position, std::string edgeId, std::string origEdgeId, double length, std::string name, SVCPermissions svcPermissions);
54  std::string getID() const;
55 
56  const std::string getEdgeId() const;
57  const std::string getOrigEdgeId() const;
58  const std::string getName() const;
59  const Position& getPosition() const;
61  void write(OutputDevice& device);
62  void reshiftPosition(const double offsetX, const double offsetY);
63 
64  const std::vector<NBPTPlatform>& getPlatformCands();
65  bool getIsMultipleStopPositions() const;
66  void setIsMultipleStopPositions(bool multipleStopPositions);
67  double getLength() const;
68  bool setEdgeId(std::string edgeId, const NBEdgeCont& ec);
69  void registerAdditionalEdge(std::string wayId, std::string edgeId);
70  void addPlatformCand(NBPTPlatform platform);
72 
73  void setMyPTStopId(std::string id);
74  void addAccess(std::string laneID, double offset, double length);
75 
77  void clearAccess();
78 
80  void addLine(const std::string& line);
81 
82  void setBidiStop(NBPTStop* bidiStop) {
83  myBidiStop = bidiStop;
84  }
85 
86  NBPTStop* getBidiStop() const {
87  return myBidiStop;
88  }
89 
90  bool isLoose() const {
91  return myIsLoose;
92  }
93 
94 private:
95  void computeExtent(double center, double d);
96 
97 private:
98  std::string myPTStopId;
100  std::string myEdgeId;
101  std::map<std::string, std::string> myAdditionalEdgeCandidates;
102 public:
103  const std::map<std::string, std::string>& getMyAdditionalEdgeCandidates() const;
104 private:
105  std::string myOrigEdgeId;
106 public:
107  void setMyOrigEdgeId(const std::string& myOrigEdgeId);
108 private:
110 public:
111  void setMyPTStopLength(double myPTStopLength);
112 private:
113  const std::string myName;
114  std::string myLaneId;
116 
117  double myStartPos;
118  double myEndPos;
119 
121  std::vector<std::tuple<std::string, double, double>> myAccesses;
122 
124  std::vector<std::string> myLines;
125 
127 
129  bool myIsLoose;
130 
131 private:
133  NBPTStop& operator=(const NBPTStop&);
134 
135 
136  std::vector<NBPTPlatform> myPlatformCands;
138 };
139 
140 #endif //SUMO_NBPTSTOP_H
NBPTStop::setBidiStop
void setBidiStop(NBPTStop *bidiStop)
Definition: NBPTStop.h:82
NBPTStop::myLines
std::vector< std::string > myLines
list of public transport lines (for displaying)
Definition: NBPTStop.h:124
NBPTStop::setIsMultipleStopPositions
void setIsMultipleStopPositions(bool multipleStopPositions)
Definition: NBPTStop.cpp:155
NBPTStop::computeExtent
void computeExtent(double center, double d)
Definition: NBPTStop.cpp:77
NBEdgeCont
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:60
NBPTStop::myLaneId
std::string myLaneId
Definition: NBPTStop.h:114
OutputDevice
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:63
NBPTStop::getPermissions
SVCPermissions getPermissions() const
Definition: NBPTStop.cpp:131
NBPTPlatform.h
NBPTStop::getLength
double getLength() const
Definition: NBPTStop.cpp:161
NBPTStop::getMyAdditionalEdgeCandidates
const std::map< std::string, std::string > & getMyAdditionalEdgeCandidates() const
Definition: NBPTStop.cpp:180
NBPTStop::myStartPos
double myStartPos
Definition: NBPTStop.h:117
NBPTStop::setMyPTStopLength
void setMyPTStopLength(double myPTStopLength)
Definition: NBPTStop.cpp:192
NBPTStop::write
void write(OutputDevice &device)
Definition: NBPTStop.cpp:93
NBPTStop::operator=
NBPTStop & operator=(const NBPTStop &)
Invalidated assignment operator.
NBPTStop::myAdditionalEdgeCandidates
std::map< std::string, std::string > myAdditionalEdgeCandidates
Definition: NBPTStop.h:101
NBPTStop::myEdgeId
std::string myEdgeId
Definition: NBPTStop.h:100
NBPTStop::getID
std::string getID() const
Definition: NBPTStop.cpp:48
NBPTStop::getPlatformCands
const std::vector< NBPTPlatform > & getPlatformCands()
Definition: NBPTStop.cpp:143
NBPTStop::getOrigEdgeId
const std::string getOrigEdgeId() const
Definition: NBPTStop.cpp:53
NBPTStop::clearAccess
void clearAccess()
remove all access definitions
Definition: NBPTStop.cpp:228
NBPTStop::addLine
void addLine(const std::string &line)
register line that services this stop (for displaying)
Definition: NBPTStop.cpp:84
NBPTStop::getEdgeId
const std::string getEdgeId() const
Definition: NBPTStop.cpp:59
NBPTStop::reshiftPosition
void reshiftPosition(const double offsetX, const double offsetY)
Definition: NBPTStop.cpp:122
NBPTStop::isLoose
bool isLoose() const
Definition: NBPTStop.h:90
NBPTStop::myBidiStop
NBPTStop * myBidiStop
Definition: NBPTStop.h:126
SVCPermissions
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
Definition: SUMOVehicleClass.h:218
NBPTStop::getIsMultipleStopPositions
bool getIsMultipleStopPositions() const
Definition: NBPTStop.cpp:149
NBPTStop::myPTStopLength
double myPTStopLength
Definition: NBPTStop.h:109
NBPTStop::setMyOrigEdgeId
void setMyOrigEdgeId(const std::string &myOrigEdgeId)
Definition: NBPTStop.cpp:186
SUMOVehicleClass.h
NBPTStop::myEndPos
double myEndPos
Definition: NBPTStop.h:118
NBPTStop::setMyPTStopId
void setMyPTStopId(std::string id)
Definition: NBPTStop.cpp:223
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
NBPTStop::myIsLoose
bool myIsLoose
whether the stop was not part of the road network and must be mapped
Definition: NBPTStop.h:129
NBPTStop::addAccess
void addAccess(std::string laneID, double offset, double length)
Definition: NBPTStop.cpp:233
NBPTPlatform
Definition: NBPTPlatform.h:22
NBPTStop::myIsMultipleStopPositions
bool myIsMultipleStopPositions
Definition: NBPTStop.h:137
NBPTStop::getBidiStop
NBPTStop * getBidiStop() const
Definition: NBPTStop.h:86
Position.h
NBPTStop::getPosition
const Position & getPosition() const
Definition: NBPTStop.cpp:71
NBPTStop::registerAdditionalEdge
void registerAdditionalEdge(std::string wayId, std::string edgeId)
Definition: NBPTStop.cpp:174
NBPTStop::myOrigEdgeId
std::string myOrigEdgeId
Definition: NBPTStop.h:105
NBPTStop::myPlatformCands
std::vector< NBPTPlatform > myPlatformCands
Definition: NBPTStop.h:136
NBPTStop::myName
const std::string myName
Definition: NBPTStop.h:113
NBPTStop::getName
const std::string getName() const
Definition: NBPTStop.cpp:65
NBPTStop::myPosition
Position myPosition
Definition: NBPTStop.h:99
NBPTStop::findLaneAndComputeBusStopExtent
bool findLaneAndComputeBusStopExtent(const NBEdgeCont &ec)
Definition: NBPTStop.cpp:198
config.h
NBPTStop::NBPTStop
NBPTStop(std::string ptStopId, Position position, std::string edgeId, std::string origEdgeId, double length, std::string name, SVCPermissions svcPermissions)
Constructor.
Definition: NBPTStop.cpp:33
NBPTStop::setEdgeId
bool setEdgeId(std::string edgeId, const NBEdgeCont &ec)
Definition: NBPTStop.cpp:167
NBPTStop
The representation of a single pt stop.
Definition: NBPTStop.h:44
NBPTStop::myPTStopId
std::string myPTStopId
Definition: NBPTStop.h:98
NBPTStop::myPermissions
const SVCPermissions myPermissions
Definition: NBPTStop.h:115
NBPTStop::addPlatformCand
void addPlatformCand(NBPTPlatform platform)
Definition: NBPTStop.cpp:137
NBPTStop::myAccesses
std::vector< std::tuple< std::string, double, double > > myAccesses
laneId, lanePos, accessLength
Definition: NBPTStop.h:121