Add assimp-based mesh import
This commit is contained in:
@@ -11,6 +11,12 @@ void Mesh::Release() {
|
||||
m_vertexData.Clear();
|
||||
m_indexData.Clear();
|
||||
m_sections.Clear();
|
||||
m_vertexCount = 0;
|
||||
m_vertexStride = 0;
|
||||
m_attributes = VertexAttribute::Position;
|
||||
m_indexCount = 0;
|
||||
m_use32BitIndex = false;
|
||||
UpdateMemorySize();
|
||||
SetInvalid();
|
||||
}
|
||||
|
||||
@@ -21,9 +27,11 @@ void Mesh::SetVertexData(const void* data, size_t size, Core::uint32 vertexCount
|
||||
m_attributes = attributes;
|
||||
|
||||
m_vertexData.Resize(size);
|
||||
std::memcpy(m_vertexData.Data(), data, size);
|
||||
|
||||
m_memorySize += size;
|
||||
if (size > 0 && data != nullptr) {
|
||||
std::memcpy(m_vertexData.Data(), data, size);
|
||||
}
|
||||
|
||||
UpdateMemorySize();
|
||||
}
|
||||
|
||||
void Mesh::SetIndexData(const void* data, size_t size, Core::uint32 indexCount, bool use32Bit) {
|
||||
@@ -31,13 +39,22 @@ void Mesh::SetIndexData(const void* data, size_t size, Core::uint32 indexCount,
|
||||
m_use32BitIndex = use32Bit;
|
||||
|
||||
m_indexData.Resize(size);
|
||||
std::memcpy(m_indexData.Data(), data, size);
|
||||
|
||||
m_memorySize += size;
|
||||
if (size > 0 && data != nullptr) {
|
||||
std::memcpy(m_indexData.Data(), data, size);
|
||||
}
|
||||
|
||||
UpdateMemorySize();
|
||||
}
|
||||
|
||||
void Mesh::AddSection(const MeshSection& section) {
|
||||
m_sections.PushBack(section);
|
||||
UpdateMemorySize();
|
||||
}
|
||||
|
||||
void Mesh::UpdateMemorySize() {
|
||||
m_memorySize = m_vertexData.Size() +
|
||||
m_indexData.Size() +
|
||||
m_sections.Size() * sizeof(MeshSection);
|
||||
}
|
||||
|
||||
} // namespace Resources
|
||||
|
||||
Reference in New Issue
Block a user