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

Builds arc flags for shortest path search with the arc flag router. More...

#include <AFBuilder.h>

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

Public Types

typedef AFInfo< E >::FlagInfo FlagInfo
typedef AbstractLookupTable< FlippedEdge< E, N, V >, V > FlippedLookupTable

Public Member Functions

 AFBuilder (int numberOfLevels, const std::vector< E * > &edges, bool unbuildIsWarning, typename SUMOAbstractRouter< FlippedEdge< E, N, V >, V >::Operation flippedOperation, const std::shared_ptr< const FlippedLookupTable > flippedLookup=nullptr, const bool havePermissions=false, const bool haveRestrictions=false, const std::map< const FlippedEdge< E, N, V > *, double > *toProhibit=nullptr)
 Constructor.
std::vector< FlagInfo * > & build (SUMOTime msTime, const V *const vehicle)
 Build the arc flag information for the arc flag router.
AFBuild< E, N, V, M > * getArcFlagBuild ()
 Returns the arc flag build.
const std::vector< E * > & getEdges ()
 Returns the edges.
void reset ()
 Resets the builder.
int sHARCLevel2PartitionLevel (int sHARCLevel)
 Converts a SHARC level number to a partition level number.
 ~AFBuilder ()
 Destructor.

Protected Attributes

bool myAmClean
AFBuild< E, N, V, M > * myArcFlagBuild
 The arc flag build.
const std::vector< E * > & myEdges
 The edges.
std::vector< FlagInfo * > myFlagInfos
 The flag informations.
std::vector< FlippedEdge< E, N, V > * > myFlippedEdges
 The flipped (backward) edges.
KDTreePartition< FlippedEdge< E, N, V >, FlippedNode< E, N, V >, V > * myFlippedPartition
 The k-d tree partition of the backward graph with flipped edges.
int myNumberOfArcFlags
 The number of arc flags per each edge.
int myNumberOfLevels
 The number of levels of the k-d tree partition of the network.

Detailed Description

template<class E, class N, class V, class M>
class AFBuilder< E, N, V, M >

Builds arc flags for shortest path search with the arc flag router.

Definition at line 51 of file AFBuilder.h.

Member Typedef Documentation

◆ FlagInfo

template<class E, class N, class V, class M>
typedef AFInfo<E>::FlagInfo AFBuilder< E, N, V, M >::FlagInfo

Definition at line 53 of file AFBuilder.h.

◆ FlippedLookupTable

template<class E, class N, class V, class M>
typedef AbstractLookupTable<FlippedEdge<E, N, V>, V> AFBuilder< E, N, V, M >::FlippedLookupTable

Definition at line 54 of file AFBuilder.h.

Constructor & Destructor Documentation

◆ AFBuilder()

template<class E, class N, class V, class M>
AFBuilder< E, N, V, M >::AFBuilder ( int numberOfLevels,
const std::vector< E * > & edges,
bool unbuildIsWarning,
typename SUMOAbstractRouter< FlippedEdge< E, N, V >, V >::Operation flippedOperation,
const std::shared_ptr< const FlippedLookupTable > flippedLookup = nullptr,
const bool havePermissions = false,
const bool haveRestrictions = false,
const std::map< const FlippedEdge< E, N, V > *, double > * toProhibit = nullptr )
inline

Constructor.

Parameters
[in]numberOfLevelsThe number of levels
[in]edgesThe container with all edges of the network
[in]unbuildIsWarningThe flag indicating whether network unbuilds should issue warnings or errors
[in]flippedOperationThe operation for a backward graph with flipped edges
[in]flippedLookupThe lookup table for a backward graph with flipped edges
[in]havePermissionsThe flag indicating whether edges have permissions which must be respected
[in]haveRestrictionsThe flag indicating whether edges have restrictions which must be respected
[in]toProhibitThe list of explicitly prohibited edges

Definition at line 66 of file AFBuilder.h.

References myAmClean, myArcFlagBuild, myEdges, myFlagInfos, myFlippedEdges, myFlippedPartition, myNumberOfArcFlags, and myNumberOfLevels.

◆ ~AFBuilder()

template<class E, class N, class V, class M>
AFBuilder< E, N, V, M >::~AFBuilder ( )

Destructor.

Definition at line 180 of file AFBuilder.h.

References myArcFlagBuild, myFlagInfos, and myFlippedPartition.

