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

Method SetBaseRenderer

Modules/QtWidgets/src/QmitkSynchronizedNodeSelectionWidget.cpp:83–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81}
82
83void QmitkSynchronizedNodeSelectionWidget::SetBaseRenderer(mitk::BaseRenderer* baseRenderer)
84{
85 if (m_BaseRenderer == baseRenderer)
86 {
87 // no need to do something
88 return;
89 }
90
91 if (nullptr == baseRenderer)
92 {
93 return;
94 }
95
96 auto oldBaseRenderer = m_BaseRenderer.Lock();
97 m_BaseRenderer = baseRenderer;
98 m_StorageModel->SetCurrentRenderer(baseRenderer);
99
100 auto dataStorage = m_DataStorage.Lock();
101 if (dataStorage.IsNull())
102 {
103 return;
104 }
105
106 // We know that renderer-specific properties exist for all nodes.
107 // These properties need to be removed from the nodes and
108 // we need to transfer their values to new renderer-specific properties.
109 auto allNodes = dataStorage->GetAll();
110 for (auto& node : *allNodes)
111 {
112 // Set the relevant renderer-specific properties for the node using the new base renderer.
113 // By transferring the values from the old property list,
114 // the same property-state is kept when switching to another base renderer.
115 mitk::RenderWindowLayerUtilities::TransferRenderWindowProperties(node, baseRenderer, oldBaseRenderer);
116 // Delete the relevant renderer-specific properties for the node using the old base renderer.
117 mitk::RenderWindowLayerUtilities::DeleteRenderWindowProperties(node, oldBaseRenderer);
118 }
119
120 this->Initialize();
121}
122
123QmitkRenderWindowDataNodeTableModel* QmitkSynchronizedNodeSelectionWidget::GetStorageModel() const
124{

Callers 1

Calls 5

InitializeMethod · 0.95
GetAllMethod · 0.80
LockMethod · 0.45
SetCurrentRendererMethod · 0.45
IsNullMethod · 0.45

Tested by

no test coverage detected