SUMO - Simulation of Urban MObility
IntermodalRouter< E, L, N, V, INTERNALROUTER > Class Template Reference

#include <IntermodalRouter.h>

Inheritance diagram for IntermodalRouter< E, L, N, V, INTERNALROUTER >:
Inheritance graph
Collaboration diagram for IntermodalRouter< E, L, N, V, INTERNALROUTER >:
Collaboration graph

Data Structures

struct  TripItem
 

Public Types

typedef double(* Operation) (const E *const, const IntermodalTrip< E, N, V > *const, double)
 Type of the function that is used to retrieve the edge effort. More...
 

Public Member Functions

void addAccess (const std::string &stopId, const E *stopEdge, const double pos)
 
void addSchedule (const SUMOVehicleParameter &pars, const std::vector< SUMOVehicleParameter::Stop > *addStops=0)
 
SUMOAbstractRouter< E, _IntermodalTrip > * clone ()
 
bool compute (const E *from, const E *to, double departPos, double arrivalPos, double speed, const V *const vehicle, const SVCPermissions modeSet, SUMOTime msTime, std::vector< TripItem > &into)
 Builds the route between the given edges using the minimum effort at the given time The definition of the effort depends on the wished routing scheme. More...
 
bool compute (const E *, const E *, const _IntermodalTrip *const, SUMOTime, std::vector< const E *> &)
 Builds the route between the given edges using the minimum effort at the given time The definition of the effort depends on the wished routing scheme. More...
 
void endQuery (int visits)
 
double getEffort (const E *const e, const IntermodalTrip< E, N, V > *const v, double t) const
 
 IntermodalRouter (CreateNetCallback callback)
 Constructor. More...
 
void prohibit (const std::vector< E *> &toProhibit)
 
double recomputeCosts (const std::vector< const E *> &, const _IntermodalTrip *const, SUMOTime) const
 
void setBulkMode (const bool mode)
 
void startQuery ()
 
virtual ~IntermodalRouter ()
 Destructor. More...
 

Protected Attributes

bool myBulkMode
 whether we are currently operating several route queries in a bulk More...
 
Operation myOperation
 The object's operation to perform. More...
 

Private Types

typedef AccessEdge< E, L, N, V > _AccessEdge
 
typedef IntermodalEdge< E, L, N, V > _IntermodalEdge
 
typedef IntermodalNetwork< E, L, N, V > _IntermodalNetwork
 
typedef IntermodalTrip< E, N, V > _IntermodalTrip
 
typedef PublicTransportEdge< E, L, N, V > _PTEdge
 
typedef void(* CreateNetCallback) (IntermodalRouter< E, L, N, V, INTERNALROUTER > &)
 

Private Member Functions

void addCarEdges (const std::vector< E *> &edges)
 
void createNet ()
 
_IntermodalEdgegetCarEdge (const E *e)
 Returns the associated car edge. More...
 
 IntermodalRouter (_IntermodalNetwork *net)
 
IntermodalRouteroperator= (const IntermodalRouter &s)
 Invalidated assignment operator. More...
 
int splitEdge (_IntermodalEdge *const toSplit, _IntermodalEdge *afterSplit, const double pos, _IntermodalEdge *const fwdConn, _IntermodalEdge *const backConn=0)
 

Private Attributes

std::map< _IntermodalEdge *, std::vector< _IntermodalEdge * > > myAccessSplits
 retrieve the splitted edges for the given "original" More...
 
const bool myAmClone
 
CreateNetCallback myCallback
 
std::map< const E *, _IntermodalEdge * > myCarLookup
 retrieve the car edge for the given input edge E More...
 
_IntermodalNetworkmyIntermodalNet
 
INTERNALROUTER * myInternalRouter
 
int myNumericalID
 
std::map< std::string, std::vector< _PTEdge * > > myPTLines
 retrieve the public transport edges for the given line More...
 
std::map< std::string, _IntermodalEdge * > myStopConnections
 retrieve the connecting edges for the given "bus" stop More...
 

Detailed Description

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
class IntermodalRouter< E, L, N, V, INTERNALROUTER >

The router for pedestrians (on a bidirectional network of sidewalks and crossings)

Definition at line 58 of file IntermodalRouter.h.

Member Typedef Documentation

◆ _AccessEdge

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
typedef AccessEdge<E, L, N, V> IntermodalRouter< E, L, N, V, INTERNALROUTER >::_AccessEdge
private

Definition at line 63 of file IntermodalRouter.h.

