21 Vertex(
const glm::vec3& pos,
const glm::vec3& norm,
const glm::vec2& tex)
25 Vertex(
const glm::vec3& pos) :
Vertex(pos, glm::vec3{0, 1, 0}, glm::vec2{0}) {}
29 tangent = glm::normalize(glm::cross(
normal, glm::vec3(0, 0, 1)));
31 tangent = glm::normalize(glm::cross(
normal, glm::vec3(1, 0, 0)));
36 Mesh(
const std::filesystem::path& path);
37 Mesh(std::vector<Vertex> vertices, std::vector<uint32_t> indices);
48 void unbind()
const { glBindVertexArray(0); }
63 static Mesh createTorus(
float innerRadius,
float outerRadius,
int radialSegments,
int tubularSegments);
75 void loadFromFile(
const std::filesystem::path& filepath);
Type
Definition Mesh.hpp:60
static Mesh createCone()
Definition Mesh.cpp:405
static Mesh createSphere()
Definition Mesh.cpp:488
static Mesh createPlane()
Definition Mesh.cpp:255
static Mesh createCubeMap()
Definition Mesh.cpp:355
static Mesh createCylinder()
Definition Mesh.cpp:373
static Mesh create(Type type)
Definition Mesh.cpp:229
static Mesh createCube()
Definition Mesh.cpp:268
static Mesh createTorus(float innerRadius, float outerRadius, int radialSegments, int tubularSegments)
Definition Mesh.cpp:437
GLuint getEBO() const
Definition Mesh.hpp:55
std::vector< uint32_t > _indices
Definition Mesh.hpp:79
Mesh & operator=(const Mesh &other)=delete
Mesh(const Mesh &other)=delete
void loadFromFile(const std::filesystem::path &filepath)
Definition Mesh.cpp:138
AABB getBoundingBox() const
Definition Mesh.cpp:119
void uploadToGPU()
Definition Mesh.cpp:195
GLuint _vbo
Definition Mesh.hpp:80
GLuint getVAO() const
Definition Mesh.hpp:53
GLsizei getMeshSize() const
Definition Mesh.hpp:56
void unbind() const
Definition Mesh.hpp:48
~Mesh()
Definition Mesh.cpp:83
void draw() const
Definition Mesh.cpp:113
void bind() const
Definition Mesh.hpp:47
GLsizei _meshSize
Definition Mesh.hpp:81
std::vector< Vertex > _vertices
Definition Mesh.hpp:78
GLuint _ebo
Definition Mesh.hpp:80
GLuint getVBO() const
Definition Mesh.hpp:54
GLuint _vao
Definition Mesh.hpp:80
glm::vec3 tangent
Definition Mesh.hpp:18
glm::vec3 normal
Definition Mesh.hpp:17
glm::vec3 position
Definition Mesh.hpp:16
Vertex(const glm::vec3 &pos)
Definition Mesh.hpp:25
void calculateTangent()
Definition Mesh.hpp:27
Vertex(const glm::vec3 &pos, const glm::vec3 &norm, const glm::vec2 &tex)
Definition Mesh.hpp:21
glm::vec2 texcoord
Definition Mesh.hpp:19