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; }
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; }