All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PlaceNameModel.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Streaming.h"
7 #include "Space.h"
8 #include "MortonKey.h"
9 #include "LatLongAltitude.h"
10 #include "PlaceNames.h"
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace PlaceNames
18  {
20  {
21  public:
22 
23  PlaceNameModel(const Streaming::MortonKey& mortonKey,
24  const Space::LatLongAltitude& location,
25  const std::string& name,
26  const std::string& category,
27  float priority,
28  PlaceNameView* placeNameRenderable);
29  ~PlaceNameModel();
30 
31  PlaceNameView& GetView() const;
32  const std::string& GetCategory() const { return m_category; }
33 
34  const std::string& GetName() const { return m_name; }
35  float GetPriority() const { return m_priority; }
36 
37  const bool IsEnabled() const { return m_enabled; }
38  void SetEnabled(bool enabled) { m_enabled = enabled; }
39 
40  void UnscheduleForRemoval();
41  void ScheduleForRemoval();
42  bool IsScheduledForRemoval() const;
43 
44  const Streaming::MortonKey& GetKey() const { return m_mortonKey; }
45  const Space::LatLongAltitude& GetLocation() const { return m_location; }
46 
47  private:
48  Streaming::MortonKey m_mortonKey;
49  Space::LatLongAltitude m_location;
50  std::string m_name;
51  const std::string m_category;
52  float m_priority;
53 
54  PlaceNameView* m_pView;
55 
56  bool m_enabled;
57  bool m_scheduledForDeletion;
58  };
59  }
60  }
61 }