All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MarkersModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 #include "Types.h"
7 #include "Markers.h"
8 #include "Labels.h"
9 #include "Modules.h"
10 #include "Icons.h"
11 #include "Positioning.h"
12 #include "Rendering.h"
13 #include "IFileIO.h"
14 #include "ICallback.h"
15 #include "Config.h"
16 #include "MarkersModuleConfiguration.h"
17 #include "Input.h"
18 
19 namespace Eegeo
20 {
21  namespace Markers
22  {
24  {
25  public:
26  static MarkersModuleConfiguration DefaultConfig();
27 
28  static MarkersModule* Create(Labels::LabelsModule& labelsModule,
29  Modules::Core::FontsModule& fontsModule,
30  Icons::IconsModule& iconsModule,
31  Positioning::PositioningModule& positioningModule,
32  Rendering::EnvironmentFlatteningService& environmentFlatteningService,
33  Modules::Map::Layers::InteriorsPresentationModule& interiorsPresentationModule,
34  const Eegeo::Markers::MarkersModuleConfiguration& markersModuleConfiguration);
35 
36  ~MarkersModule();
37 
38  void Update(float dt);
39 
40  IMarkerService& GetMarkerService() const;
41 
42  IMarkerPickedEvent& GetMarkerPickedEvent() const;
43 
44  Input::IGestureHandler& GetMarkerPickingGestureHandler() const;
45 
46  private:
47  MarkersModule(IMarkerModelIdGenerator* pMarkerModelIdGenerator,
48  IMarkerModelFactory* pMarkerModelFactory,
49  IMarkerModelRepository* pMarkerModelRepository,
50  LabelToMarkerModelRepository* pLabelToMarkerModelRepository,
51  IMarkerService* pMarkerService,
52  MarkerController* pMarkerController,
53  MarkerHideLabelFilter* pMarkerHideLabelFilter,
54  Labels::LabelModelSource* pOutdoorMarkersLabelModelSource,
55  Labels::LabelModelSource* pIndoorMarkersLabelModelSource,
56  MarkerLabelModelSourceController* pMarkerLabelModelSourceController,
57  IMarkerCategoryService* pMarkerCategoryService,
58  IMarkerPicker* pMarkerPicker,
59  MarkerPickingGestureHandler* pMarkerPickingGestureHandler,
60  MarkerHiddenChangedEvent* pMarkerHiddenChangedEvent,
61  IMarkerPickedEvent* pMarkerPickedEvent
62  );
63 
64 
65  IMarkerModelIdGenerator* m_pMarkerModelIdGenerator;
66  IMarkerModelFactory* m_pMarkerModelFactory;
67  IMarkerModelRepository* m_pMarkerModelRepository;
68  LabelToMarkerModelRepository* m_pLabelToMarkerModelRepository;
69  IMarkerService* m_pMarkerService;
70  MarkerController* m_pMarkerController;
71  MarkerHideLabelFilter* m_pMarkerHideLabelFilter;
72  Labels::LabelModelSource* m_pOutdoorMarkersLabelModelSource;
73  Labels::LabelModelSource* m_pIndoorMarkersLabelModelSource;
74  MarkerLabelModelSourceController* m_pMarkerLabelModelSourceController;
75  IMarkerCategoryService* m_pMarkerCategoryService;
76  IMarkerPicker* m_pMarkerPicker;
77  MarkerPickingGestureHandler* m_pMarkerPickingGestureHandler;
78  MarkerHiddenChangedEvent* m_pMarkerHiddenChangedEvent;
79  IMarkerPickedEvent* m_pMarkerPickedEvent;
80  };
81  }
82 }
83