|
void | addAccess (const std::string &stopId, const E *stopEdge, const double pos, const SumoXMLTag category) |
| Adds access edges for stopping places to the intermodal network. More...
|
|
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 |
|
bool | hasNet () const |
|
| IntermodalRouter (CreateNetCallback callback, int carWalkTransfer) |
| 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 () |
|
void | writeNetwork (OutputDevice &dev) |
|
void | writeWeights (OutputDevice &dev) |
|
virtual | ~IntermodalRouter () |
| Destructor. More...
|
|
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<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 59 of file IntermodalRouter.h.
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
where mode changes are possible
Enumerator |
---|
PARKING_AREAS | parking areas
|
PT_STOPS | public transport stops and access
|
ALL_JUNCTIONS | junctions with edges allowing the additional mode
|
Definition at line 79 of file IntermodalRouter.h.
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<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, |
|
|
const SumoXMLTag |
category |
|
) |
| |
|
inline |
Adds access edges for stopping places to the intermodal network.
This method creates an intermodal stop edge to represent the stoppping place (if not present yet) and determines the edges which need to be splitted (usually the forward and the backward pedestrian edges and the car edge) and calls splitEdge for the actual split and the connection of the stop edge with access edges. After that it adds and adapts the depart and arrival connectors to the new edge(s).
- Parameters
-
[in] | stopId | The id of the stop to add |
[in] | stopEdge | The edge on which the stop is located |
[in] | pos | The relative position on the edge where the stop is located |
[in] | category | The type of stop |
Definition at line 125 of file IntermodalRouter.h.
Referenced by RONet::adaptIntermodalRouter(), and MSNet::adaptIntermodalRouter().
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<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 |
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<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 |
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
Definition at line 487 of file IntermodalRouter.h.
Referenced by IntermodalRouter< E, L, N, V >::clone(), IntermodalRouter< E, L, N, V >::compute(), IntermodalRouter< E, L, N, V >::prohibit(), IntermodalRouter< E, L, N, V >::writeNetwork(), and IntermodalRouter< E, L, N, V >::writeWeights().
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
Invalidated assignment operator.
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<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 |
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
Splits an edge (if necessary) and connects it to a stopping edge.
This method determines whether an edge needs to be split at the given position (if there is not already a split nearby) and connects the stop edge via new access edges.
- Parameters
-
[in] | toSplit | The first edge in the split list |
[in] | afterSplit | The edge to add if a split is performed |
[in] | pos | The relative position on the edge where the stop is located |
[in] | stopConn | The stop edge to connect to |
[in] | forward | whether we are aplitting a forward edge (backward edges get different names) |
[in] | addExit | whether we can just enter the stop or exit as well (cars should not exit yet) |
- Returns
- the index in the split list where the new edge has been added (if there was already a split near the position -1)
Definition at line 397 of file IntermodalRouter.h.
Referenced by IntermodalRouter< E, L, N, V >::addAccess().
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
retrieve the car edge for the given input edge E
Definition at line 515 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 = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
Definition at line 509 of file IntermodalRouter.h.
Referenced by IntermodalRouter< E, L, N, V >::addAccess(), IntermodalRouter< E, L, N, V >::addCarEdges(), IntermodalRouter< E, L, N, V >::addSchedule(), IntermodalRouter< E, L, N, V >::clone(), IntermodalRouter< E, L, N, V >::compute(), IntermodalRouter< E, L, N, V >::createNet(), IntermodalRouter< E, L, N, V >::hasNet(), IntermodalRouter< E, L, N, V >::prohibit(), IntermodalRouter< E, L, N, V >::splitEdge(), IntermodalRouter< E, L, N, V >::writeNetwork(), IntermodalRouter< E, L, N, V >::writeWeights(), and IntermodalRouter< E, L, N, V >::~IntermodalRouter().
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<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 |
Definition at line 508 of file IntermodalRouter.h.
Referenced by IntermodalRouter< E, L, N, V >::compute(), IntermodalRouter< E, L, N, V >::createNet(), IntermodalRouter< E, L, N, V >::prohibit(), and IntermodalRouter< E, L, N, V >::~IntermodalRouter().
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
Definition at line 510 of file IntermodalRouter.h.
Referenced by IntermodalRouter< E, L, N, V >::addAccess(), IntermodalRouter< E, L, N, V >::addCarEdges(), IntermodalRouter< E, L, N, V >::addSchedule(), IntermodalRouter< E, L, N, V >::createNet(), and IntermodalRouter< E, L, N, V >::splitEdge().
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>
template<class E, class L, class N, class V, class INTERNALROUTER = DijkstraRouter<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V>, prohibited_withPermissions<IntermodalEdge<E, L, N, V>, IntermodalTrip<E, N, V> > >>