move functions to mesh

This commit is contained in:
2017-10-29 14:28:00 +10:00
parent 1d22b7a1ab
commit 7e7b795fac
4 changed files with 196 additions and 156 deletions

30
src/Mesh.h Normal file
View File

@@ -0,0 +1,30 @@
#pragma once
#include <vector>
#include <ostream>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
void calculateNormals(const std::vector<glm::vec3> &vtx,
std::vector<glm::uvec3> &tri, std::vector<glm::vec3> &normals);
void moveToMean(std::vector<glm::vec3> &vtx);
void smooth(std::vector<glm::vec3> &vtx, const std::vector<glm::uvec3> &tri);
void saveAttrib(std::ostream &out, const char *prefix,
std::vector<glm::vec3> &elements);
void saveAttrib(std::ostream &out, const char *prefix,
std::vector<glm::vec2> &elements);
void saveFaces(std::ostream &out, const std::vector<glm::uvec3> &tris,
size_t attribs);
void calculateEdges(const std::vector<glm::vec3> &vtx,
std::vector<glm::uvec3> &tri, std::vector<glm::uvec4> &edges);
void computeTangentBasis(std::vector<glm::vec3> & vertices,
std::vector<glm::vec2> & uvs, std::vector<glm::vec3> & normals,
std::vector<glm::vec3> & tangents, std::vector<glm::vec3> & bitangents);