65 Mesh(std::shared_ptr<VertexBuffer> vertexBuffer, std::shared_ptr<IndexBuffer> indexBuffer,
const std::string& meshName =
"NoName",
67 Mesh(
const std::string& filePath);
69 virtual void ProcessMesh(aiMesh* meshToProcess);
79 static std::shared_ptr<Mesh>
ProcessTheRawMesh(aiMesh* meshToProcess,
const std::string& mName =
"NoName");
93 static void DealVertexIndexBufferData(
float*& vertexData, uint32_t& vertexDataSize, uint32_t*& indexData, uint32_t& indexDataLength,
96 void ProcessNode(aiNode* nodeToProcess,
const aiScene* theScene);
108 std::shared_ptr<VertexBuffer> GetVertexBuffer()
const {
return m_VertexBuffer; }
109 std::shared_ptr<IndexBuffer> GetIndexBuffer()
const {
return m_IndexBuffer; }
111 void SetVertexBuffer(std::shared_ptr<VertexBuffer> vBuffer) { m_VertexBuffer = vBuffer; }
112 void SetIndexBuffer(std::shared_ptr<IndexBuffer> iBuffer) { m_IndexBuffer = iBuffer; }
115 static float LayoutElementToAttributeValue(
unsigned int vertexNumber, uint32_t counter, aiMesh* meshToProcess,
const BufferElement& layoutElem);
116 static void InitializeAttributeDictionary();
119 std::shared_ptr<VertexBuffer> m_VertexBuffer;
120 std::shared_ptr<IndexBuffer> m_IndexBuffer;
122 std::string m_MeshName;
125 static std::shared_ptr<std::unordered_map<std::string, MeshAttribute>> m_NameToAttributeDictionary;
static void DealVertexIndexBufferData(float *&vertexData, uint32_t &vertexDataSize, uint32_t *&indexData, uint32_t &indexDataLength, aiMesh *meshToProcess, BufferLayout &buffLayout)
Routine for gauging the vertexbuffer data.
Definition Mesh.cpp:127