SUMO - Simulation of Urban MObility
NBTypeCont Class Reference

A storage for available types of edges. More...

#include <NBTypeCont.h>

Collaboration diagram for NBTypeCont:
Collaboration graph

Data Structures

struct  TypeDefinition
 

Public Member Functions

bool addRestriction (const std::string &id, const SUMOVehicleClass svc, const SUMOReal speed)
 Adds a restriction to a type. More...
 
bool copyRestrictionsAndAttrs (const std::string &fromId, const std::string &toId)
 Copy restrictions to a type. More...
 
void insert (const std::string &id, int numLanes, SUMOReal maxSpeed, int prio, SVCPermissions permissions, SUMOReal width, bool oneWayIsDefault, SUMOReal sidewalkWidth, SUMOReal bikeLaneWidth)
 Adds a type into the list. More...
 
bool knows (const std::string &type) const
 Returns whether the named type is in the container. More...
 
bool markAsSet (const std::string &id, const SumoXMLAttr attr)
 Marks an attribute of a type as set. More...
 
bool markAsToDiscard (const std::string &id)
 Marks a type as to be discarded. More...
 
 NBTypeCont ()
 Constructor. More...
 
void setDefaults (int defaultNumLanes, SUMOReal defaultSpeed, int defaultPriority)
 Sets the default values. More...
 
unsigned int size () const
 Returns the number of known types. More...
 
void writeTypes (OutputDevice &into) const
 writes all types a s XML More...
 
 ~NBTypeCont ()
 Destructor. More...
 
Type-dependant Retrieval methods
int getNumLanes (const std::string &type) const
 Returns the number of lanes for the given type. More...
 
SUMOReal getSpeed (const std::string &type) const
 Returns the maximal velocity for the given type [m/s]. More...
 
int getPriority (const std::string &type) const
 Returns the priority for the given type. More...
 
bool getIsOneWay (const std::string &type) const
 Returns whether edges are one-way per default for the given type. More...
 
bool getShallBeDiscarded (const std::string &type) const
 Returns the information whether edges of this type shall be discarded. More...
 
bool wasSet (const std::string &type, const SumoXMLAttr attr) const
 Returns whether an attribute of a type was set. More...
 
SVCPermissions getPermissions (const std::string &type) const
 Returns allowed vehicle classes for the given type. More...
 
SUMOReal getWidth (const std::string &type) const
 Returns the lane width for the given type [m]. More...
 
SUMOReal getSidewalkWidth (const std::string &type) const
 Returns the lane width for a sidewalk to be added [m]. More...
 
SUMOReal getBikeLaneWidth (const std::string &type) const
 Returns the lane width for a bike lane to be added [m]. More...
 

Private Types

typedef std::map< std::string, TypeDefinitionTypesCont
 A container of types, accessed by the string id. More...
 

Private Member Functions

const TypeDefinitiongetType (const std::string &name) const
 Retrieve the name or the default type. More...
 
 NBTypeCont (const NBTypeCont &s)
 invalid copy constructor More...
 
NBTypeContoperator= (const NBTypeCont &s)
 invalid assignment operator More...
 

Private Attributes

TypeDefinition myDefaultType
 The default type. More...
 
TypesCont myTypes
 The container of types. More...
 

Detailed Description

A storage for available types of edges.

NBTypeCont stores properties of edge-types of edges. Additionally, a default type is stored which is used if no type information is given.

This structure also contains a structure for determining node types using edge speeds.

Definition at line 62 of file NBTypeCont.h.

Member Typedef Documentation

typedef std::map<std::string, TypeDefinition> NBTypeCont::TypesCont
private

A container of types, accessed by the string id.

Definition at line 299 of file NBTypeCont.h.

Constructor & Destructor Documentation

NBTypeCont::NBTypeCont ( )
inline

Constructor.

Definition at line 65 of file NBTypeCont.h.

NBTypeCont::~NBTypeCont ( )
inline

Destructor.

Definition at line 69 of file NBTypeCont.h.

References insert(), setDefaults(), and SUMOReal.

NBTypeCont::NBTypeCont ( const NBTypeCont s)
private

invalid copy constructor

Member Function Documentation

bool NBTypeCont::addRestriction ( const std::string &  id,
const SUMOVehicleClass  svc,
const SUMOReal  speed 
)

Adds a restriction to a type.

Parameters
[in]idThe id of the type
[in]svcThe vehicle class the restriction refers to
[in]speedThe restricted speed

