diff --git a/Documentation/Doxygen/Modules/DataTreeAndIterators.dia b/Documentation/Doxygen/Modules/DataTreeAndIterators.dia deleted file mode 100644 index 36154f9f6b..0000000000 Binary files a/Documentation/Doxygen/Modules/DataTreeAndIterators.dia and /dev/null differ diff --git a/Documentation/Doxygen/Modules/DataTreeAndIterators.png b/Documentation/Doxygen/Modules/DataTreeAndIterators.png deleted file mode 100644 index ed59e55435..0000000000 Binary files a/Documentation/Doxygen/Modules/DataTreeAndIterators.png and /dev/null differ diff --git a/Documentation/Doxygen/Modules/DataTreeNodeFactoryMechanism.png b/Documentation/Doxygen/Modules/DataTreeNodeFactoryMechanism.png deleted file mode 100644 index aaa32efca7..0000000000 Binary files a/Documentation/Doxygen/Modules/DataTreeNodeFactoryMechanism.png and /dev/null differ diff --git a/Documentation/Doxygen/Modules/DataTreeNodeFactoryMechanism.vsd b/Documentation/Doxygen/Modules/DataTreeNodeFactoryMechanism.vsd deleted file mode 100644 index 1a52334470..0000000000 Binary files a/Documentation/Doxygen/Modules/DataTreeNodeFactoryMechanism.vsd and /dev/null differ diff --git a/Documentation/Doxygen/Modules/ModuleDataManagement.dox b/Documentation/Doxygen/Modules/ModuleDataManagement.dox deleted file mode 100644 index e6f919743f..0000000000 --- a/Documentation/Doxygen/Modules/ModuleDataManagement.dox +++ /dev/null @@ -1,27 +0,0 @@ -/** - -\defgroup DataManagement Data Management Classes -\ingroup Core - -\brief This category includes the data classes themselves (images, surfaces, -etc.) as well as management classes to organize the data during run-time in a -tree structure, called the data tree (mitk::DataTree). - -\section DataManagementOverview Overview - -There are two things in MITK: data itself and the organization of data in a -tree. The data tree is used for communication between different parts of an -application: The renderer uses it to find the things to render, functionalities -use it to find "all images" or "all surfaces", and the event handling uses it to -distribute events to interactors. - -For a list of all possible kind of data, look at \ref Data. \ref IO lists -classes that help to read and write data sets. - -For an explanation of the data tree, iterators and tree nodes, refer to -\ref DataTree. - -\ref Geometry groups all classes that describe the spatial/temporal position and -orientation of data sets. - -*/ diff --git a/Documentation/Doxygen/Modules/ModuleDataTree.dox b/Documentation/Doxygen/Modules/ModuleDataTree.dox deleted file mode 100644 index 2db8d6bf83..0000000000 --- a/Documentation/Doxygen/Modules/ModuleDataTree.dox +++ /dev/null @@ -1,58 +0,0 @@ -/** - -\defgroup DataTree Data Tree Classes -\ingroup DataManagement - -\brief This subcategory includes the data tree classes, which organizes the data during run-time in a tree structure. - -\section overviewDataTree Overview - -All data objects, like images or surfaces, are contained in DataNodes. These -DataNodes describe the data itself (mitk::BaseData), how they can be rendered in -2D or 3D (a list of mitk::Mapper), what mitk::Interactor is associated with it, and a list -of arbirary properties (name, visibility, opacity, etc.). Information about the -position of a data object in space/time is stored in a Geometry, which is -attached to the data object itself, not to the node. - -Tree nodes are organized in a data tree for communication between different -parts of an application, e.g. functionalities and the rendering process. -mitk::DataTree is just a typedef to the ITK tree container class. To access and -modify data trees, we use iterators (mitk::DataTreeIteratorBase). - -To clarify the relation between the tree, its nodes and iterators, have a look -at the following diagram. The main point of this diagram is, that you need an -iterator to change the tree. A tree node does not know about the tree! -Once again: a tree node does not know about the tree! - -\image html DataTreeAndIterators.png "The data tree, its nodes and iterators" - -To modify a tree, you can use an iterator's Add(), Set() or Remove() methods -(among others): - -\code - mitk::DataTreeIteratorBase* iterator = GetAnIterator(); //whatever - mitk::DataNode* node = GetMyNode(); - mitk::DataNode* node2 = GetMyNode(); - - if ( iterator.IsNotNull() ) - { - iterator->Add( node ); // add as child to the current position - - iterator->Set( node2 ); // set the node of the current position - - iterator->Remove(); // remove the current position (and all its children) - } - -\endcode - -To access the data behind an iterator, use Get(): - -\code - if ( iterator.IsNotNull() ) - { - mitk::DataNode* datanode = iterator->Get(); - mitk::BaseData* = datanode->GetData(); - } -\endcode - -*/ diff --git a/Documentation/Doxygen/Modules/ModuleDatamanagementIO.dox b/Documentation/Doxygen/Modules/ModuleDatamanagementIO.dox deleted file mode 100644 index c0c32af17a..0000000000 --- a/Documentation/Doxygen/Modules/ModuleDatamanagementIO.dox +++ /dev/null @@ -1,258 +0,0 @@ -/** - \defgroup IO IO Classes - \ingroup DataManagement - - \brief This subcategory includes the IO classes to read or write data objects. - - Available sections: - - \ref DataNodeFactory - - \ref XMLWriterAndXMLReader - - \ref XMLFile - - \ref XMLWriter - - \ref XMLWriterCodeSnippets - - \ref XMLReader - - \ref XMLReaderCodeSnippets - - \section DataNodeFactory DataNodeFactory - - The mitk::DataNodeFactory creates instances of mitk::DataNodes filled with data read from a given file. - This class reads files, creates an appropriate mitk::BaseData and adds the BaseData to a mitk::DataNode. - This filter may produce one or more outputs (i.e. mitk::DataNodes). The number of generated nodes can be retrieved by a call of GetNumberOfOutputs(). - If you want to add a new file type, you have to register the factory of the file reader in the class mitk::BaseDataIO. - - \image html DataNodeFactoryMechanism.png "A short overview of the factory mechanism of the DataNodeFactory." - - The mitk::DataNodeFactory calls the mitk::BaseDataIO. - BaseDataIO registers the defined factories of the file readers. - After registration each registered factory will be asked if it can read the file specified by the filename. - If the asked factory can read the file it instantiates the adequate reader. The reader reads the file and returns as output a pointer of BaseData. - It is possible that a reader has more than one output. The BaseData is stored in a vector of BaseData. - The pointer of this vector is returned to the DataNodeFactory. A node is created for each element of the vector. - - Between BaseDataIO and the ObjectFactoryBase there is still an adapter (mitk::IOAdapter). - The instantiated reader returns a pointer of mitk::BaseProcess. In the class BaseProcess there couldn't be defined the necessary function CanReadFile(). - So we need an adapter class to handle this. - - \section XMLWriterAndXMLReader XMLWriter and XMLReader - - The mitk::XMLWriter and mitk::XMLReader give the possibility to write and to read XML files. - These classes were developed with the aim to store and to load the MITK datatree (mitk::DataTree). - To avoid external dependencies of the MITK these classes are realized without XML parsers like DOM or SAX. - Only dependencies to ITK and VTK are existing. - - \subsection XMLFile XML file - - Mentioned before, the focus of this classes is to store and to load the MITK datatree (mitk::DataTree) with XML. - In the following you can see the body of a typical XML file of a MITK image that was kept as a node in the datatree. - - \image html SceneXML.png "A typical XML file of a MITK image." - - Initial point is the DataTree class. So \ is the root element. - The hierarchy of the datatree is reflected again in the hierarchy of the XML nodes. - At large the XML nodes represent classes. The name of the class is stored with the XML attribute "CLASS_NAME". - Generally data is stored with attributes. - - \subsection XMLWriter XMLWriter - - Technically the XMLWriter class is derived from mitkBaseXMLWriter class. The constructor needs the filename of the XML file at least. - - The following diagram displays the main components: - \image html XMLWriterOverview.png "Classes related to XMLWriter" - - For writing a XML file the following funtions are important. - - \li mitk::XMLIO::WriteXML() - \li mitk::XMLIO::WriteXMLData() - \li mitk::BaseXMLWriter::BeginNode() - \li mitk::BaseXMLWriter::EndNode() - \li mitk::XMLWriter::WriteProperty() - - Easily speaking the mitk::XMLIO class manages the input and the output of the XML file. - New classes that should be written to the XML file have to be derived from the XMLIO class. - New classes should also be declared in the mitk::MapClassIDToClassName class. - Calling the function WriteXML() writes automatically a complete node of the referenced class to the XML file. - The function WriteXML() calls sequential the functions BeginNode(), WriteProperty(), WriteXMLData() and EndNode(). - A new XML node is initialized with the function BeginNode("nameOfNewNode"). - The function WriteXMLData() writes the data of the referenced class. - This function has to be overwritten in new classes. The data is stored with XML attributes. - These attributes can be written with the function WriteProperty("key", value). - The parameter "key" specifies the name of the attribute and the parameter "value" the data. - Different datatypes are supported. For details you can look in the mitk::BaseXMLWriter and mitk::XMLWriter class. - The function EndNode() writes the end tag of the started XML node to the XML file. - - It is also possible to write custom data apart from classes to the XML file (e.g. data of complex datatypes). - In this case you can call BeginNode(),(WriteProperty()), (WriteXMLData()) and EndNode() manually to write XML nodes and attributes. - But watch out for the closing tag of each XML node. Each start tag needs an end tag. - - It is prefered to define common key words (e.g. name of attriubtes) in the XMLNodes class. - Class specific key words should be defined in the class itself (e.g. XML_NODE_NAME). - - The nodes of the datatree contain different data like images, surfaces or vessels. - These base data is stored in the respectively fitting dataformat. - Such files are called source files and are referenced in the XML file. - - To manage these references there are different functions implemented in the mitk::XMLWriter class. - - \li mitk::XMLWriter::SetSaveSourceFiles() - \li mitk::XMLWriter::SetSourceFileName() - \li mitk::XMLWriter::SetSubFolder() - \li mitk::XMLWriter::SetOriginPath() - \li mitk::XMLWriter::GetNewFileName() - \li mitk::XMLWriter::GetRelativePath() - \li mitk::XMLWriter::GetAbsolutePath() - \li mitk::XMLWriter::GetSubFolder() - - A special feature of the XMLWriter is to store the source files relative to the XML file. - If no filename is set a new filename is generated. - - \subsection XMLWriterCodeSnippets XMLWriter code snippets - - Initialize and start the XMLWriter - - \code - #include - #include - - //... - - const *char filename = "Scene.xml"; - mitk::XMLWriter xmlWriter(filename); - mitk::myClass::Pointer myClass; - - xmlWriter.BeginNode("root"); - myClass->WriteXML(xmlWriter); - xmlWriter.EndNode(); - \endcode - - - Overwrite the function WriteXMLData of a new class - - myClass.h - - \code - #include - - class myClass: public XMLIO - - public - - //... - - static const std::string XML_NODE_NAME; - - virtual bool WriteXMLData(XMLWriter &xmlWriter); - \endcode - - myClass.cpp - - \code - #include - - //... - - static const std::string XML_NODE_NAME = "myClass"; - // defines the XML nodename - - bool mitk::myClass::WriteXMLData(XMLWriter &xmlWriter); - { - xmlWriter.WriteProperty("MY_NUMBER", this->GetNumber()); - xmlWriter.BeginNode("uselessNode"); - xmlWriter.WriteProperty("USELESS_INFO", "useless info"); - xmlWriter.EndNode(); - return true; - } - \endcode - - \subsection XMLReader XMLReader - - The mitk::XMLReader reads a stream and parses XML element tags and corresponding attributes. - Technically the XMLReader class is derived from vtkXMLParser class. - The constructor needs the filename ((path)+filename) of the XML file and a datatree iterator (mitk::DataTreeIteratorBase) of the datatree. - - The following diagram displays the main components: - \image html XMLReaderOverview.png "Classes related to XMLReader" - - For reading a XML file the following funtions are important. - - \li mitk::XMLIO::ReadXMLData() - \li mitk::XMLReader::Goto() - \li mitk::XMLReader::GotoNext() - \li mitk::XMLReader::GotoParent() - \li mitk::XMLReader::CreateObject() - \li mitk::XMLReader::GetAttribute() - - As mentioned in the section before the mitk::XMLIO class manages the input and the output of the XML file. - New classes that should be read data from the XML file have to be derived from the mitkXMLIO class. - In new classes the function ReadXMLData() have to be overwritten. - Easily speaking this function reads the data from the XML file, provides for instantiation of new objects and sets the data. - With the Goto functions it is possible to navigate the parser through the XML document. - To get the root XML node call the function Goto("root"). Be careful with the hierarchy of the XML nodes and the actual position of the parser. - The function Goto() is looking always for child nodes and function GotoNext() is looking for further XML nodes in the same hierarchy. - For creation of new objects of the read class (the class is specified in the XML attribute "CLASS_NAME") the function CreateObject() has to be called. - The creation of the asked object is only successful when the new class has already be defined in the mitk::ObjectFactory class. - If the asked XML node is reached, the data stored in XML attributes, can be read by the function GetAttribute("key", value). - The parameter "key" specifies the name of the attribute and the parameter "value" keeps the data. - Different datatypes are supported. For details you can look in the mitk::XMLReader class. - When the parser should climb up in the XML tree hierarchy the function GotoParent() does a good job. - - The source file management - - If the reference to the source file is stored relative to the XML file you need the path of the XML file to calculate the absolute path. - This operation is done automatically and you get the absolute path when calling the attribute "FILENAME". - It is also possible to get the path of the source file by calling the function GetSourceFilePath(). - - \subsection XMLReaderCodeSnippets XMLReader code snippets - - Initialize and start the XMLReader - - \code - #include - - //... - - std::string filename = "Scene.xml"; - mitk::DataTreePreOrderIterator it(m_Tree); - mitk::XMLReader::Load(&it, filename); - \endcode - - - Overwrite the function ReadXMLData of a new class - - myClass.h - - \code - #include - - class myClass: public XMLIO - - public - - //... - - virtual bool ReadXMLData(XMLReader &xmlReader); - \endcode - - myClass.cpp - - \code - #include - #include - - //... - - bool mitk::myClass::ReadXMLData(XMLReader &xmlReader); - { - int value; - - if(xmlReader.Goto("myClass")){ - mitk::fictiveClass::Pointer myFictiveObject = dynamic_cast(xmlReader.CreateObject().GetPointer()); - if (xmlReader.GetAttribute("myNumber", value)) - this->SetNumber(value); - myFictiveObject->ReadXMLData(xmlReader); // further elements can be read - xmlReader.GotoParent(); // now we are back on parent tag - } - return true; - } - \endcode - -*/ diff --git a/Documentation/Doxygen/Modules/SceneXML.png b/Documentation/Doxygen/Modules/SceneXML.png deleted file mode 100644 index 42136c722d..0000000000 Binary files a/Documentation/Doxygen/Modules/SceneXML.png and /dev/null differ diff --git a/Documentation/Doxygen/Modules/XMLReaderOverview.png b/Documentation/Doxygen/Modules/XMLReaderOverview.png deleted file mode 100644 index 8d5789d4c1..0000000000 Binary files a/Documentation/Doxygen/Modules/XMLReaderOverview.png and /dev/null differ diff --git a/Documentation/Doxygen/Modules/XMLReaderOverview.vsd b/Documentation/Doxygen/Modules/XMLReaderOverview.vsd deleted file mode 100644 index 474dedbcc0..0000000000 Binary files a/Documentation/Doxygen/Modules/XMLReaderOverview.vsd and /dev/null differ diff --git a/Documentation/Doxygen/Modules/XMLWriterOverview.png b/Documentation/Doxygen/Modules/XMLWriterOverview.png deleted file mode 100644 index a8b62f592e..0000000000 Binary files a/Documentation/Doxygen/Modules/XMLWriterOverview.png and /dev/null differ diff --git a/Documentation/Doxygen/Modules/XMLWriterOverview.vsd b/Documentation/Doxygen/Modules/XMLWriterOverview.vsd deleted file mode 100644 index 54a382ef99..0000000000 Binary files a/Documentation/Doxygen/Modules/XMLWriterOverview.vsd and /dev/null differ