31 lines
950 B
C++
31 lines
950 B
C++
#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);
|