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

Method SetMultiLabelNode

Modules/SegmentationUI/src/QmitkMultiLabelSelectionButton.cpp:63–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

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