Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkSceneIO.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkSceneIO_h_included
14 #define mitkSceneIO_h_included
15 
17 
18 #include "mitkDataStorage.h"
19 #include "mitkNodePredicateBase.h"
20 
21 #include <Poco/Zip/ZipLocalFileHeader.h>
22 
23 class TiXmlElement;
24 
25 namespace mitk
26 {
27  class BaseData;
28  class PropertyList;
29 
30  class MITKSCENESERIALIZATION_EXPORT SceneIO : public itk::Object
31  {
32  public:
33  mitkClassMacroItkParent(SceneIO, itk::Object);
34  itkFactorylessNewMacro(Self);
35  itkCloneMacro(Self);
36 
38 
52  virtual DataStorage::Pointer LoadScene(const std::string &filename,
53  DataStorage *storage = nullptr,
54  bool clearStorageFirst = false);
55 
70  virtual DataStorage::Pointer LoadSceneUnzipped(const std::string &indexfilename,
71  DataStorage *storage = nullptr,
72  bool clearStorageFirst = false);
73 
74 
89  virtual bool SaveScene(DataStorage::SetOfObjects::ConstPointer sceneNodes,
90  const DataStorage *storage,
91  const std::string &filename);
92 
99  const FailedBaseDataListType *GetFailedNodes();
100 
112  const PropertyList *GetFailedProperties();
113 
114  protected:
115  SceneIO();
116  ~SceneIO() override;
117 
118  std::string CreateEmptyTempDirectory();
119 
120  TiXmlElement *SaveBaseData(BaseData *data, const std::string &filenamehint, bool &error);
121  TiXmlElement *SavePropertyList(PropertyList *propertyList, const std::string &filenamehint);
122 
123  void OnUnzipError(const void *pSender, std::pair<const Poco::Zip::ZipLocalFileHeader, const std::string> &info);
124  void OnUnzipOk(const void *pSender, std::pair<const Poco::Zip::ZipLocalFileHeader, const Poco::Path> &info);
125 
126  FailedBaseDataListType::Pointer m_FailedNodes;
128 
129  std::string m_WorkingDirectory;
130  unsigned int m_UnzipErrors;
131  };
132 }
133 
134 #endif
std::string m_WorkingDirectory
Definition: mitkSceneIO.h:129
Data management class that handles &#39;was created by&#39; relations.
Base of all data objects.
Definition: mitkBaseData.h:37
DataCollection - Class to facilitate loading/accessing structured data.
Key-value list holding instances of BaseProperty.
static void info(const char *fmt,...)
Definition: svm.cpp:86
unsigned int m_UnzipErrors
Definition: mitkSceneIO.h:130
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:49
PropertyList::Pointer m_FailedProperties
Definition: mitkSceneIO.h:127
FailedBaseDataListType::Pointer m_FailedNodes
Definition: mitkSceneIO.h:126
itk::VectorContainer< unsigned int, DataNode::Pointer > SetOfObjects
A Container of objects that is used as a result set of GetSubset() query operations (Set of...
DataStorage::SetOfObjects FailedBaseDataListType
Definition: mitkSceneIO.h:35
#define MITKSCENESERIALIZATION_EXPORT