All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RouteViewGeometryFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Routes.h"
6 #include "EcefTangentBasis.h"
7 #include "RouteViewGeometryFactoryConfig.h"
8 #include "Types.h"
9 #include <vector>
10 
11 namespace Eegeo
12 {
13  namespace Routes
14  {
15  namespace View
16  {
18  {
19  public:
20  virtual ~IRouteViewGeometryFactory() {;}
21 
22  virtual void CreateGeometry(const Streaming::MortonKey& cellKey,
23  const bool wasFittingAttempted,
24  const std::vector<LocalRouteVertex>& vertices,
25  std::vector<RouteRenderVertex>& outVertices,
26  std::vector<u16>& outIndices) = 0;
27  };
28 
30  {
31  public:
33 
34  virtual void CreateGeometry(
35  const Streaming::MortonKey& cellKey,
36  const bool wasFittingAttempted,
37  const std::vector<LocalRouteVertex>& vertices,
38  std::vector<RouteRenderVertex>& outVertices,
39  std::vector<u16>& outIndices);
40  private:
41  const RouteViewGeometryFactoryConfig m_config;
42  };
43 
44 
46  {
47  public:
49 
50  virtual void CreateGeometry(const Streaming::MortonKey& cellKey,
51  const bool wasFittingAttempted,
52  const std::vector<LocalRouteVertex>& vertices,
53  std::vector<RouteRenderVertex>& outVertices,
54  std::vector<u16>& outIndices);
55  private:
56  const RouteViewGeometryFactoryConfig m_config;
57  };
58  }
59  }
60 }