void convertLayoutToL2() { if (_doc == NULL || _doc->getModel() == NULL) return; layoutNsUri = "http://projects.eml.org/bcb/sbml/level2"; layoutNs = new LayoutPkgNamespaces(2, 1); #ifdef LIBSBML_HAS_PACKAGE_RENDER foundRenderElements = false; renderNsUri = "http://projects.eml.org/bcb/sbml/render/level2"; renderNs = new RenderPkgNamespaces(2, 1); #endif LayoutModelPlugin* plugin = (LayoutModelPlugin*)_doc->getModel()->getPlugin("layout"); if (plugin == NULL) return; ConversionProperties prop(new SBMLNamespaces(2, 4)); prop.addOption("strict", false); prop.addOption("setLevelAndVersion", true); prop.addOption("ignorePackages", true); if (_doc->convert(prop) != LIBSBML_OPERATION_SUCCESS) { cout << "Conversion failed!" << endl; _doc->printErrors(); exit(2); } plugin->setElementNamespace(layoutNsUri); SBMLDocumentPlugin *docPlugin = (SBMLDocumentPlugin*)_doc->getPlugin("layout"); if (docPlugin != NULL) docPlugin->setElementNamespace(layoutNsUri); updateNs(plugin->getListOfLayouts()); _doc->getSBMLNamespaces()->removePackageNamespace(3, 1, "layout", 1); #ifdef LIBSBML_HAS_PACKAGE_RENDER SBMLDocumentPlugin *rdocPlugin = (SBMLDocumentPlugin*)_doc->getPlugin("render"); if (rdocPlugin!= NULL) rdocPlugin->setElementNamespace(renderNsUri); _doc->getSBMLNamespaces()->removePackageNamespace(3, 1, "render", 1); #endif }
void convertLayoutToL3() { if (_doc == NULL || _doc->getModel() == NULL) return; layoutNsUri = "http://www.sbml.org/sbml/level3/version1/layout/version1"; layoutNs = new LayoutPkgNamespaces(3, 1, 1); #ifdef CONVERT_RENDER renderNsUri = "http://www.sbml.org/sbml/level3/version1/render/version1"; renderNs = new RenderPkgNamespaces(3, 1, 1); #endif LayoutModelPlugin* plugin = (LayoutModelPlugin*)_doc->getModel()->getPlugin("layout"); if (plugin == NULL) return; ConversionProperties prop(new SBMLNamespaces(3, 1)); prop.addOption("strict", false); prop.addOption("setLevelAndVersion", true); prop.addOption("ignorePackages", true); _doc->convert(prop); plugin->setElementNamespace(layoutNsUri); SBMLDocumentPlugin *docPlugin = (SBMLDocumentPlugin*)_doc->getPlugin("layout"); if (docPlugin != NULL) docPlugin->setElementNamespace(layoutNsUri); updateNs(plugin->getListOfLayouts()); _doc->getSBMLNamespaces()->addPackageNamespace("layout", 1); _doc->setPackageRequired("layout", false); #ifdef CONVERT_RENDER SBMLDocumentPlugin *rdocPlugin = (SBMLDocumentPlugin*)_doc->getPlugin("render"); if (rdocPlugin != NULL) rdocPlugin->setElementNamespace(renderNsUri); _doc->getSBMLNamespaces()->addPackageNamespace("render", 1); _doc->setPackageRequired("render", false); #endif }
bool RenderExtension::isInUse(SBMLDocument *doc) const { if (doc == NULL || doc->getModel() == NULL) return false; LayoutModelPlugin* plugin = (LayoutModelPlugin*)doc->getModel()->getPlugin("layout"); if (plugin == NULL || plugin->getNumLayouts() == 0) return false; RenderListOfLayoutsPlugin* lolPlugin = (RenderListOfLayoutsPlugin*) plugin->getListOfLayouts()->getPlugin("render"); if (lolPlugin != NULL && lolPlugin->getNumGlobalRenderInformationObjects() > 0) return true; for(int i = 0; i < plugin->getNumLayouts(); i++) { Layout* layout = plugin->getLayout(i); RenderLayoutPlugin* rPlugin = (RenderLayoutPlugin*)layout->getPlugin("render"); if (rPlugin != NULL && rPlugin->getNumLocalRenderInformationObjects() > 0) return true; } return false; }