All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
LabelOptionsModel.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "ILabelOptionsModel.h"
7 #include "IModelObserver.h"
8 #include "Labels.h"
9 
10 
11 namespace Eegeo
12 {
13  namespace Labels
14  {
16  {
17  public:
18  LabelOptionsModel(bool debugDrawEnabled,
19  OcclusionResolverMode::Type occlusionMode,
20  float constraintRadiusScale,
21  float fadeDurationScale,
22  const std::string& fontName);
23 
24  bool IsDebugDrawEnabled() const;
25 
26  OcclusionResolverMode::Type GetOcclusionMode() const;
27 
28  float GetConstraintRadiusScale() const;
29 
30  float GetFadeDurationScale() const;
31 
32  std::string GetFontName() const;
33 
34  bool IsDebugIdentifyStyleEnabled() const;
35 
36  std::string GetDebugIdentifyStyleName() const;
37 
38  void SetDebugDraw(bool enabled);
39 
40  void SetOcclusionMode(OcclusionResolverMode::Type occlusionMode);
41 
42  void SetConstraintRadiusScale(float constraintRadiusScale);
43 
44  void SetFadeDurationScale(float fadeDuration);
45 
46  void SetFontName(const std::string& fontName);
47 
48  void SetDebugIdentifyStyle(const std::string& styleName);
49 
50  void RegisterChangedCallback(CallbackType& callback);
51 
52  void UnregisterChangedCallback(CallbackType& callback);
53 
54  private:
55  void NotifyChanged() const;
56 
57  bool m_debugDrawEnabled;
58  OcclusionResolverMode::Type m_occlusionMode;
59  float m_constraintRadiusScale;
60  float m_fadeDurationScale;
61  std::string m_fontName;
62  std::string m_debugIdentifyStyle;
63 
64  Helpers::CallbackCollection0 m_callbacks;
65  };
66  }
67 }