Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
NLTriggerBuilder.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2002-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/****************************************************************************/
22// Builds trigger objects for microsim
23/****************************************************************************/
24#pragma once
25#include <config.h>
26
27#include <string>
28#include <vector>
30
31
32// ===========================================================================
33// class declarations
34// ===========================================================================
35class MSTrigger;
36class MSNet;
38class NLHandler;
40class MSLane;
41class MSEdge;
42class MSStoppingPlace;
43class MSCalibrator;
44class MSRouteProbe;
45
47
48
49// ===========================================================================
50// class definitions
51// ===========================================================================
61public:
64
65
67 virtual ~NLTriggerBuilder();
68
73 void setHandler(NLHandler* handler);
74
75
85 void buildVaporizer(const SUMOSAXAttributes& attrs);
86
87
92
93
109 const std::string& base);
110
111
118 void parseAndBuildRerouter(MSNet& net, const SUMOSAXAttributes& attrs);
119
120
128 void parseAndBuildStoppingPlace(MSNet& net, const SUMOSAXAttributes& attrs, const SumoXMLTag element);
129
130
148 virtual void beginParkingArea(MSNet& net,
149 const std::string& id, const std::vector<std::string>& lines,
150 const std::vector<std::string>& badges,
151 MSLane* lane, double frompos, double topos,
152 unsigned int capacity,
153 double width, double length, double angle, const std::string& name,
154 bool onRoad,
155 const std::string& departPos,
156 bool lefthand);
157
158
172 void addLotEntry(double x, double y, double z,
173 double width, double length,
174 double angle, double slope);
175
176
177
184 void addAccess(MSNet& net, const SUMOSAXAttributes& attrs);
185
186
193 void parseAndBeginParkingArea(MSNet& net, const SUMOSAXAttributes& attrs);
194
195
200 void parseAndAddLotEntry(const SUMOSAXAttributes& attrs);
201
202
207 virtual void endParkingArea();
208
213 virtual void endStoppingPlace();
214
215
223
231
239
247
257
265 void parseAndBuildCalibrator(MSNet& net, const SUMOSAXAttributes& attrs,
266 const std::string& base);
267
272
273
275
276
277protected:
286
287
300 const std::string& id, const std::vector<MSLane*>& destLanes,
301 const std::string& file);
302
303
317 virtual void buildStoppingPlace(MSNet& net, std::string id, std::vector<std::string> lines, MSLane* lane,
318 double frompos, double topos, const SumoXMLTag element, std::string string,
319 int personCapacity, double parkingLength, RGBColor& color);
320
339 virtual void buildChargingStation(MSNet& net, const std::string& id, MSLane* lane, double frompos, double topos, const std::string& name,
340 double chargingPower, double efficiency, bool chargeInTransit, SUMOTime chargeDelay, std::string chargeType,
341 SUMOTime waitingTime, MSParkingArea* parkingArea);
342
355 virtual void buildOverheadWireSegment(MSNet& net, const std::string& id, MSLane* lane, double frompos, double topos, bool voltageSource);
356
368 void buildInnerOverheadWireSegments(MSNet& net, const MSLane* connection, const MSLane* frontConnection, const MSLane* behindConnection);
369
380 void buildTractionSubstation(MSNet& net, std::string id, double voltage, double currentLimit);
381
382 virtual void buildOverheadWireClamp(MSNet& net, const std::string& id, MSLane* lane_start, MSLane* lane_end);
383
400 virtual MSCalibrator* buildCalibrator(const std::string& id, MSEdge* edge, MSLane* lane, MSJunction* node, double pos,
401 const std::string& file, const std::string& outfile,
402 const SUMOTime freq,
403 const MSRouteProbe* probe,
404 const double invalidJamThreshold,
405 const std::string& vTypes,
406 const bool local);
407
423 virtual METriggeredCalibrator* buildMECalibrator(const std::string& id, MSEdge* edge, double pos,
424 const std::string& file, const std::string& outfile,
425 const SUMOTime freq,
426 MSRouteProbe* probe,
427 const double invalidJamThreshold,
428 const std::string& vTypes);
429
430
441 const std::string& id, MSEdgeVector& edges,
442 double prob, bool off, bool optional, SUMOTime timeThreshold,
443 const std::string& vTypes, const Position& pos, const double radius);
445
446
447protected:
450
462 std::string getFileName(const SUMOSAXAttributes& attrs,
463 const std::string& base,
464 const bool allowEmpty = false);
465
466
478 MSLane* getLane(const SUMOSAXAttributes& attrs,
479 const std::string& tt, const std::string& tid);
480
481
494 const std::string& tt, const std::string& tid);
495
496
510 double getPosition(const SUMOSAXAttributes& attrs,
511 MSLane* lane, const std::string& tt, const std::string& tid, MSEdge* edge = 0);
512
514
515
516
517
518protected:
525
528};
long long int SUMOTime
Definition GUI.h:36
std::vector< MSEdge * > MSEdgeVector
Definition MSEdge.h:73
SumoXMLTag
Numbers representing SUMO-XML - element names.
Calibrates the flow on a segment to a specified one.
Calibrates the flow on a segment to a specified one.
A road/street connecting two junctions.
Definition MSEdge.h:77
The base class for an intersection.
Definition MSJunction.h:58
Representation of a lane in the micro simulation.
Definition MSLane.h:84
Changes the speed allowed on a set of lanes.
The simulated network and simulation perfomer.
Definition MSNet.h:89
A lane area vehicles can halt at.
Writes routes of vehicles passing a certain edge.
A lane area vehicles can halt at.
Reroutes traffic objects passing an edge.
The XML-Handler for network loading.
Definition NLHandler.h:79
Builds trigger objects for microsim.
MSParkingArea * getParkingArea(const SUMOSAXAttributes &attrs, const std::string &tt, const std::string &tid)
Returns the parking area defined by attribute "parkingArea".
NLTriggerBuilder()
Constructor.
virtual void buildOverheadWireClamp(MSNet &net, const std::string &id, MSLane *lane_start, MSLane *lane_end)
MSParkingArea * myParkingArea
definition of the currently parsed parking area
void parseAndBuildTractionSubstation(MSNet &net, const SUMOSAXAttributes &attrs)
Parses its values and builds a traction substation.
void addAccess(MSNet &net, const SUMOSAXAttributes &attrs)
Parses the values and adds an access point to the currently parsed stopping place.
void parseAndBuildOverheadWireSegment(MSNet &net, const SUMOSAXAttributes &attrs)
Parses its values and builds an overhead wire segment.
void parseAndBuildCalibrator(MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
Parses his values and builds a mesoscopic or microscopic calibrator.
double getPosition(const SUMOSAXAttributes &attrs, MSLane *lane, const std::string &tt, const std::string &tid, MSEdge *edge=0)
returns the position on the lane checking it
void buildInnerOverheadWireSegments(MSNet &net, const MSLane *connection, const MSLane *frontConnection, const MSLane *behindConnection)
Builds an overhead wire inner segments.
virtual MSLaneSpeedTrigger * buildLaneSpeedTrigger(MSNet &net, const std::string &id, const std::vector< MSLane * > &destLanes, const std::string &file)
Builds a lane speed trigger.
virtual void buildChargingStation(MSNet &net, const std::string &id, MSLane *lane, double frompos, double topos, const std::string &name, double chargingPower, double efficiency, bool chargeInTransit, SUMOTime chargeDelay, std::string chargeType, SUMOTime waitingTime, MSParkingArea *parkingArea)
Builds a charging station.
virtual void endParkingArea()
End a parking area.
void parseAndBuildLaneSpeedTrigger(MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
Parses his values and builds a lane speed trigger.
void parseAndAddLotEntry(const SUMOSAXAttributes &attrs)
Parses his values and adds a lot entry to current parking area.
void updateParkingAreaDefaultCapacity()
updates the parkingArea default capacity
NLHandler * myHandler
The parent handler to set for subhandlers.
MSLane * getLane(const SUMOSAXAttributes &attrs, const std::string &tt, const std::string &tid)
Returns the lane defined by attribute "lane".
void buildVaporizer(const SUMOSAXAttributes &attrs)
Builds a vaporization.
void parseAndBuildRerouter(MSNet &net, const SUMOSAXAttributes &attrs)
Parses his values and builds a rerouter.
void parseAndBuildOverheadWireSection(MSNet &net, const SUMOSAXAttributes &attrs)
Parses its values and builds an overhead wire section.
virtual void beginParkingArea(MSNet &net, const std::string &id, const std::vector< std::string > &lines, const std::vector< std::string > &badges, MSLane *lane, double frompos, double topos, unsigned int capacity, double width, double length, double angle, const std::string &name, bool onRoad, const std::string &departPos, bool lefthand)
Begin a parking area.
void setHandler(NLHandler *handler)
Sets the parent handler to use for nested parsing.
virtual ~NLTriggerBuilder()
Destructor.
void buildTractionSubstation(MSNet &net, std::string id, double voltage, double currentLimit)
Builds a traction substation.
virtual METriggeredCalibrator * buildMECalibrator(const std::string &id, MSEdge *edge, double pos, const std::string &file, const std::string &outfile, const SUMOTime freq, MSRouteProbe *probe, const double invalidJamThreshold, const std::string &vTypes)
builds a mesoscopic calibrator
void addLotEntry(double x, double y, double z, double width, double length, double angle, double slope)
Add a lot entry to current parking area.
void parseAndBuildChargingStation(MSNet &net, const SUMOSAXAttributes &attrs)
Parses his values and builds a charging station.
void parseAndBuildOverheadWireClamp(MSNet &net, const SUMOSAXAttributes &attrs)
Parses its values and builds an overhead wire clamp.
virtual MSTriggeredRerouter * buildRerouter(MSNet &net, const std::string &id, MSEdgeVector &edges, double prob, bool off, bool optional, SUMOTime timeThreshold, const std::string &vTypes, const Position &pos, const double radius)
builds an rerouter
virtual void endStoppingPlace()
End a stopping place.
virtual void buildOverheadWireSegment(MSNet &net, const std::string &id, MSLane *lane, double frompos, double topos, bool voltageSource)
Builds an overhead wire segment.
MSStoppingPlace * myCurrentStop
The currently parsed stop to add access points to.
MSStoppingPlace * getCurrentStop()
virtual MSCalibrator * buildCalibrator(const std::string &id, MSEdge *edge, MSLane *lane, MSJunction *node, double pos, const std::string &file, const std::string &outfile, const SUMOTime freq, const MSRouteProbe *probe, const double invalidJamThreshold, const std::string &vTypes, const bool local)
builds a microscopic calibrator
virtual void buildStoppingPlace(MSNet &net, std::string id, std::vector< std::string > lines, MSLane *lane, double frompos, double topos, const SumoXMLTag element, std::string string, int personCapacity, double parkingLength, RGBColor &color)
Builds a stopping place.
void parseAndBuildStoppingPlace(MSNet &net, const SUMOSAXAttributes &attrs, const SumoXMLTag element)
Parses the values and builds a stopping places for busses, trains or container vehicles.
void parseAndBeginParkingArea(MSNet &net, const SUMOSAXAttributes &attrs)
Parses his values and builds a parking area.
std::string getFileName(const SUMOSAXAttributes &attrs, const std::string &base, const bool allowEmpty=false)
Helper method to obtain the filename.
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37
Encapsulated SAX-Attributes.