Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkDataTreeHelper.h"
00019
00020 mitk::DataTreeIteratorClone mitk::DataTreeHelper::FindIteratorToNode(
00021 mitk::DataTreeBase* tree,
00022 const mitk::DataNode* node)
00023 {
00024 if(tree == NULL)
00025 return NULL;
00026
00027 DataTreeIteratorClone pos = DataTreePreOrderIterator(tree);
00028
00029 while ( !pos->IsAtEnd() )
00030 {
00031 if ( pos->Get().GetPointer() == node )
00032 return pos;
00033 ++pos;
00034 }
00035 return pos;
00036 }
00037
00038 mitk::DataTreeIteratorClone mitk::DataTreeHelper::FindIteratorToNode(
00039 const mitk::DataTreeIteratorBase* startPosition,
00040 const mitk::DataNode* node
00041 )
00042 {
00043 DataTreeIteratorClone pos = *startPosition;
00044
00045 while ( !pos->IsAtEnd() )
00046 {
00047 if ( pos->Get().GetPointer() == node )
00048 return pos;
00049 ++pos;
00050 }
00051 return pos;
00052 }
00053
00054 mitk::DataTreeIteratorClone mitk::DataTreeHelper::GetNamedChild(mitk::DataTreeIteratorBase* iterator, std::string name)
00055 {
00056 mitk::DataTreeChildIterator childIterator(*iterator);
00057 while (! childIterator.IsAtEnd() )
00058 {
00059 mitk::DataNode* node = childIterator.Get();
00060 std::string nodeName;
00061 if (node && node->GetName(nodeName))
00062 {
00063 if (nodeName == name)
00064 {
00065 return DataTreeIteratorClone(childIterator);
00066 }
00067 }
00068 ++childIterator;
00069 }
00070 return DataTreeIteratorClone(NULL);
00071 }