All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DebugInteriorsController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "ICallback.h"
7 #include "CallbackCollection.h"
8 #include "Labels.h"
9 #include "LabelLayer.h"
10 #include "LabelAnchorFilterModel.h"
11 
12 namespace Eegeo
13 {
14  namespace Debug
15  {
16  namespace Interiors
17  {
19  {
20  public:
22  Resources::Interiors::InteriorInteractionModel& interiorInteractionModel,
23  Resources::Interiors::InteriorTransitionModel& interiorTransitionModel,
24  Eegeo::Labels::ILabelAnchorFilterModel& labelHiddenFilterModel,
25  const Eegeo::Labels::LabelLayer::IdType interiorLabelLayerId );
27 
28  void ExitInterior();
29  void UpFloor();
30  void DownFloor();
31  void ToggleExpanded();
32  void FloorParamUp();
33  void FloorParamDown();
34  bool IsInteriorModeEnabled() const;
35  bool CanExpand() const;
36  void ToggleLabelFilter();
37  bool IsLabelFilterEnabled() const;
38 
39  void RegisterViewModelChangedCallback(Helpers::ICallback0& callback);
40  void UnRegisterViewModelChangedCallback(Helpers::ICallback0& callback);
41 
42 
43 
44  private:
45 
46  Resources::Interiors::InteriorSelectionModel& m_interiorSelectionModel;
47  Resources::Interiors::InteriorInteractionModel& m_interiorInteractionModel;
48  Resources::Interiors::InteriorTransitionModel& m_interiorTransitionModel;
49  Eegeo::Labels::ILabelAnchorFilterModel& m_labelAnchorFilterModel;
50  const Eegeo::Labels::LabelLayer::IdType m_labelLayerId;
51 
52  Helpers::TCallback0<DebugInteriorsController> m_interiorsStateChangedCallback;
53  Helpers::TCallback0<DebugInteriorsController> m_interiorsTransitionChangedCallback;
54  Helpers::TCallback0<DebugInteriorsController> m_interiorsInteractionStateChangedCallback;
55 
56 
57  Helpers::CallbackCollection0 m_viewModelChangedChangedCallbacks;
58 
60 
61  void OnInteriorsStateChanged();
62  void OnInteriorsTransitionChanged();
63  void OnInteriorsInteractionStateChanged();
64 
65  void NotifyViewModelChanged();
66 
67  bool LabelHiddenPredicate(const Eegeo::Labels::IAnchoredLabel& anchoredLabel) const;
68 
69  };
70  }
71  }
72 }