◆ _IntermodalEdge

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
typedef IntermodalEdge<E, L, N, V> IntermodalRouter< E, L, N, V, INTERNALROUTER >::_IntermodalEdge
private

Definition at line 61 of file IntermodalRouter.h.

◆ _IntermodalNetwork

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
typedef IntermodalNetwork<E, L, N, V> IntermodalRouter< E, L, N, V, INTERNALROUTER >::_IntermodalNetwork
private

Definition at line 64 of file IntermodalRouter.h.

◆ _IntermodalTrip

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
typedef IntermodalTrip<E, N, V> IntermodalRouter< E, L, N, V, INTERNALROUTER >::_IntermodalTrip
private

Definition at line 65 of file IntermodalRouter.h.

◆ _PTEdge

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
typedef PublicTransportEdge<E, L, N, V> IntermodalRouter< E, L, N, V, INTERNALROUTER >::_PTEdge
private

Definition at line 62 of file IntermodalRouter.h.

◆ CreateNetCallback

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
typedef void(* IntermodalRouter< E, L, N, V, INTERNALROUTER >::CreateNetCallback) (IntermodalRouter< E, L, N, V, INTERNALROUTER > &)
private

Definition at line 60 of file IntermodalRouter.h.

◆ Operation

typedef double(* SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::Operation) (const E *const, const IntermodalTrip< E, N, V > *const, double)
inherited

Type of the function that is used to retrieve the edge effort.

Definition at line 56 of file SUMOAbstractRouter.h.

Constructor & Destructor Documentation

◆ IntermodalRouter() [1/2]

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
IntermodalRouter< E, L, N, V, INTERNALROUTER >::IntermodalRouter ( CreateNetCallback  callback)
inline

Constructor.

Definition at line 76 of file IntermodalRouter.h.

◆ ~IntermodalRouter()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
virtual IntermodalRouter< E, L, N, V, INTERNALROUTER >::~IntermodalRouter ( )
inlinevirtual

Destructor.

Definition at line 81 of file IntermodalRouter.h.

◆ IntermodalRouter() [2/2]

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
IntermodalRouter< E, L, N, V, INTERNALROUTER >::IntermodalRouter ( _IntermodalNetwork net)
inlineprivate

Definition at line 285 of file IntermodalRouter.h.

Member Function Documentation

◆ addAccess()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
void IntermodalRouter< E, L, N, V, INTERNALROUTER >::addAccess ( const std::string &  stopId,
const E *  stopEdge,
const double  pos 
)
inline

Definition at line 93 of file IntermodalRouter.h.

Referenced by RONet::adaptIntermodalRouter().

◆ addCarEdges()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
void IntermodalRouter< E, L, N, V, INTERNALROUTER >::addCarEdges ( const std::vector< E *> &  edges)
inlineprivate

Definition at line 338 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::createNet().

◆ addSchedule()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
void IntermodalRouter< E, L, N, V, INTERNALROUTER >::addSchedule ( const SUMOVehicleParameter pars,
const std::vector< SUMOVehicleParameter::Stop > *  addStops = 0 
)
inline

Definition at line 139 of file IntermodalRouter.h.

Referenced by RONet::adaptIntermodalRouter().

◆ clone()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
SUMOAbstractRouter<E, _IntermodalTrip>* IntermodalRouter< E, L, N, V, INTERNALROUTER >::clone ( )
inlinevirtual

◆ compute() [1/2]

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
bool IntermodalRouter< E, L, N, V, INTERNALROUTER >::compute ( const E *  from,
const E *  to,
double  departPos,
double  arrivalPos,
double  speed,
const V *const  vehicle,
const SVCPermissions  modeSet,
SUMOTime  msTime,
std::vector< TripItem > &  into 
)
inline

Builds the route between the given edges using the minimum effort at the given time The definition of the effort depends on the wished routing scheme.

Definition at line 214 of file IntermodalRouter.h.

Referenced by ROPerson::computeIntermodal().

◆ compute() [2/2]

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
bool IntermodalRouter< E, L, N, V, INTERNALROUTER >::compute ( const E *  ,
const E *  ,
const _IntermodalTrip const,
SUMOTime  ,
std::vector< const E *> &   
)
inlinevirtual

Builds the route between the given edges using the minimum effort at the given time The definition of the effort depends on the wished routing scheme.

Implements SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >.

Definition at line 265 of file IntermodalRouter.h.

