Eclipse SUMO - Simulation of Urban MObility
|
#include <GNEPathManager.h>
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 | addPathElementToRedrawBuffer (const GNEPathManager::PathElement *pathElement) const |
add path elements to redraw buffer | |
void | calculateConsecutivePathEdges (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNEEdge * > &edges, const int firstLaneIndex=-1, const int lastLaneIndex=-1) |
calculate consecutive path edges | |
void | calculateConsecutivePathLanes (PathElement *pathElement, const std::vector< GNELane * > &lanes) |
calculate consecutive path lanes | |
void | calculatePath (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNEEdge * > &edges) |
calculate path lanes between list of edges (using dijkstra, require path calculator updated) | |
void | calculatePath (PathElement *pathElement, SUMOVehicleClass vClass, GNEJunction *fromJunction, GNEJunction *toJunction) |
calculate path between from junction and to junction (using dijkstra, require path calculator updated) | |
void | calculatePath (PathElement *pathElement, SUMOVehicleClass vClass, GNEJunction *fromJunction, GNELane *toLane) |
calculate path between from junction and to edge (using dijkstra, require path calculator updated) | |
void | calculatePath (PathElement *pathElement, SUMOVehicleClass vClass, GNELane *fromLane, GNEJunction *toJunction) |
calculate path between from edge and to junction(using dijkstra, require path calculator updated) | |
void | calculatePath (PathElement *pathElement, SUMOVehicleClass vClass, GNELane *fromLane, GNELane *toLane) |
calculate path between from-to edges (using dijkstra, require path calculator updated) | |
void | clearSegments () |
clear segments | |
void | drawJunctionPathElements (const GUIVisualizationSettings &s, const GNEJunction *junction) const |
draw junction path elements | |
void | drawLanePathElements (const GUIVisualizationSettings &s, const GNELane *lane) const |
draw lane path elements | |
const GNELane * | getFirstLane (const PathElement *pathElement) const |
get first lane associated with path element | |
PathCalculator * | getPathCalculator () |
obtain instance of PathCalculator | |
PathDraw * | getPathDraw () |
obtain instance of PathDraw | |
const PathElement * | getPathElement (const GUIGlObject *GLObject) const |
get path element | |
const std::vector< Segment * > & | getPathElementSegments (PathElement *pathElement) const |
get path segments | |
GNEPathManager (const GNENet *net) | |
constructor | |
void | invalidateJunctionPath (const GNEJunction *junction) |
invalidate junction path | |
void | invalidateLanePath (const GNELane *lane) |
invalidate lane path | |
bool | isPathValid (const PathElement *pathElement) const |
check if path element is valid | |
void | removePath (PathElement *pathElement) |
remove path | |
~GNEPathManager () | |
destructor | |
Protected Member Functions | |
void | addSegmentInJunctionSegments (Segment *segment, const GNEJunction *junction) |
add segments int junctionSegments (called by Segment constructor) | |
void | addSegmentInLaneSegments (Segment *segment, const GNELane *lane) |
add segments int laneSegments (called by Segment constructor) | |
void | buildPath (PathElement *pathElement, SUMOVehicleClass vClass, const std::vector< GNEEdge * > path, GNELane *fromLane, GNEJunction *fromJunction, GNELane *toLane, GNEJunction *toJunction) |
build path | |
void | clearSegmentFromJunctionAndLaneSegments (Segment *segment) |
clear segments from junction and lane Segments (called by Segment destructor) | |
bool | connectedLanes (const GNELane *fromLane, const GNELane *toLane) const |
check if given lanes are connected | |
Protected Attributes | |
bool | myCleaningSegments = false |
flag for clear segments quickly | |
std::map< const GNEJunction *, std::set< Segment * > > | myJunctionSegments |
map with junction segments | |
std::map< const GNELane *, std::set< Segment * > > | myLaneSegments |
map with lane segments | |
PathCalculator * | myPathCalculator |
PathCalculator instance. | |
PathDraw * | myPathDraw |
PathDraw instance. | |
std::map< const PathElement *, std::vector< Segment * > > | myPaths |
map with path element and their associated segments | |
Private Member Functions | |
GNEPathManager (const GNEPathManager &)=delete | |
Invalidated copy constructor. | |
void | markLabelSegment (const std::vector< Segment * > &segments) const |
mark label segment | |
GNEPathManager & | operator= (const GNEPathManager &)=delete |
Invalidated assignment operator. | |
Private Attributes | |
const std::vector< Segment * > | myEmptySegments |
empty segments (used in getPathElementSegments) | |
Definition at line 43 of file GNEPathManager.h.
GNEPathManager::GNEPathManager | ( | const GNENet * | net | ) |
constructor
Definition at line 625 of file GNEPathManager.cpp.
GNEPathManager::~GNEPathManager | ( | ) |
destructor
Definition at line 631 of file GNEPathManager.cpp.
References clearSegments(), myPathCalculator, and myPathDraw.
|
privatedelete |
Invalidated copy constructor.
void GNEPathManager::addPathElementToRedrawBuffer | ( | const GNEPathManager::PathElement * | pathElement | ) | const |
add path elements to redraw buffer
Definition at line 886 of file GNEPathManager.cpp.
References GUIViewObjectsHandler::addToRedrawObjects(), gViewObjectsHandler, and myPaths.
Referenced by GNEVehicle::drawLanePartialGL().
|
protected |
add segments int junctionSegments (called by Segment constructor)
Definition at line 960 of file GNEPathManager.cpp.
References myJunctionSegments.
Referenced by GNEPathManager::Segment::Segment().
add segments int laneSegments (called by Segment constructor)
Definition at line 954 of file GNEPathManager.cpp.
References myLaneSegments.
Referenced by GNEPathManager::Segment::Segment().
|
protected |
build path
Definition at line 1004 of file GNEPathManager.cpp.
References markLabelSegment(), GNEPathManager::Segment::markSegmentLabel(), myPaths, and removePath().
Referenced by calculatePath(), calculatePath(), calculatePath(), calculatePath(), and calculatePath().
void GNEPathManager::calculateConsecutivePathEdges | ( | PathElement * | pathElement, |
SUMOVehicleClass | vClass, | ||
const std::vector< GNEEdge * > & | edges, | ||
const int | firstLaneIndex = -1 , |
||
const int | lastLaneIndex = -1 |
||
) |
calculate consecutive path edges
Definition at line 755 of file GNEPathManager.cpp.
References calculateConsecutivePathLanes().
Referenced by GNEEdgeRelData::computePathElement(), GNERoute::computePathElement(), GNEDemandElementPlan::computePlanPathElement(), and GNEEdgeData::updateGeometry().
void GNEPathManager::calculateConsecutivePathLanes | ( | PathElement * | pathElement, |
const std::vector< GNELane * > & | lanes | ||
) |
calculate consecutive path lanes
Definition at line 787 of file GNEPathManager.cpp.
References markLabelSegment(), myPaths, and removePath().
Referenced by calculateConsecutivePathEdges(), GNELaneAreaDetector::computePathElement(), and GNEOverheadWire::computePathElement().
void GNEPathManager::calculatePath | ( | PathElement * | pathElement, |
SUMOVehicleClass | vClass, | ||
const std::vector< GNEEdge * > & | edges | ||
) |
calculate path lanes between list of edges (using dijkstra, require path calculator updated)
Definition at line 743 of file GNEPathManager.cpp.
References buildPath(), GNEPathManager::PathCalculator::calculateDijkstraPath(), myPathCalculator, and removePath().
void GNEPathManager::calculatePath | ( | PathElement * | pathElement, |
SUMOVehicleClass | vClass, | ||
GNEJunction * | fromJunction, | ||
GNEJunction * | toJunction | ||
) |
calculate path between from junction and to junction (using dijkstra, require path calculator updated)
Definition at line 736 of file GNEPathManager.cpp.
References buildPath(), GNEPathManager::PathCalculator::calculateDijkstraPath(), and myPathCalculator.
void GNEPathManager::calculatePath | ( | PathElement * | pathElement, |
SUMOVehicleClass | vClass, | ||
GNEJunction * | fromJunction, | ||
GNELane * | toLane | ||
) |
calculate path between from junction and to edge (using dijkstra, require path calculator updated)
Definition at line 728 of file GNEPathManager.cpp.
References buildPath(), GNEPathManager::PathCalculator::calculateDijkstraPath(), GNELane::getParentEdge(), and myPathCalculator.
void GNEPathManager::calculatePath | ( | PathElement * | pathElement, |
SUMOVehicleClass | vClass, | ||
GNELane * | fromLane, | ||
GNEJunction * | toJunction | ||
) |
calculate path between from edge and to junction(using dijkstra, require path calculator updated)
Definition at line 720 of file GNEPathManager.cpp.
References buildPath(), GNEPathManager::PathCalculator::calculateDijkstraPath(), GNELane::getParentEdge(), and myPathCalculator.
void GNEPathManager::calculatePath | ( | PathElement * | pathElement, |
SUMOVehicleClass | vClass, | ||
GNELane * | fromLane, | ||
GNELane * | toLane | ||
) |
calculate path between from-to edges (using dijkstra, require path calculator updated)
Definition at line 712 of file GNEPathManager.cpp.
References buildPath(), GNEPathManager::PathCalculator::calculateDijkstraPath(), GNELane::getParentEdge(), and myPathCalculator.
Referenced by GNEVehicle::computePathElement().
|
protected |
clear segments from junction and lane Segments (called by Segment destructor)
Definition at line 966 of file GNEPathManager.cpp.
References GNEPathManager::Segment::getJunction(), GNEPathManager::Segment::getLane(), myJunctionSegments, and myLaneSegments.
void GNEPathManager::clearSegments | ( | ) |
clear segments
Definition at line 934 of file GNEPathManager.cpp.
References myCleaningSegments, myJunctionSegments, myLaneSegments, and myPaths.
Referenced by GNENet::computeDemandElements(), and ~GNEPathManager().
|
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().
void GNEPathManager::drawJunctionPathElements | ( | const GUIVisualizationSettings & | s, |
const GNEJunction * | junction | ||
) | const |
draw junction path elements
Definition at line 866 of file GNEPathManager.cpp.
References myJunctionSegments.
Referenced by GNEJunction::drawJunctionChildren().
void GNEPathManager::drawLanePathElements | ( | const GUIVisualizationSettings & | s, |
const GNELane * | lane | ||
) | const |
draw lane path elements
Definition at line 831 of file GNEPathManager.cpp.
References GNELane::drawOverlappedRoutes(), GNEViewNet::getDemandViewOptions(), GNEAttributeCarrier::getNet(), GNENet::getViewNet(), myLaneSegments, and GNEViewNetHelper::DemandViewOptions::showOverlappedRoutes().
Referenced by GNELane::drawChildren().
const GNELane * GNEPathManager::getFirstLane | ( | const PathElement * | pathElement | ) | const |
get first lane associated with path element
Definition at line 701 of file GNEPathManager.cpp.
References myPaths.
GNEPathManager::PathCalculator * GNEPathManager::getPathCalculator | ( | ) |
obtain instance of PathCalculator
Definition at line 642 of file GNEPathManager.cpp.
References myPathCalculator.
Referenced by GNEDemandElement::buildMenuCommandRouteLength(), GNERouteHandler::canReverse(), GNERouteHandler::canReverse(), GNENet::computeDemandElements(), GNEVehicle::computePathElement(), GNEVehicle::getDemandElementProblem(), GNEVehicle::isDemandElementValid(), GNEApplicationWindow::onCmdComputePathManager(), GNEViewNet::onCmdLaneReachability(), GNEApplicationWindow::onUpdComputePathManager(), GNEPathCreator::Path::Path(), GNEPathCreator::Path::Path(), GNEPlanCreator::PlanPath::PlanPath(), GNEPlanCreator::PlanPath::PlanPath(), GNEPlanCreator::PlanPath::PlanPath(), GNEConnection::setAttribute(), GNECrossing::setAttribute(), GNEEdge::setAttribute(), GNEJunction::setAttribute(), GNELane::setAttribute(), GNEPathCreator::setPossibleCandidates(), GNEPathCreator::setSpecialCandidates(), GNERouteHandler::transformToRouteFlow(), and GNERouteHandler::transformToVehicle().
GNEPathManager::PathDraw * GNEPathManager::getPathDraw | ( | ) |
obtain instance of PathDraw
Definition at line 676 of file GNEPathManager.cpp.
References myPathDraw.
Referenced by GNEViewNet::doPaintGL(), GNERoute::drawJunctionPartialGL(), GNEVehicle::drawJunctionPartialGL(), GNERoute::drawLanePartialGL(), GNEVehicle::drawLanePartialGL(), GNEDemandElementPlan::drawPlanJunctionPartial(), and GNEDemandElementPlan::drawPlanLanePartial().
const GNEPathManager::PathElement * GNEPathManager::getPathElement | ( | const GUIGlObject * | GLObject | ) | const |
const std::vector< GNEPathManager::Segment * > & GNEPathManager::getPathElementSegments | ( | GNEPathManager::PathElement * | pathElement | ) | const |
get path segments
Definition at line 666 of file GNEPathManager.cpp.
References myEmptySegments, and myPaths.
Referenced by GNEDemandElement::getEdgeStopIndex().
void GNEPathManager::invalidateJunctionPath | ( | const GNEJunction * | junction | ) |
invalidate junction path
Definition at line 916 of file GNEPathManager.cpp.
References myJunctionSegments.
Referenced by GNENet::deleteJunction().
void GNEPathManager::invalidateLanePath | ( | const GNELane * | lane | ) |
invalidate lane path
Definition at line 898 of file GNEPathManager.cpp.
References myLaneSegments.
Referenced by GNENet::deleteEdge(), and GNENet::deleteLane().
bool GNEPathManager::isPathValid | ( | const PathElement * | pathElement | ) | const |
check if path element is valid
Definition at line 682 of file GNEPathManager.cpp.
References myPaths.
Referenced by GNERoute::computePathElement(), GNEContainer::drawGL(), GNEVehicle::drawGL(), and GNEVehicle::isDemandElementValid().
|
private |
mark label segment
Definition at line 1083 of file GNEPathManager.cpp.
References GNEPathManager::Segment::markSegmentLabel().
Referenced by buildPath(), and calculateConsecutivePathLanes().
|
privatedelete |
Invalidated assignment operator.
void GNEPathManager::removePath | ( | PathElement * | pathElement | ) |
remove path
Definition at line 817 of file GNEPathManager.cpp.
References myPaths.
Referenced by buildPath(), calculateConsecutivePathLanes(), calculatePath(), and GNEDataInterval::removeGenericDataChild().
|
protected |
flag for clear segments quickly
Definition at line 393 of file GNEPathManager.h.
Referenced by clearSegments().
|
private |
empty segments (used in getPathElementSegments)
Definition at line 400 of file GNEPathManager.h.
Referenced by getPathElementSegments().
|
protected |
map with junction segments
Definition at line 390 of file GNEPathManager.h.
Referenced by addSegmentInJunctionSegments(), clearSegmentFromJunctionAndLaneSegments(), clearSegments(), drawJunctionPathElements(), and invalidateJunctionPath().
map with lane segments
Definition at line 387 of file GNEPathManager.h.
Referenced by addSegmentInLaneSegments(), clearSegmentFromJunctionAndLaneSegments(), clearSegments(), drawLanePathElements(), and invalidateLanePath().
|
protected |
PathCalculator instance.
Definition at line 378 of file GNEPathManager.h.
Referenced by calculatePath(), calculatePath(), calculatePath(), calculatePath(), calculatePath(), getPathCalculator(), and ~GNEPathManager().
|
protected |
PathDraw instance.
Definition at line 381 of file GNEPathManager.h.
Referenced by getPathDraw(), and ~GNEPathManager().
|
protected |
map with path element and their associated segments
Definition at line 384 of file GNEPathManager.h.
Referenced by addPathElementToRedrawBuffer(), buildPath(), calculateConsecutivePathLanes(), clearSegments(), getFirstLane(), getPathElement(), getPathElementSegments(), isPathValid(), and removePath().