Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
AFCentralizedSPTree< E, N, V > Class Template Reference

#include <AFCentralizedSPTree.h>

Collaboration diagram for AFCentralizedSPTree< E, N, V >:
[legend]

Data Structures

class  EdgeInfoComparator

Public Types

typedef AFInfo< E >::ArcInfo ArcInfo
typedef KDTreePartition< E, N, V >::Cell Cell

Public Member Functions

 AFCentralizedSPTree (const std::vector< E * > &edges, std::vector< ArcInfo * > &arcInfos, bool unbuildIsWarning, SUMOAbstractRouter< E, V > *effortProvider, const bool havePermissions=false, const bool haveRestrictions=false)
 Constructor.
bool computeCentralizedSPTree (SUMOTime msTime, const Cell *cell, const V *const vehicle, const std::map< const E *, std::vector< const E * > > &incomingEdgesOfOutgoingBoundaryEdges, bool silent=false)
 Computes a shortest path tree for each boundary edge of the given cell, returns true iff this was successful.
bool isProhibited (const E *const edge, const V *const vehicle) const
 Returns true iff driving the given vehicle on the given edge is prohibited.
 ~AFCentralizedSPTree ()
 Destructor.

Protected Member Functions

void init (std::vector< const E * > fromEdges, const V *const vehicle, SUMOTime msTime)
 Initialize the arc flag router.

Protected Attributes

std::vector< ArcInfo * > & myArcInfos
 The edge informations specific to arc flag routing.
EdgeInfoComparatormyComparator
 The comparator.
std::vector< typename SUMOAbstractRouter< E, V >::EdgeInfo > myEdgeInfos
 The container of edge information.
SUMOAbstractRouter< E, V > * myEffortProvider
 The object's operation to perform.
MsgHandler *const myErrorMsgHandler
 The handler for routing errors.
std::vector< typename SUMOAbstractRouter< E, V >::EdgeInfo * > myFound
 The list of visited edges (for resetting).
std::vector< typename SUMOAbstractRouter< E, V >::EdgeInfo * > myFrontierList
 The min edge heap.
const bool myHavePermissions
 The boolean flag indicating whether edge permissions need to be considered or not.
const bool myHaveRestrictions
 The boolean flag indicating whether edge restrictions need to be considered or not.
double myMaxSpeed
 The maximum speed in the network.

Detailed Description

template<class E, class N, class V>
class AFCentralizedSPTree< E, N, V >

Definition at line 54 of file AFCentralizedSPTree.h.

Member Typedef Documentation

◆ ArcInfo

template<class E, class N, class V>
typedef AFInfo<E>::ArcInfo AFCentralizedSPTree< E, N, V >::ArcInfo

Definition at line 57 of file AFCentralizedSPTree.h.

◆ Cell

template<class E, class N, class V>
typedef KDTreePartition<E,N,V>::Cell AFCentralizedSPTree< E, N, V >::Cell

Definition at line 56 of file AFCentralizedSPTree.h.

Constructor & Destructor Documentation

◆ AFCentralizedSPTree()

template<class E, class N, class V>
AFCentralizedSPTree< E, N, V >::AFCentralizedSPTree ( const std::vector< E * > & edges,
std::vector< ArcInfo * > & arcInfos,
bool unbuildIsWarning,
SUMOAbstractRouter< E, V > * effortProvider,
const bool havePermissions = false,
const bool haveRestrictions = false )
inline

Constructor.

Parameters
[in]edgesThe edges
[in]arcInfosThe arc informations (for arc flag routing)
[in]unbuildIsWarningThe flag indicating whether network unbuilds should issue warnings or errors
[in]effortProviderThe effort provider
[in]havePermissionsThe boolean flag indicating whether edge permissions need to be considered or not
[in]haveRestrictionsThe boolean flag indicating whether edge restrictions need to be considered or not

Definition at line 99 of file AFCentralizedSPTree.h.

References MAX2(), myArcInfos, myComparator, myEdgeInfos, myEffortProvider, myErrorMsgHandler, myHavePermissions, myHaveRestrictions, and myMaxSpeed.

◆ ~AFCentralizedSPTree()

template<class E, class N, class V>
AFCentralizedSPTree< E, N, V >::~AFCentralizedSPTree ( )
inline

Destructor.

Definition at line 116 of file AFCentralizedSPTree.h.

References myComparator.

Member Function Documentation

◆ computeCentralizedSPTree()

template<class E, class N, class V>
bool AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree ( SUMOTime msTime,
const Cell * cell,
const V *const vehicle,
const std::map< const E *, std::vector< const E * > > & incomingEdgesOfOutgoingBoundaryEdges,
bool silent = false )
inline

Computes a shortest path tree for each boundary edge of the given cell, returns true iff this was successful.

Note
This is done for all such shortest path trees at once (i.e., a centralized shortest path tree is computed, see Hilger et al.)
Parameters
[in]msTimeThe start time of the paths/routes in milliseconds
[in]cellThe cell as a part of a k-d tree partition of the network
[in]vehicleThe vehicle
[in]incomingEdgesOfOutgoingBoundaryEdgesMaps each outgoing boundary edge to its incoming edges
[in]silentThe boolean flag indicating whether the method stays silent or puts out messages
Returns
true iff the centralized shortest path tree could successfully be calculated