Member Function Documentation

◆ build()

template<class E, class N, class V, class M>
std::vector< typename AFInfo< E >::FlagInfo * > & AFBuilder< E, N, V, M >::build ( SUMOTime msTime,
const V *const vehicle )

Build the arc flag information for the arc flag router.

Parameters
[in]msTimeThe start time of the routes in milliseconds
[in]Thevehicle
Returns
The vector with the arc flag information

Definition at line 197 of file AFBuilder.h.

References myAmClean, myArcFlagBuild, myFlagInfos, myFlippedPartition, and reset().

◆ getArcFlagBuild()

template<class E, class N, class V, class M>
AFBuild< E, N, V, M > * AFBuilder< E, N, V, M >::getArcFlagBuild ( )
inline

Returns the arc flag build.

Definition at line 111 of file AFBuilder.h.

References myArcFlagBuild.

◆ getEdges()

template<class E, class N, class V, class M>
const std::vector< E * > & AFBuilder< E, N, V, M >::getEdges ( )
inline

Returns the edges.

Definition at line 115 of file AFBuilder.h.

References myEdges.

◆ reset()

template<class E, class N, class V, class M>
void AFBuilder< E, N, V, M >::reset ( )

Resets the builder.

Definition at line 189 of file AFBuilder.h.

References myAmClean, and myFlagInfos.

Referenced by build().

Here is the caller graph for this function:

◆ sHARCLevel2PartitionLevel()

template<class E, class N, class V, class M>
int AFBuilder< E, N, V, M >::sHARCLevel2PartitionLevel ( int sHARCLevel)
inline

Converts a SHARC level number to a partition level number.

Parameters
[in]sHARCLevelThe SHARC level
Returns
The partition level number

Definition at line 130 of file AFBuilder.h.

References myNumberOfLevels, and AFRouter< E, N, V, M >::sHARCLevel2PartitionLevel().

Field Documentation

◆ myAmClean

template<class E, class N, class V, class M>
bool AFBuilder< E, N, V, M >::myAmClean
protected

Definition at line 172 of file AFBuilder.h.

Referenced by AFBuilder(), build(), and reset().

◆ myArcFlagBuild

template<class E, class N, class V, class M>
AFBuild<E, N, V, M>* AFBuilder< E, N, V, M >::myArcFlagBuild
protected

The arc flag build.

Definition at line 162 of file AFBuilder.h.

Referenced by AFBuilder(), build(), getArcFlagBuild(), and ~AFBuilder().

◆ myEdges

template<class E, class N, class V, class M>
const std::vector<E*>& AFBuilder< E, N, V, M >::myEdges
protected

The edges.

Definition at line 154 of file AFBuilder.h.

Referenced by AFBuilder(), and getEdges().

◆ myFlagInfos

template<class E, class N, class V, class M>
std::vector<FlagInfo*> AFBuilder< E, N, V, M >::myFlagInfos
protected

The flag informations.

Definition at line 160 of file AFBuilder.h.

Referenced by AFBuilder(), build(), reset(), and ~AFBuilder().

◆ myFlippedEdges

template<class E, class N, class V, class M>
std::vector<FlippedEdge<E, N, V>*> AFBuilder< E, N, V, M >::myFlippedEdges
protected

The flipped (backward) edges.

Definition at line 156 of file AFBuilder.h.

Referenced by AFBuilder().

◆ myFlippedPartition

template<class E, class N, class V, class M>
KDTreePartition<FlippedEdge<E, N, V>, FlippedNode<E, N, V>, V>* AFBuilder< E, N, V, M >::myFlippedPartition
protected

The k-d tree partition of the backward graph with flipped edges.

Definition at line 158 of file AFBuilder.h.

Referenced by AFBuilder(), build(), and ~AFBuilder().

◆ myNumberOfArcFlags

template<class E, class N, class V, class M>
int AFBuilder< E, N, V, M >::myNumberOfArcFlags
protected

The number of arc flags per each edge.

Definition at line 166 of file AFBuilder.h.

Referenced by AFBuilder().

◆ myNumberOfLevels

template<class E, class N, class V, class M>
int AFBuilder< E, N, V, M >::myNumberOfLevels
protected

The number of levels of the k-d tree partition of the network.

Definition at line 164 of file AFBuilder.h.

Referenced by AFBuilder(), and sHARCLevel2PartitionLevel().


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