Aether3D
Game Engine
Model.hpp
1 #ifndef MODEL_H
2 #define MODEL_H
3 
4 #ifndef INCLUDE_STRING_H
5 # include <string>
6 # define INCLUDE_STRING_H
7 #endif
8 #ifndef INCLUDE_VECTOR_H
9 # include <vector>
10 # define INCLUDE_VECTOR_H
11 #endif
12 #ifndef SCENEGRAPHNODE_H
13 # include "SceneGraphNode.hpp"
14 #endif
15 
16 class Material;
17 class Quaternion;
18 struct Vec3;
19 
21 class Model : public SceneGraphNode
22 {
23  public:
24  virtual ~Model() {}
25 
30  virtual void GetAABB( Vec3& outMin, Vec3& outMax ) const = 0;
31 
33  virtual std::vector< std::string > GetMeshNames() const = 0;
34 
41  virtual std::vector< std::string > GetMeshJointNames( const std::string& meshName ) const = 0;
42 
44  virtual const std::string& GetPath() const = 0;
45 
52  virtual void ApplyAnimation( int firstKeyFrame, int lastKeyFrame ) = 0;
53 
60  virtual Material* GetMeshMaterial( const char* meshName ) = 0;
61 
63  virtual void EnableWireframe( bool enable ) = 0;
64 
71  virtual void SetMaterialForMesh( Material* material, const std::string& meshName ) = 0;
72 
79  virtual void SetMaterialForMeshSubstring( Material* material, const std::string& meshNameSubstring ) = 0;
80 };
81 #endif
Model::GetMeshJointNames
virtual std::vector< std::string > GetMeshJointNames(const std::string &meshName) const =0
Material
Stores material properties for Mesh. Their names/values are directly mapped into shader uniforms.
Definition: Material.hpp:19
Model::EnableWireframe
virtual void EnableWireframe(bool enable)=0
Model::ApplyAnimation
virtual void ApplyAnimation(int firstKeyFrame, int lastKeyFrame)=0
Vec3
3-component vector.
Definition: Vec3.hpp:22
Model::GetAABB
virtual void GetAABB(Vec3 &outMin, Vec3 &outMax) const =0
Model::GetMeshNames
virtual std::vector< std::string > GetMeshNames() const =0
Quaternion
Stores an orientation.
Definition: Quaternion.hpp:17
Model::GetPath
virtual const std::string & GetPath() const =0
Model
Contains meshes loaded from Aether3D's own .ae3d file format.
Definition: Model.hpp:21
Model::GetMeshMaterial
virtual Material * GetMeshMaterial(const char *meshName)=0
Model::SetMaterialForMeshSubstring
virtual void SetMaterialForMeshSubstring(Material *material, const std::string &meshNameSubstring)=0
SceneGraphNode
Scene Graph Node. Models, Lights and Cameras are derived from this class.
Definition: SceneGraphNode.hpp:28
Model::SetMaterialForMesh
virtual void SetMaterialForMesh(Material *material, const std::string &meshName)=0