19 TiXmlElement *versionObject = document.FirstChildElement(
"Version");
22 if (versionObject->QueryIntAttribute(
"FileVersion", &fileVersion) != TIXML_SUCCESS)
24 MITK_ERROR <<
"Scene file " << workingDirectory +
"/index.xml" 25 <<
" does not contain version information! Trying version 1 format." << std::endl;
29 std::stringstream sceneReaderClassName;
30 sceneReaderClassName <<
"SceneReaderV" << fileVersion;
32 std::list<itk::LightObject::Pointer> sceneReaders =
33 itk::ObjectFactoryBase::CreateAllInstance(sceneReaderClassName.str().c_str());
34 if (sceneReaders.size() < 1)
36 MITK_ERROR <<
"No scene reader found for scene file version " << fileVersion;
38 if (sceneReaders.size() > 1)
40 MITK_WARN <<
"Multiple scene readers found for scene file version " << fileVersion
41 <<
". Using arbitrary first one.";
44 for (
auto iter = sceneReaders.begin(); iter != sceneReaders.end(); ++iter)
46 if (
auto *reader = dynamic_cast<SceneReader *>(iter->GetPointer()))
48 if (!reader->LoadScene(document, workingDirectory, storage))
50 MITK_ERROR <<
"There were errors while loading scene file " 51 << workingDirectory +
"/index.xml. Your data may be corrupted";
Data management class that handles 'was created by' relations.
virtual bool LoadScene(TiXmlDocument &document, const std::string &workingDirectory, DataStorage *storage)