SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 defaultLaneWidth, SUMOReal defaultSpeed, int defaultPriority, SVCPermissions defaultPermissions)
 Sets the default values. More...
 
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,
TypeDefinition
TypesCont
 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 302 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.

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 107 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIXMLTypesHandler::myStartElement().

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 118 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIImporter_OpenStreetMap::insertEdge().

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 233 of file NBTypeCont.cpp.

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

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

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 197 of file NBTypeCont.cpp.

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

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

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 179 of file NBTypeCont.cpp.

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

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Edges(), 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 215 of file NBTypeCont.cpp.

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

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

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 191 of file NBTypeCont.cpp.

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

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NIXMLTypesHandler::myStartElement(), NIImporter_VISUM::parse_Edges(), 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 203 of file NBTypeCont.cpp.

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

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

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 227 of file NBTypeCont.cpp.

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

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

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 185 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(), 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 239 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 221 of file NBTypeCont.cpp.

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

Referenced by NIXMLEdgesHandler::addEdge(), NGEdge::buildNBEdge(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIXMLTypesHandler::myStartElement(), 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 65 of file NBTypeCont.cpp.

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

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

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 79 of file NBTypeCont.cpp.

References myTypes.

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

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 96 of file NBTypeCont.cpp.

References myTypes.

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

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

Marks a type as to be discarded.

Parameters
[in]idThe id of the type

Definition at line 85 of file NBTypeCont.cpp.

References myTypes.

Referenced by NIXMLTypesHandler::myStartElement().

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

invalid assignment operator

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

Sets the default values.

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

Definition at line 51 of file NBTypeCont.cpp.

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

Referenced by NBNetBuilder::applyOptions().

int NBTypeCont::size ( ) const
inline

Returns the number of known types.

Returns
The number of known edge types (excluding the default)

Definition at line 104 of file NBTypeCont.h.

References myTypes.

Referenced by NILoader::load(), and NWWriter_XML::writeNetwork().

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 209 of file NBTypeCont.cpp.

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

Field Documentation

TypeDefinition NBTypeCont::myDefaultType
private

The default type.

Definition at line 299 of file NBTypeCont.h.

Referenced by getType(), and setDefaults().

TypesCont NBTypeCont::myTypes
private

The container of types.

Definition at line 305 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: