| 141 | } |
| 142 | |
| 143 | bool mitk::RenderWindowLayerController::MoveNodeToFront(DataNode* dataNode, const BaseRenderer* renderer /*= nullptr*/) |
| 144 | { |
| 145 | if (nullptr == dataNode) |
| 146 | { |
| 147 | return false; |
| 148 | } |
| 149 | |
| 150 | // get the layer stack of the current renderer |
| 151 | RenderWindowLayerUtilities::LayerStack stackedLayers = RenderWindowLayerUtilities::GetLayerStack(m_DataStorage, renderer); |
| 152 | if (!stackedLayers.empty()) |
| 153 | { |
| 154 | // get the first value (highest int-key -> topmost layer) |
| 155 | int topmostLayer = stackedLayers.begin()->first; |
| 156 | // get the current layer value of the given data node |
| 157 | int currentLayer; |
| 158 | bool wasFound = dataNode->GetIntProperty("layer", currentLayer, renderer); |
| 159 | if (wasFound && currentLayer < topmostLayer) |
| 160 | { |
| 161 | // move the current data node above the current topmost layer |
| 162 | dataNode->SetIntProperty("layer", topmostLayer+1, renderer); |
| 163 | dataNode->Modified(); |
| 164 | if (nullptr == renderer) |
| 165 | { |
| 166 | mitk::RenderingManager::GetInstance()->RequestUpdateAll(); |
| 167 | |
| 168 | } |
| 169 | else |
| 170 | { |
| 171 | mitk::RenderingManager::GetInstance()->RequestUpdate(renderer->GetRenderWindow()); |
| 172 | } |
| 173 | return true; |
| 174 | } |
| 175 | // else: data node has no layer information or is already the topmost layer node |
| 176 | } |
| 177 | // else: do not work with empty layer stack |
| 178 | return false; |
| 179 | } |
| 180 | |
| 181 | bool mitk::RenderWindowLayerController::MoveNodeToBack(DataNode* dataNode, const BaseRenderer* renderer /*= nullptr*/) |
| 182 | { |
nothing calls this directly
no test coverage detected