SparrowRenderer/meshbuilder.h
2015-12-15 15:44:07 +01:00

39 lines
1.1 KiB
C++

#ifndef MESHBUILDER_H
#define MESHBUILDER_H
#include "mesh.h"
class MeshBuilder : public Mesh
{
int currentGroup;
public:
void addTriangle(int i1, int i2, int i3);
void addPosition(float x, float y, float z);
void addPosition(const glm::vec3 &position);
void addNormal(float x, float y, float z);
void addNormal(const glm::vec3 &normal);
void addTexCoord(float u, float v);
void addTexCoord(const glm::vec2 &texCoord);
void addVertex(const glm::vec3 &position, const glm::vec3 &normal);
void addVertex(const glm::vec3 &position, const glm::vec2 &texCoord);
void addVertex(const glm::vec3 &position, const glm::vec3 &normal, const glm::vec2 &texCoord);
void addGroup(Material* myMaterial);
void setCurrentGroup(int groupId);
void setCurrentGroupMaterial(Material* myMaterial);
int getNbGroups();
// merge same vertices
void mergeVertices();
bool operator() (const int& vertId1, const int& vertId2) const;
// require positions and indices
void computeNormals();
// require normals and texCoord
void computeTangents();
};
#endif // MESHBUILDER_H