#pragma once #include #include #include #include typedef std::vector vec3v_t; typedef std::vector vec2v_t; typedef std::vector uvec3v_t; typedef std::vector uvec4v_t; void calculateNormals(const vec3v_t &vtx, uvec3v_t &tri, vec3v_t &normals); void findEdges(const vec3v_t &vtx, uvec3v_t &tri, uvec4v_t &edges); void moveToMean(vec3v_t &vtx); void smooth(vec3v_t &vtx, const uvec3v_t &tri); void saveAttrib(std::ostream &out, const char *prefix, vec3v_t &elements); void saveAttrib(std::ostream &out, const char *prefix, vec2v_t &elements); void saveFaces(std::ostream &out, const uvec3v_t &tris, size_t attribs); void computeTangentBasis(vec3v_t & vertices, vec2v_t & uvs, vec3v_t & normals, vec3v_t & tangents, vec3v_t & bitangents);