All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorMarkerPickingService.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "IInteriorMarkerPickingService.h"
6 #include "Types.h"
7 #include "Labels.h"
8 #include "LabelLayer.h"
9 #include "DefaultGestureHandler.h"
10 
11 namespace Eegeo
12 {
13  namespace Resources
14  {
15  namespace Interiors
16  {
17  namespace Markers
18  {
19 
21  {
22  public:
24  const Labels::ILabelFilterModel& queryableLabelFilterModel,
25  Labels::LabelLayer::IdType interiorMarkerLabelLayerId,
26  const InteriorMarkerModelRepository& interiorMarkerModelRepository,
27  InteriorSelectionModel& interiorSelectionModel
28  );
29 
30  bool TryEnterInterior(const v2& touchTapPoint);
31  private:
32  bool CanAcceptTouch() const;
33 
34  Labels::ILabelPicker& m_labelPicker;
35  const Labels::ILabelFilterModel& m_queryableLabelFilterModel;
36  const Labels::LabelLayer::IdType m_interiorMarkerLabelLayerId;
37  const InteriorMarkerModelRepository& m_interiorMarkerModelRepository;
38  InteriorSelectionModel& m_interiorSelectionModel;
39 
40  };
41 
43  {
44  public:
46  : m_interiorMarkerPickingService(interiorMarkerPickingService)
47  {}
48 
49  bool OnTouchTap(const AppInterface::TapData& data)
50  {
51  return m_interiorMarkerPickingService.TryEnterInterior(data.point);
52  }
53  private:
54  IInteriorMarkerPickingService& m_interiorMarkerPickingService;
55  };
56  }
57  }
58  }
59 }