All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IconMaterialSet.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "IMaterial.h"
7 #include <vector>
8 
9 
10 namespace Eegeo
11 {
12  namespace Icons
13  {
14  // TODO: Exactly the same as FontMaterialSet but without font properties.
16  {
17  public:
18  typedef std::vector<Rendering::Materials::IMaterial*> TMaterialVector;
19 
20  MaterialSet(const TMaterialVector& materials)
21  : m_materials(materials)
22  {
23  }
24 
25  ~MaterialSet()
26  {
27  for(TMaterialVector::iterator it = m_materials.begin(); it != m_materials.end(); ++it)
28  {
29  Eegeo_DELETE (*it);
30  }
31  m_materials.clear();
32  }
33 
34  const TMaterialVector& GetMaterials() const
35  {
36  return m_materials;
37  }
38 
39  int GetNumOfMaterials() const
40  {
41  return static_cast<int>(m_materials.size());
42  }
43 
44  Rendering::Materials::IMaterial& GetMaterial(int materialIndex) const
45  {
46  return *(m_materials.at(materialIndex));
47  }
48 
49  private:
50  TMaterialVector m_materials;
51 
52  };
53  }
54 }