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