Anvil Engine
Loading...
Searching...
No Matches
AModel.h
Go to the documentation of this file.
1#pragma once
2#include "ACore.h"
3#include "AMesh.h"
4#include "AShader.h"
5#include <string>
6#include <vector>
7
9{
10 public:
11 AModel() = default;
12
14 {
15 for (auto* mesh : m_meshes)
16 {
17 delete mesh;
18 }
19 }
20
21 void Draw()
22 {
23 for (auto* mesh : m_meshes)
24 {
25 mesh->Draw();
26 }
27 }
28
29 int LoadFromFile(const std::string& path);
30 void AddMesh(AMesh* mesh)
31 {
32 m_meshes.push_back(mesh);
33 }
34
35 const std::vector<AMesh*>& GetMeshes() const
36 {
37 return m_meshes;
38 }
39 AMesh* GetMesh(size_t index)
40 {
41 return m_meshes[index];
42 }
43
44 private:
45 std::vector<AMesh*> m_meshes;
46};
#define ANVIL_API
Definition ACore.h:6
Represents a mesh object in the ANVIL engine with vertices, indices, and texture support.
Definition AMesh.h:19
void Draw()
Definition AModel.h:21
~AModel()
Definition AModel.h:13
AModel()=default
const std::vector< AMesh * > & GetMeshes() const
Definition AModel.h:35
AMesh * GetMesh(size_t index)
Definition AModel.h:39
void AddMesh(AMesh *mesh)
Definition AModel.h:30