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 SUMOReal(* Operation) (const E *const, const IntermodalTrip< E, N, V > *const, SUMOReal)
 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 SUMOReal pos)
 
void addSchedule (const SUMOVehicleParameter &pars)
 
SUMOAbstractRouter< E, _IntermodalTrip > * clone ()
 
bool compute (const E *from, const E *to, SUMOReal departPos, SUMOReal arrivalPos, SUMOReal 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)
 
SUMOReal getEffort (const E *const e, const IntermodalTrip< E, N, V > *const v, SUMOReal t) const
 
 IntermodalRouter (CreateNetCallback callback)
 Constructor. More...
 
void prohibit (const std::vector< E * > &toProhibit)
 
SUMOReal recomputeCosts (const std::vector< const E * > &, const _IntermodalTrip *const, SUMOTime) const
 
void setBulkMode (const bool mode)
 
int splitEdge (_IntermodalEdge *const toSplit, _IntermodalEdge *afterSplit, const SUMOReal pos, _IntermodalEdge *const fwdConn, _IntermodalEdge *const backConn=0)
 
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...
 

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

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.

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.

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.

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.

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.

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.

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

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

Definition at line 56 of file SUMOAbstractRouter.h.

Constructor & Destructor Documentation

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.

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.

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 314 of file IntermodalRouter.h.

Member Function Documentation

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 SUMOReal  pos 
)
inline

Definition at line 141 of file IntermodalRouter.h.

Referenced by RONet::adaptIntermodalRouter().

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

Referenced by IntermodalRouter< E, L, N, V >::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 >::addSchedule ( const SUMOVehicleParameter pars)
inline

Definition at line 185 of file IntermodalRouter.h.

Referenced by RONet::adaptIntermodalRouter().

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
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,
SUMOReal  departPos,
SUMOReal  arrivalPos,
SUMOReal  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 243 of file IntermodalRouter.h.

Referenced by ROPerson::computeIntermodal().

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 294 of file IntermodalRouter.h.

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
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 354 of file IntermodalRouter.h.

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

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

Definition at line 87 of file SUMOAbstractRouter.h.

References SUMOAbstractRouter< E, V >::myOperation.

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.

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 303 of file IntermodalRouter.h.

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> > >>
SUMOReal IntermodalRouter< E, L, N, V, INTERNALROUTER >::recomputeCosts ( const std::vector< const E * > &  ,
const _IntermodalTrip const,
SUMOTime   
) const
inlinevirtual
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.

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 SUMOReal  pos,
_IntermodalEdge *const  fwdConn,
_IntermodalEdge *const  backConn = 0 
)
inline

Definition at line 93 of file IntermodalRouter.h.

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

Field Documentation

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 379 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::addAccess(), and IntermodalRouter< E, L, N, V >::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> > >>
const bool IntermodalRouter< E, L, N, V, INTERNALROUTER >::myAmClone
private
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.

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 367 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::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> > >>
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 370 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().

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
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
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
Operation SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::myOperation
protectedinherited

The object's operation to perform.

Definition at line 107 of file SUMOAbstractRouter.h.

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 373 of file IntermodalRouter.h.

Referenced by IntermodalRouter< E, L, N, V >::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> > >>
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 376 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: