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

Method SetMultiLabelNode

Modules/SegmentationUI/src/QmitkMultiLabelSelectionLabel.cpp:73–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

71}
72
73void QmitkMultiLabelSelectionLabel::SetMultiLabelNode(mitk::DataNode* node)
74{
75 if (node != this->m_SegmentationNode.GetPointer())
76 {
77 m_SegmentationObserver.Reset();
78 m_SegmentationNode = node;
79 m_LabelHighlightGuard.SetSegmentationNode(m_SegmentationNode);
80 m_SegmentationNodeDataMTime = 0;
81
82 if (m_SegmentationNode.IsNotNull())
83 {
84 auto& widget = *this;
85 auto checkAndSetSeg = [&widget, node](const itk::EventObject&)
86 {
87 if (widget.m_SegmentationNodeDataMTime < node->GetDataReferenceChangedTime())
88 {
89 auto newSeg = dynamic_cast<mitk::MultiLabelSegmentation*>(node->GetData());
90 if (nullptr == newSeg) mitkThrow() << "Invalid usage. Node set does not contain a segmentation. Invalid node name: " << node->GetName();
91
92 widget.m_SegmentationNodeDataMTime = node->GetDataReferenceChangedTime();
93 widget.SetMultiLabelSegmentation(newSeg);
94 }
95 };
96
97 m_SegmentationObserver.Reset(node, itk::ModifiedEvent(), checkAndSetSeg);
98 checkAndSetSeg(itk::ModifiedEvent());
99 }
100 else
101 {
102 this->SetMultiLabelSegmentation(nullptr);
103 }
104 }
105}
106
107mitk::DataNode* QmitkMultiLabelSelectionLabel::GetMultiLabelNode() const
108{

Callers

nothing calls this directly

Calls 7

GetPointerMethod · 0.80
SetSegmentationNodeMethod · 0.80
IsNotNullMethod · 0.80
ResetMethod · 0.45
GetDataMethod · 0.45
GetNameMethod · 0.45

Tested by

no test coverage detected