//------------------------------------------ bool ofxAssimpModelLoader::loadModel(string modelName, bool optimize){ file.open(modelName, ofFile::ReadOnly, true); // Since it may be a binary file we should read it in binary -Ed if(!file.exists()) { ofLogVerbose("ofxAssimpModelLoader") << "loadModel(): model does not exist: \"" << modelName << "\""; return false; } ofLogVerbose("ofxAssimpModelLoader") << "loadModel(): loading \"" << file.getFileName() << "\" from \"" << file.getEnclosingDirectory() << "\""; if(scene.get() != nullptr){ clear(); // we reset the shared_ptr explicitly here, to force the old // aiScene to be deleted **before** a new aiScene is created. scene.reset(); } // sets various properties & flags to a default preference unsigned int flags = initImportProperties(optimize); // loads scene from file scene = shared_ptr<const aiScene>(aiImportFileExWithProperties(file.getAbsolutePath().c_str(), flags, NULL, store.get()), aiReleaseImport); bool bOk = processScene(); return bOk; }
bool ofxAssimpModelLoader::loadModel(ofBuffer & buffer, bool optimize, const char * extension){ ofLogVerbose("ofxAssimpModelLoader") << "loadModel(): loading from memory buffer \"." << extension << "\""; if(scene != NULL){ clear(); } // sets various properties & flags to a default preference unsigned int flags = initImportProperties(optimize); // loads scene from memory buffer - note this will not work for multipart files (obj, md3, etc) scene = shared_ptr<const aiScene>(aiImportFileFromMemoryWithProperties(buffer.getBinaryBuffer(), buffer.size(), flags, extension, store.get()), aiReleaseImport); bool bOk = processScene(); return bOk; }
bool ofxAssimpModelLoader::loadModel(ofBuffer & buffer, bool optimize, const char * extension){ ofLogVerbose("ofxAssimpModelLoader") << "loadModel(): loading from memory buffer \"." << extension << "\""; if(scene.get() != nullptr){ clear(); // we reset the shared_ptr explicitly here, to force the old // aiScene to be deleted **before** a new aiScene is created. scene.reset(); } // sets various properties & flags to a default preference unsigned int flags = initImportProperties(optimize); // loads scene from memory buffer - note this will not work for multipart files (obj, md3, etc) scene = shared_ptr<const aiScene>(aiImportFileFromMemoryWithProperties(buffer.getData(), buffer.size(), flags, extension, store.get()), aiReleaseImport); bool bOk = processScene(); return bOk; }