#pragma once #include "Color.hpp" #include "VertexIndex.hpp" #include "PodVector.hpp" #include "RcPtr.hpp" #include #include #include #include struct StandardVertexExtra { float u, v; uint8_t r, g, b, a; }; class StandardCpuMeshData { public: PodVector vertPositions; PodVector vertExtra; PodVector index; size_t vertexCount; size_t triangleCount; }; class StandardCpuMesh { // private: // StandardCpuMeshData* mData = nullptr; // RcPtr 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); };