MCPcopy Create free account
hub / github.com/MITK/MITK / SaveScene

Method SaveScene

Modules/SceneSerialization/src/mitkSceneIO.cpp:271–530  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

269}
270
271bool mitk::SceneIO::SaveScene(DataStorage::SetOfObjects::ConstPointer sceneNodes,
272 const DataStorage *storage,
273 const std::string &filename)
274{
275 if (!sceneNodes)
276 {
277 MITK_ERROR << "No set of nodes given. Not possible to save scene.";
278 return false;
279 }
280 if (!storage)
281 {
282 MITK_ERROR << "No data storage given. Not possible to save scene."; // \TODO: Technically, it would be possible to
283 // save the nodes without their relation
284 return false;
285 }
286
287 if (filename.empty())
288 {
289 MITK_ERROR << "No filename given. Not possible to save scene.";
290 return false;
291 }
292
293 mitk::LocaleSwitch localeSwitch("C");
294
295 try
296 {
297 m_FailedNodes = DataStorage::SetOfObjects::New();
298 m_FailedProperties = PropertyList::New();
299
300 // start XML DOM
301 tinyxml2::XMLDocument document;
302 document.InsertEndChild(document.NewDeclaration());
303
304 auto *version = document.NewElement("Version");
305 version->SetAttribute("Writer", __FILE__);
306 version->SetAttribute("Revision", "$Revision: 17055 $");
307 version->SetAttribute("FileVersion", 1);
308 document.InsertEndChild(version);
309
310 // DataStorage::SetOfObjects::ConstPointer sceneNodes = storage->GetSubset( predicate );
311
312 if (sceneNodes.IsNull())
313 {
314 MITK_WARN << "Saving empty scene to " << filename;
315 }
316 else
317 {
318 if (sceneNodes->size() == 0)
319 {
320 MITK_WARN << "Saving empty scene to " << filename;
321 }
322
323 MITK_INFO << "Storing scene with " << sceneNodes->size() << " objects to " << filename;
324
325 m_WorkingDirectory = CreateEmptyTempDirectory();
326 if (m_WorkingDirectory.empty())
327 {
328 MITK_ERROR << "Could not create temporary directory. Cannot create scene files.";

Callers 7

SaveMethod · 0.80
mitkSceneIOTestFunction · 0.80
RunMethod · 0.80
RunMethod · 0.80

Calls 15

GetPointerMethod · 0.80
GetSourcesMethod · 0.80
GetPropertyListNamesMethod · 0.80
closeMethod · 0.80
whatMethod · 0.80
NewFunction · 0.50
emptyMethod · 0.45
IsNullMethod · 0.45
sizeMethod · 0.45
AddStepsToDoMethod · 0.45
beginMethod · 0.45
endMethod · 0.45