Definition at line 103 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIXMLTypesHandler::myStartElement(), and size().

bool NBTypeCont::copyRestrictionsAndAttrs ( const std::string &  fromId,
const std::string &  toId 
)

Copy restrictions to a type.

Parameters
[in]fromIdThe id of the source type
[in]toIdThe id of the destination type

Definition at line 114 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIImporter_OpenStreetMap::insertEdge(), and size().

SUMOReal NBTypeCont::getBikeLaneWidth ( const std::string &  type) const

Returns the lane width for a bike lane to be added [m].

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the width for
Returns
The width of lanes of edges of this type

Definition at line 229 of file NBTypeCont.cpp.

References NBTypeCont::TypeDefinition::bikeLaneWidth, and getType().

Referenced by NIXMLEdgesHandler::addEdge(), NIImporter_OpenStreetMap::insertEdge(), NIXMLTypesHandler::myStartElement(), and size().

bool NBTypeCont::getIsOneWay ( const std::string &  type) const

Returns whether edges are one-way per default for the given type.

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the one-way information for
Returns
Whether edges of this type are one-way per default
Todo:
There is no default for one-way!?

Definition at line 193 of file NBTypeCont.cpp.

References getType(), and NBTypeCont::TypeDefinition::oneWay.

Referenced by NIImporter_OpenStreetMap::insertEdge(), NIXMLTypesHandler::myStartElement(), and size().

int NBTypeCont::getNumLanes ( const std::string &  type) const

Returns the number of lanes for the given type.

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the lane number for
Returns
The number of lanes an edge of this type has

Definition at line 175 of file NBTypeCont.cpp.

References getType(), NBTypeCont::TypeDefinition::numLanes, and SUMOReal.

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Edges(), size(), and NGNet::toNB().

SVCPermissions NBTypeCont::getPermissions ( const std::string &  type) const

Returns allowed vehicle classes for the given type.

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the list of allowed vehicles classes for
Returns
List of vehicles class which may use edges of the given type

Definition at line 211 of file NBTypeCont.cpp.

References getType(), NBTypeCont::TypeDefinition::permissions, and SUMOReal.

Referenced by NIXMLEdgesHandler::addEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_OpenDrive::loadNetwork(), NIXMLTypesHandler::myStartElement(), and size().

int NBTypeCont::getPriority ( const std::string &  type) const

Returns the priority for the given type.

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the priority for
Returns
The priority of edges of this type

Definition at line 187 of file NBTypeCont.cpp.

References getType(), and NBTypeCont::TypeDefinition::priority.

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Edges(), size(), and NGNet::toNB().

bool NBTypeCont::getShallBeDiscarded ( const std::string &  type) const

Returns the information whether edges of this type shall be discarded.

Returns false if the type is not known.

Parameters
[in]typeThe id of the type
Returns
Whether edges of this type shall be discarded.

Definition at line 199 of file NBTypeCont.cpp.

References NBTypeCont::TypeDefinition::discard, and getType().

Referenced by NIImporter_OpenDrive::OpenDriveLaneSection::buildLaneMapping(), NBEdgeCont::ignoreFilterMatch(), NIImporter_OpenStreetMap::insertEdge(), and size().

SUMOReal NBTypeCont::getSidewalkWidth ( const std::string &  type) const

Returns the lane width for a sidewalk to be added [m].

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the width for
Returns
The width of lanes of edges of this type

Definition at line 223 of file NBTypeCont.cpp.

References getType(), NBTypeCont::TypeDefinition::sidewalkWidth, and SUMOReal.

Referenced by NIXMLEdgesHandler::addEdge(), NIImporter_OpenStreetMap::insertEdge(), NIXMLTypesHandler::myStartElement(), and size().

SUMOReal NBTypeCont::getSpeed ( const std::string &  type) const

Returns the maximal velocity for the given type [m/s].

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the speed for
Returns
The allowed speed on edges of this type

Definition at line 181 of file NBTypeCont.cpp.

