All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PropService.h
1 #pragma once
2 
3 #include "Interiors.h"
4 #include "PropModel.h"
5 #include <vector>
6 
7 
8 namespace Eegeo
9 {
10  namespace Resources
11  {
12  namespace Interiors
13  {
15  {
16  public:
17 
18  virtual ~IPropService() {}
19 
20  virtual IProp::IdType Create(const PropCreateParams& propCreateParams) = 0;
21 
22  virtual std::vector<IProp::IdType> Create(const std::vector<PropCreateParams>& propCreateParams) = 0;
23 
24  virtual void Destroy(const IProp::IdType propId) = 0;
25 
26  virtual void Destroy(const std::vector<IProp::IdType>& propIds) = 0;
27 
28  virtual bool Exists(const IProp::IdType propId) const = 0;
29 
30  virtual IProp& Get(const IProp::IdType propId) const = 0;
31 
32  virtual void SetAutomaticIndoorMapPopulationEnabled(bool enabled) = 0;
33 
34  virtual bool IsAutomaticIndoorMapPopulationEnabled() const = 0;
35  };
36 
38  {
39  public:
40 
42  PropRenderableService& propRenderableService,
43  PropModelFactory& propModelFactory,
44  PropModelRepository& propModelRepository,
45  bool enableEntityQueries);
46 
47  ~PropService();
48 
49  IProp::IdType Create(const PropCreateParams& propCreateParams) override;
50 
51  std::vector<IProp::IdType> Create(const std::vector<PropCreateParams>& propCreateParams) override;
52 
53  void Destroy(const IProp::IdType propId) override;
54 
55  void Destroy(const std::vector<IProp::IdType>& propIds) override;
56 
57  bool Exists(const IProp::IdType propId) const override;
58 
59  IProp& Get(const IProp::IdType propId) const override;
60 
61  void SetAutomaticIndoorMapPopulationEnabled(bool enabled) override;
62 
63  bool IsAutomaticIndoorMapPopulationEnabled() const override;
64 
65  private:
66 
67  PropRenderableService& m_propRenderableService;
68  PropModelFactory& m_propModelFactory;
69  PropModelRepository& m_propModelRepository;
70  bool m_enableEntityQueries;
71  };
72  }
73  }
74 }