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

MWMRouter+RouteManager.mm « Routing « Core « Maps « iphone - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 79cc6c93da02c561f0b3a88bc4db5963dd828136 (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
45
46
47
48
49
50
#import "MWMRouter.h"

#include "Framework.h"

@interface MWMRouter ()

@property(nonatomic) uint32_t routeManagerTransactionId;

+ (MWMRouter *)router;

@end

@implementation MWMRouter (RouteManager)

+ (void)openRouteManagerTransaction
{
  auto router = [MWMRouter router];
  router.routeManagerTransactionId =
      GetFramework().GetRoutingManager().OpenRoutePointsTransaction();
}

+ (void)applyRouteManagerTransaction
{
  auto router = [MWMRouter router];
  if (router.routeManagerTransactionId == RoutingManager::InvalidRoutePointsTransactionId())
    return;
  GetFramework().GetRoutingManager().ApplyRoutePointsTransaction(router.routeManagerTransactionId);
  router.routeManagerTransactionId = RoutingManager::InvalidRoutePointsTransactionId();
}

+ (void)cancelRouteManagerTransaction
{
  auto router = [MWMRouter router];
  if (router.routeManagerTransactionId == RoutingManager::InvalidRoutePointsTransactionId())
    return;
  auto & rm = GetFramework().GetRoutingManager();
  rm.CancelRoutePointsTransaction(router.routeManagerTransactionId);
  router.routeManagerTransactionId = RoutingManager::InvalidRoutePointsTransactionId();
  rm.CancelPreviewMode();
}

+ (void)movePointAtIndex:(NSInteger)index toIndex:(NSInteger)newIndex
{
  NSAssert(index != newIndex, @"Route manager moves point to its' current position.");
  auto & rm = GetFramework().GetRoutingManager();
  rm.MoveRoutePoint(index, newIndex);
  rm.UpdatePreviewMode();
}

@end