#pragma once #include "ehs/EHS.h" #include "ehs/Vec4.h" #include "ehs/Vec3.h" #include "ehs/Vec2.h" #include "ehs/Color4.h" namespace ehs { template class Vertex { public: Vec3 pos; Vec3 normal; Vec2 uv; Vec3 tan; Vec3 bTan; Vec4 bones; Vec4 weights; Vertex() = default; Vertex(const Vec3& pos) : pos(pos), bones{0, 0, 0, 0}, weights{0.0f, 0.0f, 0.0f, 0.0f} { } Vertex(const Vec3& pos, const Vec3& normal) : pos(pos), normal(normal), bones{0, 0, 0, 0}, weights{0.0f, 0.0f, 0.0f, 0.0f} { } Vertex(const Vec3& pos, const Vec3& normal, const Vec2& uv) : pos(pos), normal(normal), uv(uv), bones{0, 0, 0, 0}, weights{0.0f, 0.0f, 0.0f, 0.0f} { } Vertex(const Vertex& vert) : pos(vert.pos), normal(vert.normal), uv(vert.uv), bones(vert.bones), weights(vert.weights) { } Vertex& operator=(const Vertex& vert) = default; }; typedef Vertex Vertex_d; typedef Vertex Vertex_f; }