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

Method SetMultiLabelNode

Modules/SegmentationUI/src/QmitkMultiLabelInspector.cpp:219–251  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

217}
218
219void QmitkMultiLabelInspector::SetMultiLabelNode(mitk::DataNode* node)
220{
221 if (node != this->m_SegmentationNode.GetPointer())
222 {
223 m_SegmentationObserver.Reset();
224 m_SegmentationNode = node;
225 m_LabelHighlightGuard.SetSegmentationNode(m_SegmentationNode);
226 m_SegmentationNodeDataMTime = 0;
227
228 if (m_SegmentationNode.IsNotNull())
229 {
230 auto& widget = *this;
231 auto checkAndSetSeg = [&widget, node](const itk::EventObject&)
232 {
233 if (widget.m_SegmentationNodeDataMTime < node->GetDataReferenceChangedTime())
234 {
235 auto newSeg = dynamic_cast<mitk::MultiLabelSegmentation*>(node->GetData());
236 if (nullptr == newSeg) mitkThrow() << "Invalid usage. Node set does not contain a segmentation.";
237
238 widget.m_SegmentationNodeDataMTime = node->GetDataReferenceChangedTime();
239 widget.SetMultiLabelSegmentation(newSeg);
240 }
241 };
242
243 m_SegmentationObserver.Reset(node, itk::ModifiedEvent(), checkAndSetSeg);
244 checkAndSetSeg(itk::ModifiedEvent());
245 }
246 else
247 {
248 this->SetMultiLabelSegmentation(nullptr);
249 }
250 }
251}
252
253mitk::DataNode* QmitkMultiLabelInspector::GetMultiLabelNode() const
254{

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected