All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FeatureInteractionModule.h
1 #pragma once
2 
3 #include "FeatureInteraction.h"
4 #include "Types.h"
5 #include "Modules.h"
6 #include "BuildingHighlights.h"
7 #include "Collision.h"
8 #include "Helpers.h"
9 #include "Positioning.h"
10 #include "EegeoRootDeclarations.h"
11 #include "InteriorHighlightsModule.h"
12 #include "FeatureInteractionConfiguration.h"
13 
14 #include <vector>
15 
16 namespace Eegeo
17 {
18  namespace FeatureInteraction
19  {
21  {
22  public:
23  static FeatureInteractionConfiguration DefaultConfig();
24 
25  static FeatureInteractionModule* Create(
26  const FeatureInteractionConfiguration& featureInteractionConfig,
27  Eegeo::Modules::IPlatformAbstractionModule& platformAbstractionModule,
29  Eegeo::Modules::Core::DebugRenderingModule& debugRenderingModule,
30  Eegeo::Collision::AggregateCollisionBvhProvider& aggregateCollisionBvhProvider,
31  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
32  const Modules::Map::Layers::BuildingModelModule& buildingModelModule,
33  const Modules::Map::Layers::BuildingStreamingModule& buildingStreamingModule,
34  const Modules::Map::CoverageTreeModule& coverageTreeModule,
35  Modules::ISceneBuilderModule& sceneBuilderModule,
36  Positioning::PositioningModule& positioningModule,
37  const Camera::MapCamera::MapCameraModule& mapCameraModule,
38  const Eegeo::Modules::Map::Layers::InteriorsModelModule& interiorsModelModule,
39  const Modules::Map::Layers::InteriorsPresentationModule& interiorsPresentationModule,
40  const Eegeo::Modules::Map::Layers::TerrainModelModule& terrainModelModule
41  );
42 
43  Collision::CollisionModule& GetCollisionModule() const;
44  Modules::CollisionVisualizationModule& GetCollisionVisualizationModule() const;
45  Modules::BuildingFootprintsModule& GetBuildingFootprintsModule() const;
46  BuildingHighlights::BuildingHighlightModule& GetBuildingHighlightModule() const;
47  Resources::Interiors::Highlights::InteriorHighlightsModule& GetInteriorHighlightsModule() const;
48 
50 
51  void Update(const Eegeo::EegeoUpdateParameters& updateParameters);
52 
53  private:
54 
56  Collision::CollisionModule* pCollisionModule,
57  Modules::CollisionVisualizationModule* pCollisionVisualizationModule,
58  Modules::BuildingFootprintsModule* pBuildingFootprintsModule,
59  BuildingHighlights::BuildingHighlightModule* pBuildingHighlightModule,
61  );
62 
63  Collision::CollisionModule* const m_pCollisionModule;
64  Modules::CollisionVisualizationModule* const m_pCollisionVisualizationModule;
65  Modules::BuildingFootprintsModule* const m_pBuildingFootprintsModule;
66  BuildingHighlights::BuildingHighlightModule* const m_pBuildingHighlightModule;
67  Resources::Interiors::Highlights::InteriorHighlightsModule* const m_pInteriorsHighlightModule;
68 
69  };
70  }
71 }