bool AnyModelsSystem::canLoad(Transfer::DenseDataPtr data) { for(SystemsMap::iterator it = mModelsSystems.begin(); it != mModelsSystems.end(); it++) { ModelsSystem* ms = it->second; if (ms->canLoad(data)) return true; } return false; }
bool AnyModelsSystem::canLoad(std::tr1::shared_ptr<const Transfer::DenseData> data) { for(SystemsMap::iterator it = mModelsSystems.begin(); it != mModelsSystems.end(); it++) { ModelsSystem* ms = it->second; if (ms->canLoad(data)) return true; } return false; }
bool AnyModelsSystem::convertVisual(const Mesh::VisualPtr& visual, const String& format, const String& filename) { SystemsMap::iterator it = mModelsSystems.find(format); if (it == mModelsSystems.end()) { SILOG(AnyModelsSystem,error,"AnyModelsSystem couldn't find format " << format << " during mesh conversion."); return false; } ModelsSystem* ms = it->second; return ms->convertVisual(visual, "", filename); }
FilterDataPtr SaveFilter::apply(FilterDataPtr input) { assert(input->single()); ModelsSystem* parser = ModelsSystemFactory::getSingleton().getConstructor("any")(""); VisualPtr vis = input->get(); bool success = parser->convertVisual(vis, mFormat, mFilename); if (!success) { std::cout << "Error saving mesh." << std::endl; return FilterDataPtr(); } return input; }
Mesh::MeshdataPtr AnyModelsSystem::load(const Transfer::URI& uri, const Transfer::Fingerprint& fp, std::tr1::shared_ptr<const Transfer::DenseData> data) { Mesh::MeshdataPtr result; for(SystemsMap::iterator it = mModelsSystems.begin(); it != mModelsSystems.end(); it++) { ModelsSystem* ms = it->second; if (ms->canLoad(data)) { result = ms->load(uri, fp, data); if (result) return result; } } return result; }
Mesh::VisualPtr AnyModelsSystem::load(const Transfer::RemoteFileMetadata& metadata, const Transfer::Fingerprint& fp, Transfer::DenseDataPtr data) { Mesh::VisualPtr result; for(SystemsMap::iterator it = mModelsSystems.begin(); it != mModelsSystems.end(); it++) { ModelsSystem* ms = it->second; if (ms->canLoad(data)) { result = ms->load(metadata, fp, data); if (result) return result; } } SILOG(AnyModelsSystem,error,"Couldn't find parser for " << metadata.getURI()); return result; }