Added model class with the ability to hold multiple models.
This commit is contained in:
parent
1b82ef0556
commit
9fcc98fdf4
5 changed files with 42 additions and 4 deletions
|
|
@ -39,7 +39,7 @@ void Mesh::setupMesh() {
|
|||
glBindVertexArray(0);
|
||||
}
|
||||
|
||||
void Mesh::Draw(ShaderLoader &shader) {
|
||||
void Mesh::draw(ShaderLoader &shader) {
|
||||
unsigned int diffuseNr = 1;
|
||||
unsigned int specularNr = 1;
|
||||
for (unsigned int i = 0; i < textures.size(); i++) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public:
|
|||
std::vector<unsigned int> indices;
|
||||
std::vector<Texture> textures;
|
||||
|
||||
void Draw(ShaderLoader &shader);
|
||||
void draw(ShaderLoader &shader);
|
||||
|
||||
Mesh(std::vector<Vertex> vertices, std::vector<unsigned int> indices,
|
||||
std::vector<Texture> textures);
|
||||
|
|
|
|||
9
src/Model.cpp
Normal file
9
src/Model.cpp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#include "Model.h"
|
||||
|
||||
Model::Model(Mesh mesh) { this->meshes.push_back(mesh); }
|
||||
Model::Model(std::vector<Mesh> meshes) { this->meshes = meshes; }
|
||||
|
||||
void Model::draw(ShaderLoader &shader) {
|
||||
for (unsigned int i = 0; i < this->meshes.size(); i++)
|
||||
this->meshes[i].draw(shader);
|
||||
}
|
||||
19
src/Model.h
Normal file
19
src/Model.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#pragma once
|
||||
#include "Error.h"
|
||||
#include "Mesh.h"
|
||||
#include "ShaderLoader.h"
|
||||
#include <vector>
|
||||
|
||||
class Model {
|
||||
private:
|
||||
Error error = Error("Model");
|
||||
|
||||
std::vector<Mesh> meshes;
|
||||
|
||||
public:
|
||||
// Used to create a mesh out of a single mesh.
|
||||
Model(Mesh mesh);
|
||||
// Used to create a mesh out of multiple meshes.
|
||||
Model(std::vector<Mesh> meshes);
|
||||
void draw(ShaderLoader &shader);
|
||||
};
|
||||
14
src/main.cpp
14
src/main.cpp
|
|
@ -19,6 +19,7 @@
|
|||
#include "helpers/RootDir.h"
|
||||
// Objects
|
||||
#include "Mesh.h"
|
||||
#include "Model.h"
|
||||
#include <vector>
|
||||
|
||||
// Include error class
|
||||
|
|
@ -176,6 +177,13 @@ int main(int argc, char **argv) {
|
|||
|
||||
Mesh mesh2(mvertices2, mindices, mtextures);
|
||||
|
||||
std::vector<Mesh> modelMeshes;
|
||||
modelMeshes.push_back(mesh);
|
||||
modelMeshes.push_back(mesh2);
|
||||
Model model(modelMeshes);
|
||||
|
||||
Model model2(mesh);
|
||||
|
||||
// Mess with perspective
|
||||
// Projection matrix : 45° Field of View, 4:3 ratio, display range : 0.1
|
||||
// unit <-> 100 units
|
||||
|
|
@ -213,8 +221,10 @@ int main(int argc, char **argv) {
|
|||
shader.setMat4("MVP", camera.getMVP());
|
||||
|
||||
// Draw Meshes
|
||||
mesh.Draw(shader);
|
||||
mesh2.Draw(shader);
|
||||
// mesh.draw(shader);
|
||||
// mesh2.draw(shader);
|
||||
model2.draw(shader);
|
||||
model.draw(shader);
|
||||
|
||||
// Finally render everything
|
||||
shader.use();
|
||||
|
|
|
|||
Loading…
Reference in a new issue