All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IInteriorsHighlightRepository.h
1 // Copyright eeGeo Ltd (2012-2017), All Rights Reserved
2 
3 #pragma once
4 
5 #include "VectorMath.h"
6 
7 #include <string>
8 #include <vector>
9 #include "Interiors.h"
10 #include "ICallback.h"
11 
12 namespace Eegeo
13 {
14  namespace Resources
15  {
16  namespace Interiors
17  {
18  namespace Highlights
19  {
21  {
23  : Color(v4::Zero())
24  , BorderThickness(0.f)
25  {}
26 
27  InteriorHighlightStyle(const v4& color, const float borderThickness)
28  : Color(color)
29  , BorderThickness(borderThickness)
30  {}
31 
32  v4 Color;
33  float BorderThickness;
34  };
35 
37  {
38  public:
40 
41  virtual bool TryGetHighlightFor(const InteriorsHighlightKey& entityKey, InteriorHighlightStyle& out_highlightStyle) const = 0;
42 
43  virtual void AssignHighlightFor(const InteriorsHighlightKey& entityKey, const InteriorHighlightStyle& highlightStyle) = 0;
44  virtual void RemoveHighlightFor(const InteriorsHighlightKey& entityKey) = 0;
45 
46  virtual void AssignHighlightsFor(const std::vector<InteriorsHighlightKey>& entityKeys, const InteriorHighlightStyle& highlightStyle) = 0;
47  virtual void RemoveHighlightsFor(const std::vector<InteriorsHighlightKey>& entityKeys) = 0;
48 
49  virtual std::vector<InteriorsHighlightKey> GetAllHighlightKeys() const = 0;
50 
51  virtual void RegisterOnColorChangedCallback(HighlightChangedCallback& highlightChangedCallback) = 0;
52  virtual void UnregisterOnColorChangedCallback(HighlightChangedCallback& highlightChangedCallback) = 0;
53 
54  virtual ~IInteriorsHighlightRepository() {}
55  };
56  }
57  }
58  }
59 }