Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GUIDetectorBuilder Class Reference

Builds detectors for guisim. More...

#include <GUIDetectorBuilder.h>

Inheritance diagram for GUIDetectorBuilder:
[legend]
Collaboration diagram for GUIDetectorBuilder:
[legend]

Public Member Functions

 GUIDetectorBuilder (MSNet &net)
 Constructor.
 ~GUIDetectorBuilder ()
 Destructor.
Detector creating methods

Override NLDetectorBuilder methods.

virtual MSDetectorFileOutputcreateInductLoop (const std::string &id, MSLane *lane, double pos, double length, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool show) override
 Creates an instance of an e1 detector using the given values.
virtual MSDetectorFileOutputcreateInstantInductLoop (const std::string &id, MSLane *lane, double pos, const std::string &od, const std::string name, const std::string &vTypes, const std::string &nextEdges) override
 Creates an instance of an e1 detector using the given values.
virtual MSE2CollectorcreateE2Detector (const std::string &id, DetectorUsage usage, MSLane *lane, double pos, double endPos, double length, SUMOTime haltingTimeThreshold, double haltingSpeedThreshold, double jamDistThreshold, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool showDetector) override
 Creates a GUIE2Collector instance, overrides MSE2Collector::createE2Detector().
virtual MSE2CollectorcreateE2Detector (const std::string &id, DetectorUsage usage, std::vector< MSLane * > lanes, double pos, double endPos, SUMOTime haltingTimeThreshold, double haltingSpeedThreshold, double jamDistThreshold, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool showDetector) override
virtual MSDetectorFileOutputcreateE3Detector (const std::string &id, const CrossSectionVector &entries, const CrossSectionVector &exits, double haltingSpeedThreshold, SUMOTime haltingTimeThreshold, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool openEntry, bool expectArrival) override
 Creates an instance of an e3 detector using the given values.
Value parsing and detector building methods
ParameterisedbuildInductLoop (const std::string &id, const std::string &lane, double pos, double length, SUMOTime splInterval, const std::string &device, bool friendlyPos, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons)
 Builds an e1 detector and adds it to the net.
ParameterisedbuildInstantInductLoop (const std::string &id, const std::string &lane, double pos, const std::string &device, bool friendlyPos, const std::string name, const std::string &vTypes, const std::string &nextEdges)
 Builds an instantenous induction and adds it to the net.
ParameterisedbuildE2Detector (const std::string &id, MSLane *lane, double pos, double endPos, double length, const std::string &device, SUMOTime frequency, SUMOTime haltingTimeThreshold, double haltingSpeedThreshold, double jamDistThreshold, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool friendlyPos, bool showDetector, MSTLLogicControl::TLSLogicVariants *tlls=0, MSLane *toLane=0)
 Builds a new E2 detector and adds it to the net's detector control. Also performs some consistency checks for the detector positioning and applies "friendly positioning".
ParameterisedbuildE2Detector (const std::string &id, std::vector< MSLane * > lanes, double pos, double endPos, const std::string &device, SUMOTime frequency, SUMOTime haltingTimeThreshold, double haltingSpeedThreshold, double jamDistThreshold, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool friendlyPos, bool showDetector, MSTLLogicControl::TLSLogicVariants *tlls=0, MSLane *toLane=0)
ParameterisedbeginE3Detector (const std::string &id, const std::string &device, SUMOTime splInterval, double haltingSpeedThreshold, SUMOTime haltingTimeThreshold, const std::string name, const std::string &vTypes, const std::string &nextEdges, int detectPersons, bool openEntry, bool expectArrival)
 Stores temporary the initial information about an e3 detector to build.
void addE3Entry (const std::string &lane, double pos, bool friendlyPos)
 Builds an entry point of an e3 detector.
void addE3Exit (const std::string &lane, double pos, bool friendlyPos)
 Builds an exit point of an e3 detector.
void endE3Detector ()
 Builds of an e3 detector using collected values.
std::string getCurrentE3ID () const
 Returns the id of the currently built e3 detector.
void buildVTypeProbe (const std::string &id, const std::string &vtype, SUMOTime frequency, const std::string &device)
 Builds a vTypeProbe and adds it to the net.
void buildRouteProbe (const std::string &id, const std::string &edge, SUMOTime frequency, SUMOTime begin, const std::string &device, const std::string &vTypes)
 Builds a routeProbe and adds it to the net.