Definition at line 138 of file AFCentralizedSPTree.h.

References KDTreePartition< E, N, V >::Cell::contains(), SUMOAbstractRouter< E, V >::EdgeInfo::edge, AFInfo< E >::ArcInfo::effortsToBoundaryNodes, Named::getIDSecure(), KDTreePartition< E, N, V >::Cell::getOutgoingBoundaryEdges(), KDTreePartition< E, N, V >::Cell::getSupercell(), init(), isProhibited(), AFInfo< E >::ArcInfoBase::key, SUMOAbstractRouter< E, V >::EdgeInfo::leaveTime, myArcInfos, myComparator, myEdgeInfos, myEffortProvider, myErrorMsgHandler, myFound, myFrontierList, SVC_IGNORING, AFInfo< E >::ArcInfoBase::touched, UNREACHABLE, and SUMOAbstractRouter< E, V >::EdgeInfo::visited.

◆ init()

template<class E, class N, class V>
void AFCentralizedSPTree< E, N, V >::init ( std::vector< const E * > fromEdges,
const V *const vehicle,
SUMOTime msTime )
protected

Initialize the arc flag router.

Parameters
[in]fromEdgesThe container of from-/head/source edges
[in]vehicleThe vehicle
[in]msTimeThe start time of the paths/routes in milliseconds

Definition at line 341 of file AFCentralizedSPTree.h.

References isProhibited(), AFInfo< E >::ArcInfoBase::key, myArcInfos, myEdgeInfos, myFound, myFrontierList, and STEPS2TIME.

Referenced by computeCentralizedSPTree().

Here is the caller graph for this function:

◆ isProhibited()

template<class E, class N, class V>
bool AFCentralizedSPTree< E, N, V >::isProhibited ( const E *const edge,
const V *const vehicle ) const
inline

Returns true iff driving the given vehicle on the given edge is prohibited.

Parameters
[in]edgeThe edge
[in]vehicleThe vehicle
Returns
true iff driving the given vehicle on the given edge is prohibited

Definition at line 125 of file AFCentralizedSPTree.h.

References myHavePermissions, and myHaveRestrictions.

Referenced by computeCentralizedSPTree(), and init().

Here is the caller graph for this function:

Field Documentation

◆ myArcInfos

template<class E, class N, class V>
std::vector<ArcInfo*>& AFCentralizedSPTree< E, N, V >::myArcInfos
protected

The edge informations specific to arc flag routing.

Note
As opposed to the standard informations in SUMOAbstractRouter<E, V>::EdgeInfo

Definition at line 321 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), computeCentralizedSPTree(), and init().

◆ myComparator

template<class E, class N, class V>
EdgeInfoComparator* AFCentralizedSPTree< E, N, V >::myComparator
protected

The comparator.

Definition at line 331 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), computeCentralizedSPTree(), and ~AFCentralizedSPTree().

◆ myEdgeInfos

template<class E, class N, class V>
std::vector<typename SUMOAbstractRouter<E, V>::EdgeInfo> AFCentralizedSPTree< E, N, V >::myEdgeInfos
protected

The container of edge information.

Definition at line 318 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), computeCentralizedSPTree(), and init().

◆ myEffortProvider

template<class E, class N, class V>
SUMOAbstractRouter<E, V>* AFCentralizedSPTree< E, N, V >::myEffortProvider
protected

The object's operation to perform.

Definition at line 329 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), and computeCentralizedSPTree().

◆ myErrorMsgHandler

template<class E, class N, class V>
MsgHandler* const AFCentralizedSPTree< E, N, V >::myErrorMsgHandler
protected

The handler for routing errors.

Definition at line 327 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), and computeCentralizedSPTree().

◆ myFound

template<class E, class N, class V>
std::vector<typename SUMOAbstractRouter<E, V>::EdgeInfo*> AFCentralizedSPTree< E, N, V >::myFound
protected

The list of visited edges (for resetting).

Definition at line 316 of file AFCentralizedSPTree.h.

Referenced by computeCentralizedSPTree(), and init().

◆ myFrontierList

template<class E, class N, class V>
std::vector<typename SUMOAbstractRouter<E, V>::EdgeInfo*> AFCentralizedSPTree< E, N, V >::myFrontierList
protected

The min edge heap.

Note
A container for reusage of the min edge heap

Definition at line 314 of file AFCentralizedSPTree.h.

Referenced by computeCentralizedSPTree(), and init().

◆ myHavePermissions

template<class E, class N, class V>
const bool AFCentralizedSPTree< E, N, V >::myHavePermissions
protected

The boolean flag indicating whether edge permissions need to be considered or not.

Definition at line 323 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), and isProhibited().

◆ myHaveRestrictions

template<class E, class N, class V>
const bool AFCentralizedSPTree< E, N, V >::myHaveRestrictions
protected

The boolean flag indicating whether edge restrictions need to be considered or not.

Definition at line 325 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree(), and isProhibited().

◆ myMaxSpeed

template<class E, class N, class V>
double AFCentralizedSPTree< E, N, V >::myMaxSpeed
protected

The maximum speed in the network.

Definition at line 333 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree().


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