SUMO - Simulation of Urban MObility
CHRouter< E, V, PF >::Unidirectional Class Reference

#include <CHRouter.h>

Inheritance diagram for CHRouter< E, V, PF >::Unidirectional:
Inheritance graph
Collaboration diagram for CHRouter< E, V, PF >::Unidirectional:
Collaboration graph

Data Structures

class  EdgeInfoByTTComparator
 

Public Types

typedef std::vector< typename CHBuilder< E, V >::Connection > ConnectionVector
 

Public Member Functions

bool found (const E *edge) const
 
EdgeInfogetEdgeInfo (const E *const edge)
 
const EdgeInfogetEdgeInfo (const E *const edge) const
 
void init (const E *const start, const V *const vehicle)
 
bool step (const std::vector< ConnectionVector > &uplinks, const Unidirectional &otherSearch, double &minTTSeen, Meeting &meeting)
 explore on element from the frontier,update minTTSeen and meeting if an EdgeInfo found by the otherSearch is encountered returns whether stepping should continue More...
 
 Unidirectional (const std::vector< E *> &edges, bool forward)
 Constructor. More...
 

Private Attributes

bool myAmForward
 the role of this search More...
 
EdgeInfoByTTComparator myComparator
 
std::vector< EdgeInfomyEdgeInfos
 The container of edge information. More...
 
std::set< const E * > myFound
 the set of visited (settled) Edges More...
 
std::vector< EdgeInfo * > myFrontier
 the min edge heap More...
 
const V * myVehicle
 

Detailed Description

template<class E, class V, class PF>
class CHRouter< E, V, PF >::Unidirectional

class for searching in one direction

Definition at line 116 of file CHRouter.h.

Member Typedef Documentation

◆ ConnectionVector

template<class E, class V, class PF>
typedef std::vector<typename CHBuilder<E, V>::Connection> CHRouter< E, V, PF >::Unidirectional::ConnectionVector

Definition at line 174 of file CHRouter.h.

Constructor & Destructor Documentation

◆ Unidirectional()

template<class E, class V, class PF>
CHRouter< E, V, PF >::Unidirectional::Unidirectional ( const std::vector< E *> &  edges,
bool  forward 
)
inline

Constructor.

Definition at line 119 of file CHRouter.h.

References CHRouter< E, V, PF >::EdgeInfo::EdgeInfo().

Member Function Documentation

◆ found()

template<class E, class V, class PF>
bool CHRouter< E, V, PF >::Unidirectional::found ( const E *  edge) const
inline

Definition at line 127 of file CHRouter.h.

Referenced by CHRouter< E, V, PF >::Unidirectional::step().

◆ getEdgeInfo() [1/2]

template<class E, class V, class PF>
EdgeInfo* CHRouter< E, V, PF >::Unidirectional::getEdgeInfo ( const E *const  edge)
inline

Definition at line 131 of file CHRouter.h.

Referenced by CHRouter< E, V, PF >::Unidirectional::step().

◆ getEdgeInfo() [2/2]

template<class E, class V, class PF>
const EdgeInfo* CHRouter< E, V, PF >::Unidirectional::getEdgeInfo ( const E *const  edge) const
inline

Definition at line 135 of file CHRouter.h.

◆ init()

template<class E, class V, class PF>
void CHRouter< E, V, PF >::Unidirectional::init ( const E *const  start,
const V *const  vehicle 
)
inline

◆ step()

template<class E, class V, class PF>
bool CHRouter< E, V, PF >::Unidirectional::step ( const std::vector< ConnectionVector > &  uplinks,
const Unidirectional otherSearch,
double &  minTTSeen,
Meeting meeting 
)
inline

explore on element from the frontier,update minTTSeen and meeting if an EdgeInfo found by the otherSearch is encountered returns whether stepping should continue

Definition at line 179 of file CHRouter.h.

References CHRouter< E, V, PF >::EdgeInfo::edge, CHRouter< E, V, PF >::Unidirectional::found(), CHRouter< E, V, PF >::Unidirectional::getEdgeInfo(), max, CHRouter< E, V, PF >::EdgeInfo::prev, CHRouter< E, V, PF >::EdgeInfo::traveltime, and CHRouter< E, V, PF >::EdgeInfo::visited.

Referenced by CHRouter< E, V, PF >::compute().

Field Documentation

◆ myAmForward

template<class E, class V, class PF>
bool CHRouter< E, V, PF >::Unidirectional::myAmForward
private

the role of this search

Definition at line 247 of file CHRouter.h.

◆ myComparator

template<class E, class V, class PF>
EdgeInfoByTTComparator CHRouter< E, V, PF >::Unidirectional::myComparator
private

Definition at line 255 of file CHRouter.h.

◆ myEdgeInfos

template<class E, class V, class PF>
std::vector<EdgeInfo> CHRouter< E, V, PF >::Unidirectional::myEdgeInfos
private

The container of edge information.

Definition at line 253 of file CHRouter.h.

◆ myFound

template<class E, class V, class PF>
std::set<const E*> CHRouter< E, V, PF >::Unidirectional::myFound
private

the set of visited (settled) Edges

Definition at line 251 of file CHRouter.h.

◆ myFrontier

template<class E, class V, class PF>
std::vector<EdgeInfo*> CHRouter< E, V, PF >::Unidirectional::myFrontier
private

the min edge heap

Definition at line 249 of file CHRouter.h.

◆ myVehicle

template<class E, class V, class PF>
const V* CHRouter< E, V, PF >::Unidirectional::myVehicle
private

Definition at line 257 of file CHRouter.h.


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