Chira Engine
A customizable MIT-licensed game engine.
MeshDataBuilder.h
1 #pragma once
2 
3 #include <render/mesh/MeshData.h>
4 #include <math/Axis.h>
5 
6 namespace chira {
7 
8 class MeshDataBuilder : public MeshData {
9 public:
11 
12  void addTriangle(Vertex v1, Vertex v2, Vertex v3, bool addDuplicate = false);
14  void addSquare(Vertex v1, Vertex v2, Vertex v3, Vertex v4, bool addDuplicate = false);
15  void addSquare(Vertex center, glm::vec2 size, SignedAxis normal, float offset = 0, bool addDuplicate = false);
16  void addCube(Vertex center, glm::vec3 size, bool visibleOutside = true, bool addDuplicate = false);
17  void update();
19  void clear();
20 
21 protected:
22  Index currentIndex = 0;
25  void addVertex(Vertex vertex, bool addDuplicate = false);
26 };
27 
28 } // namespace chira
void addSquare(Vertex v1, Vertex v2, Vertex v3, Vertex v4, bool addDuplicate=false)
Vertex v4 forms a face with vertex v1 and v3.
void clear()
Does not call update().
void addVertex(Vertex vertex, bool addDuplicate=false)
Pass true to addDuplicate if you don't want to scan the entire vertex vector to calculate the index.