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 "mitkSegmentationSink.h"
00019 #include "mitkRenderingManager.h"
00020 #include "mitkDataStorage.h"
00021
00022 namespace mitk {
00023
00024 SegmentationSink::SegmentationSink()
00025 {
00026 }
00027
00028 SegmentationSink::~SegmentationSink()
00029 {
00030 }
00031
00032 void SegmentationSink::Initialize(const NonBlockingAlgorithm* other)
00033 {
00034 Superclass::Initialize(other);
00035
00036 UnDefineTriggerParameter("Input");
00037
00038
00039 DataNode::Pointer groupNode;
00040 bool showResult(true);
00041
00042 if (other)
00043 {
00044 other->GetPointerParameter("Group node", groupNode);
00045 other->GetParameter("Show result", showResult);
00046 }
00047
00048 SetPointerParameter("Group node", groupNode );
00049 SetParameter("Show result", showResult );
00050 }
00051
00052 bool SegmentationSink::ReadyToRun()
00053 {
00054 Image::Pointer image;
00055 GetPointerParameter("Input", image);
00056
00057 DataNode::Pointer groupNode;
00058 GetPointerParameter("Group node", groupNode);
00059
00060 return image.IsNotNull() && groupNode.IsNotNull();
00061 }
00062
00063 bool SegmentationSink::ThreadedUpdateFunction()
00064 {
00065 return true;
00066 }
00067
00069 void SegmentationSink::InsertBelowGroupNode(mitk::DataNode* node)
00070 {
00071 DataNode* groupNode = GetGroupNode();
00072
00073 if (m_DataStorage.IsNotNull())
00074 {
00075 if (node)
00076 node->GetData()->DisconnectPipeline();
00077 m_DataStorage->Add( node, groupNode );
00078 }
00079
00080 RenderingManager::GetInstance()->RequestUpdateAll();
00081 }
00082
00083 DataNode* SegmentationSink::GetGroupNode()
00084 {
00085 DataNode::Pointer groupNode;
00086 GetPointerParameter("Group node", groupNode);
00087
00088 return groupNode.GetPointer();
00089 }
00090
00091 DataNode* SegmentationSink::LookForPointerTargetBelowGroupNode(const char* name)
00092 {
00093 DataNode::Pointer groupNode;
00094 GetPointerParameter("Group node", groupNode);
00095
00096 if (groupNode.IsNotNull() && m_DataStorage.IsNotNull())
00097 {
00098 return m_DataStorage->GetNamedDerivedNode(name, groupNode, true);
00099 }
00100
00101 return NULL;
00102
00103 }
00104
00105 }
00106