All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsAggregateMaterialFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "IInteriorsMaterialFactory.h"
7 #include "IInteriorsMaterialPrioritizedFactory.h"
8 #include "Types.h"
9 #include "Rendering.h"
10 #include <vector>
11 
12 namespace Eegeo
13 {
14  namespace Resources
15  {
16  namespace Interiors
17  {
19  {
20  public:
21  InteriorsAggregateMaterialFactory(std::vector<IInteriorsMaterialFactory*> interiorsMaterialFactories);
22 
23  virtual Eegeo::Rendering::Materials::IMaterial* TryCreate(const std::string& interiorName,
24  const InteriorMaterialData& interiorMaterialData);
25 
26  virtual void AddHigherPriorityFactory(IInteriorsMaterialFactory& factory);
27 
28  private:
29  std::vector<IInteriorsMaterialFactory*> m_interiorsMaterialFactories;
30  };
31  }
32  }
33 }