34#define DEBUG_COND(obj) (true)
46 std::cout <<
SIMTIME <<
" MSIdling_Stop add stop\n";
51 std::pair<const MSLane*, double> stopPos;
59 if (stopPos.first !=
nullptr) {
62 stop.
edge = stopPos.first->getEdge().getID();
64 stop.
lane = stopPos.first->getID();
67 stop.
endPos = stopPos.second + POSITION_EPS;
108 int remainingEdges = 0;
110 const int routeLength = (int)edges.size();
111 while (routePos + 1 < routeLength && (remainingEdges < 2 || remainingDist < 200)) {
112 const MSEdge* edge = edges[routePos];
116 newEdges.push_back(edge);
118 const MSEdge* lastEdge = edges.back();
119 newEdges.push_back(lastEdge);
121 while (remainingEdges < 2 || remainingDist < 200) {
125 for (
auto it = successors.begin(); it != successors.end();) {
127 it = successors.erase(it);
132 if (successors.size() == 0) {
137 newEdges.push_back(successors[nextIndex]);
138 lastEdge = newEdges.back();
144 veh.
replaceRouteEdges(newEdges, -1, 0,
"taxi:idling:randomCircling",
false,
false,
false);
std::vector< const MSEdge * > ConstMSEdgeVector
std::vector< MSEdge * > MSEdgeVector
#define WRITE_WARNING(msg)
std::string time2string(SUMOTime t)
convert SUMOTime to string
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
double brakeGap(const double speed) const
Returns the distance the vehicle needs to halt including driver's reaction time tau (i....
A device which collects info on the vehicle trip (mainly on departure and arrival)
A road/street connecting two junctions.
double getLength() const
return the length of the edge
const MSEdgeVector & getSuccessors(SUMOVehicleClass vClass=SVC_IGNORING) const
Returns the following edges, restricted by vClass.
void idle(MSDevice_Taxi *taxi)
computes Idling and updates reservations
void idle(MSDevice_Taxi *taxi)
computes Idling and updates reservations
const ConstMSEdgeVector & getEdges() const
bool triggered
whether an arriving person lets the vehicle continue
bool containerTriggered
whether an arriving container lets the vehicle continue
SUMOTime duration
The stopping duration.
SUMOVehicle & getHolder() const
Returns the vehicle that holds this device.
Representation of a vehicle in the micro simulation.
std::pair< const MSLane *, double > getLanePosAfterDist(double distance) const
return lane and position along bestlanes at the given distance
double getSpeed() const
Returns the vehicle's current speed.
const MSCFModel & getCarFollowModel() const
Returns the vehicle's car following model definition.
int getContainerCapacity() const
Get this vehicle type's container capacity.
const std::string & getID() const
Returns the id.
static double rand(SumoRNG *rng=nullptr)
Returns a random real number in [0, 1)
virtual const MSVehicleType & getVehicleType() const =0
Returns the object's "vehicle" type.
virtual SUMOVehicleClass getVClass() const =0
Returns the object's access class.
virtual SumoRNG * getRNG() const =0
Returns the associated RNG for this object.
virtual int getRoutePosition() const =0
return index of edge within route
virtual double getPositionOnLane() const =0
Get the object's position along the lane.
Representation of a vehicle.
virtual bool replaceRouteEdges(ConstMSEdgeVector &edges, double cost, double savings, const std::string &info, bool onInit=false, bool check=false, bool removeStops=true, std::string *msgReturn=nullptr)=0
Replaces the current route by the given edges.
virtual bool hasStops() const =0
Returns whether the vehicle has to stop somewhere.
virtual const ConstMSEdgeVector::const_iterator & getCurrentRouteEdge() const =0
Returns an iterator pointing to the current edge in this vehicles route.
virtual MSStop & getNextStop()=0
virtual bool addTraciStop(SUMOVehicleParameter::Stop stop, std::string &errorMsg)=0
virtual const MSRoute & getRoute() const =0
Returns the current route.
Definition of vehicle stop (position and duration)
std::string edge
The edge to stop at (used only in NETEDIT)
ParkingType parking
whether the vehicle is removed from the net while stopping
std::string lane
The lane to stop at.
double startPos
The stopping position start.
std::string actType
act Type (only used by Persons) (used by NETEDIT)
bool triggered
whether an arriving person lets the vehicle continue
double endPos
The stopping position end.
bool containerTriggered
whether an arriving container lets the vehicle continue