RE::MeshData RE::FileSystem::ProcessAssimpScene(const aiNode *node, const aiScene *scene)
{
    MeshData data;

    XMMATRIX T = XMLoadFloat4x4(reinterpret_cast<const DirectX::XMFLOAT4X4 *>(&node->mTransformation));
    for (uint32_t i = 0; i < node->mNumMeshes; ++i)
    {
        size_t meshIndex = static_cast<size_t>(node->mMeshes[i]);
        MeshData tempData = ProcessAssimpMesh(scene->mMeshes[meshIndex], T);
        data.Append(tempData);
    }

    for (uint32_t i = 0; i < node->mNumChildren; ++i)
    {
      MeshData tempData = ProcessAssimpScene(node->mChildren[i], scene);
      data.Append(tempData);
    }

    return data;
}
MeshData ResourceManager::AssimpProcessScene(aiNode* node, const aiScene* scene)
{
	MeshData data;

	for (UINT i = 0; i < node->mNumMeshes; i++)
	{
		aiMesh* mesh = scene->mMeshes[i];
		data.Append(AssimpProcessMesh(mesh, scene));
	}

	for (UINT i = 0; i < node->mNumChildren; i++)
	{
		AssimpProcessScene(node->mChildren[i], scene);
	}

	return data;
}