◆ createNet()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
void IntermodalRouter< E, L, N, V, INTERNALROUTER >::createNet ( )
inlineprivate

◆ endQuery()

◆ getCarEdge()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
_IntermodalEdge* IntermodalRouter< E, L, N, V, INTERNALROUTER >::getCarEdge ( const E *  e)
inlineprivate

Returns the associated car edge.

Definition at line 373 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addCarEdges(), and IntermodalRouter< E, L, N, V >::prohibit().

◆ getEffort()

double SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::getEffort ( const E *const  e,
const IntermodalTrip< E, N, V > *const  v,
double  t 
) const
inlineinherited

Definition at line 87 of file SUMOAbstractRouter.h.

References SUMOAbstractRouter< E, V >::myOperation.

◆ operator=()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
IntermodalRouter& IntermodalRouter< E, L, N, V, INTERNALROUTER >::operator= ( const IntermodalRouter< E, L, N, V, INTERNALROUTER > &  s)
private

Invalidated assignment operator.

◆ prohibit()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
void IntermodalRouter< E, L, N, V, INTERNALROUTER >::prohibit ( const std::vector< E *> &  toProhibit)
inline

Definition at line 274 of file IntermodalRouter.h.

◆ recomputeCosts()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
double IntermodalRouter< E, L, N, V, INTERNALROUTER >::recomputeCosts ( const std::vector< const E *> &  ,
const _IntermodalTrip const,
SUMOTime   
) const
inlinevirtual

◆ setBulkMode()

void SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::setBulkMode ( const bool  mode)
inlineinherited

Definition at line 101 of file SUMOAbstractRouter.h.

References SUMOAbstractRouter< E, V >::myBulkMode.

◆ splitEdge()

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
int IntermodalRouter< E, L, N, V, INTERNALROUTER >::splitEdge ( _IntermodalEdge *const  toSplit,
_IntermodalEdge afterSplit,
const double  pos,
_IntermodalEdge *const  fwdConn,
_IntermodalEdge *const  backConn = 0 
)
inlineprivate

Definition at line 290 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addAccess().

◆ startQuery()

Field Documentation

◆ myAccessSplits

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
std::map<_IntermodalEdge*, std::vector<_IntermodalEdge*> > IntermodalRouter< E, L, N, V, INTERNALROUTER >::myAccessSplits
private

retrieve the splitted edges for the given "original"

Definition at line 398 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addAccess(), and IntermodalRouter< E, L, N, V >::splitEdge().

◆ myAmClone

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
const bool IntermodalRouter< E, L, N, V, INTERNALROUTER >::myAmClone
private

◆ myBulkMode

bool SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::myBulkMode
protectedinherited

whether we are currently operating several route queries in a bulk

Definition at line 110 of file SUMOAbstractRouter.h.

◆ myCallback

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
CreateNetCallback IntermodalRouter< E, L, N, V, INTERNALROUTER >::myCallback
private

Definition at line 386 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::createNet().

◆ myCarLookup

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
std::map<const E*, _IntermodalEdge*> IntermodalRouter< E, L, N, V, INTERNALROUTER >::myCarLookup
private

retrieve the car edge for the given input edge E

Definition at line 389 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addAccess(), IntermodalRouter< E, L, N, V >::addCarEdges(), and IntermodalRouter< E, L, N, V >::getCarEdge().

◆ myIntermodalNet

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
_IntermodalNetwork* IntermodalRouter< E, L, N, V, INTERNALROUTER >::myIntermodalNet
private

◆ myInternalRouter

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
INTERNALROUTER* IntermodalRouter< E, L, N, V, INTERNALROUTER >::myInternalRouter
private

◆ myNumericalID

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
int IntermodalRouter< E, L, N, V, INTERNALROUTER >::myNumericalID
private

◆ myOperation

Operation SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::myOperation
protectedinherited

The object's operation to perform.

Definition at line 107 of file SUMOAbstractRouter.h.

◆ myPTLines

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
std::map<std::string, std::vector<_PTEdge*> > IntermodalRouter< E, L, N, V, INTERNALROUTER >::myPTLines
private

retrieve the public transport edges for the given line

Definition at line 392 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addSchedule().

◆ myStopConnections

template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouterTT<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
std::map<std::string, _IntermodalEdge*> IntermodalRouter< E, L, N, V, INTERNALROUTER >::myStopConnections
private

retrieve the connecting edges for the given "bus" stop

Definition at line 395 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addAccess(), and IntermodalRouter< E, L, N, V >::addSchedule().


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