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(), AFCentralizedSPTree< E, N, V >::myArcInfos, AFCentralizedSPTree< E, N, V >::myComparator, AFCentralizedSPTree< E, N, V >::myEdgeInfos, and AFCentralizedSPTree< E, N, V >::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 AFCentralizedSPTree< E, N, V >::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(), MsgHandler::inform(), AFCentralizedSPTree< E, N, V >::init(), AFCentralizedSPTree< E, N, V >::isProhibited(), AFInfo< E >::ArcInfoBase::key, SUMOAbstractRouter< E, V >::EdgeInfo::leaveTime, AFCentralizedSPTree< E, N, V >::myArcInfos, AFCentralizedSPTree< E, N, V >::myComparator, AFCentralizedSPTree< E, N, V >::myEdgeInfos, AFCentralizedSPTree< E, N, V >::myEffortProvider, AFCentralizedSPTree< E, N, V >::myErrorMsgHandler, AFCentralizedSPTree< E, N, V >::myFound, AFCentralizedSPTree< E, N, V >::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 339 of file AFCentralizedSPTree.h.

References AFInfo< E >::ArcInfoBase::key, and STEPS2TIME.

Referenced by AFCentralizedSPTree< E, N, V >::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 AFCentralizedSPTree< E, N, V >::myHavePermissions, and AFCentralizedSPTree< E, N, V >::myHaveRestrictions.

Referenced by AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree().

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 319 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::AFCentralizedSPTree(), and AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree().

◆ myComparator

◆ myEdgeInfos

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

◆ 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 327 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::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 325 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::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 314 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree().

◆ 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 312 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree().

◆ 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 321 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::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 323 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::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 331 of file AFCentralizedSPTree.h.

Referenced by AFCentralizedSPTree< E, N, V >::AFCentralizedSPTree().


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