Detector creating methods

Virtual, so they may be overwritten, for generating gui-versions of the detectors, for example.

void createEdgeLaneMeanData (const std::string &id, SUMOTime frequency, SUMOTime begin, SUMOTime end, const std::string &type, const bool useLanes, const bool withEmpty, const bool printDefaults, const bool withInternal, const bool trackVehicles, const int detectPersons, const double maxTravelTime, const double minSamples, const double haltSpeed, const std::string &vTypes, const std::string &writeAttributes, std::vector< MSEdge * > edges, bool aggregate, const std::string &device)
 Creates edge based mean data collector using the given specification.

Protected Member Functions

double getPositionChecking (double pos, MSLane *lane, bool friendlyPos, SumoXMLTag tag, const std::string &detid)
 Computes the position to use.

Protected Attributes

MSNetmyNet
 The net to fill.

Private Attributes

E3DetectorDefinitionmyE3Definition
 definition of the currently parsed e3 detector

Value checking/adapting methods

MSLanegetLaneChecking (const std::string &laneID, SumoXMLTag type, const std::string &detid)
 Returns the named lane.
MSEdgegetEdgeChecking (const std::string &edgeID, SumoXMLTag type, const std::string &detid)
 Returns the named edge.
void checkSampleInterval (SUMOTime splInterval, SumoXMLTag type, const std::string &id)
 Checks whether the given frequency (sample interval) is valid.

Detailed Description

Builds detectors for guisim.

This class overrides NLDetectorBuilder's detector creation methods in order to build guisim-classes instead of microsim-classes.

See also
NLDetectorBuilder

Definition at line 46 of file GUIDetectorBuilder.h.

Constructor & Destructor Documentation

◆ GUIDetectorBuilder()

GUIDetectorBuilder::GUIDetectorBuilder ( MSNet & net)

Constructor.

Parameters
[in]netThe network to which's detector control built detector shall be added

Definition at line 43 of file GUIDetectorBuilder.cpp.

References NLDetectorBuilder::NLDetectorBuilder().

◆ ~GUIDetectorBuilder()

GUIDetectorBuilder::~GUIDetectorBuilder ( )

Destructor.

Definition at line 47 of file GUIDetectorBuilder.cpp.

Member Function Documentation

◆ addE3Entry()

void NLDetectorBuilder::addE3Entry ( const std::string & lane,
double pos,
bool friendlyPos )
inherited

Builds an entry point of an e3 detector.

If the lane is not known or the position information is not within the lane, an InvalidArgument is thrown. Otherwise a MSCrossSection is built using the obtained values and added to the list of entries of the e3 definition stored in "myE3Definition".

Parameters
[in]laneThe id of the lane the entry shall be placed at
[in]posThe position on the lane the entry shall be placed at
[in]friendlyPosWhether the position information shall be used "friendly" (see user docs)
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 328 of file NLDetectorBuilder.cpp.

References getLaneChecking(), getPositionChecking(), myE3Definition, SUMO_TAG_DET_ENTRY, and SUMO_TAG_E3DETECTOR.

◆ addE3Exit()

void NLDetectorBuilder::addE3Exit ( const std::string & lane,
double pos,
bool friendlyPos )
inherited

Builds an exit point of an e3 detector.

If the lane is not known or the position information is not within the lane, an InvalidArgument is thrown. Otherwise a MSCrossSection is built using the obtained values and added to the list of exits of the e3 definition stored in "myE3Definition".

Parameters
[in]laneThe id of the lane the exit shall be placed at
[in]posThe position on the lane the exit shall be placed at
[in]friendlyPosWhether the position information shall be used "friendly" (see user docs)
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 342 of file NLDetectorBuilder.cpp.

References getLaneChecking(), getPositionChecking(), myE3Definition, SUMO_TAG_DET_EXIT, and SUMO_TAG_E3DETECTOR.

◆ beginE3Detector()

Parameterised * NLDetectorBuilder::beginE3Detector ( const std::string & id,
const std::string & device,
SUMOTime splInterval,
double haltingSpeedThreshold,
SUMOTime haltingTimeThreshold,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool openEntry,
bool expectArrival )
inherited

Stores temporary the initial information about an e3 detector to build.

