Невозможно экспортировать модели с помощью Assimp с помощью класса exporter

Я использую библиотеку Assimp для загрузки моделей в мое приложение IOS. но для некоторых больших моделей время загрузки слишком велико для мобильного приложения.

учитывая время процесса преобразования. я решил преобразовать свои модели с помощью инструмента до времени выполнения.

Моя главная цель — записать эту сцену в файл.

У меня очень простой опыт работы с C ++.
Сначала я попробовал класс assimp :: expoerter.

Я выполнил ассимпийскую библиотеку с настройками экспорта.

Но когда я пытаюсь использовать метод экспорта, я получаю это сообщение об ошибке.

No matching member function for call to 'Export'

захват ошибок

метод есть, но я не могу его использовать.

scene = (aiScene*) aiImportFile([[openPanel filename] cStringUsingEncoding:[NSString defaultCStringEncoding]], aiPostProccesFlags | aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_PreTransformVertices | 0 );

if (scene) {

NSString *pPath = [openPanel filename];
pPath =[NSString stringWithFormat:@"%@%@", pPath, @"_new"];
NSLog(@"New file Path : %@", pPath);

Assimp::Exporter *exporter = new Assimp::Exporter();
exportFormatDesc = exporter->GetExportFormatDescription(0);

exporter->Export(scene, exportFormatDesc->id, pPath);

const aiExportDataBlob *blob = exporter->ExportToBlob(scene, exportFormatDesc->id);
size_t blobSize = blob->size;
aiString blobName = blob->name;

}

затем прочитав Assimp :: Exporter Class Reference дает мне идею использования aiExportDataBlob создать файл.

ExportToBlob, который возвращает связанный список буферов памяти (blob), каждый из которых ссылается на один выходной файл (в большинстве случаев, конечно, будет только один выходной файл, но эта дополнительная сложность необходима, поскольку Assimp стремится поддерживать широкий спектр форматов файлов). ).

ExportToBlob особенно полезен, если вы собираетесь работать с данными в памяти.

const aiExportDataBlob *blob = exporter->ExportToBlob(scene, exportFormatDesc->id);
size_t blobSize = blob->size;
aiString blobName = blob->name;

Но я понятия не имею, чтобы написать это капля в файл.

Любой совет или помощь приветствуются.

0

Решение

Вы проходите NSString * где функция ожидает const char *, Я не знаком с Objective-C, но я думаю, что вы хотите [pPath UTF8String] чтобы получить указатель на массив символов в стиле C из NSString,

(Кроме того, вы слили Exporter: C ++ не имеет сборки мусора. Я уверен, что вы не хотите создавать его с new но, если вам нужно по какой-то причине, не забудьте delete это когда ты закончишь).

2

Другие решения

Других решений пока нет …