All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
NavigationGraphBuilder.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Navigation.h"
7 #include "Roads.h"
8 #include "CubeMap.h"
9 #include <vector>
10 
11 namespace Eegeo
12 {
13  namespace Resources
14  {
15  namespace Roads
16  {
17  namespace Navigation
18  {
20  {
21  public:
22  static const double RoadsHeightAboveGround;
23 
25  // navigationGraphRepository is not accessed by builder (potentially unsafely on worker thread), only used for construction-injection into NavigationGraph
26  NavigationGraphRepository* navigationGraphRepository,
27  bool createTransportTiledGraph
28  );
29 
31 
32  NavigationGraph* Build(const Eegeo::Space::CubeMap::CubeMapCellInfo& cellInfo, NavGraphData& navGraphData);
33  void Flush(NavigationGraph* navGraph);
34 
35  private:
36  NavigationGraphRepository* const m_navigationGraphRepository;
37  bool m_createTransportTiledGraph;
38  GraphConverter* const m_pGraphConverter;
39  };
40  }
41  }
42  }
43 }