If the given sample interval is < 0, an InvalidArgument is thrown. Otherwise, the values are stored in a new instance of E3DetectorDefinition within "myE3Definition".

Parameters
[in]idThe id the detector shall have
[in]deviceThe output device the detector shall write into
[in]splIntervalThe aggregation time span the detector shall use
[in]haltingTimeThresholdDetector parameter: the time a vehicle's speed must be below haltingSpeedThreshold to be assigned as jammed
[in]haltingSpeedThresholdDetector parameter: the speed a vehicle's speed must be below to be assigned as jammed
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 313 of file NLDetectorBuilder.cpp.

References checkSampleInterval(), myE3Definition, and SUMO_TAG_E3DETECTOR.

◆ buildE2Detector() [1/2]

Parameterised * NLDetectorBuilder::buildE2Detector ( const std::string & id,
MSLane * lane,
double pos,
double endPos,
double length,
const std::string & device,
SUMOTime frequency,
SUMOTime haltingTimeThreshold,
double haltingSpeedThreshold,
double jamDistThreshold,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool friendlyPos,
bool showDetector,
MSTLLogicControl::TLSLogicVariants * tlls = 0,
MSLane * toLane = 0 )
inherited

Builds a new E2 detector and adds it to the net's detector control. Also performs some consistency checks for the detector positioning and applies "friendly positioning".

Parameters
[in]tllsTraffic light logic associated to the detector
[in]toLaneLane associated to the detector (only for tlls != 0)
[in]friendlyPosWhether automatic adjustments of the detector position shall be applied in case of erroneous specification
See also
For the other parameters see the MSE2Collector constructors
Todo
Add parameter showDetector to indicate whether the detector should be visible in the GUI

Definition at line 149 of file NLDetectorBuilder.cpp.

References checkSampleInterval(), createE2Detector(), DU_USER_DEFINED, OutputDevice::getDevice(), Named::getID(), MSE2Collector::getLastLane(), MSLane::getLength(), MSLane::getLinkTo(), myNet, SUMO_TAG_E2DETECTOR, SUMO_TAG_LANE_AREA_DETECTOR, and WRITE_WARNING.

Referenced by NEMALogic::init().

Here is the caller graph for this function:

◆ buildE2Detector() [2/2]

Parameterised * NLDetectorBuilder::buildE2Detector ( const std::string & id,
std::vector< MSLane * > lanes,
double pos,
double endPos,
const std::string & device,
SUMOTime frequency,
SUMOTime haltingTimeThreshold,
double haltingSpeedThreshold,
double jamDistThreshold,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool friendlyPos,
bool showDetector,
MSTLLogicControl::TLSLogicVariants * tlls = 0,
MSLane * toLane = 0 )
inherited

◆ buildInductLoop()

Parameterised * NLDetectorBuilder::buildInductLoop ( const std::string & id,
const std::string & lane,
double pos,
double length,
SUMOTime splInterval,
const std::string & device,
bool friendlyPos,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons )
inherited

Builds an e1 detector and adds it to the net.

