All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PODScene.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "POD.h"
7 #include <vector>
8 
9 namespace Eegeo
10 {
11  namespace IO
12  {
13  namespace POD
14  {
15  class PODScene
16  {
17  private:
18  std::vector<PODMesh*> m_podMeshes;
19  std::vector<PODNode*> m_podNodes;
20  std::vector<PODMaterial*> m_podMaterials;
21  std::vector<PODTexture*> m_podTextures;
22  u32 m_flags;
23  u32 m_numOfFrames;
24  u32 m_numMeshNodes;
25 
26  public:
27  PODScene();
28  ~PODScene();
29 
30  void AddMesh(PODMesh* podMesh);
31  void AddNode(PODNode* podNode);
32  void AddMaterial(PODMaterial* podMaterial);
33  void AddTexture(PODTexture* podTexture);
34  void SetFlags(u32 flags);
35  void SetNumOfFrames(u32 numOfFrames);
36  void SetNumMeshNodes(u32 numMeshNodes);
37 
38  int GetNumOfMeshes() const;
39  int GetNumOfNodes() const;
40  int GetNumOfMaterials() const;
41  int GetNumOfTextures() const;
42  const u32 GetNumMeshNodes() const;
43 
44  const PODMesh* GetMesh(u32 meshIndex) const;
45  const PODNode* GetNode(u32 nodeIndex) const;
46  const PODMaterial* GetMaterial(u32 materialIndex) const;
47  const PODTexture* GetTexture(u32 textureIndex) const;
48  u32 GetFlags() const;
49  u32 GetNumOfFrames() const;
50 
51  bool HasTexture(const u32 textureIndex) const;
52  };
53  }
54  }
55 }