All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IInteriorRenderablesRepository.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "Rendering.h"
7 #include <string>
8 #include <vector>
9 
10 namespace Eegeo
11 {
12  namespace Resources
13  {
14  namespace Interiors
15  {
16  namespace Materials
17  {
19  {
20  public:
22  typedef TRenderable* TRenderablePtr;
23  typedef std::vector<TRenderablePtr> TRenderables;
24  typedef const InteriorsFloorCell TFloorCell;
25  typedef TFloorCell* TFloorCellPtr;
26 
27  virtual ~IInteriorRenderablesRepository() {;}
28 
29  virtual void AddRenderablesForInterior(const std::string& interiorName,
30  TFloorCell& floorCell,
31  const TRenderables& renderables) = 0;
32 
33  virtual void RemoveRenderablesForInterior(const std::string& interiorName,
34  const TRenderables& renderables) = 0;
35 
36  virtual TRenderables GetRenderablesForInterior(const std::string& interiorName) = 0;
37 
38  virtual size_t GetRenderablesCountForInterior(const std::string& interiorName) = 0;
39 
40  virtual TFloorCell& GetCellForRenderable(TRenderable& renderable) = 0;
41  };
42  }
43  }
44  }
45 }