Checks the given values, first. If one of the values is invalid (lane is not known, sampling frequency<=0, position is larger than lane's length, the id is already in use), an InvalidArgument is thrown.

Otherwise the e1 detector is built by calling "createInductLoop".

Internally, there is also a distinction whether a mesosim e1 detector shall be built.

Parameters
[in]idThe id the detector shall have
[in]laneThe name of the lane the detector is placed at
[in]posThe definition of the position on the lane the detector shall be placed at
[in]lengthThe optional length of the detector
[in]splIntervalThe aggregation time span the detector shall use
[in]deviceThe output device the detector shall write into
[in]friendlyPosWhether the position information shall be used "friendly" (see user docs)
[in]vTypeswhich vehicle types are considered
Exceptions
InvalidArgumentIf one of the values is invalid
Returns
The created detector

Definition at line 99 of file NLDetectorBuilder.cpp.

References checkSampleInterval(), createInductLoop(), Named::getID(), getLaneChecking(), MSLane::getLength(), getPositionChecking(), MIN2(), myNet, SUMO_TAG_E1DETECTOR, SUMO_TAG_INDUCTION_LOOP, and toString().

◆ buildInstantInductLoop()

Parameterised * NLDetectorBuilder::buildInstantInductLoop ( const std::string & id,
const std::string & lane,
double pos,
const std::string & device,
bool friendlyPos,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges )
inherited

Builds an instantenous induction and adds it to the net.

Checks the given values, first. If one of the values is invalid (lane is not known, sampling frequency<=0, position is larger than lane's length, the id is already in use), an InvalidArgument is thrown.

Otherwise the e1 detector is built by calling "createInductLoop".

Parameters
[in]idThe id the detector shall have
[in]laneThe name of the lane the detector is placed at
[in]posThe definition of the position on the lane the detector shall be placed at
[in]deviceThe output device the detector shall write into
[in]friendlyPosWhether the position information shall be used "friendly" (see user docs)
Exceptions
InvalidArgumentIf one of the values is invalid
Returns
The created detector

Definition at line 130 of file NLDetectorBuilder.cpp.

References createInstantInductLoop(), getLaneChecking(), getPositionChecking(), myNet, and SUMO_TAG_INSTANT_INDUCTION_LOOP.

◆ buildRouteProbe()

void NLDetectorBuilder::buildRouteProbe ( const std::string & id,
const std::string & edge,
SUMOTime frequency,
SUMOTime begin,
const std::string & device,
const std::string & vTypes )
inherited

Builds a routeProbe and adds it to the net.

Checks the given values, first. If one of the values is invalid (sampling frequency<=0), an InvalidArgument is thrown.

Otherwise the routeProbe is built (directly).

Parameters
[in]idThe id the detector shall have
[in]edgeThe name of the edge the detector shall observe
[in]frequencyThe reporting frequency
[in]beginThe start of the first reporting interval
[in]deviceThe output device the detector shall write into
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 403 of file NLDetectorBuilder.cpp.

References checkSampleInterval(), getEdgeChecking(), myNet, SUMO_TAG_ROUTEPROBE, and toString().

◆ buildVTypeProbe()

void NLDetectorBuilder::buildVTypeProbe ( const std::string & id,
const std::string & vtype,
SUMOTime frequency,
const std::string & device )
inherited

Builds a vTypeProbe and adds it to the net.

Checks the given values, first. If one of the values is invalid (sampling frequency<=0), an InvalidArgument is thrown.

Otherwise the vTypeProbe is built (directly).

Parameters
[in]idThe id the detector shall have
[in]vtypeThe name of the vehicle type the detector shall observe
[in]frequencyThe reporting frequency
[in]deviceThe output device the detector shall write into
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 394 of file NLDetectorBuilder.cpp.

References checkSampleInterval(), OutputDevice::getDevice(), and SUMO_TAG_VTYPEPROBE.

◆ checkSampleInterval()

void NLDetectorBuilder::checkSampleInterval ( SUMOTime splInterval,
SumoXMLTag type,
const std::string & id )
protectedinherited

Checks whether the given frequency (sample interval) is valid.

Parameters
[in]splIntervalThe sample interval
[in]typeThe type of the detector (for error message generation)
[in]idThe id of the detector (for error message generation)
Exceptions
InvalidArgumentIf the given sample interval is invalid (<=0)
Todo
Why is splInterval an int???

Definition at line 583 of file NLDetectorBuilder.cpp.

References checkStepLengthMultiple(), and toString().

Referenced by beginE3Detector(), buildE2Detector(), buildE2Detector(), buildInductLoop(), buildRouteProbe(), and buildVTypeProbe().

Here is the caller graph for this function:

◆ createE2Detector() [1/2]

MSE2Collector * GUIDetectorBuilder::createE2Detector ( const std::string & id,
DetectorUsage usage,
MSLane * lane,
double pos,
double endPos,
double length,
SUMOTime haltingTimeThreshold,
double haltingSpeedThreshold,
double jamDistThreshold,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool showDetector )
overridevirtual

Creates a GUIE2Collector instance, overrides MSE2Collector::createE2Detector().

Simply calls the GUIE2Collector constructor

See also
GUIE2Collector Constructor documentation

Reimplemented from NLDetectorBuilder.

Definition at line 72 of file GUIDetectorBuilder.cpp.

◆ createE2Detector() [2/2]

MSE2Collector * GUIDetectorBuilder::createE2Detector ( const std::string & id,
DetectorUsage usage,
std::vector< MSLane * > lanes,
double pos,
double endPos,
SUMOTime haltingTimeThreshold,
double haltingSpeedThreshold,
double jamDistThreshold,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool showDetector )
overridevirtual

Reimplemented from NLDetectorBuilder.

Definition at line 82 of file GUIDetectorBuilder.cpp.

◆ createE3Detector()

MSDetectorFileOutput * GUIDetectorBuilder::createE3Detector ( const std::string & id,
const CrossSectionVector & entries,
const CrossSectionVector & exits,
double haltingSpeedThreshold,
SUMOTime haltingTimeThreshold,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool openEntry,
bool expectArrival )
overridevirtual

Creates an instance of an e3 detector using the given values.

Simply calls the GUIE3Collector constructor.

Parameters
[in]idThe id the detector shall have
[in]entriesThe list of this detector's entries
[in]exitsThe list of this detector's exits
[in]haltingSpeedThresholdDetector parameter: the speed a vehicle's speed must be below to be assigned as jammed
[in]haltingTimeThresholdDetector parameter: the time a vehicle's speed must be below haltingSpeedThreshold to be assigned as jammed

Reimplemented from NLDetectorBuilder.

Definition at line 92 of file GUIDetectorBuilder.cpp.

◆ createEdgeLaneMeanData()

void NLDetectorBuilder::createEdgeLaneMeanData ( const std::string & id,
SUMOTime frequency,
SUMOTime begin,
SUMOTime end,
const std::string & type,
const bool useLanes,
const bool withEmpty,
const bool printDefaults,
const bool withInternal,
const bool trackVehicles,
const int detectPersons,
const double maxTravelTime,
const double minSamples,
const double haltSpeed,
const std::string & vTypes,
const std::string & writeAttributes,
std::vector< MSEdge * > edges,
bool aggregate,
const std::string & device )
inherited

Creates edge based mean data collector using the given specification.

Parameters
[in]idThe id the detector shall have
[in]frequencyThe aggregation interval the detector shall use
[in]begindump begin time
[in]enddump end time
[in]typeThe type of values to be generated
[in]useLanesInformation whether lane-based or edge-based dump shall be generated
[in]withEmptyInformation whether empty lanes/edges shall be written
[in]withInternalInformation whether internal lanes/edges shall be written
[in]trackVehiclesInformation whether information shall be collected per vehicle
[in]detectPersonsWhether pedestrians shall be detected instead of vehicles
[in]maxTravelTimethe maximum travel time to output
[in]minSamplesthe minimum number of sample seconds before the values are valid
[in]haltSpeedthe maximum speed to consider a vehicle waiting
[in]vTypesthe set of vehicle types to consider
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 503 of file NLDetectorBuilder.cpp.

References MSDetectorControl::add(), AMITRAN, checkStepLengthMultiple(), DEFAULT, EMISSIONS, MSNet::getDetectorControl(), MSNet::getInstance(), HARMONOISE, SUMOXMLDefinitions::MeanDataTypes, SUMOTime_MAX, TL, TRAFFIC, and WRITE_WARNING.

◆ createInductLoop()

MSDetectorFileOutput * GUIDetectorBuilder::createInductLoop ( const std::string & id,
MSLane * lane,
double pos,
double length,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges,
int detectPersons,
bool show )
overridevirtual

Creates an instance of an e1 detector using the given values.

Simply calls the GUIInductLoop constructor

Parameters
[in]idThe id the detector shall have
[in]laneThe lane the detector is placed at
[in]posThe position on the lane the detector is placed at
[in]lengthThe optional length of the detector
[in]vTypeswhich vehicle types are considered
[in]showWhether to show the detector in the gui if available

Reimplemented from NLDetectorBuilder.

Definition at line 51 of file GUIDetectorBuilder.cpp.

References MSLane::getEdge(), MSGlobals::gMesoNet, and MSGlobals::gUseMesoSim.

◆ createInstantInductLoop()

MSDetectorFileOutput * GUIDetectorBuilder::createInstantInductLoop ( const std::string & id,
MSLane * lane,
double pos,
const std::string & od,
const std::string name,
const std::string & vTypes,
const std::string & nextEdges )
overridevirtual

Creates an instance of an e1 detector using the given values.

Simply calls the MSInductLoop constructor

Parameters
[in]idThe id the detector shall have
[in]laneThe lane the detector is placed at
[in]posThe position on the lane the detector is placed at
[in]odThe output device the loop shall use

Reimplemented from NLDetectorBuilder.

Definition at line 65 of file GUIDetectorBuilder.cpp.

References OutputDevice::getDevice().

◆ endE3Detector()

void NLDetectorBuilder::endE3Detector ( )
inherited

Builds of an e3 detector using collected values.

The parameter collected are used to build an e3 detector using "createE3Detector". The resulting detector is added to the net.

Parameters
[in]laneThe id of the lane the exit shall be placed at
[in]posThe position on the lane the exit shall be placed at
Exceptions
InvalidArgumentIf one of the values is invalid

Definition at line 365 of file NLDetectorBuilder.cpp.

References createE3Detector(), myE3Definition, myNet, SUMO_TAG_DET_ENTRY, SUMO_TAG_DET_EXIT, SUMO_TAG_E3DETECTOR, SUMO_TAG_ENTRY_EXIT_DETECTOR, toString(), Parameterised::updateParameters(), and WRITE_WARNING.

◆ getCurrentE3ID()

std::string NLDetectorBuilder::getCurrentE3ID ( ) const
inherited

Returns the id of the currently built e3 detector.

This is used for error-message generation only. If no id is known, "<unknown>" is returned.

Returns
The id of the currently processed e3 detector

Definition at line 356 of file NLDetectorBuilder.cpp.

References myE3Definition.

◆ getEdgeChecking()

MSEdge * NLDetectorBuilder::getEdgeChecking ( const std::string & edgeID,
SumoXMLTag type,
const std::string & detid )
protectedinherited

Returns the named edge.

Parameters
[in]edgeIDThe id of the lane
[in]typeThe type of the detector (for error message generation)
[in]detidThe id of the currently built detector (for error message generation)
Exceptions
InvalidArgumentIf the named edge is not known

Definition at line 559 of file NLDetectorBuilder.cpp.

References MSEdge::dictionary(), and toString().

Referenced by buildRouteProbe().

Here is the caller graph for this function:

◆ getLaneChecking()

MSLane * NLDetectorBuilder::getLaneChecking ( const std::string & laneID,
SumoXMLTag type,
const std::string & detid )
inherited

Returns the named lane.

Parameters
[in]laneIDThe id of the lane
[in]typeThe type of the detector (for error message generation)
[in]detidThe id of the currently built detector (for error message generation)
Exceptions
InvalidArgumentIf the named lane is not known

Definition at line 571 of file NLDetectorBuilder.cpp.

References MSLane::dictionary(), and toString().

Referenced by addE3Entry(), addE3Exit(), buildInductLoop(), and buildInstantInductLoop().

Here is the caller graph for this function:

◆ getPositionChecking()

double NLDetectorBuilder::getPositionChecking ( double pos,
MSLane * lane,
bool friendlyPos,
SumoXMLTag tag,
const std::string & detid )
protectedinherited

Computes the position to use.

At first, it is checked whether the given position is negative. If so, the position is added to the lane's length to obtain the position counted backwards.

If the resulting position is beyond or in front (<0) of the lane, it is either set to the according lane's boundary (.1 or length-.1) if friendlyPos is set, or, if friendlyPos is not set, an InvalidArgument is thrown.

Parameters
[in]posDefinition of the position on the lane
[in]laneThe lane the position must be valid for
[in]friendlyPosWhether false positions shall be made acceptable
[in]detidThe id of the currently built detector (for error message generation)
Exceptions
InvalidArgumentIf the defined position is invalid

Definition at line 476 of file NLDetectorBuilder.cpp.

References Named::getID(), MSLane::getLength(), and toString().

Referenced by addE3Entry(), addE3Exit(), buildInductLoop(), and buildInstantInductLoop().

Here is the caller graph for this function:

Field Documentation

◆ myE3Definition

E3DetectorDefinition* NLDetectorBuilder::myE3Definition
privateinherited

definition of the currently parsed e3 detector

Definition at line 494 of file NLDetectorBuilder.h.

Referenced by addE3Entry(), addE3Exit(), beginE3Detector(), endE3Detector(), getCurrentE3ID(), NLDetectorBuilder(), and ~NLDetectorBuilder().

◆ myNet

MSNet& NLDetectorBuilder::myNet
protectedinherited

The documentation for this class was generated from the following files: