Eclipse SUMO - Simulation of Urban MObility
GNEPathManager Class Reference

#include <GNEPathManager.h>

Collaboration diagram for GNEPathManager:
[legend]

Data Structures

class  PathCalculator
 class used to calculate paths in nets More...
 
class  PathDraw
 class used to mark path draw More...
 
class  PathElement
 class used for path elements More...
 
class  Segment
 segment More...
 

Public Member Functions

void calculateConsecutivePathEdges (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNEEdge * > edges)
 calculate consecutive path edges More...
 
void calculateConsecutivePathLanes (PathElement *pathElement, const std::vector< GNELane * > lanes)
 calculate consecutive path lanes More...
 
void calculatePathEdges (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNEEdge * > edges)
 calculate path edges (using dijkstra, require path calculator updated) More...
 
void calculatePathJunctions (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNEJunction * > junctions)
 calculate path junctions (using dijkstra, require path calculator updated) More...
 
void calculatePathLanes (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNELane * > lanes)
 calculate path lanes (using dijkstra, require path calculator updated) More...
 
void clearDemandPaths ()
 clear demand paths More...
 
void drawJunctionPathElements (const GUIVisualizationSettings &s, const GNEJunction *junction)
 draw junction path elements More...
 
void drawLanePathElements (const GUIVisualizationSettings &s, const GNELane *lane)
 draw lane path elements More...
 
void forceDrawPath (const GUIVisualizationSettings &s, const PathElement *pathElement) const
 force draw path (used carefully, ONLY when we're inspecting a path element, due slowdowns) More...
 
const GNELanegetFirstLane (const PathElement *pathElement) const
 get first lane associated with path element More...
 
PathCalculatorgetPathCalculator ()
 obtain instance of PathCalculator More...
 
PathDrawgetPathDraw ()
 obtain instance of PathDraw More...
 
const PathElementgetPathElement (const GUIGlObject *GLObject) const
 get path element More...
 
 GNEPathManager (const GNENet *net)
 constructor More...
 
void invalidateJunctionPath (const GNEJunction *junction)
 invalidate junction path More...
 
void invalidateLanePath (const GNELane *lane)
 invalidate lane path More...
 
bool isPathValid (const PathElement *pathElement) const
 check if path element is valid More...
 
void removePath (PathElement *pathElement)
 remove path More...
 
 ~GNEPathManager ()
 destructor More...
 

Protected Member Functions

void addSegmentInJunctionSegments (Segment *segment, const GNEJunction *junction)
 add segments int junctionSegments (called by Segment constructor) More...
 
void addSegmentInLaneSegments (Segment *segment, const GNELane *lane)
 add segments int laneSegments (called by Segment constructor) More...
 
void clearSegmentFromJunctionAndLaneSegments (Segment *segment)
 clear segments from junction and lane Segments (called by Segment destructor) More...
 
void clearSegments ()
 clear segments More...
 
bool connectedLanes (const GNELane *fromLane, const GNELane *toLane) const
 check if given lanes are connected More...
 

Protected Attributes

std::map< const GNEJunction *, std::set< Segment * > > myJunctionSegments
 map with junction segments More...
 
std::map< const GNELane *, std::set< Segment * > > myLaneSegments
 map with lane segments More...
 
PathCalculatormyPathCalculator
 PathCalculator instance. More...
 
PathDrawmyPathDraw
 PathDraw instance. More...
 
std::map< const PathElement *, std::vector< Segment * > > myPaths
 map with path element and their associated segments More...
 

Private Member Functions

 GNEPathManager (const GNEPathManager &)=delete
 Invalidated copy constructor. More...
 
GNEPathManageroperator= (const GNEPathManager &)=delete
 Invalidated assignment operator. More...
 

Detailed Description

Definition at line 41 of file GNEPathManager.h.

Constructor & Destructor Documentation

◆ GNEPathManager() [1/2]

GNEPathManager::GNEPathManager ( const GNENet net)

constructor

Definition at line 578 of file GNEPathManager.cpp.

◆ ~GNEPathManager()

GNEPathManager::~GNEPathManager ( )

destructor

Definition at line 584 of file GNEPathManager.cpp.

References clearSegments(), myPathCalculator, and myPathDraw.

◆ GNEPathManager() [2/2]

GNEPathManager::GNEPathManager ( const GNEPathManager )
privatedelete

Invalidated copy constructor.

Member Function Documentation

◆ addSegmentInJunctionSegments()

void GNEPathManager::addSegmentInJunctionSegments ( Segment segment,
const GNEJunction junction 
)
protected

add segments int junctionSegments (called by Segment constructor)

Definition at line 942 of file GNEPathManager.cpp.

References myJunctionSegments.

Referenced by GNEPathManager::Segment::Segment().

Here is the caller graph for this function:

◆ addSegmentInLaneSegments()

void GNEPathManager::addSegmentInLaneSegments ( Segment segment,
const GNELane lane 
)
protected

add segments int laneSegments (called by Segment constructor)

Definition at line 936 of file GNEPathManager.cpp.

References myLaneSegments.

Referenced by GNEPathManager::Segment::Segment().

Here is the caller graph for this function:

◆ calculateConsecutivePathEdges()

void GNEPathManager::calculateConsecutivePathEdges ( PathElement pathElement,
SUMOVehicleClass  vClass,
const std::vector< GNEEdge * >  edges 
)

calculate consecutive path edges

Definition at line 750 of file GNEPathManager.cpp.

References calculateConsecutivePathLanes().

Referenced by GNEEdgeRelData::computePathElement(), GNERoute::computePathElement(), GNETranship::computePathElement(), GNEWalk::computePathElement(), and GNEEdgeData::updateGeometry().

Here is the caller graph for this function:

◆ calculateConsecutivePathLanes()

void GNEPathManager::calculateConsecutivePathLanes ( PathElement pathElement,
const std::vector< GNELane * >  lanes 
)

calculate consecutive path lanes

Definition at line 765 of file GNEPathManager.cpp.

References myPaths.

Referenced by calculateConsecutivePathEdges(), GNELaneAreaDetector::computePathElement(), GNEOverheadWire::computePathElement(), and GNERoute::computePathElement().

Here is the caller graph for this function:

◆ calculatePathEdges()

void GNEPathManager::calculatePathEdges ( PathElement pathElement,
SUMOVehicleClass  vClass,
const std::vector< GNEEdge * >  edges 
)

calculate path edges (using dijkstra, require path calculator updated)

Definition at line 652 of file GNEPathManager.cpp.

References GNEPathManager::PathCalculator::calculateDijkstraPath(), GNEPathManager::Segment::markSegmentLabel(), myPathCalculator, myPaths, GNEPathManager::Segment::setNextSegment(), and GNEPathManager::Segment::setPreviousSegment().

Referenced by calculatePathJunctions(), and calculatePathLanes().

Here is the caller graph for this function:

◆ calculatePathJunctions()

void GNEPathManager::calculatePathJunctions ( PathElement pathElement,
SUMOVehicleClass  vClass,
const std::vector< GNEJunction * >  junctions 
)

calculate path junctions (using dijkstra, require path calculator updated)

Definition at line 738 of file GNEPathManager.cpp.

References GNEPathManager::PathCalculator::calculateDijkstraPath(), calculatePathEdges(), and myPathCalculator.

Referenced by GNEPersonTrip::computePathElement(), GNEVehicle::computePathElement(), and GNEWalk::computePathElement().

Here is the caller graph for this function:

◆ calculatePathLanes()

void GNEPathManager::calculatePathLanes ( PathElement pathElement,
SUMOVehicleClass  vClass,
const std::vector< GNELane * >  lanes 
)

calculate path lanes (using dijkstra, require path calculator updated)

Definition at line 723 of file GNEPathManager.cpp.

References calculatePathEdges().

Referenced by GNEPersonTrip::computePathElement(), GNERide::computePathElement(), GNETranship::computePathElement(), GNETransport::computePathElement(), GNEVehicle::computePathElement(), and GNEWalk::computePathElement().

Here is the caller graph for this function:

◆ clearDemandPaths()

void GNEPathManager::clearDemandPaths ( )

clear demand paths

Definition at line 916 of file GNEPathManager.cpp.

References myPaths.

Referenced by GNENet::computeDemandElements().

Here is the caller graph for this function:

◆ clearSegmentFromJunctionAndLaneSegments()

void GNEPathManager::clearSegmentFromJunctionAndLaneSegments ( Segment segment)
protected

clear segments from junction and lane Segments (called by Segment destructor)

Definition at line 948 of file GNEPathManager.cpp.

References GNEPathManager::Segment::getJunction(), GNEPathManager::Segment::getLane(), myJunctionSegments, and myLaneSegments.

◆ clearSegments()

void GNEPathManager::clearSegments ( )
protected

clear segments

Definition at line 974 of file GNEPathManager.cpp.

References myPaths.

Referenced by ~GNEPathManager().

Here is the caller graph for this function:

◆ connectedLanes()

bool GNEPathManager::connectedLanes ( const GNELane fromLane,
const GNELane toLane 
) const
protected

check if given lanes are connected

Definition at line 988 of file GNEPathManager.cpp.

References NBEdge::getConnectionsFromLane(), GNELane::getIndex(), GNEEdge::getNBEdge(), and GNELane::getParentEdge().

◆ drawJunctionPathElements()

void GNEPathManager::drawJunctionPathElements ( const GUIVisualizationSettings s,
const GNEJunction junction 
)

draw junction path elements

Definition at line 849 of file GNEPathManager.cpp.

References myJunctionSegments.

Referenced by GNEJunction::drawGL().

Here is the caller graph for this function:

◆ drawLanePathElements()

void GNEPathManager::drawLanePathElements ( const GUIVisualizationSettings s,
const GNELane lane 
)

draw lane path elements

Definition at line 829 of file GNEPathManager.cpp.

References GNELane::drawOverlappedRoutes(), GNEViewNet::getDemandViewOptions(), GNEAttributeCarrier::getNet(), GNENet::getViewNet(), myLaneSegments, and GNEViewNetHelper::DemandViewOptions::showOverlappedRoutes().

Referenced by GNELane::drawGL().

Here is the caller graph for this function:

◆ forceDrawPath()

void GNEPathManager::forceDrawPath ( const GUIVisualizationSettings s,
const PathElement pathElement 
) const

force draw path (used carefully, ONLY when we're inspecting a path element, due slowdowns)

Definition at line 859 of file GNEPathManager.cpp.

References GNEPathManager::PathElement::drawPartialGL(), myJunctionSegments, and myLaneSegments.

Referenced by GNEViewNet::doPaintGL(), GNEViewNet::drawDeleteDottedContour(), GNEPersonTrip::drawGL(), GNERide::drawGL(), GNEWalk::drawGL(), and GNEViewNet::drawSelectDottedContour().

Here is the caller graph for this function:

◆ getFirstLane()

const GNELane * GNEPathManager::getFirstLane ( const PathElement pathElement) const

get first lane associated with path element

Definition at line 642 of file GNEPathManager.cpp.

References myPaths.

Referenced by GNEDemandElement::getBeginPosition().

Here is the caller graph for this function:

◆ getPathCalculator()

◆ getPathDraw()

GNEPathManager::PathDraw * GNEPathManager::getPathDraw ( )

obtain instance of PathDraw

Definition at line 619 of file GNEPathManager.cpp.

References myPathDraw.

Referenced by GNEViewNet::doPaintGL(), GNERoute::drawPartialGL(), GNEVehicle::drawPartialGL(), and GNEDemandElement::drawPersonPlanPartial().

Here is the caller graph for this function:

◆ getPathElement()

const GNEPathManager::PathElement * GNEPathManager::getPathElement ( const GUIGlObject GLObject) const

get path element

Definition at line 601 of file GNEPathManager.cpp.

References myPaths.

Referenced by GNEViewNet::drawDeleteDottedContour(), and GNEViewNet::drawSelectDottedContour().

Here is the caller graph for this function:

◆ invalidateJunctionPath()

void GNEPathManager::invalidateJunctionPath ( const GNEJunction junction)

invalidate junction path

Definition at line 898 of file GNEPathManager.cpp.

References myJunctionSegments.

Referenced by GNENet::deleteJunction().

Here is the caller graph for this function:

◆ invalidateLanePath()

void GNEPathManager::invalidateLanePath ( const GNELane lane)

invalidate lane path

Definition at line 880 of file GNEPathManager.cpp.

References myLaneSegments.

Referenced by GNENet::deleteEdge(), and GNENet::deleteLane().

Here is the caller graph for this function:

◆ isPathValid()

bool GNEPathManager::isPathValid ( const PathElement pathElement) const

check if path element is valid

Definition at line 625 of file GNEPathManager.cpp.

References myPaths.

Referenced by GNERide::computePathElement(), GNERoute::computePathElement(), GNEContainer::drawGL(), GNEPerson::drawGL(), GNEVehicle::drawGL(), and GNEVehicle::isDemandElementValid().

Here is the caller graph for this function:

◆ operator=()

GNEPathManager & GNEPathManager::operator= ( const GNEPathManager )
privatedelete

Invalidated assignment operator.

◆ removePath()

void GNEPathManager::removePath ( PathElement pathElement)

remove path

Definition at line 815 of file GNEPathManager.cpp.

References myPaths.

Referenced by GNEDataInterval::removeGenericDataChild().

Here is the caller graph for this function:

Field Documentation

◆ myJunctionSegments

std::map<const GNEJunction*, std::set<Segment*> > GNEPathManager::myJunctionSegments
protected

◆ myLaneSegments

std::map<const GNELane*, std::set<Segment*> > GNEPathManager::myLaneSegments
protected

◆ myPathCalculator

PathCalculator* GNEPathManager::myPathCalculator
protected

◆ myPathDraw

PathDraw* GNEPathManager::myPathDraw
protected

PathDraw instance.

Definition at line 383 of file GNEPathManager.h.

Referenced by getPathDraw(), and ~GNEPathManager().

◆ myPaths

std::map<const PathElement*, std::vector<Segment*> > GNEPathManager::myPaths
protected

map with path element and their associated segments

Definition at line 386 of file GNEPathManager.h.

Referenced by calculateConsecutivePathLanes(), calculatePathEdges(), clearDemandPaths(), clearSegments(), getFirstLane(), getPathElement(), isPathValid(), and removePath().


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