2023-12-17 03:29:08 -08:00
|
|
|
#pragma once
|
|
|
|
|
2023-12-17 15:00:08 -08:00
|
|
|
#include "EHS.h"
|
2023-12-18 02:13:20 -08:00
|
|
|
#include "Vec4.h"
|
2023-12-17 15:00:08 -08:00
|
|
|
#include "Vec3.h"
|
|
|
|
#include "Vec2.h"
|
|
|
|
#include "Color4.h"
|
2023-12-17 03:29:08 -08:00
|
|
|
|
2023-12-17 15:56:13 -08:00
|
|
|
namespace ehs
|
2023-12-17 03:29:08 -08:00
|
|
|
{
|
|
|
|
template<typename T = float>
|
|
|
|
class Vertex
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Vec3<T> pos;
|
|
|
|
Vec3<T> normal;
|
|
|
|
Vec2<T> uv;
|
|
|
|
Vec3<T> tan;
|
|
|
|
Vec3<T> bTan;
|
|
|
|
Vec4<UInt_8> bones;
|
|
|
|
Vec4<float> weights;
|
|
|
|
|
|
|
|
Vertex() = default;
|
|
|
|
|
|
|
|
Vertex(const Vec3<T>& pos)
|
|
|
|
: pos(pos), bones{0, 0, 0, 0}, weights{0.0f, 0.0f, 0.0f, 0.0f}
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Vertex(const Vec3<T>& pos, const Vec3<T>& normal)
|
|
|
|
: pos(pos), normal(normal), bones{0, 0, 0, 0}, weights{0.0f, 0.0f, 0.0f, 0.0f}
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Vertex(const Vec3<T>& pos, const Vec3<T>& normal, const Vec2<T>& 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<double> Vertex_d;
|
|
|
|
typedef Vertex<float> Vertex_f;
|
|
|
|
}
|