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 /****************************************************************************/
15 // The representation of a single pt stop
16 /****************************************************************************/
17 #ifndef SUMO_NBPTSTOP_H
18 #define SUMO_NBPTSTOP_H
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 #include <config.h>
24 
25 #include <string>
26 #include <utils/geom/Position.h>
28 #include "NBPTPlatform.h"
29 
30 
31 // ===========================================================================
32 // class declarations
33 // ===========================================================================
34 class OutputDevice;
35 class NBEdgeCont;
36 
37 
38 // ===========================================================================
39 // class definitions
40 // ===========================================================================
45 class NBPTStop {
46 
47 public:
54  NBPTStop(std::string ptStopId, Position position, std::string edgeId, std::string origEdgeId, double length, std::string name, SVCPermissions svcPermissions);
55  std::string getID() const;
56 
57  const std::string getEdgeId() const;
58  const std::string getOrigEdgeId() const;
59  const std::string getName() const;
60  const Position& getPosition() const;
62  void write(OutputDevice& device);
63  void reshiftPosition(const double offsetX, const double offsetY);
64 
65  const std::vector<NBPTPlatform>& getPlatformCands();
66  bool getIsMultipleStopPositions() const;
67  void setIsMultipleStopPositions(bool multipleStopPositions);
68  double getLength() const;
69  bool setEdgeId(std::string edgeId, NBEdgeCont& ec);
70  void registerAdditionalEdge(std::string wayId, std::string edgeId);
71  void addPlatformCand(NBPTPlatform platform);
73 
74  void setMyPTStopId(std::string id);
75  void addAccess(std::string laneID, double offset, double length);
76 
78  void clearAccess();
79 
81  void addLine(const std::string& line);
82 
83  void setBidiStop(NBPTStop* bidiStop) {
84  myBidiStop = bidiStop;
85  }
86 
87  NBPTStop* getBidiStop() const {
88  return myBidiStop;
89  }
90 
91 private:
92  void computeExtent(double center, double d);
93 
94 private:
95  std::string myPTStopId;
97  std::string myEdgeId;
98  std::map<std::string, std::string> myAdditionalEdgeCandidates;
99 public:
100  const std::map<std::string, std::string>& getMyAdditionalEdgeCandidates() const;
101 private:
102  std::string myOrigEdgeId;
103 public:
104  void setMyOrigEdgeId(const std::string& myOrigEdgeId);
105 private:
107 public:
108  void setMyPTStopLength(double myPTStopLength);
109 private:
110  const std::string myName;
111  std::string myLaneId;
113 
114  double myStartPos;
115  double myEndPos;
116 
118  std::vector<std::tuple<std::string, double, double>> myAccesses;
119 
121  std::vector<std::string> myLines;
122 
124 
125 
126 private:
128  NBPTStop& operator=(const NBPTStop&);
129 
130 
131  std::vector<NBPTPlatform> myPlatformCands;
133 };
134 
135 #endif //SUMO_NBPTSTOP_H
bool setEdgeId(std::string edgeId, NBEdgeCont &ec)
Definition: NBPTStop.cpp:167
void addAccess(std::string laneID, double offset, double length)
Definition: NBPTStop.cpp:232
void write(OutputDevice &device)
Definition: NBPTStop.cpp:93
bool myIsMultipleStopPositions
Definition: NBPTStop.h:132
NBPTStop & operator=(const NBPTStop &)
Invalidated assignment operator.
int SVCPermissions
bitset where each bit declares whether a certain SVC may use this edge/lane
bool findLaneAndComputeBusStopExtent(NBEdgeCont &ec)
Definition: NBPTStop.cpp:198
NBPTStop * getBidiStop() const
Definition: NBPTStop.h:87
void clearAccess()
remove all access definitions
Definition: NBPTStop.cpp:227
std::vector< NBPTPlatform > myPlatformCands
Definition: NBPTStop.h:131
std::string getID() const
Definition: NBPTStop.cpp:48
void setMyPTStopId(std::string id)
Definition: NBPTStop.cpp:222
The representation of a single pt stop.
Definition: NBPTStop.h:45
void registerAdditionalEdge(std::string wayId, std::string edgeId)
Definition: NBPTStop.cpp:174
const std::string myName
Definition: NBPTStop.h:110
SVCPermissions getPermissions() const
Definition: NBPTStop.cpp:131
const std::map< std::string, std::string > & getMyAdditionalEdgeCandidates() const
Definition: NBPTStop.cpp:180
NBPTStop * myBidiStop
Definition: NBPTStop.h:123
std::vector< std::tuple< std::string, double, double > > myAccesses
laneId, lanePos, accessLength
Definition: NBPTStop.h:118
NBPTStop(std::string ptStopId, Position position, std::string edgeId, std::string origEdgeId, double length, std::string name, SVCPermissions svcPermissions)
Constructor.
Definition: NBPTStop.cpp:34
std::vector< std::string > myLines
list of public transport lines (for displaying)
Definition: NBPTStop.h:121
std::string myEdgeId
Definition: NBPTStop.h:97
const std::vector< NBPTPlatform > & getPlatformCands()
Definition: NBPTStop.cpp:143
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:39
void addLine(const std::string &line)
register line that services this stop (for displaying)
Definition: NBPTStop.cpp:84
std::string myPTStopId
Definition: NBPTStop.h:95
Storage for edges, including some functionality operating on multiple edges.
Definition: NBEdgeCont.h:61
const std::string getName() const
Definition: NBPTStop.cpp:65
double getLength() const
Definition: NBPTStop.cpp:161
double myStartPos
Definition: NBPTStop.h:114
void reshiftPosition(const double offsetX, const double offsetY)
Definition: NBPTStop.cpp:122
bool getIsMultipleStopPositions() const
Definition: NBPTStop.cpp:149
void setIsMultipleStopPositions(bool multipleStopPositions)
Definition: NBPTStop.cpp:155
double myPTStopLength
Definition: NBPTStop.h:106
void computeExtent(double center, double d)
Definition: NBPTStop.cpp:77
double myEndPos
Definition: NBPTStop.h:115
Position myPosition
Definition: NBPTStop.h:96
std::map< std::string, std::string > myAdditionalEdgeCandidates
Definition: NBPTStop.h:98
const std::string getOrigEdgeId() const
Definition: NBPTStop.cpp:53
void setBidiStop(NBPTStop *bidiStop)
Definition: NBPTStop.h:83
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:64
std::string myLaneId
Definition: NBPTStop.h:111
std::string myOrigEdgeId
Definition: NBPTStop.h:102
const Position & getPosition() const
Definition: NBPTStop.cpp:71
void setMyOrigEdgeId(const std::string &myOrigEdgeId)
Definition: NBPTStop.cpp:186
const std::string getEdgeId() const
Definition: NBPTStop.cpp:59
void addPlatformCand(NBPTPlatform platform)
Definition: NBPTStop.cpp:137
void setMyPTStopLength(double myPTStopLength)
Definition: NBPTStop.cpp:192
const SVCPermissions myPermissions
Definition: NBPTStop.h:112