* A renderer which has been inserted via a insert... function can be removed from the vtkRenderWindow with * RemoveRenderer. */
| 151 | * RemoveRenderer. |
| 152 | */ |
| 153 | void mitk::VtkLayerController::RemoveRenderer(vtkSmartPointer<vtkRenderer> renderer) |
| 154 | { |
| 155 | RendererVectorType::iterator it; |
| 156 | // background layers |
| 157 | if (m_BackgroundRenderers.size() > 0) |
| 158 | { |
| 159 | it = std::find(m_BackgroundRenderers.begin(), m_BackgroundRenderers.end(), renderer); |
| 160 | if (it != m_BackgroundRenderers.end()) |
| 161 | { |
| 162 | m_BackgroundRenderers.erase(it); |
| 163 | UpdateLayers(); |
| 164 | return; |
| 165 | } |
| 166 | } |
| 167 | // scene layers |
| 168 | if (m_SceneRenderers.size() > 0) |
| 169 | { |
| 170 | it = std::find(m_SceneRenderers.begin(), m_SceneRenderers.end(), renderer); |
| 171 | if (it != m_SceneRenderers.end()) |
| 172 | { |
| 173 | m_SceneRenderers.erase(it); |
| 174 | UpdateLayers(); |
| 175 | return; |
| 176 | } |
| 177 | } |
| 178 | // foreground layers |
| 179 | if (m_ForegroundRenderers.size() > 0) |
| 180 | { |
| 181 | it = std::find(m_ForegroundRenderers.begin(), m_ForegroundRenderers.end(), renderer); |
| 182 | if (it != m_ForegroundRenderers.end()) |
| 183 | { |
| 184 | m_ForegroundRenderers.erase(it); |
| 185 | UpdateLayers(); |
| 186 | return; |
| 187 | } |
| 188 | } |
| 189 | } |
| 190 | /** |
| 191 | * Connects a VtkRenderWindow with the layer controller. |
| 192 | */ |