2020-04-15 02:03:56 +02:00
|
|
|
#pragma once
|
2023-10-24 15:01:09 +02:00
|
|
|
#include "Asset/MaterialInstanceAsset.h"
|
|
|
|
|
#include "VertexData.h"
|
2020-04-15 02:03:56 +02:00
|
|
|
|
|
|
|
|
namespace Seele
|
|
|
|
|
{
|
|
|
|
|
class Mesh
|
|
|
|
|
{
|
|
|
|
|
public:
|
2023-10-08 21:07:45 +02:00
|
|
|
Mesh();
|
2020-04-15 02:03:56 +02:00
|
|
|
~Mesh();
|
2020-05-05 01:51:13 +02:00
|
|
|
|
2023-10-24 15:01:09 +02:00
|
|
|
VertexData* vertexData;
|
|
|
|
|
MeshId id;
|
2023-11-01 13:38:49 +01:00
|
|
|
uint64 vertexCount;
|
|
|
|
|
PMaterialInstance referencedMaterial;
|
|
|
|
|
Array<Meshlet> meshlets;
|
2023-11-05 10:36:01 +01:00
|
|
|
void save(ArchiveBuffer& buffer) const;
|
2023-11-01 13:38:49 +01:00
|
|
|
void load(ArchiveBuffer& buffer);
|
2020-08-06 00:54:43 +02:00
|
|
|
private:
|
2020-04-15 02:03:56 +02:00
|
|
|
};
|
2021-04-01 16:40:14 +02:00
|
|
|
DEFINE_REF(Mesh)
|
2023-11-05 10:36:01 +01:00
|
|
|
namespace Serialization
|
|
|
|
|
{
|
|
|
|
|
template<>
|
|
|
|
|
static void save(ArchiveBuffer& buffer, const OMesh& ptr)
|
|
|
|
|
{
|
|
|
|
|
ptr->save(buffer);
|
|
|
|
|
}
|
|
|
|
|
template<>
|
|
|
|
|
static void load(ArchiveBuffer& buffer, OMesh& ptr)
|
|
|
|
|
{
|
|
|
|
|
ptr = new Mesh();
|
|
|
|
|
ptr->load(buffer);
|
|
|
|
|
}
|
|
|
|
|
} // namespace Serialization
|
2020-05-05 01:51:13 +02:00
|
|
|
} // namespace Seele
|