Changed up how resources import/export files. Added Model codecs.
This commit is contained in:
80
include/ehs/io/mdl/Mesh.h
Normal file
80
include/ehs/io/mdl/Mesh.h
Normal file
@@ -0,0 +1,80 @@
|
||||
#pragma once
|
||||
|
||||
#include "ehs/EHS.h"
|
||||
#include "ehs/Array.h"
|
||||
#include "Vertex.h"
|
||||
#include "ehs/BaseObj.h"
|
||||
|
||||
namespace ehs
|
||||
{
|
||||
class Mesh final : public BaseObj
|
||||
{
|
||||
protected:
|
||||
UInt_64 hashId;
|
||||
Str_8 id;
|
||||
Array<Vertex_f> vertices;
|
||||
Array<UInt_32> indices;
|
||||
|
||||
public:
|
||||
Mesh();
|
||||
|
||||
Mesh(Str_8 id, Array<Vertex_f> vertices, Array<UInt_32> indices);
|
||||
|
||||
Mesh(Str_8 id, Array<Vertex_f> vertices);
|
||||
|
||||
Mesh(Mesh&& mesh) noexcept;
|
||||
|
||||
Mesh(const Mesh& mesh);
|
||||
|
||||
Mesh& operator=(Mesh&& mesh) noexcept;
|
||||
|
||||
Mesh& operator=(const Mesh& mesh);
|
||||
|
||||
void Release();
|
||||
|
||||
UInt_64 GetHashId() const;
|
||||
|
||||
void SetId(Str_8 newId);
|
||||
|
||||
Str_8 GetId() const;
|
||||
|
||||
void SetVertices(const Array<Vertex_f>& newVertices);
|
||||
|
||||
const Array<Vertex_f>& GetVertices() const;
|
||||
|
||||
Array<Vertex_f>& GetVertices();
|
||||
|
||||
void SetIndices(const Array<UInt_32>& newIndices);
|
||||
|
||||
bool HasIndices() const;
|
||||
|
||||
const Array<UInt_32>& GetIndices() const;
|
||||
|
||||
Array<UInt_32>& GetIndices();
|
||||
|
||||
void Calculate();
|
||||
|
||||
private:
|
||||
static void Calculate(Vertex_f& vert1, Vertex_f& vert2, Vertex_f& vert3);
|
||||
};
|
||||
|
||||
const Mesh portraitGui("PortraitGui",
|
||||
{
|
||||
{{0.0f, 0.0f, 1.0f}, {0.0f, 0.0f, -1.0f}, {0.0f, 0.0f}},
|
||||
{{0.0f, 1.0f, 1.0f}, {0.0f, 0.0f, -1.0f}, {0.0f, 1.0f}},
|
||||
{{1.0f, 0.0f, 1.0f}, {0.0f, 0.0f, -1.0f}, {1.0f, 0.0f}},
|
||||
{{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, -1.0f}, {1.0f, 1.0f}}
|
||||
},
|
||||
{0, 1, 2, 3, 2, 1}
|
||||
);
|
||||
|
||||
const Mesh portrait("Portrait",
|
||||
{
|
||||
{{-0.5f, -0.5f, 0.0f}, {0.0f, 0.0f, -1.0f}, {0.0f, 0.0f}},
|
||||
{{-0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, -1.0f}, {0.0f, 1.0f}},
|
||||
{{0.5f, -0.5f, 0.0f}, {0.0f, 0.0f, -1.0f}, {1.0f, 0.0f}},
|
||||
{{0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, -1.0f}, {1.0f, 1.0f}}
|
||||
},
|
||||
{0, 1, 2, 3, 2, 1}
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user