【发布时间】:2015-11-27 21:07:19
【问题描述】:
我正在尝试将 ASSIMP 库中的 FindSceneCenter 函数应用于从文件导入的 aiScene* 对象。
// Read file via ASSIMP
Assimp::Importer importer;
const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_FlipUVs);
// Check for errors
if(!scene || scene->mFlags == AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) // if is Not Zero
{
cout << "ERROR::ASSIMP:: " << importer.GetErrorString() << endl;
return;
}
aiVector3D out, min, max;
Assimp::FindSceneCenter(scene, out, min, max); // Problem here
问题是这个函数需要[aiScene*] 对象作为参数,但是导入的场景是[const aiScene*] 并且是Assimp::Importer 类的属性。有一个函数 Assimp::Importer::GetOrphanedScene() 可以返回导入的场景并从 Importer 释放所有权,但我不知道之后如何正确删除这个场景(文档说释放后它会成为我的头疼)。
【问题讨论】:
-
函数是否修改了你传递指针的对象?
-
我不这么认为。我应该尝试复制此函数的粘贴源并将原型从 *aiScene 更改为 const *aiScene