aboutsummaryrefslogtreecommitdiff
path: root/src/brussel.engine/Mesh.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/brussel.engine/Mesh.hpp')
-rw-r--r--src/brussel.engine/Mesh.hpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/brussel.engine/Mesh.hpp b/src/brussel.engine/Mesh.hpp
new file mode 100644
index 0000000..f86fd55
--- /dev/null
+++ b/src/brussel.engine/Mesh.hpp
@@ -0,0 +1,45 @@
+#pragma once
+
+#include "Color.hpp"
+#include "VertexIndex.hpp"
+#include "PodVector.hpp"
+#include "RcPtr.hpp"
+
+#include <cstddef>
+#include <cstdint>
+#include <glm/glm.hpp>
+#include <memory>
+
+struct StandardVertexExtra {
+ float u, v;
+ uint8_t r, g, b, a;
+};
+
+class StandardCpuMeshData {
+public:
+ PodVector<glm::vec3> vertPositions;
+ PodVector<StandardVertexExtra> vertExtra;
+ PodVector<uint32_t> index;
+ size_t vertexCount;
+ size_t triangleCount;
+};
+
+class StandardCpuMesh {
+// private:
+// StandardCpuMeshData* mData = nullptr;
+// RcPtr<GpuMesh> mGpuMesh;
+
+// public:
+// StandardCpuMesh();
+// ~StandardCpuMesh();
+
+// GpuVertexBuffer* GetPosBuffer() const;
+// GpuVertexBuffer* GetExtraBuffer() const;
+// GpuMesh* GetGpuMesh() const { return mGpuMesh.Get(); }
+
+// void CreateCpuData();
+// bool UpdatePositions(glm::vec3* pos, size_t count, size_t startVertIndex);
+// bool UpdateColors(RgbaColor* color, size_t count, size_t starVertIndex);
+// bool UpdateNormals(glm::vec2* normals, size_t count, size_t startVertIndex);
+// bool UpdateIndices(uint32_t* indices, size_t count, size_t startVertIndex);
+};