Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cross_mwm_router.hpp « routing - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: b35a7538456d5eccfe5b7c2361609a98d2804e59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#pragma once

#include "osrm_engine.hpp"
#include "router.hpp"
#include "routing_mapping.h"

#include "std/string.hpp"
#include "std/vector.hpp"

namespace routing
{
/*!
 * \brief The RoutePathCross struct contains information neaded to describe path inside single map.
 */
struct RoutePathCross
{
  FeatureGraphNode startNode; /**< start graph node representation */
  FeatureGraphNode finalNode; /**< end graph node representation */

  RoutePathCross(NodeID const startNode, NodeID const finalNode, string const & name)
      : startNode(startNode, true /* isStartNode */, name),
        finalNode(finalNode, false /* isStartNode*/, name)
  {
  }
};

using TCheckedPath = vector<RoutePathCross>;

/*!
 * \brief CalculateCrossMwmPath function for calculating path through several maps.
 * \param startGraphNodes The vector of starting routing graph nodes.
 * \param finalGraphNodes The vector of final routing graph nodes.
 * \param route Storage for the result records about crossing maps.
 * \param indexManager Manager for getting indexes of new countries.
 * \param RoutingVisualizerFn Debug visualization function.
 * \return NoError if the path exists, error code otherwise.
 */
IRouter::ResultCode CalculateCrossMwmPath(TRoutingNodes const & startGraphNodes,
                                          TRoutingNodes const & finalGraphNodes,
                                          RoutingIndexManager & indexManager,
                                          my::Cancellable const & cancellable,
                                          TRoutingVisualizerFn const & routingVisualizer,
                                          TCheckedPath & route);
}  // namespace routing