#ifndef POLYGUN_RENDERER_VERTEX_HPP
#define POLYGUN_RENDERER_VERTEX_HPP

#include <glm/glm.hpp>

namespace polygun::renderer {
	struct Vertex {
		Vertex() = default;
		Vertex(float x, float y, float z) : m_position(glm::vec3(x, y, z)) {}
		Vertex(glm::vec3 position) : m_position(position), m_normal(0), m_tex_coords(0) {}
		Vertex(glm::vec3 position, glm::vec3 normal) : m_position(position), m_normal(normal), m_tex_coords(0) {}
		Vertex(glm::vec3 position, glm::vec3 normal, glm::vec2 tex_coord) : m_position(position), m_normal(normal), m_tex_coords(tex_coord) {}

		// position
		glm::vec3 m_position = glm::vec3(0.0f);
		// normal
		glm::vec3 m_normal = glm::vec3(0.0f);
		// coords
		glm::vec2 m_tex_coords = glm::vec2(0.0f);
	};
}
#endif // POLYGUN_RENDERER_VERTEX_HPP