References getType(), and NBTypeCont::TypeDefinition::speed.

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenDrive::OpenDriveLaneSection::buildSpeedChanges(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Edges(), size(), and NGNet::toNB().

const NBTypeCont::TypeDefinition & NBTypeCont::getType ( const std::string &  name) const
private

Retrieve the name or the default type.

If no name is given, the default type is returned

Parameters
[in]nameThe name of the type to retrieve
Returns
The named type

Definition at line 235 of file NBTypeCont.cpp.

References myDefaultType, and myTypes.

Referenced by getBikeLaneWidth(), getIsOneWay(), getNumLanes(), getPermissions(), getPriority(), getShallBeDiscarded(), getSidewalkWidth(), getSpeed(), getWidth(), and wasSet().

SUMOReal NBTypeCont::getWidth ( const std::string &  type) const

Returns the lane width for the given type [m].

If the named type is not known, the default is returned

Parameters
[in]typeThe name of the type to return the width for
Returns
The width of lanes of edges of this type

Definition at line 217 of file NBTypeCont.cpp.

References getType(), SUMOReal, and NBTypeCont::TypeDefinition::width.

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLTypesHandler::myStartElement(), size(), and NGNet::toNB().

void NBTypeCont::insert ( const std::string &  id,
int  numLanes,
SUMOReal  maxSpeed,
int  prio,
SVCPermissions  permissions,
SUMOReal  width,
bool  oneWayIsDefault,
SUMOReal  sidewalkWidth,
SUMOReal  bikeLaneWidth 
)

Adds a type into the list.

Parameters
[in]idThe id of the type
[in]numLanesThe number of lanes an edge of this type has
[in]maxSpeedThe speed allowed on an edge of this type
[in]prioThe priority of an edge of this type
[in]permissionsThe encoding of vehicle classes allowed on an edge of this type
[in]widthThe width of lanes of edgesof this type
[in]oneWayIsDefaultWhether edges of this type are one-way per default
Returns
Whether the type could be added (no type with the same id existed)

Definition at line 61 of file NBTypeCont.cpp.

References NBTypeCont::TypeDefinition::attrs, myTypes, and NBTypeCont::TypeDefinition::restrictions.

Referenced by NIImporter_OpenStreetMap::insertEdge(), NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Types(), and ~NBTypeCont().

bool NBTypeCont::knows ( const std::string &  type) const

Returns whether the named type is in the container.

Returns
Whether the named type is known

Definition at line 75 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIXMLEdgesHandler::addEdge(), NIImporter_OpenDrive::OpenDriveLaneSection::buildLaneMapping(), NBEdgeCont::ignoreFilterMatch(), NIImporter_OpenStreetMap::insertEdge(), NIXMLTypesHandler::myStartElement(), and size().

bool NBTypeCont::markAsSet ( const std::string &  id,
const SumoXMLAttr  attr 
)

Marks an attribute of a type as set.

Parameters
[in]idThe id of the type
[in]attrThe id of the attribute

Definition at line 92 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Types(), and size().

bool NBTypeCont::markAsToDiscard ( const std::string &  id)

Marks a type as to be discarded.

Parameters
[in]idThe id of the type

Definition at line 81 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIXMLTypesHandler::myStartElement(), and size().

NBTypeCont& NBTypeCont::operator= ( const NBTypeCont s)
private

invalid assignment operator

void NBTypeCont::setDefaults ( int  defaultNumLanes,
SUMOReal  defaultSpeed,
int  defaultPriority 
)

Sets the default values.

Parameters
[in]defaultNumLanesThe default number of lanes an edge has
[in]defaultSpeedThe default speed allowed on an edge
[in]defaultPriorityThe default priority of an edge

Definition at line 51 of file NBTypeCont.cpp.

References myDefaultType, NBTypeCont::TypeDefinition::numLanes, NBTypeCont::TypeDefinition::priority, and NBTypeCont::TypeDefinition::speed.

Referenced by NBNetBuilder::applyOptions(), and ~NBTypeCont().

unsigned int NBTypeCont::size ( ) const
inline
bool NBTypeCont::wasSet ( const std::string &  type,
const SumoXMLAttr  attr 
) const

Returns whether an attribute of a type was set.

Parameters
[in]typeThe id of the type
[in]attrThe id of the attribute
Returns
Whether the attribute was set

Definition at line 205 of file NBTypeCont.cpp.

References NBTypeCont::TypeDefinition::attrs, and getType().

Referenced by size().

Field Documentation

TypeDefinition NBTypeCont::myDefaultType
private

The default type.

Definition at line 296 of file NBTypeCont.h.

Referenced by getType(), and setDefaults().

TypesCont NBTypeCont::myTypes
private

The container of types.

Definition at line 302 of file NBTypeCont.h.

Referenced by addRestriction(), copyRestrictionsAndAttrs(), getType(), insert(), knows(), markAsSet(), markAsToDiscard(), size(), and writeTypes().


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