All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
GraphConverter.h
1 #pragma once
2 
3 #include "Types.h"
4 #include "Navigation.h"
5 #include "TiledGraphCell.h"
6 #include "VectorMath.h"
7 #include "MortonKey.h"
8 #include "ICallback.h"
9 #include "CubeMap.h"
10 #include "Point3Spline.h"
11 
12 #include <vector>
13 
14 namespace Eegeo
15 {
16  namespace Resources
17  {
18  namespace Roads
19  {
20  namespace Navigation
21  {
23  {
25  : Graph(nullptr)
26  {}
27 
29  Graphs::TiledGraphCell* pGraph,
30  const std::vector<Geometry::Point3Spline>& roadSplines
31  )
32  : Graph(pGraph)
33  , RoadSplines(roadSplines)
34  {}
35 
37  std::vector<Geometry::Point3Spline> RoadSplines;
38  };
39 
41  {
42  public:
43  static GraphConverter* Create();
44 
45  ~GraphConverter();
46 
47  GraphConverterResult Convert(
48  const Eegeo::Streaming::MortonKey& cellKey,
49  const Eegeo::dv3& cellOriginEcef,
50  const std::vector<NavigationGraphRoad*>& roads,
51  const std::vector<u16>::const_iterator roadIndicesJoiningCellBegin,
52  const std::vector<u16>::const_iterator roadIndicesJoiningCellEnd,
53  const std::vector<u16>::const_iterator roadIndicesLeavingCellBegin,
54  const std::vector<u16>::const_iterator roadIndicesLeavingCellEnd,
55  const bool ignoreInvalidTopology
56  );
57 
58  GraphConverterResult CreateEmpty(
59  const Eegeo::Streaming::MortonKey& cellKey,
60  const Eegeo::dv3& cellOriginEcef
61  );
62 
63  private:
64  GraphConverter(Graphs::TiledGraphBuilder* pTiledGraphBuilder);
65  Graphs::TiledGraphBuilder* m_pTiledGraphBuilder;
66  };
67  }
68  }
69  }
70 }